2020-10-02 Kjell Ahlstedt 3.2.2 2020-10-02 Kjell Ahlstedt Meson build: Fix versioning on macOS See libsigcplusplus, pull request 65 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 build from tarballs Update the rules so that we won't attempt to unnecessarily generate libxml++config.h and libxml++.rc in our builds, and make sure that we do indeed generate them with the version info if generating them becomes necessary. Also streamline this process so that it will be part of the 'all' target. 2020-07-08 Chun-wei Fan NMake Makefiles: Fix default include paths Fix a typo where we include glibmmconfig.h, and make sure we also look for headers in $(PREFIX)\include 2020-07-08 Chun-wei Fan NMake Makefiles: Support ARM64 Windows builds This will make the NMake Makefiles capable of building ARM64 binaries of libxml++, which can be used on Windows 10 on ARM systems. 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. Also let people know the resolution to strange linker errors that are caused by mixing Visual Studio versions when building the -mm libraries. 2020-06-25 Kjell Ahlstedt README: Update with instructions for building libxml++ 2020-06-25 Chun-wei Fan Meson/Visual Studio builds: Use toolset version by default Like the NMake Makefiles, put in the toolset version of Visual Studio in the filenames of the built DLL and .lib by default on Visual Studio 2017 and 2019, so that it makes it easier to share the same glib, libxml and libsigc++ DLLs and libraries that were built with Visual Studio 2015~2019. The reasoning behind this change here is because although Microsoft tried very hard to make DLLs built with Visual Studio 2015, 2017 and 2019 API and ABI compatible, but libxml++ hits a corner case with glibmm where this compatibility does not work, but then the libxml, glib and libsigc++ DLLs and .lib's are indeed ABI-compatible. 2020-06-25 Kjell Ahlstedt meson.build: Fix some comments * meson.build: Fix some comments. * tools/build_scripts/tutorial-custom-cmd.py: Make it more similar to corresponding files in libsigc++ and gtkmm-documentation. 2020-06-24 Chun-wei Fan meson.build: Silence some warnings on Visual Studio Disable warnings C4273 and C4275, since we are going to rely on __declspec(dllimport) to build against glibmm and __declspec(dllexport) to build libxml++ itself, and we are very much bound to the same compiler that was used to build glibmm. 2020-06-24 Chun-wei Fan libxml++/meson.build: Fix typo It turns out that this typo will cause Visual Studio DLL builds to fail, because LIBXMLPP_API will not be defined correctly. 2020-06-24 Chun-wei Fan meson.build: Also look for libxml2 manually on Windows The Windows-specific Makefiles for libxml2 do not generate pkg-config files for us, so we must look for it manually on Windows if the libxml2 pkg-config file does not exist. This will check for the library and the headers, and run a simple version check to make sure things are indeed in place. Also make the build look for glibmm only via pkg-config, since we have Meson build files for glibmm already Also make sure that we have the correct info put into the pkg-config file that we generate 2020-06-24 Kjell Ahlstedt Add support for building libxml++ with Meson libxml++-3.0 can be built with either Autotools or Meson. New files have been copied from sigc-3.0 and other modules and modified. 2020-06-22 Kjell Ahlstedt docs/reference/Doxyfile.in: Remove PERL_PATH Doxygen since version 1.8.0 does not use PERL_PATH and MSCGEN_PATH. 2020-06-19 Chun-wei Fan Drop gendef.cc Since we are now using compiler directives or mechanisms to export symbols from our libxml++ DLL for all Windows dynamic builds, it's time to drop gendef.cc, as it is no longer used 2020-06-19 Chun-wei Fan NMake Makefiles: Stop using gendef This updates the NMake Makefiles to stop building and using the gendef tool, since we are now using compiler directives to export symbols for libxml++ builds. Since this branch did not have official and working Visual Studio build files, and it is not API/ABI compatible with the libxml++-2.6 series, gendef.cc will be dropped in the next commit 2020-06-19 Chun-wei Fan libxml++config.h.in: Re-organize LIBXMLPP_API We want to set LIBXMLPP_API to the following: * __declspec(dllexport) when building the libxml++ DLL on Windows * __declspec(dllimport) when using the libxml++ DLL on Windows * if building/using a static or a non-Windows libxml++ build 2020-06-19 Chun-wei Fan libxml++ headers: Mark classes and functions with LIBXMLPP_API This prepares us to export and symbols on Visual Studio builds using only compiler directives, and to drop the venerable gendef.cc 2020-06-19 Chun-wei Fan libxml++/*.h: Remove check for old _MSC_VER stuff They aren't applicable anymore, since the newer Visual Studio versions addressed the issues. 2020-06-17 Chun-wei Fan Update MSVC_NMake/README Update instructions for building since we moved to using NMake Makefiles, and let people know that the same compiler version is required for building libxml++, glibmm and libsigc++. 2020-06-17 Chun-wei Fan Drop Visual Studio 2010 projects They have been superseded with the NMake Makefiles, so it's time to retire them from the source tree. 2020-06-17 Chun-wei Fan Add NMake Makefiles This adds a set of NMake Makefiles that can be used to build libxml++, which will replace the Visual Studio 2010(!) projects that reside in the repository (which is probably broken and we actually need Visual Studio 2017+ to build the current code due to a bug in the Visual Studio 2015 compiler). The unfortunate fact is that we do need to link to a glibmm that is built with the same compiler, otherwise linking will fail and the binaries of the dependent glibmm built with other compilers won't work well with the builds here if they are built with other Visual Studio compilers, so we will need to separate the output filenames for the resulting .lib and .dll files for Visual Studio 2015, 2017 and 2019. A NMake Makefile build options "USE_COMPAT_LIBS" is added if linking to xxxx-vc140-y_z.lib for glibmm is still desired, such as in the case where glibmm was actually built with Visual Studio 2017 or 2019. 2020-06-17 Chun-wei Fan gendef.cc: Skip symbols implemented inline Like in the case of gtkmm, some symbols were implemented inline in the CRT on Visual Studio 2015+ (UCRT), so we don't want to put them in our .def file, otherwise linking will fail. 2020-06-17 Chun-wei Fan libxml++.rc.in: Fix version info We are now on libxml++-3.0 (3.x), not -2.6, so fix the version info in here 2020-06-17 Chun-wei Fan tests: Don't include config.h The libxml++config.h should already fulfil our needs here. 2020-06-17 Chun-wei Fan Rename MSVC_Net2010 to MSVC_NMake This initiates the move from the Visual Studio project files to using NMake Makefiles, so that we reduce the likelihood of the MSVC build files becoming outdated, by sharing the autotools build files' source listings.