Warning, /network/ruqola/cmake/Python/FindPySide2.cmake is written in an unsupported language. File is not indexed.
0001 # 0002 # SPDX-FileCopyrightText: 2020 Klarälvdalens Datakonsult AB a KDAB Group company <info@kdab.com> 0003 # Author: Renato Araujo Oliveira Filho <renato.araujo@kdab.com> 0004 # 0005 # SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only 0006 # 0007 # Contact KDAB at <info@kdab.com> for commercial licensing options. 0008 # 0009 0010 # PYSIDE_BASEDIR - Top of the PySide2 installation 0011 # PYSIDE_INCLUDE_DIR - Directories to include to use PySide2 0012 # PYSIDE_LIBRARY - Files to link against to use PySide2 0013 # PYSIDE_TYPESYSTEMS - Type system files that should be used by other bindings extending PySide2 0014 # 0015 # You can install PySide2 from Qt repository with 0016 # pip3 install --index-url=https://download.qt.io/official_releases/QtForPython --trusted-host download.qt.io pyside2 0017 0018 find_package(PkgConfig) 0019 if(PKG_CONFIG_FOUND) 0020 pkg_check_modules(PYSIDE2_PRIV QUIET pyside2) 0021 endif() 0022 0023 set(PYSIDE2_FOUND FALSE) 0024 0025 if(PYSIDE2_PRIV_FOUND) 0026 set(PYSIDE2_FOUND TRUE) 0027 message(STATUS "Using PySide2 found in the system!") 0028 pkg_get_variable(SHIBOKEN_BINARY 0029 pyside2 0030 generator_location 0031 ) 0032 pkg_get_variable(PYSIDE2_BASEDIR 0033 pyside2 0034 typesystemdir 0035 ) 0036 pkg_get_variable(PYSIDE_INCLUDE_DIR 0037 pyside2 0038 includedir 0039 ) 0040 set(PYSIDE_TYPESYSTEMS ${PYSIDE2_BASEDIR}) 0041 set(PYSIDE2_SO_VERSION ${PYSIDE2_PRIV_VERSION}) 0042 set(PYSIDE_LIBRARY ${PYSIDE2_PRIV_LINK_LIBRARIES}) 0043 list(GET PYSIDE_LIBRARY 0 PYSIDE_LIBRARY) 0044 else() 0045 # extract python library basename 0046 list(GET Python3_LIBRARIES 0 PYTHON_LIBRARY_FILENAME) 0047 get_filename_component(PYTHON_LIBRARY_FILENAME ${PYTHON_LIBRARY_FILENAME} NAME) 0048 0049 execute_process( 0050 COMMAND ${Python3_EXECUTABLE} -c "if True: 0051 import os, sys 0052 try: 0053 import PySide2.QtCore as QtCore 0054 print(os.path.dirname(QtCore.__file__)) 0055 except Exception as error: 0056 print(error, file=sys.stderr) 0057 exit() 0058 " 0059 OUTPUT_VARIABLE PYSIDE2_BASEDIR 0060 OUTPUT_STRIP_TRAILING_WHITESPACE 0061 ) 0062 0063 if(PYSIDE2_BASEDIR) 0064 set(PYSIDE_BASEDIR ${PYSIDE2_BASEDIR} CACHE PATH "Top level install of PySide2" FORCE) 0065 execute_process( 0066 COMMAND ${Python3_EXECUTABLE} -c "if True: 0067 import os 0068 import PySide2.QtCore as QtCore 0069 print(os.path.basename(QtCore.__file__).split('.', 1)[1]) 0070 " 0071 OUTPUT_VARIABLE PYSIDE2_SUFFIX 0072 OUTPUT_STRIP_TRAILING_WHITESPACE 0073 ) 0074 0075 execute_process( 0076 COMMAND ${Python3_EXECUTABLE} -c "if True: 0077 import os 0078 import PySide2.QtCore as QtCore 0079 print(';'.join(map(str, QtCore.__version_info__))) 0080 " 0081 OUTPUT_VARIABLE PYSIDE2_SO_VERSION 0082 OUTPUT_STRIP_TRAILING_WHITESPACE 0083 ) 0084 list(GET PYSIDE2_SO_VERSION 0 PYSIDE2_SO_MACRO_VERSION) 0085 list(GET PYSIDE2_SO_VERSION 1 PYSIDE2_SO_MICRO_VERSION) 0086 list(GET PYSIDE2_SO_VERSION 2 PYSIDE2_SO_MINOR_VERSION) 0087 string(REPLACE ";" "." PYSIDE2_SO_VERSION "${PYSIDE2_SO_VERSION}") 0088 0089 if(NOT APPLE) 0090 set(PYSIDE2_SUFFIX "${PYSIDE2_SUFFIX}.${PYSIDE2_SO_MACRO_VERSION}.${PYSIDE2_SO_MICRO_VERSION}") 0091 else() 0092 string(REPLACE ".so" "" PYSIDE2_SUFFIX ${PYSIDE2_SUFFIX}) 0093 set(PYSIDE2_SUFFIX "${PYSIDE2_SUFFIX}.${PYSIDE2_SO_MACRO_VERSION}.${PYSIDE2_SO_MICRO_VERSION}.dylib") 0094 endif() 0095 0096 set(PYSIDE2_FOUND TRUE) 0097 message(STATUS "PySide2 base dir: ${PYSIDE2_BASEDIR}" ) 0098 message(STATUS "PySide2 suffix: ${PYSIDE2_SUFFIX}") 0099 endif() 0100 0101 if (PYSIDE2_FOUND) 0102 #PySide 0103 #=============================================================================== 0104 find_path(PYSIDE_INCLUDE_DIR 0105 pyside.h 0106 PATHS ${PYSIDE2_BASEDIR}/include ${PYSIDE2_CUSTOM_PREFIX}/include/PySide2 0107 NO_DEFAULT_PATH) 0108 0109 # Platform specific library names 0110 if(MSVC) 0111 SET(PYSIDE_LIBRARY_BASENAMES "pyside2.abi3.lib") 0112 elseif(CYGWIN) 0113 SET(PYSIDE_LIBRARY_BASENAMES "") 0114 elseif(WIN32) 0115 SET(PYSIDE_LIBRARY_BASENAMES "libpyside2.${PYSIDE2_SUFFIX}") 0116 else() 0117 SET(PYSIDE_LIBRARY_BASENAMES "libpyside2.${PYSIDE2_SUFFIX}") 0118 endif() 0119 0120 find_file(PYSIDE_LIBRARY 0121 ${PYSIDE_LIBRARY_BASENAMES} 0122 PATHS ${PYSIDE2_BASEDIR} ${PYSIDE2_CUSTOM_PREFIX}/lib 0123 NO_DEFAULT_PATH) 0124 0125 find_path(PYSIDE_TYPESYSTEMS 0126 typesystem_core.xml 0127 PATHS ${PYSIDE2_BASEDIR}/typesystems ${PYSIDE2_CUSTOM_PREFIX}/share/PySide2/typesystems 0128 NO_DEFAULT_PATH) 0129 endif() 0130 endif() 0131 0132 if(PYSIDE2_FOUND) 0133 message(STATUS "PySide include dir: ${PYSIDE_INCLUDE_DIR}") 0134 message(STATUS "PySide library: ${PYSIDE_LIBRARY}") 0135 message(STATUS "PySide typesystems: ${PYSIDE_TYPESYSTEMS}") 0136 message(STATUS "PySide2 version: ${PYSIDE2_SO_VERSION}") 0137 0138 # Create PySide2 target 0139 add_library(PySide2::pyside2 SHARED IMPORTED GLOBAL) 0140 if(MSVC) 0141 set_property(TARGET PySide2::pyside2 PROPERTY 0142 IMPORTED_IMPLIB ${PYSIDE_LIBRARY}) 0143 endif() 0144 set_property(TARGET PySide2::pyside2 PROPERTY 0145 IMPORTED_LOCATION ${PYSIDE_LIBRARY}) 0146 set_property(TARGET PySide2::pyside2 APPEND PROPERTY 0147 INTERFACE_INCLUDE_DIRECTORIES 0148 ${PYSIDE_INCLUDE_DIR} 0149 ${PYSIDE_INCLUDE_DIR}/QtCore/ 0150 ${PYSIDE_INCLUDE_DIR}/QtGui/ 0151 ${PYSIDE_INCLUDE_DIR}/QtWidgets/ 0152 ${Python3_INCLUDE_DIRS} 0153 ) 0154 endif() 0155 0156 0157 find_package_handle_standard_args(PySide2 0158 REQUIRED_VARS PYSIDE2_BASEDIR PYSIDE_INCLUDE_DIR PYSIDE_LIBRARY PYSIDE_TYPESYSTEMS 0159 VERSION_VAR PYSIDE2_SO_VERSION 0160 )