You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This tries to build the library and in the process starts looking for 'Boost' which fails - since my project does not required 'Boost' and there is no FetchContent for 'Boost'. I also don't want to link with Boost. I have traced this to the SKIP_PERFORMANCE_COMPARISON option which is set to OFF - in other words it tries to enable the feature and starts looking for Boost and fails if not present.
I don't think a default build should rely on 'boost' being installed. I'm trying to keep my project self contained, hence the use of FetchContent. I think this SKIP_PERFORMANCE_COMPARISON option should be ON by default.
Alternatively, the option can be set to ON when the cereal project is not a top level project. This could be checked like this:
I don't have such a problem with any of the other dependencies. I think a self contained default build should be possible for a 'header only' library like cereal.
I did find my own workaround (thanks for ChatGPT) but frankly I still think this could trip up other people. Here is the workaround:
FetchContent_GetProperties(cereal)
if(NOT cereal_POPULATED)
FetchContent_Populate(cereal)
# Set the option to skip performance comparison (this tries to find 'Boost' and fails!
set(SKIP_PERFORMANCE_COMPARISON ON CACHE BOOL "" FORCE)
# Add cereal to the build
add_subdirectory(${cereal_SOURCE_DIR} ${cereal_BINARY_DIR} EXCLUDE_FROM_ALL)
endif()
The text was updated successfully, but these errors were encountered:
I am including the cereal library in my project via cmake's FetchContent like:
FetchContent_Declare(
cereal
GIT_REPOSITORY https://github.com/USCiLab/cereal.git
GIT_TAG v1.3.2
GIT_SHALLOW TRUE)
FetchContent_MakeAvailable(cereal)
This tries to build the library and in the process starts looking for 'Boost' which fails - since my project does not required 'Boost' and there is no FetchContent for 'Boost'. I also don't want to link with Boost. I have traced this to the SKIP_PERFORMANCE_COMPARISON option which is set to OFF - in other words it tries to enable the feature and starts looking for Boost and fails if not present.
I don't think a default build should rely on 'boost' being installed. I'm trying to keep my project self contained, hence the use of FetchContent. I think this SKIP_PERFORMANCE_COMPARISON option should be ON by default.
Alternatively, the option can be set to ON when the cereal project is not a top level project. This could be checked like this:
project(MyProject)
...
if(PROJECT_IS_TOP_LEVEL)
include(CTest)
endif()
I don't have such a problem with any of the other dependencies. I think a self contained default build should be possible for a 'header only' library like cereal.
I did find my own workaround (thanks for ChatGPT) but frankly I still think this could trip up other people. Here is the workaround:
FetchContent_Declare(
cereal
GIT_REPOSITORY https://github.com/USCiLab/cereal.git
GIT_TAG v1.3.2
GIT_SHALLOW TRUE)
FetchContent_GetProperties(cereal)
if(NOT cereal_POPULATED)
FetchContent_Populate(cereal)
# Set the option to skip performance comparison (this tries to find 'Boost' and fails!
set(SKIP_PERFORMANCE_COMPARISON ON CACHE BOOL "" FORCE)
# Add cereal to the build
add_subdirectory(${cereal_SOURCE_DIR} ${cereal_BINARY_DIR} EXCLUDE_FROM_ALL)
endif()
The text was updated successfully, but these errors were encountered: