2020-03-22 Kjell Ahlstedt 2.43.2 2020-03-22 Kjell Ahlstedt README: Describe building with Meson and Autotools 2020-03-17 Kjell Ahlstedt Use glibmm-2.66 instead of glibmm-2.64 We have changed the ABI name in glibmm. 2020-03-12 Chun-wei Fan NMake Makefiles: Support Meson-built glibmm Add the correct naming for the DLLs and .lib's for glibmm that is built with Meson. 2020-03-12 Chun-wei Fan NMake Makefiles: Ignore warnings C4251 and C4275 We might well be building against glibmm that is not built using gendef, so we get C4251 and C4275 warnings when building against such GLib builds. Ignore those warnings, since we know quite well that we are importing from glibmm's import libraries using __declspec(dllimport) in this case. 2020-03-12 Chun-wei Fan Drop gendef from the sources Since we are now using compiler directives to export the symbols on Visual Studio builds, we can now drop the venerable gendef tool from the sources. 2020-03-12 Chun-wei Fan Visual Studio builds: Do not use gendef.exe Instead, use compiler directives to build the pangomm DLLs. 2020-03-12 Chun-wei Fan pango/pangomm/*.h: Decorate APIs with PANGOMM_API This prepares for the export of symbols using compiler directives rather than using gendef.exe. 2020-03-12 Chun-wei Fan pango/src/*.hg: Decorate classes and functions with PANGOMM_API This prepares for using compiler directives to export symbols rather than using gendef.exe. 2020-03-12 Chun-wei Fan pango/pangomm/meson.build: Define PANGOMM_BUILD This will eventually let us tell the compiler that we want to use compiler directives to export the symbols. 2020-03-12 Chun-wei Fan pango/pangommconfig.h.*: Add PANGOMM_API This prepares for decoration of the various APIs in pangomm so that we can export symbols at least on Visual Studio buids using compiler directives, without the need of gendef.exe. 2020-03-12 Chun-wei Fan NMake Makefiles: Fix build from Meson tarballs Look also for headers in untraced/pango and untracked/pango/pangomm, and fix up headers installation and build rules. 2020-03-11 Chun-wei Fan meson: Ignore warning C4251 and C4275 on MSVC builds We might be building against glibmm that is built with __declspec(dllexport), meaning that warnings C4251 and C4275 will be generated as we are now in-turn using __declspec(dllimport). We can just ignore these compiler warnings, since we are pretty sure what we are doing at this point. 2020-03-11 Chun-wei Fan meson: Build generate_extra_defs with Visual Studio too The NMake Makefiles in glibmm now builds glibmm_generate_extra_defs-2.x.lib, so we can make use of it to build generate_extra_defs on Visual Studio too. 2020-03-11 Chun-wei Fan meson.build: Look for glibmm with pkg-config on MSVC too glibmm gained Meson build support for Visual Studio, so we can first try to look for glibmm with pkg-config first, and then fall back to manual searching if that cannot be found. Note that libsigc++ also has a Meson build system as well, but either we look for it via glibmm's pkg-config files, or we look for both glibmm and libsigc++ manually. Also support looking for Meson-built libsigc++ .lib's as well if glibmm is to be looked for manually. 2020-03-11 Chun-wei Fan Meson: allow maintainer builds on Visual Studio too glibmm recently gained the ability to build with Visual Studio from a GIT checkout and to install the PERL scripts used to generate the C++ sources from the respective templates, so enable this support for pangomm as well as the needed infrastructure are largely in place. Note that a new configuration option has been added for Visual Studio builds to specify the directory for gmmproc, although there is Meson build support for building glibmm, but NMake Makefiles could have been used to build glibmm, meaning glibmm built with Visual Studio may not have pkg-config files, so it is used to specify the location if gmmproc if necessary. Since some portions that we use for non-maintainer builds can be used for maintainer builds as well, make them shared to keep changes minimal. 2020-03-11 Chun-wei Fan pango/src/color.hg: Fix call to _CLASS_BOXEDTYPE_STATIC Remove all the parameters after the second one, they were originally ignored as _CLASS_BOXEDTYPE_STATIC accepted 2 arguments and will cause issues with the new api_decoration stuff that was recently added to glibmm, which was the third argument 2020-02-27 Chun-wei Fan NMake Makefiles: Support Meson-built libsigc++ Add an option USE_MESON_LIBS for the NMake command line so that we can use the Meson-built libsigc++ easier, without needing to manually update Makefiles 2020-02-27 Chun-wei Fan NMake Makefiles: Separate outdir and intdir by toolset version This reduces the chances of builds by different Visual Studio versions become mixed up with other versions, and makes the build tree cleaner. Note that Visaul Studio 2015 through 2019 are treated as the same toolset version since they link to the same CRT. 2020-02-27 Chun-wei Fan NMake Makefiles: Allow builds from a GIT checkout ...or a Meson-generated release tarball. Add targets to the NMake Makefiles which will allow: -Generating MSVC_NMake/pangomm/pangommconfig.h and MSVC_NMake/pangomm/pangomm.rc, needed for GIT checkouts and Meson-generated release tarballs -Generating the sources that need to be generated with gmmproc and generate_wrap_init.pl, needed for GIT checkouts, and fix installation accordingly. -Look for sources also in $(srcroot)/untracked, which will be the case for Meson-generated release tarballs. -"Install" the m4 files in tools/m4, so that other projects may use it. 2020-02-27 Chun-wei Fan NMake Makefiles: Add rules to generate pre-configured items This will generate the pangomm.rc and pangommconfig.h files, which are needed for a Visual Studio build. This will make builds from a GIT checkout easier with NMake. 2020-01-13 Kjell Ahlstedt Meson build: Improve internal dependencies * docs/reference/meson.build: Less difference between maintainer-mode and not maintainer-mode. * pango/pangomm/meson.build: Make separate lists of built .h files and built .cc files. 2020-01-02 Kjell Ahlstedt docs/reference/meson.build: Check if perl is found Don't use perl.path() when configuring Doxyfile, if perl is not found. Perl is not required, if build-documentation=false. See https://github.com/libsigcplusplus/libsigcplusplus/issues/53 2019-12-27 Kjell Ahlstedt meson.build: Check if .git is a directory or file In a git worktree, .git is a regular file. See MR !8 (Ting-Wei Lan) 2019-10-22 Chun-wei Fan README.win32: Add instructions on Meson builds This is added for at least the Visual Studio builds. 2019-10-22 Chun-wei Fan meson.build: Fix library search error messages The .format(...) items are placed wrongly in the cases that the required -mm libraries are not found. Fix this. Make these messages clearer to people that all 3 C++-17 versions of the cairomm, glibmm and sigc++ .lib's are required by combining the 3 assert messages into a single assert message. 2019-10-21 Chun-wei Fan meson: Link in the version resource on Windows For all Windows builds, compile the version resource script (pangomm.rc) and link it into the pangomm DLL so that we embed the version info in that DLL. 2019-10-21 Chun-wei Fan meson.build: Add MSVC-specific warning items Let MSVC report warnings that roughly match those reported by the GCC builds, but ignore the warnings that aren't really harmful, by referring to GLib's msvc_recommended_pragmas.h. 2019-10-21 Chun-wei Fan meson: Build import .lib for MSVC builds This first builds gendef.cc in MSVC_NMake/gendef so that we can use it to generate the .def file that we need to build the import .lib file for the pangomm DLL. However, in order to do this in Meson, we need to build the sources into a temporary static .lib and run gendef.exe against it (which works with gendef.cc unchanged, thanks to dumpbin /symbols accepting static .lib's as well, so we won't have to figure out where the compiled object files are) in order to obtain the symbols that we need, since Meson does not support pre-link build steps. Note that all the source files are still compiled only once since we are using extract_all_objects(), so the only overhead is the temporary static .lib that we need to build to obtain the .def file. 2019-10-21 Chun-wei Fan Meson: Don't use 'cp' in MSVC_NMake The 'cp' command is unfortunately not available in non-UNIXy shells, so use a Python script instead to do the same thing. 2019-10-21 Chun-wei Fan meson: Don't build generate_extra_defs on MSVC This depends on portions in glibmm tat is not applicable directly to MSVC builds, so skip building this on MSVC 2019-10-21 Chun-wei Fan meson: Check for -mm deps manually on MSVC The MSVC build files for the -mm library dependencies do not generate pkg-config files, so check for them manually. This can be eventually replaced by the pkg-config checks when these dependencies gain Meson build support for MSVC. This will build and link pangomm without the import libraries, which will require us to build and use gendef.exe that is in MSVC_NMake/gendef, which will be done in a later commit. 2019-10-21 Chun-wei Fan Meson builds: Improve GIT check on MSVC builds Check that we are not attempting to build directly from a GIT checkout on MSVC, as this is currently not supported as m4 is required, which is not well supported on a Windows cmd.exe environment. 2019-10-14 Kjell Ahlstedt pango/pangomm/meson.build: Fix output from declare_dependency() * meson.build: Rename pangomm_deps -> pangomm_build_dep to avoid mix-up with pangomm_dep in pango/pangomm/meson.build. * pango/pangomm/meson.build: Add correct include directories in declare_dependency() when maintainer_mode is false. Simplify the code. * tools/extra_defs_gen/meson.build: Depend on pangomm_build_dep. 2019-09-29 Kjell Ahlstedt Add support for building pangomm with Meson pangomm can be built with either Autotools or Meson. See MR !4 2019-09-18 Kjell Ahlstedt Use glibmm-2.64 instead of glibmm-2.62 We have changed the ABI name in glibmm. 2019-08-12 Kjell Ahlstedt Coverage: Minor documentation fix 2019-07-28 Kjell Ahlstedt tools: Remove obsolete files * tools/Makefile.am: Don't distribute README. * tools/Makefile_list_of_sources.am_fragment: Remove, not used. * tools/README: * tools/TODO: Remove, once copied from glibmm, don't belong to pangomm. 2019-07-24 Kjell Ahlstedt LayoutLine: Remove unnecessary forward declaration The forward declaration of Glib::wrap(PangoLayoutLine*, bool) became unnecessary when the LayoutLineTraits struct was moved to layout.ccg in commit 57d8bceba336e972a4967db6872a373eac1833b9. 2019-07-22 Kjell Ahlstedt Remove deprecated API * pango/src/attrlist.[ccg|hg]: Remove non-const operator bool(). * pango/src/cairofontmap.[ccg|hg]: Remove create_context(). * pango/src/color.[ccg|hg]: Remove non-const operator bool(). * pango/src/layout.[ccg|hg]: Remove get_iter(LayoutIter& iter). * pango/src/layoutiter.[ccg|hg]: Remove assign_gobj(). 2019-07-22 Kjell Ahlstedt Layout::get_lines(): Fix ownership of the GSList Change Glib::OWNERSHIP_SHALLOW -> NONE 2019-07-22 Kjell Ahlstedt Coverage: Remove max(), to_bytes() and one create() * pango/src/coverage.[ccg|hg]: pango_coverage_from_bytes(), pango_coverage_to_bytes() and pango_coverage_max() are deprecated in pango 1.43. Remove them in pangomm. * pango/src/fontmap.hg: Remove an _IGNORE() macro. 2019-07-22 Kjell Ahlstedt Regenerate pango_docs.xml and .defs files and update pango_extra_objects.defs. 2019-03-21 Kjell Ahlstedt Doxyfile.in: Remove obsolete glibmm configuration constants They have been removed from glibmm. See issue glibmm#22. 2019-03-19 Kjell Ahlstedt Use glibmm-2.62 instead of glibmm-2.60 We have changed the ABI name in glibmm. 2018-12-30 Kjell Ahlstedt tools/gen_scripts: Update for non-source-dir builds Most modules (e.g. pango) can be built in a directory separated from the source directory. Update the scripts that generate .defs and doc.xml files to handle that. The environment variable JHBUILD_SOURCES is not used any more. Instead the environment variables GMMPROC_GEN_SOURCE_DIR and GMMPROC_GEN_BUILD_DIR are read. See comments in init_generate.sh.