LibXml2 with a CMake-based build system.
This repo is still a work in progress: use only if you are fully aware of what you are doing.
The project can be download and installed as any CMake project, for example on *nix systems
the library can be installed in the <prefix> directory with the following commands:
git clone https://github.com/robotology-dependencies/libxml2-cmake-buildsystem
cd libxml2-cmake
cmake -DCMAKE_INSTALL_PREFIX=<prefix> ..
cmake --build . --target INSTALL
Once you installed the library, it should be possible to find it using the FindLibXml2.cmake module available in CMake.
If you specified a non-standard <prefix>, you may need to also add <prefix> to CMAKE_PREFIX_PATH.
For more details on how to configure, compile and install a CMake project, see CGold section on Generate native tool files. Note that the repo does not contain a copy of the libxml2 source code, that is instead downloaded during the CMake configuration using the CMake's FetchContent module.
This CMake-based build system for libxml2 aims to support all the options supported by the autotools-based official build system of libxml2.
Configure command line option such as:
./configure --with-ftp
are converted to CMake command line options such as:
cmake -DLIBXML2_WITH_FTP:BOOL=ON ..
The additional prefix was added to avoid conflicts when this project is included in bigger CMake projects using
the add_subdirectory CMake command.
autotools options such as:
./configure --without-ftp
are supported by setting to OFF the corresponding CMake options such as:
cmake -DLIBXML2_WITH_FTP:BOOL=OFF ..
--build-shared and --build-static autotools options are not directly supported, but instead you can set the BUILD_SHARED_LIBS option to
ON if you want to compile shared libraries, or OFF if you want to compiled static libraries. See
CGold section on Shared + Static for more info on this.