CMake's FetchContent module allows people to include your library in their project directly without using an external library manager (ex. vcpkg or conan). Here is an example for doing that:
The only issue with using FetchContent is that the cli library will attempt to add install steps regardless of it is the main project or not. CMake allows you to disable the install steps by temporarily setting the CMAKE_SKIP_INSTALL_RULES variable to ON, but that makes CMake generate a nasty warning message:
CMake Warning in CMakeLists.txt:
CMAKE_SKIP_INSTALL_RULES was enabled even though installation rules have
been specified
This is a known issue with CMake (issue #22561) which does not appear like it will be fixed anytime soon. The current fix for FetchContent users is to guard a library's install steps with a check for CMAKE_SKIP_INSTALL_RULES:
CMake's FetchContent module allows people to include your library in their project directly without using an external library manager (ex. vcpkg or conan). Here is an example for doing that:
The only issue with using
FetchContent
is that the cli library will attempt to add install steps regardless of it is the main project or not. CMake allows you to disable the install steps by temporarily setting theCMAKE_SKIP_INSTALL_RULES
variable toON
, but that makes CMake generate a nasty warning message:This is a known issue with CMake (issue #22561) which does not appear like it will be fixed anytime soon. The current fix for
FetchContent
users is to guard a library's install steps with a check forCMAKE_SKIP_INSTALL_RULES
:This pull request adds that check which allows the library to be integrated using
FetchContent
without having additional warning messages appear.