libxml2 include directory| Platform / installation | Directory |
|---|---|
| Ubuntu / Debian, Fedora / RHEL / Rocky / Alma, Arch Linux, openSUSE, Alpine Linux, Gentoo, Cygwin | /usr/include/libxml2 |
| FreeBSD, OpenBSD, macOS Homebrew (Intel), local Unix installation | /usr/local/include/libxml2 |
| NetBSD / pkgsrc | /usr/pkg/include/libxml2 |
| macOS / MacPorts | /opt/local/include/libxml2 |
| macOS / Homebrew (Apple Silicon) | /opt/homebrew/include/libxml2 |
| Windows / vcpkg | <vcpkg-root>\installed\<triplet>\include\libxml2 |
| Windows / MSYS2 MinGW | <MSYS2>\mingw64\include\libxml2 |
| Windows / MSYS2 UCRT64 | <MSYS2>\ucrt64\include\libxml2 |
| Windows / MSYS2 CLANG64 | <MSYS2>\clang64\include\libxml2 |
| Conda (Linux, macOS, Windows) | <conda-prefix>/include/libxml2 |
| Cross-compilation / sysroot | <sysroot>/usr/include/libxml2 |
| Custom installation | <prefix>/include/libxml2 |
.h and .hpp files)if-statements) and repetition (e.g., for-statements) statements have an unfamiliar syntaxcmake --help shows a list of Generatorsctest, cpackmakenmakecmakeAnt-std=c++20 are gcc/clang only, while MSVC takes /std:c++20CMAKE_CXX_STANDARD and cmake-compile-featuresmake installmake install/stripFetchContent vs file(DOWNLOAD ...) vs ExternalProject vs find_package--preset. Much of the platform-specific build configuration has been moved from the CMakeLists.txt to these files, including the ones in the directory presets.--preset. It is not committed to the repository and is developer-specific.find_package(srcML) (as with find_package(LibXml2 REQUIRED))vcpkg primarily aims to allow Windows developers to easily use open-source libraries in their applications. It integrates easily into CMake builds.| File Type | File Number | LOC |
|---|---|---|
| C++ files, C files, ANTLR files | 195 (19%) | 64 KLOC (38%) |
| Build Files | 40 (4%) | 3 KLOC (2%) |
| Test Files | 707 (68%) | 91 KLOC (54%) |
| Other | 93 (9%) | 9 KLOC (5%) |
| Total | 1,035 (100%) | 168 KLOC (100%) |