mirror of
https://github.com/rizinorg/cutter.git
synced 2025-01-31 08:37:26 +00:00
Extend FindPySide2.cmake and FindShiboken2.cmake for current versions (#1358)
This commit is contained in:
parent
7fd815bd40
commit
c84546e828
@ -89,7 +89,6 @@ if(CUTTER_ENABLE_PYTHON)
|
||||
find_package(Shiboken2 "${Qt5_VERSION}" REQUIRED)
|
||||
find_package(PySide2 "${Qt5_VERSION}" REQUIRED)
|
||||
|
||||
set(PYSIDE_LIBRARY PySide2::pyside2)
|
||||
get_target_property(PYSIDE_INCLUDE_DIR PySide2::pyside2 INTERFACE_INCLUDE_DIRECTORIES)
|
||||
list(GET PYSIDE_INCLUDE_DIR 0 PYSIDE_INCLUDE_DIR)
|
||||
include_directories(${PYSIDE_INCLUDE_DIR}
|
||||
|
@ -2,6 +2,7 @@
|
||||
set(_module PySide2)
|
||||
|
||||
find_package(${_module} ${${_module}_FIND_VERSION} CONFIG QUIET)
|
||||
set(_lib_target ${_module}::pyside2)
|
||||
|
||||
if(NOT ${_module}_FOUND)
|
||||
include(PythonInfo)
|
||||
@ -23,13 +24,41 @@ if(NOT ${_module}_FOUND)
|
||||
PATH_SUFFIXES "${PYTHON_SITE_PACKAGES}/PySide2/typesystems")
|
||||
endif()
|
||||
|
||||
include(FindPackageHandleStandardArgs)
|
||||
find_package_handle_standard_args(${_module}
|
||||
if(TARGET ${_lib_target})
|
||||
get_target_property(_is_imported ${_lib_target} IMPORTED)
|
||||
if(_is_imported)
|
||||
get_target_property(_imported_location ${_lib_target} IMPORTED_LOCATION)
|
||||
if(NOT _imported_location)
|
||||
message(STATUS "Target ${_lib_target} does not specify its IMPORTED_LOCATION! Trying to find it ourselves...")
|
||||
set(_find_args)
|
||||
if(${_module}_CONFIG)
|
||||
get_filename_component(_pyside2_lib_dir "${${_module}_CONFIG}/../../../" ABSOLUTE)
|
||||
set(_find_args PATHS "${_pyside2_lib_dir}")
|
||||
endif()
|
||||
find_library(PYSIDE_LIBRARY
|
||||
NAMES
|
||||
"pyside2${PYTHON_CONFIG_SUFFIX}"
|
||||
"pyside2${PYTHON_CONFIG_SUFFIX}.${${_module}_FIND_VERSION_MAJOR}.${${_module}_FIND_VERSION_MINOR}"
|
||||
${_find_args})
|
||||
if(NOT PYSIDE_LIBRARY)
|
||||
set(_message_type WARNING)
|
||||
if(${_module}_FIND_REQUIRED)
|
||||
set(_message_type FATAL_ERROR)
|
||||
endif()
|
||||
message(${_message_type} "Failed to manually find library for ${_module}")
|
||||
return()
|
||||
endif()
|
||||
message(STATUS "IMPORTED_LOCATION for ${_lib_target} found: ${PYSIDE_LIBRARY}")
|
||||
set_target_properties(${_lib_target} PROPERTIES IMPORTED_LOCATION "${PYSIDE_LIBRARY}")
|
||||
endif()
|
||||
endif()
|
||||
else()
|
||||
include(FindPackageHandleStandardArgs)
|
||||
find_package_handle_standard_args(${_module}
|
||||
FOUND_VAR ${_module}_FOUND
|
||||
REQUIRED_VARS PYSIDE_LIBRARY PYSIDE_INCLUDE_DIR PYSIDE_TYPESYSTEMS
|
||||
VERSION_VAR ${_module}_VERSION)
|
||||
|
||||
if(NOT TARGET ${_module}::pyside2)
|
||||
add_library(${_module}::pyside2 INTERFACE IMPORTED)
|
||||
set_target_properties(${_module}::pyside2 PROPERTIES
|
||||
INTERFACE_INCLUDE_DIRECTORIES "${PYSIDE_INCLUDE_DIR}"
|
||||
|
@ -1,7 +1,9 @@
|
||||
|
||||
set(_module Shiboken2)
|
||||
|
||||
find_package(${_module} ${${_module}_FIND_VERSION} CONFIG QUIET)
|
||||
find_package(${_module} ${${_module}_FIND_VERSION} CONFIG)
|
||||
set(_executable_target ${_module}::shiboken2)
|
||||
set(_lib_target ${_module}::libshiboken)
|
||||
|
||||
if(NOT ${_module}_FOUND)
|
||||
include(PythonInfo)
|
||||
@ -23,20 +25,65 @@ if(NOT ${_module}_FOUND)
|
||||
PATH_SUFFIXES "${PYTHON_SITE_PACKAGES}/shiboken2_generator")
|
||||
endif()
|
||||
|
||||
include(FindPackageHandleStandardArgs)
|
||||
find_package_handle_standard_args(${_module}
|
||||
if(TARGET ${_executable_target})
|
||||
get_target_property(_is_imported ${_executable_target} IMPORTED)
|
||||
if(_is_imported)
|
||||
get_target_property(_imported_location ${_executable_target} IMPORTED_LOCATION)
|
||||
if(NOT _imported_location)
|
||||
message(STATUS "Target ${_executable_target} does not specify its IMPORTED_LOCATION! Trying to find it ourselves...")
|
||||
find_file(SHIBOKEN_BINARY
|
||||
shiboken2
|
||||
PATHS "${SHIBOKEN_SHARED_LIBRARY_DIR}/../bin"
|
||||
NO_DEFAULT_PATH)
|
||||
if(NOT SHIBOKEN_BINARY)
|
||||
set(_message_type WARNING)
|
||||
if(${_module}_FIND_REQUIRED)
|
||||
set(_message_type FATAL_ERROR)
|
||||
endif()
|
||||
message(${_message_type} "Failed to manually find executable for ${_module}")
|
||||
return()
|
||||
endif()
|
||||
message(STATUS "IMPORTED_LOCATION for ${_executable_target} found: ${SHIBOKEN_BINARY}")
|
||||
set_target_properties(${_executable_target} PROPERTIES IMPORTED_LOCATION "${SHIBOKEN_BINARY}")
|
||||
endif()
|
||||
endif()
|
||||
|
||||
get_target_property(_is_imported ${_lib_target} IMPORTED)
|
||||
if(_is_imported)
|
||||
get_target_property(_imported_location ${_lib_target} IMPORTED_LOCATION)
|
||||
if(NOT _imported_location)
|
||||
message(STATUS "Target ${_lib_target} does not specify its IMPORTED_LOCATION! Trying to find it ourselves...")
|
||||
find_library(SHIBOKEN_LIBRARY
|
||||
NAMES
|
||||
"shiboken2${SHIBOKEN_PYTHON_EXTENSION_SUFFIX}"
|
||||
"shiboken2${SHIBOKEN_PYTHON_EXTENSION_SUFFIX}.${${_module}_FIND_VERSION_MAJOR}.${${_module}_FIND_VERSION_MINOR}"
|
||||
PATHS "${SHIBOKEN_SHARED_LIBRARY_DIR}")
|
||||
if(NOT SHIBOKEN_LIBRARY)
|
||||
set(_message_type WARNING)
|
||||
if(${_module}_FIND_REQUIRED)
|
||||
set(_message_type FATAL_ERROR)
|
||||
endif()
|
||||
message(${_message_type} "Failed to manually find library for ${_module}")
|
||||
return()
|
||||
endif()
|
||||
message(STATUS "IMPORTED_LOCATION for ${_lib_target} found: ${SHIBOKEN_LIBRARY}")
|
||||
set_target_properties(${_lib_target} PROPERTIES IMPORTED_LOCATION "${SHIBOKEN_LIBRARY}")
|
||||
endif()
|
||||
endif()
|
||||
else()
|
||||
include(FindPackageHandleStandardArgs)
|
||||
find_package_handle_standard_args(${_module}
|
||||
FOUND_VAR ${_module}_FOUND
|
||||
REQUIRED_VARS SHIBOKEN_LIBRARY SHIBOKEN_INCLUDE_DIR SHIBOKEN_BINARY
|
||||
VERSION_VAR ${_module}_VERSION)
|
||||
|
||||
if(NOT TARGET ${_module}::shiboken2)
|
||||
add_library(${_module}::libshiboken INTERFACE IMPORTED)
|
||||
set_target_properties(${_module}::libshiboken PROPERTIES
|
||||
add_library(${_lib_target} INTERFACE IMPORTED)
|
||||
set_target_properties(${_lib_target} PROPERTIES
|
||||
INTERFACE_INCLUDE_DIRECTORIES "${SHIBOKEN_INCLUDE_DIR}"
|
||||
INTERFACE_LINK_LIBRARIES "${SHIBOKEN_LIBRARY}")
|
||||
|
||||
add_executable(${_module}::shiboken2 IMPORTED)
|
||||
set_target_properties(${_module}::shiboken2 PROPERTIES
|
||||
add_executable(${_executable_target} IMPORTED)
|
||||
set_target_properties(${_executable_target} PROPERTIES
|
||||
IMPORTED_LOCATION "${SHIBOKEN_BINARY}")
|
||||
endif()
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user