FindBoost: test version variables

This commit is contained in:
Ben Boeckel 2018-11-19 16:21:55 -05:00
parent 1dc85a6652
commit 186f69cf26
2 changed files with 19 additions and 1 deletions

View File

@ -13,6 +13,9 @@ if(NOT Boost_PROGRAM_OPTIONS_FOUND)
message(FATAL_ERROR "Optional Boost component \"program_options\" not found which is unexpected")
endif(NOT Boost_PROGRAM_OPTIONS_FOUND)
add_definitions(-DCMAKE_EXPECTED_BOOST_VERSION="${Boost_VERSION}")
add_definitions(-DCMAKE_EXPECTED_BOOST_VERSION_COMPONENTS="${Boost_MAJOR_VERSION}.${Boost_MINOR_VERSION}.${Boost_SUBMINOR_VERSION}")
add_executable(test_boost_tgt main.cxx)
target_link_libraries(test_boost_tgt
Boost::dynamic_linking

View File

@ -20,5 +20,20 @@ int main()
boost::thread foo(threadmain);
foo.join();
return 0;
int version = BOOST_VERSION;
int major = version / 100000;
int minor = version / 100 % 1000;
int patch = version % 100;
char version_string[100];
snprintf(version_string, sizeof(version_string), "%d.%d.%d", major, minor,
patch);
printf("Found Boost version %s, expected version %s\n", version_string,
CMAKE_EXPECTED_BOOST_VERSION_COMPONENTS);
int ret = strcmp(version_string, CMAKE_EXPECTED_BOOST_VERSION_COMPONENTS);
char raw_version_string[100];
snprintf(raw_version_string, sizeof(raw_version_string), "%d",
BOOST_VERSION);
printf("Found Boost version %s, expected version %s\n", raw_version_string,
CMAKE_EXPECTED_BOOST_VERSION);
return ret | strcmp(raw_version_string, CMAKE_EXPECTED_BOOST_VERSION);
}