FindPython: add capability to select python version for the tests

This commit is contained in:
Marc Chevrier
2023-06-13 17:46:32 +02:00
parent 883cbf4171
commit 711d1da125
23 changed files with 526 additions and 395 deletions

View File

@@ -74,9 +74,12 @@ set(CMake_TEST_FindPNG "ON" CACHE BOOL "")
set(CMake_TEST_FindPostgreSQL "ON" CACHE BOOL "")
set(CMake_TEST_FindProtobuf "ON" CACHE BOOL "")
set(CMake_TEST_FindProtobuf_gRPC "ON" CACHE BOOL "")
set(CMake_TEST_FindPython "ON" CACHE BOOL "")
set(CMake_TEST_FindPython_NumPy "ON" CACHE BOOL "")
set(CMake_TEST_FindPython_PyPy "ON" CACHE BOOL "")
set(CMake_TEST_FindPython2 "ON" CACHE BOOL "")
set(CMake_TEST_FindPython3 "ON" CACHE BOOL "")
set(CMake_TEST_FindPython2_NumPy "ON" CACHE BOOL "")
set(CMake_TEST_FindPython3_NumPy "ON" CACHE BOOL "")
set(CMake_TEST_FindPython2_PyPy "ON" CACHE BOOL "")
set(CMake_TEST_FindPython3_PyPy "ON" CACHE BOOL "")
set(CMake_TEST_FindRuby "ON" CACHE BOOL "")
set(CMake_TEST_FindSDL "ON" CACHE BOOL "")
set(CMake_TEST_FindSQLite3 "ON" CACHE BOOL "")

View File

@@ -78,10 +78,13 @@ set(CMake_TEST_FindPNG "ON" CACHE BOOL "")
set(CMake_TEST_FindPostgreSQL "ON" CACHE BOOL "")
set(CMake_TEST_FindProtobuf "ON" CACHE BOOL "")
set(CMake_TEST_FindProtobuf_gRPC "ON" CACHE BOOL "")
set(CMake_TEST_FindPython "ON" CACHE BOOL "")
set(CMake_TEST_FindPython_IronPython "ON" CACHE BOOL "")
set(CMake_TEST_FindPython_NumPy "ON" CACHE BOOL "")
set(CMake_TEST_FindPython_PyPy "ON" CACHE BOOL "")
set(CMake_TEST_FindPython2 "ON" CACHE BOOL "")
set(CMake_TEST_FindPython3 "ON" CACHE BOOL "")
set(CMake_TEST_FindPython2_IronPython "ON" CACHE BOOL "")
set(CMake_TEST_FindPython2_NumPy "ON" CACHE BOOL "")
set(CMake_TEST_FindPython2_NumPy "ON" CACHE BOOL "")
set(CMake_TEST_FindPython2_PyPy "ON" CACHE BOOL "")
set(CMake_TEST_FindPython3_PyPy "ON" CACHE BOOL "")
set(CMake_TEST_FindRuby "ON" CACHE BOOL "")
set(CMake_TEST_FindRuby_RVM "ON" CACHE BOOL "")
set(CMake_TEST_FindSDL "ON" CACHE BOOL "")

View File

@@ -74,9 +74,12 @@ set(CMake_TEST_FindPNG "ON" CACHE BOOL "")
set(CMake_TEST_FindPostgreSQL "ON" CACHE BOOL "")
set(CMake_TEST_FindProtobuf "ON" CACHE BOOL "")
set(CMake_TEST_FindProtobuf_gRPC "ON" CACHE BOOL "")
set(CMake_TEST_FindPython "ON" CACHE BOOL "")
set(CMake_TEST_FindPython_NumPy "ON" CACHE BOOL "")
set(CMake_TEST_FindPython_PyPy "ON" CACHE BOOL "")
set(CMake_TEST_FindPython2 "ON" CACHE BOOL "")
set(CMake_TEST_FindPython3 "ON" CACHE BOOL "")
set(CMake_TEST_FindPython2_NumPy "ON" CACHE BOOL "")
set(CMake_TEST_FindPython3_NumPy "ON" CACHE BOOL "")
set(CMake_TEST_FindPython2_PyPy "ON" CACHE BOOL "")
set(CMake_TEST_FindPython3_PyPy "ON" CACHE BOOL "")
set(CMake_TEST_FindRuby "ON" CACHE BOOL "")
set(CMake_TEST_FindRuby_RVM "ON" CACHE BOOL "")
set(CMake_TEST_FindSDL "ON" CACHE BOOL "")

View File

@@ -96,5 +96,5 @@ ruby ruby-dev
swig
unixodbc-dev
# CMake_TEST_FindPython_IronPython
# CMake_TEST_FindPython2_IronPython
libmono-system-windows-forms4.0-cil

View File

@@ -1538,10 +1538,38 @@ if(BUILD_TESTING)
add_subdirectory(GoogleTest)
endif()
if(CMake_TEST_FindPython OR CMake_TEST_FindPython_SABIModule OR CMake_TEST_FindPython_NumPy
OR CMake_TEST_FindPython_Conda OR CMake_TEST_FindPython_IronPython OR CMake_TEST_FindPython_PyPy)
if (CMake_TEST_FindPython AND CMAKE_SYSTEM_NAME MATCHES "Linux|Darwin")
set(CMake_TEST_FindPython_SABIModule TRUE)
if(CMake_TEST_FindPython)
set(CMake_TEST_FindPython2 TRUE)
set(CMake_TEST_FindPython3 TRUE)
endif()
if(CMake_TEST_FindPython_SABIMOdule)
set(CMake_TEST_FindPython2_SABIModule TRUE)
set(CMake_TEST_FindPython3_SABIModule TRUE)
endif()
if(CMake_TEST_FindPython_NumPy)
set(CMake_TEST_FindPython2_NumPyy TRUE)
set(CMake_TEST_FindPython3_NumPy TRUE)
endif()
if(CMake_TEST_FindPython_Conda)
set(CMake_TEST_FindPython3_Conda TRUE)
endif()
if(CMake_TEST_FindPython_IronPython)
set(CMake_TEST_FindPython2_IronPython TRUE)
endif()
if(CMake_TEST_FindPython_PyPy)
set(CMake_TEST_FindPython2_PyPy TRUE)
set(CMake_TEST_FindPython3_PyPy TRUE)
endif()
if(CMake_TEST_FindPython2 OR CMake_TEST_FindPython2
OR CMake_TEST_FindPython2_SABIModule OR CMake_TEST_FindPython3_SABIModule
OR CMake_TEST_FindPython2_NumPy OR CMake_TEST_FindPython3_NumPy
OR CMake_TEST_FindPython3_Conda OR CMake_TEST_FindPython2_IronPython
OR CMake_TEST_FindPython2_PyPy OR CMake_TEST_FindPython3_PyPy)
if (CMake_TEST_FindPython2 AND CMAKE_SYSTEM_NAME MATCHES "Linux|Darwin")
set(CMake_TEST_FindPython2_SABIModule TRUE)
endif()
if (CMake_TEST_FindPython3 AND CMAKE_SYSTEM_NAME MATCHES "Linux|Darwin")
set(CMake_TEST_FindPython3_SABIModule TRUE)
endif()
add_subdirectory(FindPython)
endif()

View File

@@ -3,7 +3,7 @@ cmake_minimum_required(VERSION 3.5)
project(TestArtifactsInteractive LANGUAGES C)
set (components Interpreter Development)
if (CMake_TEST_FindPython_NumPy)
if (CMake_TEST_FindPython3_NumPy)
list (APPEND components NumPy)
endif()
@@ -12,13 +12,13 @@ find_package(Python3 REQUIRED COMPONENTS ${components})
if (Python3_ARTIFACTS_INTERACTIVE)
if (NOT DEFINED CACHE{Python3_EXECUTABLE}
OR NOT DEFINED CACHE{Python3_LIBRARY} OR NOT DEFINED CACHE{Python3_INCLUDE_DIR}
OR (CMake_TEST_FindPython_NumPy AND NOT DEFINED CACHE{Python3_NumPy_INCLUDE_DIR}))
OR (CMake_TEST_FindPython3_NumPy AND NOT DEFINED CACHE{Python3_NumPy_INCLUDE_DIR}))
message (FATAL_ERROR "Python3_ARTIFACTS_INTERACTIVE=ON Failed.")
endif()
else()
if (DEFINED CACHE{Python3_EXECUTABLE}
OR DEFINED CACHE{Python3_LIBRARY} OR DEFINED CACHE{Python3_INCLUDE_DIR}
OR (CMake_TEST_FindPython_NumPy AND DEFINED CACHE{Python3_NumPy_INCLUDE_DIR}))
OR (CMake_TEST_FindPython3_NumPy AND DEFINED CACHE{Python3_NumPy_INCLUDE_DIR}))
message (FATAL_ERROR "Python3_ARTIFACTS_INTERACTIVE=OFF Failed.")
endif()
endif()

View File

@@ -1,4 +1,4 @@
if(CMake_TEST_FindPython)
if(CMake_TEST_FindPython2)
add_test(NAME FindPython.Python2.LOCATION COMMAND
${CMAKE_CTEST_COMMAND} -C $<CONFIGURATION>
--build-and-test
@@ -44,6 +44,129 @@ if(CMake_TEST_FindPython)
set_tests_properties(FindPython.Python2Fail PROPERTIES
PASS_REGULAR_EXPRESSION "Could NOT find Python2 \\(missing: foobar\\)")
add_test(NAME FindPython.Python.V2.LOCATION COMMAND
${CMAKE_CTEST_COMMAND} -C $<CONFIGURATION>
--build-and-test
"${CMake_SOURCE_DIR}/Tests/FindPython/Python"
"${CMake_BINARY_DIR}/Tests/FindPython/Python.V2.LOCATION"
${build_generator_args}
--build-project TestPython
--build-options ${build_options} -DPython_REQUESTED_VERSION=2 -DPython_FIND_STRATEGY=LOCATION
--test-command ${CMAKE_CTEST_COMMAND} -V -C $<CONFIGURATION>
)
add_test(NAME FindPython.Python.V2.VERSION COMMAND
${CMAKE_CTEST_COMMAND} -C $<CONFIGURATION>
--build-and-test
"${CMake_SOURCE_DIR}/Tests/FindPython/Python"
"${CMake_BINARY_DIR}/Tests/FindPython/Python.V2.VERSION"
${build_generator_args}
--build-project TestPython
--build-options ${build_options} -DPython_REQUESTED_VERSION=2 -DPython_FIND_STRATEGY=VERSION
--test-command ${CMAKE_CTEST_COMMAND} -V -C $<CONFIGURATION>
)
add_test(NAME FindPython.Python2.ExactVersion.LOCATION COMMAND
${CMAKE_CTEST_COMMAND} -C $<CONFIGURATION>
--build-and-test
"${CMake_SOURCE_DIR}/Tests/FindPython/ExactVersion"
"${CMake_BINARY_DIR}/Tests/FindPython/Python2.ExactVersion.LOCATION"
${build_generator_args}
--build-project TestExactVersion
--build-options ${build_options} -DPython_MAJOR_VERSION=2
-DPython_REQUESTED_VERSION=2.1.2
-DPython2_FIND_STRATEGY=LOCATION
--test-command ${CMAKE_CTEST_COMMAND} -V -C $<CONFIGURATION>
)
add_test(NAME FindPython.Python2.ExactVersion.VERSION COMMAND
${CMAKE_CTEST_COMMAND} -C $<CONFIGURATION>
--build-and-test
"${CMake_SOURCE_DIR}/Tests/FindPython/ExactVersion"
"${CMake_BINARY_DIR}/Tests/FindPython/Python2.ExactVersion.VERSION"
${build_generator_args}
--build-project TestExactVersion
--build-options ${build_options} -DPython_MAJOR_VERSION=2
-DPython_REQUESTED_VERSION=2.1.2
-DPython2_FIND_STRATEGY=VERSION
--test-command ${CMAKE_CTEST_COMMAND} -V -C $<CONFIGURATION>
)
add_test(NAME FindPython.Python.V2.ExactVersion.LOCATION COMMAND
${CMAKE_CTEST_COMMAND} -C $<CONFIGURATION>
--build-and-test
"${CMake_SOURCE_DIR}/Tests/FindPython/ExactVersion"
"${CMake_BINARY_DIR}/Tests/FindPython/Python.V2.ExactVersion.LOCATION"
${build_generator_args}
--build-project TestExactVersion
--build-options ${build_options} -DPython_REQUESTED_VERSION=2.1.2
-DPython_FIND_STRATEGY=LOCATION
--test-command ${CMAKE_CTEST_COMMAND} -V -C $<CONFIGURATION>
)
add_test(NAME FindPython.Python.V2.ExactVersion.VERSION COMMAND
${CMAKE_CTEST_COMMAND} -C $<CONFIGURATION>
--build-and-test
"${CMake_SOURCE_DIR}/Tests/FindPython/ExactVersion"
"${CMake_BINARY_DIR}/Tests/FindPython/Python.V2.ExactVersion.VERSION"
${build_generator_args}
--build-project TestExactVersion
--build-options ${build_options} -DPython_REQUESTED_VERSION=2.1.2
-DPython_FIND_STRATEGY=VERSION
--test-command ${CMAKE_CTEST_COMMAND} -V -C $<CONFIGURATION>
)
add_test(NAME FindPython.Python2.VersionRange.LOCATION COMMAND
${CMAKE_CTEST_COMMAND} -C $<CONFIGURATION>
--build-and-test
"${CMake_SOURCE_DIR}/Tests/FindPython/VersionRange"
"${CMake_BINARY_DIR}/Tests/FindPython/Python2.VersionRange.LOCATION"
${build_generator_args}
--build-project TestVersionRange
--build-options ${build_options} -DPython=Python2 -DPython_REQUESTED_VERSION=2
-DPython2_FIND_STRATEGY=LOCATION
)
add_test(NAME FindPython.Python2.VersionRange.VERSION COMMAND
${CMAKE_CTEST_COMMAND} -C $<CONFIGURATION>
--build-and-test
"${CMake_SOURCE_DIR}/Tests/FindPython/VersionRange"
"${CMake_BINARY_DIR}/Tests/FindPython/Python2.VersionRange.VERSION"
${build_generator_args}
--build-project TestVersionRange
--build-options ${build_options} -DPython=Python2 -DPython_REQUESTED_VERSION=2
-DPython2_FIND_STRATEGY=VERSION
)
add_test(NAME FindPython.Python.V2.VersionRange.LOCATION COMMAND
${CMAKE_CTEST_COMMAND} -C $<CONFIGURATION>
--build-and-test
"${CMake_SOURCE_DIR}/Tests/FindPython/VersionRange"
"${CMake_BINARY_DIR}/Tests/FindPython/Python.V2.VersionRange.LOCATION"
${build_generator_args}
--build-project TestVersionRange
--build-options ${build_options} -DPython=Python -DPython_REQUESTED_VERSION=2
-DPython_FIND_STRATEGY=LOCATION
)
add_test(NAME FindPython.Python.V2.VersionRange.VERSION COMMAND
${CMAKE_CTEST_COMMAND} -C $<CONFIGURATION>
--build-and-test
"${CMake_SOURCE_DIR}/Tests/FindPython/VersionRange"
"${CMake_BINARY_DIR}/Tests/FindPython/Python.V2.VersionRange.VERSION"
${build_generator_args}
--build-project TestVersionRange
--build-options ${build_options} -DPython=Python -DPython_REQUESTED_VERSION=2
-DPython_FIND_STRATEGY=VERSION
)
add_test(NAME FindPython.Python2Embedded COMMAND
${CMAKE_CTEST_COMMAND} -C $<CONFIGURATION>
--build-and-test
"${CMake_SOURCE_DIR}/Tests/FindPython/Python2Embedded"
"${CMake_BINARY_DIR}/Tests/FindPython/Python2Embedded"
${build_generator_args}
--build-project TestPython2Embedded
--build-options ${build_options}
--test-command ${CMAKE_CTEST_COMMAND} -V -C $<CONFIGURATION>
)
endif()
if(CMake_TEST_FindPython3)
add_test(NAME FindPython.Python3.LOCATION COMMAND
${CMAKE_CTEST_COMMAND} -C $<CONFIGURATION>
--build-and-test
@@ -89,46 +212,6 @@ if(CMake_TEST_FindPython)
set_tests_properties(FindPython.Python3Fail PROPERTIES
PASS_REGULAR_EXPRESSION "Could NOT find Python3 \\(missing: foobar\\)")
add_test(NAME FindPython.Python.LOCATION COMMAND
${CMAKE_CTEST_COMMAND} -C $<CONFIGURATION>
--build-and-test
"${CMake_SOURCE_DIR}/Tests/FindPython/Python"
"${CMake_BINARY_DIR}/Tests/FindPython/Python.LOCATION"
${build_generator_args}
--build-project TestPython
--build-options ${build_options} -DPython_FIND_STRATEGY=LOCATION
--test-command ${CMAKE_CTEST_COMMAND} -V -C $<CONFIGURATION>
)
add_test(NAME FindPython.Python.VERSION COMMAND
${CMAKE_CTEST_COMMAND} -C $<CONFIGURATION>
--build-and-test
"${CMake_SOURCE_DIR}/Tests/FindPython/Python"
"${CMake_BINARY_DIR}/Tests/FindPython/Python.VERSION"
${build_generator_args}
--build-project TestPython
--build-options ${build_options} -DPython_FIND_STRATEGY=VERSION
--test-command ${CMAKE_CTEST_COMMAND} -V -C $<CONFIGURATION>
)
add_test(NAME FindPython.Python.V2.LOCATION COMMAND
${CMAKE_CTEST_COMMAND} -C $<CONFIGURATION>
--build-and-test
"${CMake_SOURCE_DIR}/Tests/FindPython/Python"
"${CMake_BINARY_DIR}/Tests/FindPython/Python.V2.LOCATION"
${build_generator_args}
--build-project TestPython
--build-options ${build_options} -DPython_REQUESTED_VERSION=2 -DPython_FIND_STRATEGY=LOCATION
--test-command ${CMAKE_CTEST_COMMAND} -V -C $<CONFIGURATION>
)
add_test(NAME FindPython.Python.V2.VERSION COMMAND
${CMAKE_CTEST_COMMAND} -C $<CONFIGURATION>
--build-and-test
"${CMake_SOURCE_DIR}/Tests/FindPython/Python"
"${CMake_BINARY_DIR}/Tests/FindPython/Python.V2.VERSION"
${build_generator_args}
--build-project TestPython
--build-options ${build_options} -DPython_REQUESTED_VERSION=2 -DPython_FIND_STRATEGY=VERSION
--test-command ${CMAKE_CTEST_COMMAND} -V -C $<CONFIGURATION>
)
add_test(NAME FindPython.Python.V3.LOCATION COMMAND
${CMAKE_CTEST_COMMAND} -C $<CONFIGURATION>
--build-and-test
@@ -150,30 +233,6 @@ if(CMake_TEST_FindPython)
--test-command ${CMAKE_CTEST_COMMAND} -V -C $<CONFIGURATION>
)
add_test(NAME FindPython.Python2.ExactVersion.LOCATION COMMAND
${CMAKE_CTEST_COMMAND} -C $<CONFIGURATION>
--build-and-test
"${CMake_SOURCE_DIR}/Tests/FindPython/ExactVersion"
"${CMake_BINARY_DIR}/Tests/FindPython/Python2.ExactVersion.LOCATION"
${build_generator_args}
--build-project TestExactVersion
--build-options ${build_options} -DPython_MAJOR_VERSION=2
-DPython_REQUESTED_VERSION=2.1.2
-DPython2_FIND_STRATEGY=LOCATION
--test-command ${CMAKE_CTEST_COMMAND} -V -C $<CONFIGURATION>
)
add_test(NAME FindPython.Python2.ExactVersion.VERSION COMMAND
${CMAKE_CTEST_COMMAND} -C $<CONFIGURATION>
--build-and-test
"${CMake_SOURCE_DIR}/Tests/FindPython/ExactVersion"
"${CMake_BINARY_DIR}/Tests/FindPython/Python2.ExactVersion.VERSION"
${build_generator_args}
--build-project TestExactVersion
--build-options ${build_options} -DPython_MAJOR_VERSION=2
-DPython_REQUESTED_VERSION=2.1.2
-DPython2_FIND_STRATEGY=VERSION
--test-command ${CMAKE_CTEST_COMMAND} -V -C $<CONFIGURATION>
)
add_test(NAME FindPython.Python3.ExactVersion.LOCATION COMMAND
${CMAKE_CTEST_COMMAND} -C $<CONFIGURATION>
--build-and-test
@@ -198,28 +257,6 @@ if(CMake_TEST_FindPython)
-DPython3_FIND_STRATEGY=VERSION
--test-command ${CMAKE_CTEST_COMMAND} -V -C $<CONFIGURATION>
)
add_test(NAME FindPython.Python.V2.ExactVersion.LOCATION COMMAND
${CMAKE_CTEST_COMMAND} -C $<CONFIGURATION>
--build-and-test
"${CMake_SOURCE_DIR}/Tests/FindPython/ExactVersion"
"${CMake_BINARY_DIR}/Tests/FindPython/Python.V2.ExactVersion.LOCATION"
${build_generator_args}
--build-project TestExactVersion
--build-options ${build_options} -DPython_REQUESTED_VERSION=2.1.2
-DPython_FIND_STRATEGY=LOCATION
--test-command ${CMAKE_CTEST_COMMAND} -V -C $<CONFIGURATION>
)
add_test(NAME FindPython.Python.V2.ExactVersion.VERSION COMMAND
${CMAKE_CTEST_COMMAND} -C $<CONFIGURATION>
--build-and-test
"${CMake_SOURCE_DIR}/Tests/FindPython/ExactVersion"
"${CMake_BINARY_DIR}/Tests/FindPython/Python.V2.ExactVersion.VERSION"
${build_generator_args}
--build-project TestExactVersion
--build-options ${build_options} -DPython_REQUESTED_VERSION=2.1.2
-DPython_FIND_STRATEGY=VERSION
--test-command ${CMAKE_CTEST_COMMAND} -V -C $<CONFIGURATION>
)
add_test(NAME FindPython.Python.V3.ExactVersion.LOCATION COMMAND
${CMAKE_CTEST_COMMAND} -C $<CONFIGURATION>
--build-and-test
@@ -263,46 +300,6 @@ if(CMake_TEST_FindPython)
--build-options ${build_options} -DPython=Python3 -DPython_REQUESTED_VERSION=3
-DPython3_FIND_STRATEGY=VERSION
)
add_test(NAME FindPython.Python2.VersionRange.LOCATION COMMAND
${CMAKE_CTEST_COMMAND} -C $<CONFIGURATION>
--build-and-test
"${CMake_SOURCE_DIR}/Tests/FindPython/VersionRange"
"${CMake_BINARY_DIR}/Tests/FindPython/Python2.VersionRange.LOCATION"
${build_generator_args}
--build-project TestVersionRange
--build-options ${build_options} -DPython=Python2 -DPython_REQUESTED_VERSION=2
-DPython2_FIND_STRATEGY=LOCATION
)
add_test(NAME FindPython.Python2.VersionRange.VERSION COMMAND
${CMAKE_CTEST_COMMAND} -C $<CONFIGURATION>
--build-and-test
"${CMake_SOURCE_DIR}/Tests/FindPython/VersionRange"
"${CMake_BINARY_DIR}/Tests/FindPython/Python2.VersionRange.VERSION"
${build_generator_args}
--build-project TestVersionRange
--build-options ${build_options} -DPython=Python2 -DPython_REQUESTED_VERSION=2
-DPython2_FIND_STRATEGY=VERSION
)
add_test(NAME FindPython.Python.V2.VersionRange.LOCATION COMMAND
${CMAKE_CTEST_COMMAND} -C $<CONFIGURATION>
--build-and-test
"${CMake_SOURCE_DIR}/Tests/FindPython/VersionRange"
"${CMake_BINARY_DIR}/Tests/FindPython/Python.V2.VersionRange.LOCATION"
${build_generator_args}
--build-project TestVersionRange
--build-options ${build_options} -DPython=Python -DPython_REQUESTED_VERSION=2
-DPython_FIND_STRATEGY=LOCATION
)
add_test(NAME FindPython.Python.V2.VersionRange.VERSION COMMAND
${CMAKE_CTEST_COMMAND} -C $<CONFIGURATION>
--build-and-test
"${CMake_SOURCE_DIR}/Tests/FindPython/VersionRange"
"${CMake_BINARY_DIR}/Tests/FindPython/Python.V2.VersionRange.VERSION"
${build_generator_args}
--build-project TestVersionRange
--build-options ${build_options} -DPython=Python -DPython_REQUESTED_VERSION=2
-DPython_FIND_STRATEGY=VERSION
)
add_test(NAME FindPython.Python.V3.VersionRange.LOCATION COMMAND
${CMAKE_CTEST_COMMAND} -C $<CONFIGURATION>
--build-and-test
@@ -324,17 +321,6 @@ if(CMake_TEST_FindPython)
-DPython_FIND_STRATEGY=VERSION
)
add_test(NAME FindPython.MultiplePackages COMMAND
${CMAKE_CTEST_COMMAND} -C $<CONFIGURATION>
--build-and-test
"${CMake_SOURCE_DIR}/Tests/FindPython/MultiplePackages"
"${CMake_BINARY_DIR}/Tests/FindPython/MultiplePackages"
${build_generator_args}
--build-project TestMultiplePackages
--build-options ${build_options}
--test-command ${CMAKE_CTEST_COMMAND} -V -C $<CONFIGURATION>
)
add_test(NAME FindPython.VirtualEnv COMMAND
${CMAKE_CTEST_COMMAND} -C $<CONFIGURATION>
--build-and-test
@@ -346,16 +332,6 @@ if(CMake_TEST_FindPython)
--test-command ${CMAKE_CTEST_COMMAND} -V -C $<CONFIGURATION>
)
add_test(NAME FindPython.Python2Embedded COMMAND
${CMAKE_CTEST_COMMAND} -C $<CONFIGURATION>
--build-and-test
"${CMake_SOURCE_DIR}/Tests/FindPython/Python2Embedded"
"${CMake_BINARY_DIR}/Tests/FindPython/Python2Embedded"
${build_generator_args}
--build-project TestPython2Embedded
--build-options ${build_options}
--test-command ${CMAKE_CTEST_COMMAND} -V -C $<CONFIGURATION>
)
add_test(NAME FindPython.Python3Embedded COMMAND
${CMAKE_CTEST_COMMAND} -C $<CONFIGURATION>
--build-and-test
@@ -377,7 +353,7 @@ if(CMake_TEST_FindPython)
--build-options ${build_options} "-Dbuild_generator_args=${build_generator_args}"
"-DCMake_SOURCE_DIR=${CMake_SOURCE_DIR}"
"-DCMake_BINARY_DIR=${CMake_BINARY_DIR}"
"-DCMake_TEST_FindPython_SABIModule=${CMake_TEST_FindPython_SABIModule}"
"-DCMake_TEST_FindPython3_SABIModule=${CMake_TEST_FindPython3_SABIModule}"
--test-command ${CMAKE_CTEST_COMMAND} -V -C $<CONFIGURATION>
)
@@ -391,7 +367,7 @@ if(CMake_TEST_FindPython)
--build-options ${build_options} "-Dbuild_generator_args=${build_generator_args}"
"-DCMake_SOURCE_DIR=${CMake_SOURCE_DIR}"
"-DCMake_BINARY_DIR=${CMake_BINARY_DIR}"
"-DCMake_TEST_FindPython_NumPy=${CMake_TEST_FindPython_NumPy}"
"-DCMake_TEST_FindPython3_NumPy=${CMake_TEST_FindPython3_NumPy}"
"-DPython3_ARTIFACTS_INTERACTIVE=ON"
--test-command ${CMAKE_CTEST_COMMAND} -V -C $<CONFIGURATION>
)
@@ -405,7 +381,7 @@ if(CMake_TEST_FindPython)
--build-options ${build_options} "-Dbuild_generator_args=${build_generator_args}"
"-DCMake_SOURCE_DIR=${CMake_SOURCE_DIR}"
"-DCMake_BINARY_DIR=${CMake_BINARY_DIR}"
"-DCMake_TEST_FindPython_NumPy=${CMake_TEST_FindPython_NumPy}"
"-DCMake_TEST_FindPython3_NumPy=${CMake_TEST_FindPython3_NumPy}"
"-DPython3_ARTIFACTS_INTERACTIVE=OFF"
--test-command ${CMAKE_CTEST_COMMAND} -V -C $<CONFIGURATION>
)
@@ -420,7 +396,7 @@ if(CMake_TEST_FindPython)
--build-options ${build_options} "-Dbuild_generator_args=${build_generator_args}"
"-DCMake_SOURCE_DIR=${CMake_SOURCE_DIR}"
"-DCMake_BINARY_DIR=${CMake_BINARY_DIR}"
"-DCMake_TEST_FindPython_NumPy=${CMake_TEST_FindPython_NumPy}"
"-DCMake_TEST_FindPython3_NumPy=${CMake_TEST_FindPython3_NumPy}"
--test-command ${CMAKE_CTEST_COMMAND} -V -C $<CONFIGURATION>
)
@@ -437,6 +413,41 @@ if(CMake_TEST_FindPython)
--test-command ${CMAKE_CTEST_COMMAND} -V -C $<CONFIGURATION>
)
if (CMAKE_SYSTEM_NAME STREQUAL "Linux")
add_test(NAME FindPython.UnversionedNames COMMAND
${CMAKE_CTEST_COMMAND} -C $<CONFIGURATION>
--build-and-test
"${CMake_SOURCE_DIR}/Tests/FindPython/UnversionedNames"
"${CMake_BINARY_DIR}/Tests/FindPython/UnversionedNames"
${build_generator_args}
--build-project UnversionedNames
--build-options ${build_options}
)
endif()
endif()
if(CMake_TEST_FindPython2 OR CMake_TEST_FindPython3)
add_test(NAME FindPython.Python.LOCATION COMMAND
${CMAKE_CTEST_COMMAND} -C $<CONFIGURATION>
--build-and-test
"${CMake_SOURCE_DIR}/Tests/FindPython/Python"
"${CMake_BINARY_DIR}/Tests/FindPython/Python.LOCATION"
${build_generator_args}
--build-project TestPython
--build-options ${build_options} -DPython_FIND_STRATEGY=LOCATION
--test-command ${CMAKE_CTEST_COMMAND} -V -C $<CONFIGURATION>
)
add_test(NAME FindPython.Python.VERSION COMMAND
${CMAKE_CTEST_COMMAND} -C $<CONFIGURATION>
--build-and-test
"${CMake_SOURCE_DIR}/Tests/FindPython/Python"
"${CMake_BINARY_DIR}/Tests/FindPython/Python.VERSION"
${build_generator_args}
--build-project TestPython
--build-options ${build_options} -DPython_FIND_STRATEGY=VERSION
--test-command ${CMAKE_CTEST_COMMAND} -V -C $<CONFIGURATION>
)
if (CMAKE_SYSTEM_NAME MATCHES "Linux|Darwin")
add_test(NAME FindPython.Interpreter.SOABI COMMAND
${CMAKE_CTEST_COMMAND} -C $<CONFIGURATION>
@@ -466,20 +477,20 @@ if(CMake_TEST_FindPython)
)
endif()
if (CMAKE_SYSTEM_NAME STREQUAL "Linux")
add_test(NAME FindPython.UnversionedNames COMMAND
${CMAKE_CTEST_COMMAND} -C $<CONFIGURATION>
--build-and-test
"${CMake_SOURCE_DIR}/Tests/FindPython/UnversionedNames"
"${CMake_BINARY_DIR}/Tests/FindPython/UnversionedNames"
${build_generator_args}
--build-project UnversionedNames
--build-options ${build_options}
add_test(NAME FindPython.MultiplePackages COMMAND
${CMAKE_CTEST_COMMAND} -C $<CONFIGURATION>
--build-and-test
"${CMake_SOURCE_DIR}/Tests/FindPython/MultiplePackages"
"${CMake_BINARY_DIR}/Tests/FindPython/MultiplePackages"
${build_generator_args}
--build-project TestMultiplePackages
--build-options ${build_options}
--test-command ${CMAKE_CTEST_COMMAND} -V -C $<CONFIGURATION>
)
endif()
endif()
if(CMake_TEST_FindPython_SABIModule)
if(CMake_TEST_FindPython2_SABIModule)
add_test(NAME FindPython.Python2.Development.SABIModule COMMAND
${CMAKE_CTEST_COMMAND} -C $<CONFIGURATION>
--build-and-test
@@ -492,7 +503,9 @@ if(CMake_TEST_FindPython_SABIModule)
)
set_tests_properties(FindPython.Python2.Development.SABIModule PROPERTIES
PASS_REGULAR_EXPRESSION "Could NOT find Python2 \\(missing: .*Development\\.SABIModule")
endif()
if(CMake_TEST_FindPython3_SABIModule)
# Use exclusively Release configuration because Debug is, on Windows with MSVC,
# unusable with SABI: Python force link with debug version of full versioned library rather than
# the stable ABI one.
@@ -508,7 +521,7 @@ if(CMake_TEST_FindPython_SABIModule)
)
endif()
if(CMake_TEST_FindPython_NumPy)
if(CMake_TEST_FindPython2_NumPy OR CMake_TEST_FindPython3_NumPy)
add_test(NAME FindPython.NumPy COMMAND
${CMAKE_CTEST_COMMAND} -C $<CONFIGURATION>
--build-and-test
@@ -530,7 +543,7 @@ if(CMake_TEST_FindPython_NumPy)
)
endif()
if(CMake_TEST_FindPython_Conda)
if(CMake_TEST_FindPython3_Conda)
add_test(NAME FindPython.VirtualEnvConda COMMAND
${CMAKE_CTEST_COMMAND} -C $<CONFIGURATION>
--build-and-test
@@ -543,7 +556,7 @@ if(CMake_TEST_FindPython_Conda)
)
endif()
if (CMake_TEST_FindPython AND CMake_TEST_FindPython_IronPython)
if (CMake_TEST_FindPython2 AND CMake_TEST_FindPython2_IronPython)
add_test(NAME FindPython.Implementation.CPython COMMAND
${CMAKE_CTEST_COMMAND} -C $<CONFIGURATION>
--build-and-test
@@ -566,7 +579,7 @@ if (CMake_TEST_FindPython AND CMake_TEST_FindPython_IronPython)
)
endif()
if(CMake_TEST_FindPython_IronPython)
if(CMake_TEST_FindPython2_IronPython)
add_test(NAME FindPython.IronPython2.LOCATION COMMAND
${CMAKE_CTEST_COMMAND} -C $<CONFIGURATION>
--build-and-test
@@ -653,7 +666,7 @@ if(CMake_TEST_FindPython_IronPython)
)
endif()
if(CMake_TEST_FindPython_PyPy)
if(CMake_TEST_FindPython2_PyPy)
add_test(NAME FindPython.PyPy2.LOCATION COMMAND
${CMAKE_CTEST_COMMAND} -C $<CONFIGURATION>
--build-and-test
@@ -675,6 +688,29 @@ if(CMake_TEST_FindPython_PyPy)
--test-command ${CMAKE_CTEST_COMMAND} -V -C $<CONFIGURATION>
)
add_test(NAME FindPython.PyPy.V2.LOCATION COMMAND
${CMAKE_CTEST_COMMAND} -C $<CONFIGURATION>
--build-and-test
"${CMake_SOURCE_DIR}/Tests/FindPython/PyPy"
"${CMake_BINARY_DIR}/Tests/FindPython/PyPy.V2.LOCATION"
${build_generator_args}
--build-project TestPyPy
--build-options ${build_options} -DPython_REQUESTED_VERSION=2 -DPython_FIND_STRATEGY=LOCATION
--test-command ${CMAKE_CTEST_COMMAND} -V -C $<CONFIGURATION>
)
add_test(NAME FindPython.PyPy.V2.VERSION COMMAND
${CMAKE_CTEST_COMMAND} -C $<CONFIGURATION>
--build-and-test
"${CMake_SOURCE_DIR}/Tests/FindPython/PyPy"
"${CMake_BINARY_DIR}/Tests/FindPython/PyPy.V2.VERSION"
${build_generator_args}
--build-project TestPyPy
--build-options ${build_options} -DPython_REQUESTED_VERSION=2 -DPython_FIND_STRATEGY=VERSION
--test-command ${CMAKE_CTEST_COMMAND} -V -C $<CONFIGURATION>
)
endif()
if(CMake_TEST_FindPython3_PyPy)
add_test(NAME FindPython.PyPy3.LOCATION COMMAND
${CMAKE_CTEST_COMMAND} -C $<CONFIGURATION>
--build-and-test
@@ -696,46 +732,6 @@ if(CMake_TEST_FindPython_PyPy)
--test-command ${CMAKE_CTEST_COMMAND} -V -C $<CONFIGURATION>
)
add_test(NAME FindPython.PyPy.LOCATION COMMAND
${CMAKE_CTEST_COMMAND} -C $<CONFIGURATION>
--build-and-test
"${CMake_SOURCE_DIR}/Tests/FindPython/PyPy"
"${CMake_BINARY_DIR}/Tests/FindPython/PyPy.LOCATION"
${build_generator_args}
--build-project TestPyPy
--build-options ${build_options} -DPython_FIND_STRATEGY=LOCATION
--test-command ${CMAKE_CTEST_COMMAND} -V -C $<CONFIGURATION>
)
add_test(NAME FindPython.PyPy.VERSION COMMAND
${CMAKE_CTEST_COMMAND} -C $<CONFIGURATION>
--build-and-test
"${CMake_SOURCE_DIR}/Tests/FindPython/PyPy"
"${CMake_BINARY_DIR}/Tests/FindPython/PyPy.VERSION"
${build_generator_args}
--build-project TestPyPy
--build-options ${build_options} -DPython_FIND_STRATEGY=VERSION
--test-command ${CMAKE_CTEST_COMMAND} -V -C $<CONFIGURATION>
)
add_test(NAME FindPython.PyPy.V2.LOCATION COMMAND
${CMAKE_CTEST_COMMAND} -C $<CONFIGURATION>
--build-and-test
"${CMake_SOURCE_DIR}/Tests/FindPython/PyPy"
"${CMake_BINARY_DIR}/Tests/FindPython/PyPy.V2.LOCATION"
${build_generator_args}
--build-project TestPyPy
--build-options ${build_options} -DPython_REQUESTED_VERSION=2 -DPython_FIND_STRATEGY=LOCATION
--test-command ${CMAKE_CTEST_COMMAND} -V -C $<CONFIGURATION>
)
add_test(NAME FindPython.PyPy.V2.VERSION COMMAND
${CMAKE_CTEST_COMMAND} -C $<CONFIGURATION>
--build-and-test
"${CMake_SOURCE_DIR}/Tests/FindPython/PyPy"
"${CMake_BINARY_DIR}/Tests/FindPython/PyPy.V2.VERSION"
${build_generator_args}
--build-project TestPyPy
--build-options ${build_options} -DPython_REQUESTED_VERSION=2 -DPython_FIND_STRATEGY=VERSION
--test-command ${CMAKE_CTEST_COMMAND} -V -C $<CONFIGURATION>
)
add_test(NAME FindPython.PyPy.V3.LOCATION COMMAND
${CMAKE_CTEST_COMMAND} -C $<CONFIGURATION>
--build-and-test
@@ -757,3 +753,26 @@ if(CMake_TEST_FindPython_PyPy)
--test-command ${CMAKE_CTEST_COMMAND} -V -C $<CONFIGURATION>
)
endif()
if(CMake_TEST_FindPython2_PyPy OR CMake_TEST_FindPython3_PyPy)
add_test(NAME FindPython.PyPy.LOCATION COMMAND
${CMAKE_CTEST_COMMAND} -C $<CONFIGURATION>
--build-and-test
"${CMake_SOURCE_DIR}/Tests/FindPython/PyPy"
"${CMake_BINARY_DIR}/Tests/FindPython/PyPy.LOCATION"
${build_generator_args}
--build-project TestPyPy
--build-options ${build_options} -DPython_FIND_STRATEGY=LOCATION
--test-command ${CMAKE_CTEST_COMMAND} -V -C $<CONFIGURATION>
)
add_test(NAME FindPython.PyPy.VERSION COMMAND
${CMAKE_CTEST_COMMAND} -C $<CONFIGURATION>
--build-and-test
"${CMake_SOURCE_DIR}/Tests/FindPython/PyPy"
"${CMake_BINARY_DIR}/Tests/FindPython/PyPy.VERSION"
${build_generator_args}
--build-project TestPyPy
--build-options ${build_options} -DPython_FIND_STRATEGY=VERSION
--test-command ${CMAKE_CTEST_COMMAND} -V -C $<CONFIGURATION>
)
endif()

View File

@@ -62,7 +62,7 @@ set_tests_properties(FindPython.CustomFailureMessage.Multiple PROPERTIES
PASS_REGULAR_EXPRESSION "Reason given by package:.+Interpreter: Cannot run the interpreter.+Development: Cannot find the library")
if (CMake_TEST_FindPython_NumPy)
if (CMake_TEST_FindPython3_NumPy)
add_test(NAME FindPython.CustomFailureMessage.NumPy COMMAND
${CMAKE_CTEST_COMMAND} -C $<CONFIGURATION>
--build-and-test

View File

@@ -2,32 +2,44 @@ cmake_minimum_required(VERSION 3.5)
project(TestMultiplePackages C)
find_package (Python2 REQUIRED COMPONENTS Interpreter Development)
find_package (Python3 REQUIRED COMPONENTS Interpreter Development)
# Must find Python 3
find_package (Python REQUIRED)
if (NOT Python3_EXECUTABLE STREQUAL Python_EXECUTABLE)
message (FATAL_ERROR
"Python interpreters do not match:\n"
" Python_EXECUTABLE='${Python_EXECUTABLE}'\n"
" Python3_EXECUTABLE='${Python3_EXECUTABLE}'\n"
if (CMake_TEST_FindPython2)
find_package (Python2 REQUIRED COMPONENTS Interpreter Development)
if (NOT CMake_TEST_FindPython3 AND NOT Python2_EXECUTABLE STREQUAL Python_EXECUTABLE)
message (FATAL_ERROR
"Python interpreters do not match:\n"
" Python_EXECUTABLE='${Python_EXECUTABLE}'\n"
" Python2_EXECUTABLE='${Python3_EXECUTABLE}'\n"
)
endif()
Python2_add_library (spam2 MODULE ../spam.c)
target_compile_definitions (spam2 PRIVATE PYTHON2)
add_test (NAME python2_spam2
COMMAND "${CMAKE_COMMAND}" -E env "PYTHONPATH=$<TARGET_FILE_DIR:spam3>"
"${Python2_EXECUTABLE}" -c "import spam2; spam2.system(\"cd\")")
endif()
if (CMake_TEST_FindPython3)
find_package (Python3 REQUIRED COMPONENTS Interpreter Development)
Python2_add_library (spam2 MODULE ../spam.c)
target_compile_definitions (spam2 PRIVATE PYTHON2)
if (NOT Python3_EXECUTABLE STREQUAL Python_EXECUTABLE)
message (FATAL_ERROR
"Python interpreters do not match:\n"
" Python_EXECUTABLE='${Python_EXECUTABLE}'\n"
" Python3_EXECUTABLE='${Python3_EXECUTABLE}'\n"
)
endif()
Python3_add_library (spam3 MODULE ../spam.c)
target_compile_definitions (spam3 PRIVATE PYTHON3)
Python3_add_library (spam3 MODULE ../spam.c)
target_compile_definitions (spam3 PRIVATE PYTHON3)
add_test (NAME python3_spam3
COMMAND "${CMAKE_COMMAND}" -E env "PYTHONPATH=$<TARGET_FILE_DIR:spam3>"
"${Python3_EXECUTABLE}" -c "import spam3; spam3.system(\"cd\")")
add_test (NAME python2_spam2
COMMAND "${CMAKE_COMMAND}" -E env "PYTHONPATH=$<TARGET_FILE_DIR:spam3>"
"${Python2_EXECUTABLE}" -c "import spam2; spam2.system(\"cd\")")
add_test (NAME python3_spam3
COMMAND "${CMAKE_COMMAND}" -E env "PYTHONPATH=$<TARGET_FILE_DIR:spam3>"
"${Python3_EXECUTABLE}" -c "import spam3; spam3.system(\"cd\")")
endif()

View File

@@ -2,21 +2,30 @@ cmake_minimum_required(VERSION 3.5)
project(TestNumPy LANGUAGES C)
find_package (Python2 REQUIRED COMPONENTS Interpreter Development NumPy)
find_package (Python3 REQUIRED COMPONENTS Interpreter Development NumPy)
if(CMake_TEST_FindPython2_NumPy)
Python2_add_library (arraytest2 MODULE arraytest.c)
target_compile_definitions (arraytest2 PRIVATE PYTHON2)
target_link_libraries (arraytest2 PRIVATE Python2::NumPy)
find_package (Python2 REQUIRED COMPONENTS Interpreter Development NumPy)
Python3_add_library (arraytest3 MODULE arraytest.c)
target_compile_definitions (arraytest3 PRIVATE PYTHON3)
target_link_libraries (arraytest3 PRIVATE Python3::NumPy)
Python2_add_library (arraytest2 MODULE arraytest.c)
target_compile_definitions (arraytest2 PRIVATE PYTHON2)
target_link_libraries (arraytest2 PRIVATE Python2::NumPy)
add_test (NAME python2_arraytest
COMMAND "${CMAKE_COMMAND}" -E env "PYTHONPATH=$<TARGET_FILE_DIR:arraytest2>"
"${Python2_EXECUTABLE}" -c "import numpy; import arraytest2; arraytest2.vecsq(numpy.array([1, 2, 3]));")
add_test (NAME python2_arraytest
COMMAND "${CMAKE_COMMAND}" -E env "PYTHONPATH=$<TARGET_FILE_DIR:arraytest2>"
"${Python2_EXECUTABLE}" -c "import numpy; import arraytest2; arraytest2.vecsq(numpy.array([1, 2, 3]));")
add_test (NAME python3_arraytest
COMMAND "${CMAKE_COMMAND}" -E env "PYTHONPATH=$<TARGET_FILE_DIR:arraytest3>"
"${Python3_EXECUTABLE}" -c "import numpy; import arraytest3; arraytest3.vecsq(numpy.array([1, 2, 3]));")
endif()
if(CMake_TEST_FindPython3_NumPy)
find_package (Python3 REQUIRED COMPONENTS Interpreter Development NumPy)
Python3_add_library (arraytest3 MODULE arraytest.c)
target_compile_definitions (arraytest3 PRIVATE PYTHON3)
target_link_libraries (arraytest3 PRIVATE Python3::NumPy)
add_test (NAME python3_arraytest
COMMAND "${CMAKE_COMMAND}" -E env "PYTHONPATH=$<TARGET_FILE_DIR:arraytest3>"
"${Python3_EXECUTABLE}" -c "import numpy; import arraytest3; arraytest3.vecsq(numpy.array([1, 2, 3]));")
endif()

View File

@@ -2,13 +2,23 @@ cmake_minimum_required(VERSION 3.5)
project(TestNumPyOnly LANGUAGES C)
find_package(Python2 REQUIRED COMPONENTS NumPy)
find_package(Python3 REQUIRED COMPONENTS NumPy)
if(CMake_TEST_FindPython2_NumPy)
Python2_add_library (arraytest2 MODULE ../NumPy/arraytest.c)
target_compile_definitions (arraytest2 PRIVATE PYTHON2)
target_link_libraries (arraytest2 PRIVATE Python2::NumPy)
find_package(Python2 REQUIRED COMPONENTS NumPy)
Python2_add_library (arraytest2 MODULE ../NumPy/arraytest.c)
target_compile_definitions (arraytest2 PRIVATE PYTHON2)
target_link_libraries (arraytest2 PRIVATE Python2::NumPy)
endif()
if(CMake_TEST_FindPython3_NumPy)
find_package(Python3 REQUIRED COMPONENTS NumPy)
Python3_add_library (arraytest3 MODULE ../NumPy/arraytest.c)
target_compile_definitions (arraytest3 PRIVATE PYTHON3)
target_link_libraries (arraytest3 PRIVATE Python3::NumPy)
endif()

View File

@@ -4,13 +4,20 @@ project(TestRequiredArtifacts LANGUAGES C)
include(CTest)
find_package(Python2 REQUIRED COMPONENTS Interpreter Development)
if (NOT Python2_FOUND)
message (FATAL_ERROR "Failed to find Python 2")
if(CMake_TEST_FindPython2)
find_package(Python2 REQUIRED COMPONENTS Interpreter Development)
if (NOT Python2_FOUND)
message (FATAL_ERROR "Failed to find Python 2")
endif()
set(USER_LIBRARY "${Python2_LIBRARY_RELEASE}")
set(USER_INCLUDE_DIR "${Python2_INCLUDE_DIRS}")
else()
set(USER_LIBRARY "/path/to/invalid${CMAKE_C_LINK_LIBRARY_SUFFIX}")
set(USER_INCLUDE_DIR "/path/to/invalid/dir")
endif()
set(components Interpreter Development)
if (CMake_TEST_FindPython_SABIModule AND WIN32)
if (CMake_TEST_FindPython3_SABIModule AND WIN32)
list (APPEND components Development.SABIModule)
endif()
find_package(Python3 REQUIRED COMPONENTS ${components})
@@ -61,7 +68,7 @@ add_test(NAME FindPython.RequiredArtifacts.Library.INVALID COMMAND
${build_generator_args}
--build-project TestRequiredArtifacts.Check
--build-options -DPYTHON_IS_FOUND=FALSE -DCHECK_LIBRARY=ON
"-DPython3_LIBRARY=${Python2_LIBRARY_RELEASE}"
"-DPython3_LIBRARY=${USER_LIBRARY}"
--test-command ${CMAKE_CTEST_COMMAND} -V -C $<CONFIGURATION>
)
@@ -84,7 +91,7 @@ add_test(NAME FindPython.RequiredArtifacts.Include.INVALID COMMAND
${build_generator_args}
--build-project TestRequiredArtifacts.Check
--build-options -DPYTHON_IS_FOUND=FALSE -DCHECK_INCLUDE=ON
"-DPython3_INCLUDE_DIR=${Python2_INCLUDE_DIRS}"
"-DPython3_INCLUDE_DIR=${USER_INCLUDE_DIR}"
--test-command ${CMAKE_CTEST_COMMAND} -V -C $<CONFIGURATION>
)
@@ -97,7 +104,7 @@ add_test(NAME FindPython.RequiredArtifacts.Interpreter-Library.INVALID COMMAND
--build-project TestRequiredArtifacts.Check
--build-options -DPYTHON_IS_FOUND=FALSE -DCHECK_INTERPRETER=ON -DCHECK_LIBRARY=ON
"-DPython3_EXECUTABLE=${Python3_EXECUTABLE}"
"-DPython3_LIBRARY=${Python2_LIBRARY_RELEASE}"
"-DPython3_LIBRARY=${USER_LIBRARY}"
--test-command ${CMAKE_CTEST_COMMAND} -V -C $<CONFIGURATION>
)
@@ -110,11 +117,11 @@ add_test(NAME FindPython.RequiredArtifacts.Library-Include.INVALID COMMAND
--build-project TestRequiredArtifacts.Check
--build-options -DPYTHON_IS_FOUND=FALSE -DCHECK_LIBRARY=ON -DCHECK_INCLUDE=ON
"-DPython3_LIBRARY=${Python3_LIBRARY_RELEASE}"
"-DPython3_INCLUDE_DIR=${Python2_INCLUDE_DIRS}"
"-DPython3_INCLUDE_DIR=${USER_INCLUDE_DIR}"
--test-command ${CMAKE_CTEST_COMMAND} -V -C $<CONFIGURATION>
)
if (CMake_TEST_FindPython_SABIModule AND WIN32)
if (CMake_TEST_FindPython3_SABIModule AND WIN32)
add_test(NAME FindPython.RequiredArtifacts.SABILibrary.VALID COMMAND
${CMAKE_CTEST_COMMAND} -C $<CONFIGURATION>
--build-and-test
@@ -134,7 +141,7 @@ if (CMake_TEST_FindPython_SABIModule AND WIN32)
${build_generator_args}
--build-project TestRequiredArtifacts.Check
--build-options -DPYTHON_IS_FOUND=FALSE -DCHECK_SABI_LIBRARY=ON
"-DPython3_SABI_LIBRARY=${Python2_LIBRARY_RELEASE}"
"-DPython3_SABI_LIBRARY=${USER_LIBRARY}"
--test-command ${CMAKE_CTEST_COMMAND} -V -C $<CONFIGURATION>
)
endif()

View File

@@ -2,37 +2,40 @@ cmake_minimum_required(VERSION 3.5)
project(TestSOABI LANGUAGES C)
find_package(Python3 COMPONENTS ${CMake_TEST_FindPython_COMPONENT})
if (NOT Python3_FOUND)
message (FATAL_ERROR "Failed to find Python 3")
endif()
if(CMake_TEST_FindPython3)
find_package(Python3 COMPONENTS ${CMake_TEST_FindPython_COMPONENT})
if (NOT Python3_FOUND)
message (FATAL_ERROR "Failed to find Python 3")
endif()
if(NOT DEFINED Python3_SOABI)
message(FATAL_ERROR "Python3_SOABI for ${CMake_TEST_FindPython_COMPONENT} not found")
endif()
if(NOT DEFINED Python3_SOABI)
message(FATAL_ERROR "Python3_SOABI for ${CMake_TEST_FindPython_COMPONENT} not found")
endif()
if (Python3_Development_FOUND AND Python3_SOABI)
Python3_add_library (spam3 MODULE WITH_SOABI ../spam.c)
target_compile_definitions (spam3 PRIVATE PYTHON3)
if (Python3_Development_FOUND AND Python3_SOABI)
Python3_add_library (spam3 MODULE WITH_SOABI ../spam.c)
target_compile_definitions (spam3 PRIVATE PYTHON3)
get_property (suffix TARGET spam3 PROPERTY SUFFIX)
if (NOT suffix MATCHES "^.${Python3_SOABI}")
message(FATAL_ERROR "Module suffix do not include Python3_SOABI")
get_property (suffix TARGET spam3 PROPERTY SUFFIX)
if (NOT suffix MATCHES "^.${Python3_SOABI}")
message(FATAL_ERROR "Module suffix do not include Python3_SOABI")
endif()
endif()
endif()
if(CMake_TEST_FindPython2)
find_package(Python2 COMPONENTS ${CMake_TEST_FindPython_COMPONENT})
if(NOT DEFINED Python2_SOABI)
message(FATAL_ERROR "Python2_SOABI for ${CMake_TEST_FindPython_COMPONENT} not found")
endif()
find_package(Python2 COMPONENTS ${CMake_TEST_FindPython_COMPONENT})
if(NOT DEFINED Python2_SOABI)
message(FATAL_ERROR "Python2_SOABI for ${CMake_TEST_FindPython_COMPONENT} not found")
endif()
if (Python2_Development_FOUND AND Python2_SOABI)
Python2_add_library (spam2 MODULE WITH_SOABI ../spam.c)
target_compile_definitions (spam2 PRIVATE PYTHON2)
if (Python2_Development_FOUND AND Python2_SOABI)
Python2_add_library (spam2 MODULE WITH_SOABI ../spam.c)
target_compile_definitions (spam2 PRIVATE PYTHON2)
get_property (suffix TARGET spam2 PROPERTY SUFFIX)
if (NOT suffix MATCHES "^.${Python2_SOABI}")
message(FATAL_ERROR "Module suffix do not include Python2_SOABI")
get_property (suffix TARGET spam2 PROPERTY SUFFIX)
if (NOT suffix MATCHES "^.${Python2_SOABI}")
message(FATAL_ERROR "Module suffix do not include Python2_SOABI")
endif()
endif()
endif()

View File

@@ -27,21 +27,23 @@ add_test(NAME FindPython3.VirtualEnvDefault
"${CMAKE_COMMAND}" "-DPYTHON3_VIRTUAL_ENV=${Python3_VIRTUAL_ENV}"
-P "${CMAKE_CURRENT_LIST_DIR}/VirtualEnvDefault.cmake")
add_test(NAME FindPython3.VirtualEnvOnly
COMMAND "${CMAKE_COMMAND}" -E env --unset=PYTHONHOME
--unset=CONDA_PREFIX
"VIRTUAL_ENV=${Python3_VIRTUAL_ENV}"
"${CMAKE_COMMAND}" "-DPYTHON3_VIRTUAL_ENV=${Python3_VIRTUAL_ENV}"
-P "${CMAKE_CURRENT_LIST_DIR}/VirtualEnvOnly.cmake")
add_test(NAME FindPython3.UnsetVirtualEnvOnly
COMMAND "${CMAKE_COMMAND}" -E env --unset=PYTHONHOME
--unset=VIRTUAL_ENV
--unset=CONDA_PREFIX
"${CMAKE_COMMAND}" -P "${CMAKE_CURRENT_LIST_DIR}/VirtualEnvOnly.cmake")
add_test(NAME FindPython3.VirtualEnvStandard
COMMAND "${CMAKE_COMMAND}" -E env --unset=PYTHONHOME
--unset=CONDA_PREFIX
"VIRTUAL_ENV=${Python3_VIRTUAL_ENV}"
"${CMAKE_COMMAND}" "-DPYTHON3_VIRTUAL_ENV=${Python3_VIRTUAL_ENV}"
-P "${CMAKE_CURRENT_LIST_DIR}/VirtualEnvStandard.cmake")
if(CMake_TEST_FindPython2)
add_test(NAME FindPython3.VirtualEnvOnly
COMMAND "${CMAKE_COMMAND}" -E env --unset=PYTHONHOME
--unset=CONDA_PREFIX
"VIRTUAL_ENV=${Python3_VIRTUAL_ENV}"
"${CMAKE_COMMAND}" "-DPYTHON3_VIRTUAL_ENV=${Python3_VIRTUAL_ENV}"
-P "${CMAKE_CURRENT_LIST_DIR}/VirtualEnvOnly.cmake")
add_test(NAME FindPython3.UnsetVirtualEnvOnly
COMMAND "${CMAKE_COMMAND}" -E env --unset=PYTHONHOME
--unset=VIRTUAL_ENV
--unset=CONDA_PREFIX
"${CMAKE_COMMAND}" -P "${CMAKE_CURRENT_LIST_DIR}/VirtualEnvOnly.cmake")
endif()

View File

@@ -26,21 +26,23 @@ add_test(NAME FindPython3.VirtualEnvDefaultConda
"${CMAKE_COMMAND}" "-DPYTHON3_VIRTUAL_ENV=${Python3_VIRTUAL_ENV}"
-P "${CMAKE_CURRENT_LIST_DIR}/VirtualEnvDefault.cmake")
add_test(NAME FindPython3.VirtualEnvOnlyConda
COMMAND "${CMAKE_COMMAND}" -E env --unset=PYTHONHOME
--unset=VIRTUAL_ENV
"CONDA_PREFIX=${Python3_VIRTUAL_ENV}"
"${CMAKE_COMMAND}" "-DPYTHON3_VIRTUAL_ENV=${Python3_VIRTUAL_ENV}"
-P "${CMAKE_CURRENT_LIST_DIR}/VirtualEnvOnly.cmake")
add_test(NAME FindPython3.UnsetVirtualEnvOnlyConda
COMMAND "${CMAKE_COMMAND}" -E env --unset=PYTHONHOME
--unset=CONDA_PREFIX
--unset=VIRTUAL_ENV
"${CMAKE_COMMAND}" -P "${CMAKE_CURRENT_LIST_DIR}/VirtualEnvOnly.cmake")
add_test(NAME FindPython3.VirtualEnvStandardConda
COMMAND "${CMAKE_COMMAND}" -E env --unset=PYTHONHOME
--unset=VIRTUAL_ENV
"CONDA_PREFIX=${Python3_VIRTUAL_ENV}"
"${CMAKE_COMMAND}" "-DPYTHON3_VIRTUAL_ENV=${Python3_VIRTUAL_ENV}"
-P "${CMAKE_CURRENT_LIST_DIR}/VirtualEnvStandard.cmake")
if(Cmake_TEST_FindPython2)
add_test(NAME FindPython3.VirtualEnvOnlyConda
COMMAND "${CMAKE_COMMAND}" -E env --unset=PYTHONHOME
--unset=VIRTUAL_ENV
"CONDA_PREFIX=${Python3_VIRTUAL_ENV}"
"${CMAKE_COMMAND}" "-DPYTHON3_VIRTUAL_ENV=${Python3_VIRTUAL_ENV}"
-P "${CMAKE_CURRENT_LIST_DIR}/VirtualEnvOnly.cmake")
add_test(NAME FindPython3.UnsetVirtualEnvOnlyConda
COMMAND "${CMAKE_COMMAND}" -E env --unset=PYTHONHOME
--unset=CONDA_PREFIX
--unset=VIRTUAL_ENV
"${CMAKE_COMMAND}" -P "${CMAKE_CURRENT_LIST_DIR}/VirtualEnvOnly.cmake")
endif()

View File

@@ -363,7 +363,8 @@ if(CMake_TEST_FindOpenSSL)
endif()
if(CMake_TEST_UseSWIG)
add_RunCMake_test(FindSWIG)
add_RunCMake_test(UseSWIG -DCMake_TEST_FindPython=${CMake_TEST_FindPython})
add_RunCMake_test(UseSWIG -DCMake_TEST_FindPython2=${CMake_TEST_FindPython2}
-DCMake_TEST_FindPython3=${CMake_TEST_FindPython3})
endif()
if(NOT CMAKE_C_COMPILER_ID MATCHES "Watcom")
add_RunCMake_test(GenerateExportHeader)

View File

@@ -6,7 +6,7 @@ run_cmake(CMP0078-NEW)
run_cmake(CMP0086-WARN)
if (CMake_TEST_FindPython)
if (CMake_TEST_FindPython2 OR CMake_TEST_FindPython3)
macro(run_cmake_target test subtest target)
set(RunCMake_TEST_BINARY_DIR ${RunCMake_BINARY_DIR}/${test}-build)

View File

@@ -7,7 +7,7 @@ include(CTest)
find_package(SWIG REQUIRED)
include(${SWIG_USE_FILE})
find_package(Python2 REQUIRED COMPONENTS Interpreter Development)
find_package(Python REQUIRED COMPONENTS Interpreter Development)
# Path separator
if (WIN32)
@@ -27,9 +27,9 @@ swig_add_library(example_python
set_target_properties (example_python PROPERTIES
INCLUDE_DIRECTORIES "${CMAKE_CURRENT_SOURCE_DIR}/.."
SWIG_USE_TARGET_INCLUDE_DIRECTORIES TRUE)
target_link_libraries(example_python PRIVATE Python2::Python)
target_link_libraries(example_python PRIVATE Python::Python)
add_test (NAME AlternateLibraryName.example1
COMMAND "${CMAKE_COMMAND}" -E env "PYTHONPATH=${CMAKE_CURRENT_BINARY_DIR}${PS}$<TARGET_FILE_DIR:example_python>"
"${Python2_EXECUTABLE}" "${CMAKE_CURRENT_SOURCE_DIR}/../runme.py")
"${Python_EXECUTABLE}" "${CMAKE_CURRENT_SOURCE_DIR}/../runme.py")

View File

@@ -147,16 +147,18 @@ add_test(NAME UseSWIG.MultipleModules COMMAND
--build-options ${build_options}
--test-command ${CMAKE_CTEST_COMMAND} -V -C $<CONFIGURATION>
)
add_test(NAME UseSWIG.MultiplePython COMMAND
${CMAKE_CTEST_COMMAND} -C $<CONFIGURATION>
--build-and-test
"${CMake_SOURCE_DIR}/Tests/UseSWIG/MultiplePython"
"${CMake_BINARY_DIR}/Tests/UseSWIG/MultiplePython"
${build_generator_args}
--build-project TestMultiplePython
--build-options ${build_options}
--test-command ${CMAKE_CTEST_COMMAND} -V -C $<CONFIGURATION>
if(CMake_TEST_FindPython2 AND CMake_TEST_FindPython3)
add_test(NAME UseSWIG.MultiplePython COMMAND
${CMAKE_CTEST_COMMAND} -C $<CONFIGURATION>
--build-and-test
"${CMake_SOURCE_DIR}/Tests/UseSWIG/MultiplePython"
"${CMake_BINARY_DIR}/Tests/UseSWIG/MultiplePython"
${build_generator_args}
--build-project TestMultiplePython
--build-options ${build_options}
--test-command ${CMAKE_CTEST_COMMAND} -V -C $<CONFIGURATION>
)
endif()
add_test(NAME UseSWIG.MultipleFiles COMMAND
${CMAKE_CTEST_COMMAND} -C $<CONFIGURATION>
--build-and-test
@@ -165,20 +167,20 @@ add_test(NAME UseSWIG.MultipleFiles COMMAND
${build_generator_args}
--build-project TestMultipleFiles
--build-options ${build_options}
)
if(CMake_TEST_FindPython2 OR CMake_TEST_FindPython3)
add_test(NAME UseSWIG.ModuleVersion2 COMMAND
${CMAKE_CTEST_COMMAND} -C $<CONFIGURATION>
--build-and-test
"${CMake_SOURCE_DIR}/Tests/UseSWIG/ModuleVersion2"
"${CMake_BINARY_DIR}/Tests/UseSWIG/ModuleVersion2"
${build_generator_args}
--build-project TestModuleVersion2
--build-options ${build_options}
--test-command ${CMAKE_CTEST_COMMAND} -V -C $<CONFIGURATION>
)
add_test(NAME UseSWIG.ModuleVersion2 COMMAND
${CMAKE_CTEST_COMMAND} -C $<CONFIGURATION>
--build-and-test
"${CMake_SOURCE_DIR}/Tests/UseSWIG/ModuleVersion2"
"${CMake_BINARY_DIR}/Tests/UseSWIG/ModuleVersion2"
${build_generator_args}
--build-project TestModuleVersion2
--build-options ${build_options}
--test-command ${CMAKE_CTEST_COMMAND} -V -C $<CONFIGURATION>
)
endif()
add_test(NAME UseSWIG.UseTargetINCLUDE_DIRECTORIES COMMAND
${CMAKE_CTEST_COMMAND} -C $<CONFIGURATION>

View File

@@ -8,14 +8,7 @@ find_package(SWIG REQUIRED)
cmake_policy(SET CMP0086 NEW)
include(${SWIG_USE_FILE})
find_package(Python2 REQUIRED COMPONENTS Interpreter Development)
# Path separator
if (WIN32)
set (PS "$<SEMICOLON>")
else()
set (PS ":")
endif()
find_package(Python REQUIRED COMPONENTS Interpreter Development)
unset(CMAKE_SWIG_FLAGS)
@@ -34,9 +27,9 @@ set_target_properties (example1 PROPERTIES
LIBRARY_OUTPUT_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/example1"
ARCHIVE_OUTPUT_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/example1"
RUNTIME_OUTPUT_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/example1")
target_link_libraries(example1 PRIVATE Python2::Module)
target_link_libraries(example1 PRIVATE Python::Module)
add_test (NAME ModuleName.example1
COMMAND "${CMAKE_COMMAND}" -E env "PYTHONPATH=${CMAKE_CURRENT_BINARY_DIR}/Python2${PS}$<TARGET_FILE_DIR:example1>"
"${Python2_EXECUTABLE}" "${CMAKE_CURRENT_SOURCE_DIR}/runme.py")
COMMAND "${CMAKE_COMMAND}" -E env "PYTHONPATH=$<TARGET_FILE_DIR:example1>"
"${Python_EXECUTABLE}" "${CMAKE_CURRENT_SOURCE_DIR}/runme.py")

View File

@@ -7,9 +7,6 @@ include(CTest)
find_package(SWIG REQUIRED)
include(${SWIG_USE_FILE})
find_package(Python2 REQUIRED COMPONENTS Interpreter Development)
find_package(Python3 REQUIRED COMPONENTS Interpreter Development)
if (WIN32)
set (PS $<SEMICOLON>)
else()
@@ -25,32 +22,69 @@ set_property(SOURCE "../example.i" PROPERTY COMPILE_OPTIONS -includeall)
set_property(SOURCE "../example.i"
PROPERTY GENERATED_INCLUDE_DIRECTORIES "${CMAKE_CURRENT_SOURCE_DIR}/..")
swig_add_library(example1
LANGUAGE python
SOURCES ../example.i ../example.cxx)
set_target_properties (example1 PROPERTIES
OUTPUT_NAME example
LIBRARY_OUTPUT_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/Python2"
ARCHIVE_OUTPUT_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/Python2"
RUNTIME_OUTPUT_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/Python2")
target_link_libraries(example1 PRIVATE Python2::Module)
if(CMake_TEST_FindPython2)
find_package(Python2 REQUIRED COMPONENTS Interpreter Development)
# re-use sample interface file for another plugin
swig_add_library(example2
LANGUAGE python
SOURCES ../example.i ../example.cxx)
set_target_properties (example2 PROPERTIES
OUTPUT_NAME example
LIBRARY_OUTPUT_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/Python3"
ARCHIVE_OUTPUT_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/Python3"
RUNTIME_OUTPUT_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/Python3")
target_link_libraries(example2 PRIVATE Python3::Module)
swig_add_library(example1
LANGUAGE python
SOURCES ../example.i ../example.cxx)
set_target_properties (example1 PROPERTIES
OUTPUT_NAME example
LIBRARY_OUTPUT_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/Python2-1"
ARCHIVE_OUTPUT_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/Python2-1"
RUNTIME_OUTPUT_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/Python2-1")
target_link_libraries(example1 PRIVATE Python2::Module)
add_test (NAME ModuleVersion2.example1
COMMAND "${CMAKE_COMMAND}" -E env "PYTHONPATH=$<TARGET_PROPERTY:example1,SWIG_SUPPORT_FILES_DIRECTORY>${PS}$<TARGET_FILE_DIR:example1>"
"${Python2_EXECUTABLE}" "${CMAKE_CURRENT_SOURCE_DIR}/../runme.py")
# re-use sample interface file for another plugin
swig_add_library(example2
LANGUAGE python
SOURCES ../example.i ../example.cxx)
set_target_properties (example2 PROPERTIES
OUTPUT_NAME example
LIBRARY_OUTPUT_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/Python2-2"
ARCHIVE_OUTPUT_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/Python2-2"
RUNTIME_OUTPUT_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/Python2-2")
target_link_libraries(example2 PRIVATE Python2::Module)
add_test (NAME ModuleVersion2.example2
COMMAND "${CMAKE_COMMAND}" -E env "PYTHONPATH=$<TARGET_PROPERTY:example2,SWIG_SUPPORT_FILES_DIRECTORY>${PS}$<TARGET_FILE_DIR:example2>"
"${Python2_EXECUTABLE}" "${CMAKE_CURRENT_SOURCE_DIR}/../runme.py")
endif()
if(CMake_TEST_FindPython3)
find_package(Python3 REQUIRED COMPONENTS Interpreter Development)
swig_add_library(example3
LANGUAGE python
SOURCES ../example.i ../example.cxx)
set_target_properties (example3 PROPERTIES
OUTPUT_NAME example
LIBRARY_OUTPUT_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/Python3-1"
ARCHIVE_OUTPUT_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/Python3-1"
RUNTIME_OUTPUT_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/Python3-1")
target_link_libraries(example3 PRIVATE Python3::Module)
add_test (NAME ModuleVersion2.example3
COMMAND "${CMAKE_COMMAND}" -E env "PYTHONPATH=$<TARGET_PROPERTY:example3,SWIG_SUPPORT_FILES_DIRECTORY>${PS}$<TARGET_FILE_DIR:example3>"
"${Python3_EXECUTABLE}" "${CMAKE_CURRENT_SOURCE_DIR}/../runme.py")
add_test (NAME ModuleVersion2.example1
COMMAND "${CMAKE_COMMAND}" -E env "PYTHONPATH=$<TARGET_PROPERTY:example1,SWIG_SUPPORT_FILES_DIRECTORY>${PS}$<TARGET_FILE_DIR:example1>"
"${Python2_EXECUTABLE}" "${CMAKE_CURRENT_SOURCE_DIR}/../runme.py")
# re-use sample interface file for another plugin
swig_add_library(example4
LANGUAGE python
SOURCES ../example.i ../example.cxx)
set_target_properties (example2 PROPERTIES
OUTPUT_NAME example
LIBRARY_OUTPUT_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/Python3-2"
ARCHIVE_OUTPUT_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/Python3-2"
RUNTIME_OUTPUT_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/Python3-2")
target_link_libraries(example4 PRIVATE Python3::Module)
add_test (NAME ModuleVersion2.example2
COMMAND "${CMAKE_COMMAND}" -E env "PYTHONPATH=$<TARGET_PROPERTY:example2,SWIG_SUPPORT_FILES_DIRECTORY>${PS}$<TARGET_FILE_DIR:example2>"
"${Python3_EXECUTABLE}" "${CMAKE_CURRENT_SOURCE_DIR}/../runme.py")
add_test (NAME ModuleVersion2.example4
COMMAND "${CMAKE_COMMAND}" -E env "PYTHONPATH=$<TARGET_PROPERTY:example4,SWIG_SUPPORT_FILES_DIRECTORY>${PS}$<TARGET_FILE_DIR:example4>"
"${Python3_EXECUTABLE}" "${CMAKE_CURRENT_SOURCE_DIR}/../runme.py")
endif()

View File

@@ -11,7 +11,7 @@ unset(SWIG_LANG_DEFINITIONS)
unset(SWIG_LANG_OPTIONS)
unset(SWIG_LANG_LIBRARIES)
find_package(Python3 REQUIRED COMPONENTS Development)
find_package(Python REQUIRED COMPONENTS Development)
set_property(SOURCE "${CMAKE_CURRENT_SOURCE_DIR}/add.i" PROPERTY CPLUSPLUS ON)
set_property(SOURCE "${CMAKE_CURRENT_SOURCE_DIR}/sub.i" PROPERTY CPLUSPLUS ON)
@@ -27,4 +27,4 @@ swig_add_library(example
"${CMAKE_CURRENT_SOURCE_DIR}/add.cxx"
"${CMAKE_CURRENT_SOURCE_DIR}/sub.cxx")
target_include_directories(example PUBLIC "${CMAKE_CURRENT_SOURCE_DIR}")
target_link_libraries(example PRIVATE Python3::Module)
target_link_libraries(example PRIVATE Python::Module)

View File

@@ -7,7 +7,7 @@ include(CTest)
find_package(SWIG REQUIRED)
include(${SWIG_USE_FILE})
find_package(Python3 REQUIRED COMPONENTS Interpreter Development)
find_package(Python REQUIRED COMPONENTS Interpreter Development)
unset(CMAKE_SWIG_FLAGS)
@@ -25,7 +25,7 @@ set_target_properties (example1 PROPERTIES
LIBRARY_OUTPUT_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/example1"
ARCHIVE_OUTPUT_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/example1"
RUNTIME_OUTPUT_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/example1")
target_link_libraries(example1 PRIVATE Python3::Module)
target_link_libraries(example1 PRIVATE Python::Module)
# Check that source property override target property
@@ -42,4 +42,4 @@ set_target_properties (example2 PROPERTIES
LIBRARY_OUTPUT_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/example2"
ARCHIVE_OUTPUT_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/example2"
RUNTIME_OUTPUT_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/example2")
target_link_libraries(example2 PRIVATE Python3::Module)
target_link_libraries(example2 PRIVATE Python::Module)