2020-12-13 Kjell Ahlstedt 2.28.1 2020-12-13 Kjell Ahlstedt atk/atkmm.h: Show how to use atkmm when building with Meson 2020-11-01 Kjell Ahlstedt Fix some comments * atk/src/editabletext.hg: Improve the description of the relation between Text and EditableText. * atk/src/relation.ccg: Remove an obsolete TODO comment. 2020-10-01 Kjell Ahlstedt Meson build: Fix versioning on macOS See libsigcplusplus, pull request 65 2020-08-31 Chun-wei Fan NMake Makefiles: Fix gendef invocation We ought to pass in the DLL filename with the '.dll' extension to gendef, not just the .lib filename 2020-08-30 Kjell Ahlstedt Add atk/src/atk_signals.defs.patch and regenerate atk_signals.defs. atk_signals.defs has contained manually changed lines. Add a .defs.patch file that automatically makes these changes when atk_signals.defs is regenerated by codegen/generate_defs_and_docs.sh. 2020-07-23 Chun-wei Fan NMake Makefiles: Use Meson-style DLL and .lib naming if requested To make things more consistent and less prone to confusion, if 'USE_MESON_LIBS' is specified in the NMake command line, build the DLLs and .lib's that are named like the Meson counterparts. Binaries built with Meson+Visual Studio and the ones that are built via NMake using 'USE_MESON_LIBS' are interchangeable, provided that they are built with the same Visual Studio version. 2020-07-22 Chun-wei Fan NMake Makefiles: Fix builds from release tarballs This will avoid re-generating atkmm.rc and atkmmconfig.h unneedingly, and ensure that we do have the version info in those files when we do need to generate them. Also streamline the process so that these files are generated as part of the 'all' target, so there is no need to run the 'prep-git-build' target explicitly 2020-07-08 Chun-wei Fan NMake Makefiles: Support ARM64 Windows builds This will make the NMake Makefiles capable of building ARM64 binaries of atkmm, which can be used on Windows 10 on ARM systems. 2020-06-30 Chun-wei Fan NMake Makefiles: Fix previous commit We should also account for Visual Studio 2015 when we use 'USE_MESON_LIBS' with 'USE_COMPAT_LIBS' as well... 2020-06-30 Chun-wei Fan NMake Makefiles: Apply toolset version for Meson-built deps As the Meson build files for Visual Studio apply the toolset version in the .lib filenames by default, apply the toolset version in the Meson-built -mm .lib files that we link in, just as we did when we we link in the -mm .lib files that was built with NMake, by default. The option 'USE_COMPAT_LIBS' will also mean that we will use the former behavior when we link in the Meson-built -mm .lib's, just as we did when we link in the NMake-built -mm .lib's. 2020-06-29 Kjell Ahlstedt doc/reference/: Update for Doxygen >= 1.8.16 * doc/reference/meson.build: Doxygen 1.8.16 and later does not store tag file names in the html files. This requires changes in meson.build and in doc-install.pl (in mm-common). Otherwise references to other modules won't be updated in the html files when they are installed. * doc/reference/Doxyfile.in: Remove PERL_PATH and MSCGEN_PATH. Doxygen since version 1.8.0 does not use them. 2020-06-29 Chun-wei Fan codegen/extradefs/meson.build: Apply toolset version as well We are already building the 'glibmm_generate_extra_defs-2.4' library with the toolset version applied by default on Visual Studio 2015+, so we should do the same here. 2020-06-29 Chun-wei Fan Meson/Visual Studio builds: Include toolset version by default This makes the built DLL and .lib's contain the toolset version if the build is carried out using Visual Studio 2015 or later, unless the 'msvc14x-parallel-installable' option is set to be false during configuration. The reasoning behind this change is that there can be subtle problems when, for instance, one tries to link to a Visual Studio 2015-built atkmm when building items dependening on atkmm with Visual Studio 2017 or 2019. This is unfortunate as Microsoft did try hard to make interoperating between binaries built with Visual Studio 2015, 2017 and 2019 as easy as possible in terms of ABI and API, but unfortunately this can hit the corner cases where this compatibility does not work. As the name suggests, this attempts to make Visual Studio 2015, 2017 and 2019 builds share a single set of underlying C DLLs easier, while avoiding breakages caused by such subtle differences. 2020-06-29 Chun-wei Fan Meson: Use pkg-config to find glibmm for all builds Stop manually looking for glibmm for better consistency, as: -Items that depended on glibmm which added Meson build support after glibmm, such as gtkmm and libxml++ also required glibmm to be found via pkg-config files, and they still had NMake Makefile support for Visual Studio builds. -There could be corner cases on the glibmm libraries that atkmm links to in terms of ABI compatibility between Visual Studio 2015, 2017 and 2019. 2020-06-16 Chun-wei Fan NMake Makefiles: Fix header 'installation' For Meson-generated source tarballs, we need to look in $(srcroot)/untracked for the header files as well. 2020-06-12 Chun-wei Fan NMake Makefiles: Distinguish between MSVC 2015, 2017 and 2019 It was found that we cannot completely rely on the fact that Visual Studio 2015~2019 tried very hard to be binary compatible, as there could be corner cases when linking against atkmm built with Visual Studio 2015 with builds done by Visual Studio 2017 and 2019 where the code will fail to link and the DLLs are therefore not ABI-compatible. Note that the libsigc++ DLLs, however, are ABI compatible between these 3 Visual Studio versions. As a result, for the DLL and LIB names, use 'vc140' for Visual Studio 2015 builds, 'vc141' for Visual Studio 2017 builds and 'vc142' for Visual Studio 2019 builds, according to the toolset versions as defined by Microsoft. For people that may have previously built atkmm (and glibmm) with Visual Studio 2017 or 2019, which had 'vc140' in the built .lib and DLL, an NMake option 'USE_COMPAT_LIBS' is added to make building such binaries with 'vc140' easier, if needed. 2020-04-17 Chun-wei Fan NMake Makefiles: Look for the headers in untracked/ as well We ought to look for headers there as well, to avoid loading the headers that were installed before, for building from Meson-built tarballs. 2020-04-17 Chun-wei Fan NMake Makefiles: Support building from Meson-generated tarballs This adds rules to the NMake Makefiles so that they will also look for the sources in untracked/. One still need to use the 'prep-git-build' target to generate the full atkmmconfig.h and atkmm.rc source files for such release tarballs, if PERL is present, or manually edit those files from their .in templates to their full counterparts. Also update the check for the generated headers so that we do not attempt to needlessly try to run gmmproc by looking for the header in untracked/ as well. 2020-04-15 Kjell Ahlstedt Add support for building atkmm with Meson atkmm-1.6 can be built with either Autotools or Meson. New files have been copied from pangomm-1.4 and modified. See MR !8 2020-04-13 Kjell Ahlstedt atk/atkmm.pc.in: Add atkmmconfig.h's install directory Add -I${libdir}/@ATKMM_MODULE_NAME@/include to the C flags, so other modules can include header files that include atkmmconfig.h. 2020-04-05 Chun-wei Fan NMake Makefiles: Fix m4 file installation It should be in $(sharedir)/atkmm-x.y/proc/m4, not $(sharedir)/atkmm-x.y/proc. 2020-04-05 Chun-wei Fan NMake Makefiles: Export using compiler directives if possible Check the gmmproc-generated sources to see whether they are generated with a new-enough gmmproc by checking on one of the generated headers, so that we can tell whether the generated headers have class, function and method definitions marked with ATKMM_API as needed. If the headers were generated with a recent enough gmmproc, we define ATKMM_BUILD and ATKMM_DLL to set ATKMM_API as __declspec(dllexport) to export the symbols directly during compilation and linking without building and using gendef.exe, otherwise we fall back to running gendef.exe on the built object files as we did before. 2020-04-01 Chun-wei Fan atk/atkmm/*.h: Mark methods with ATKMM_API This way, we can export symbols in atkmm using compiler directives rather than using gendef.exe. 2020-04-01 Chun-wei Fan atk/src/*.hg: Mark classes with ATKMM_API This way, we can export the symbols in atkmm with compiler directives instead of using gendef. 2020-04-01 Chun-wei Fan atk/atkmmconfig.h.in: Re-organize ATKMM_API definition We also activate ATKMM_DLL when we are building with Visual Studio, and define ATKMM_API as __declspec(dllexport) when ATKMM_DLL and ATKMM_BUILD are defined. Since we may be building with sources that are generated by gmmproc that did not support marking generated items with ATKMM_API, we also leave around a ATKMM_USE_GENDEF macro that would be defined if we find out that an older gmmproc was used to generate the sources from the .ccg/.hg files. 2020-04-01 Chun-wei Fan NMake Makefiles: Fix headers "installation" We may have generated the sources in $(Outdir)\atkmm, so make sure we look for the generated public headers there as well. 2020-03-31 Chun-wei Fan NMake Makefiles: "Install" files in codegen/m4 This way, we could have the *.m4 files in place so that we can use them to build gtkmm directly from a GIT checkout. 2020-03-31 Chun-wei Fan NMake Makefiles: Allow linking to Meson-built glibmm The option USE_MESON_LIBS now applies to linking to Meson-built glibmm, since it is now buildable with Meson. 2020-03-31 Chun-wei Fan NMake Makefiles: Disable warnings C4251 and C4275 Since we may be building against GLib that use __declspec(dllimport) to import symbols, we can safely ignore warnings C4251 and C4275, as they are harmless in this case as we are certain that we are really using those compiler directives. 2020-03-31 Chun-wei Fan NMake Makefiles: Fix build instruction display Some '<' and '>' need to be carat-escaped... 2020-03-31 Chun-wei Fan NMake Makefiles: Add rules to generate sources This allows one to be able to build directly from a GIT checkout, after first running the prep-git-build target, by running gmmproc from an installation of glibmm. Note that in order to perform such a build, one will need *nix/GNU tools such as common *nix commands 'cp' and 'rm' etc, along with PERL (with XML::Parser) and the GNU m4 tool. 2020-02-27 Chun-wei Fan NMake Makefiles: Add rules to generate pre-configure items This will allow building from GIT checkouts easier, where we need the full atkmmconfig.h and atkmm.rc to carry out our builds with NMake. 2020-02-07 Chun-wei Fan MSVC_NMake: Add option to link to Meson-built libraries libsigc++ is now buildable with Meson, so make it easier for people to link to Meson-built libsigc++ libraries with a NMake command line option. 2020-02-07 Chun-wei Fan NMake Makefiles: Use /utf-8 for MSVC 2015 and later This will prevent error C4819 due to unicode handling issues in the compiler, which can be raised when building on an East-Asian locale (Chinese, Japanese and Korean). This build flag, however, is provided only in Visual Studio 2015 and later, so 2013 users cannot benefit from this change. 2020-02-07 Chun-wei Fan NMake Makefiles: Split outdir and intdir by toolset version This will reduce the likelihood that one confuses builds done by different Visual Studio toolset versions, making things a bit neater. 2018-12-30 Kjell Ahlstedt codegen/generate_defs_and_docs.sh: Update for non-source-dir builds Most modules (e.g. atk) can be built in a directory separated from the source directory. Update the script that generates .defs and doc.xml files to handle that. The environment variables GMMPROC_GEN_SOURCE_DIR and GMMPROC_GEN_BUILD_DIR are read. See comments in init_generate.sh.