Note, if you do not build something, you won’t install it either.
To avoid building unit tests for example, there is -DWITH_UNIT_TESTS=0 (I think it perhaps should be even default, the unit tests run rather rare, mostly on CI)
If you want to exclude embedded -DWITH_EMBEDDED_SERVER=0. Cuts build time and disk space requirements in half.
For an example of customization of component list at package time, take a look into win/packaging/CPackZIPConfig.cmake
This excludes some components from Windows ZIP , even if the binaries were built.
At the build time, there is special win_package target (defined in win/packaging/CMakeLists.txt), which runs cpack –config CPackZipConfig.cmake
From: Chris Ross (cross2)
Sent: Friday, 26 June 2020 21:30
To: maria-discuss@lists.launchpad.net
Subject: [Maria-discuss] How to not install tests or examples
I am building MariaDB 10.4.13 for a Linux appliance. I do want both the server and client libraries, but I do not want many other things, including the examples and tests that seem to be getting built and installed.
I am configuring as follows:
cmake -DBUILD_CONFIG=mysql_release -DCMAKE_BUILD_TYPE=Debug -DAWS_SDK_EXTERNAL_PROJECT=OFF -DCMAKE_INSTALL_PREFIX:PATH=/base/usr -DWITH_JEMALLOC=OFF -DWITH_PCRE=auto -DWITH_SSL=system -DWITH_ZLIB=system -DWITH_WSREP=OFF -DPLUGIN_WSREP_INFO=NO -DPLUGIN_BLACKHOLE=NO -DPLUGIN_MROONGA=NO -DMRN_GROONGA_EMBED=OFF -DPLUGIN_TOKUDB=NO -DPLUGIN_ROCKSDB=NO)
But as an example of things I want to avoid, the mysql*_embedded binaries in libmysqld/examples get built, and then installed. Looking through the Cmake files, I can see references to CMAKE_INSTALL_COMPONENT of “Test”, and others, but I don’t know how to specify to cmake which components I do and don’t want to install. Can someone help me here?
- Chris