From 0b54f72e940503adfbd978d7f1dedc3da4799f52 Mon Sep 17 00:00:00 2001 From: Rolf Eike Beer Date: Mon, 15 Apr 2019 22:19:03 +0200 Subject: FindBoost: Fix detection with version suffixes on Gentoo The Gentoo case added by commit 1673923c30 (FindBoost: Add support for Boost 1.67 with Python version suffixes, 2018-03-18, v3.11.0~3^2) left out the `.` version component separator and instead duplicated the RPM case. Add the missing `.` now. Fixes: #18743 --- Modules/FindBoost.cmake | 2 +- Tests/FindBoost/CMakeLists.txt | 13 +++++++++++++ Tests/FindBoost/TestPython/CMakeLists.txt | 17 +++++++++++++++++ 3 files changed, 31 insertions(+), 1 deletion(-) create mode 100644 Tests/FindBoost/TestPython/CMakeLists.txt diff --git a/Modules/FindBoost.cmake b/Modules/FindBoost.cmake index 7882c4b..ed32cbb 100644 --- a/Modules/FindBoost.cmake +++ b/Modules/FindBoost.cmake @@ -1756,7 +1756,7 @@ foreach(COMPONENT ${Boost_FIND_COMPONENTS}) list(APPEND _Boost_FIND_LIBRARY_HINTS_FOR_COMPONENT_NAME "${COMPONENT_UNVERSIONED}${COMPONENT_PYTHON_VERSION_MAJOR}-py${COMPONENT_PYTHON_VERSION_MAJOR}${COMPONENT_PYTHON_VERSION_MINOR}") list(APPEND _Boost_FIND_LIBRARY_HINTS_FOR_COMPONENT_NAME "${COMPONENT_UNVERSIONED}-py${COMPONENT_PYTHON_VERSION_MAJOR}${COMPONENT_PYTHON_VERSION_MINOR}") # Gentoo - list(APPEND _Boost_FIND_LIBRARY_HINTS_FOR_COMPONENT_NAME "${COMPONENT_UNVERSIONED}-${COMPONENT_PYTHON_VERSION_MAJOR}${COMPONENT_PYTHON_VERSION_MINOR}") + list(APPEND _Boost_FIND_LIBRARY_HINTS_FOR_COMPONENT_NAME "${COMPONENT_UNVERSIONED}-${COMPONENT_PYTHON_VERSION_MAJOR}.${COMPONENT_PYTHON_VERSION_MINOR}") # RPMs list(APPEND _Boost_FIND_LIBRARY_HINTS_FOR_COMPONENT_NAME "${COMPONENT_UNVERSIONED}-${COMPONENT_PYTHON_VERSION_MAJOR}${COMPONENT_PYTHON_VERSION_MINOR}") endif() diff --git a/Tests/FindBoost/CMakeLists.txt b/Tests/FindBoost/CMakeLists.txt index 17a8ec7..58d795b 100644 --- a/Tests/FindBoost/CMakeLists.txt +++ b/Tests/FindBoost/CMakeLists.txt @@ -33,3 +33,16 @@ add_test(NAME FindBoost.TestHeaders COMMAND --build-options ${build_options} --test-command ${CMAKE_CTEST_COMMAND} -V -C $ ) + +if (CMake_TEST_FindBoost_Python) + add_test(NAME FindBoost.TestPython COMMAND + ${CMAKE_CTEST_COMMAND} -C $ + --build-and-test + "${CMake_SOURCE_DIR}/Tests/FindBoost/TestPython" + "${CMake_BINARY_DIR}/Tests/FindBoost/TestPython" + ${build_generator_args} + --build-project TestFindBoostPython + --build-options ${build_options} + --test-command ${CMAKE_CTEST_COMMAND} -V -C $ + ) +endif () diff --git a/Tests/FindBoost/TestPython/CMakeLists.txt b/Tests/FindBoost/TestPython/CMakeLists.txt new file mode 100644 index 0000000..4d137ca --- /dev/null +++ b/Tests/FindBoost/TestPython/CMakeLists.txt @@ -0,0 +1,17 @@ +cmake_minimum_required(VERSION 3.14) +project(TestFindBoostPython CXX) +include(CTest) + +find_package(Boost OPTIONAL_COMPONENTS python27 python34 python35 python36 python37) + +set(FAILTEST TRUE) +foreach (v IN ITEMS 27 34 35 36 37) + if (Boost_PYTHON${v}_FOUND) + set(FAILTEST FALSE) + break() + endif () +endforeach () + +if (FAILTEST) + message(FATAL_ERROR "No Boost Python module found") +endif () -- cgit v0.12