dynalo icon indicating copy to clipboard operation
dynalo copied to clipboard

#7 Make test app and installation of headers optional

Open Mr-Question opened this issue 3 years ago • 1 comments

Added CMake variables DYNALO_INSTALL_API and DYNALO_BUILD_TEST to enable/disable usage of test app and installation of auxiliary files.

Mr-Question avatar Mar 18 '21 20:03 Mr-Question

https://github.com/maddouri/dynalo/blob/27859bc37cb06ac67b7b8c4508f9efe05d72bc59/CMakeLists.txt#L21

An alternative approach I have seen used elsewhere is to test if this project is being included as a sub-project and enabling/disabling install based on this. Something like:

if(NOT DEFINED PROJECT_NAME)
    set(MY_PROJECT_IS_A_SUBPROJECT OFF)
else()
    set(MY_PROJECT_IS_A_SUBPROJECT ON)
endif()

project(my-project VERSION 0.0.0 LANGUAGES CXX)

if (NOT MY_PROJECT_IS_A_SUBPROJECT)
    install(...)
endif()

I think this is more convenient as it doesn't require explicitly enabling installation when you want it, which looks like what someone would have to do with the changes you've proposed.

Another way you can avoid installing your dependencies when you use them as a subproject is to use CMake's EXCLUDE_FROM_ALL property when using add_subdirectory().

saxbophone avatar Oct 07 '21 18:10 saxbophone