mirror of
https://github.com/Kitware/CMake.git
synced 2025-10-14 02:08:27 +08:00
52 lines
1.9 KiB
CMake
52 lines
1.9 KiB
CMake
enable_language(C)
|
|
|
|
set(components Development.Embed Development.Module Development.SABIModule)
|
|
find_package(Python REQUIRED COMPONENTS ${components})
|
|
|
|
foreach(component ${components})
|
|
set(found_var Python_${component}_FOUND)
|
|
if(NOT ${found_var})
|
|
message(FATAL_ERROR "${found_var} is not set")
|
|
endif()
|
|
endforeach()
|
|
|
|
set(android_root "${CMAKE_SOURCE_DIR}/android_root")
|
|
if(NOT Python_INCLUDE_DIRS STREQUAL "${android_root}/include/python3.13")
|
|
message(FATAL_ERROR "Python_INCLUDE_DIRS=${Python_INCLUDE_DIRS}")
|
|
endif()
|
|
if(NOT Python_LIBRARIES STREQUAL "${android_root}/lib/libpython3.13.so")
|
|
message(FATAL_ERROR "Python_LIBRARIES=${Python_LIBRARIES}")
|
|
endif()
|
|
if(NOT Python_SABI_LIBRARIES STREQUAL "${android_root}/lib/libpython3.so")
|
|
message(FATAL_ERROR "Python_SABI_LIBRARIES=${Python_SABI_LIBRARIES}")
|
|
endif()
|
|
|
|
foreach(target Python::Python Python::Module Python::SABIModule)
|
|
if(NOT TARGET ${target})
|
|
message(FATAL_ERROR "Target ${target} does not exist")
|
|
endif()
|
|
|
|
# The Module and SABIModule targets will be SHARED_LIBRARY if Python modules should
|
|
# link against libpython (as on Android), and INTERFACE_LIBRARY if they should not (as
|
|
# on Linux).
|
|
get_target_property(target_type ${target} TYPE)
|
|
if(NOT target_type STREQUAL SHARED_LIBRARY)
|
|
message(FATAL_ERROR "${target} TYPE=${target_type}")
|
|
endif()
|
|
|
|
get_target_property(target_location ${target} LOCATION)
|
|
if(target STREQUAL "Python::SABIModule")
|
|
set(expected "${android_root}/lib/libpython3.so")
|
|
else()
|
|
set(expected "${android_root}/lib/libpython3.13.so")
|
|
endif()
|
|
if(NOT target_location STREQUAL expected)
|
|
message(FATAL_ERROR "${target} LOCATION=${target_location}")
|
|
endif()
|
|
|
|
get_target_property(target_include ${target} INTERFACE_INCLUDE_DIRECTORIES)
|
|
if(NOT target_include STREQUAL "${android_root}/include/python3.13")
|
|
message(FATAL_ERROR "${target} INTERFACE_INCLUDE_DIRECTORIES=${target_include}")
|
|
endif()
|
|
endforeach()
|