Skip to content

Commit 01070af

Browse files
authored
Switch to FindPython3 in the shiboken_helper.cmake. (#132)
While we are in here, remove some of the old code that deals with older versions of CMake that we no longer have to worry about. Signed-off-by: Chris Lalancette <[email protected]>
1 parent 150477f commit 01070af

File tree

1 file changed

+37
-52
lines changed

1 file changed

+37
-52
lines changed

cmake/shiboken_helper.cmake

Lines changed: 37 additions & 52 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,10 @@
1-
find_package(PythonInterp "3.3" REQUIRED)
1+
find_package(Python3 REQUIRED COMPONENTS Interpreter Development)
22

33
if(__PYTHON_QT_BINDING_SHIBOKEN_HELPER_INCLUDED)
44
return()
55
endif()
66
set(__PYTHON_QT_BINDING_SHIBOKEN_HELPER_INCLUDED TRUE)
77

8-
set(PYTHON_SUFFIX ".cpython-${PYTHON_VERSION_MAJOR}${PYTHON_VERSION_MINOR}m")
9-
set(PYTHON_EXTENSION_SUFFIX "${PYTHON_SUFFIX}-${CMAKE_CXX_LIBRARY_ARCHITECTURE}")
10-
118
find_package(Shiboken2 QUIET)
129
if(Shiboken2_FOUND)
1310
message(STATUS "Found Shiboken2 version ${Shiboken2_VERSION}")
@@ -20,7 +17,6 @@ if(Shiboken2_FOUND)
2017
message(STATUS "Using SHIBOKEN_LIBRARY: ${SHIBOKEN_LIBRARY}")
2118
message(STATUS "Using SHIBOKEN_BINARY: ${SHIBOKEN_BINARY}")
2219
endif()
23-
set(PYTHON_BASENAME "${PYTHON_SUFFIX}-${CMAKE_CXX_LIBRARY_ARCHITECTURE}")
2420

2521
find_package(PySide2 QUIET)
2622
if(PySide2_FOUND)
@@ -33,20 +29,9 @@ if(PySide2_FOUND)
3329
message(STATUS "Using PYSIDE_LIBRARY: ${PYSIDE_LIBRARY}")
3430
endif()
3531

36-
set(Python_ADDITIONAL_VERSIONS "${PYTHON_VERSION_MAJOR}.${PYTHON_VERSION_MINOR}")
37-
find_package(PythonLibs "${PYTHON_VERSION_MAJOR}.${PYTHON_VERSION_MINOR}")
38-
39-
if(Shiboken2_FOUND AND PySide2_FOUND AND PYTHONLIBS_FOUND)
40-
if(${CMAKE_VERSION} VERSION_LESS "3.14")
41-
# the shiboken invocation needs CMAKE_CXX_IMPLICIT_INCLUDE_DIRECTORIES
42-
# which is broken before CMake 3.14
43-
# see https://gitlab.kitware.com/cmake/cmake/issues/18394
44-
message(STATUS "Shiboken binding generator available but CMake version is older than 3.14.")
45-
set(shiboken_helper_NOTFOUND TRUE)
46-
else()
47-
message(STATUS "Shiboken binding generator available.")
48-
set(shiboken_helper_FOUND TRUE)
49-
endif()
32+
if(Shiboken2_FOUND AND PySide2_FOUND)
33+
message(STATUS "Shiboken binding generator available.")
34+
set(shiboken_helper_FOUND TRUE)
5035
else()
5136
message(STATUS "Shiboken binding generator NOT available.")
5237
set(shiboken_helper_NOTFOUND TRUE)
@@ -97,14 +82,14 @@ endmacro()
9782
# :type BUILD_DIR: string
9883
#
9984
function(shiboken_generator PROJECT_NAME GLOBAL TYPESYSTEM WORKING_DIR GENERATED_SRCS HDRS INCLUDE_PATH BUILD_DIR)
100-
_shiboken_generator_command(COMMAND "${GLOBAL}" "${TYPESYSTEM}" "${INCLUDE_PATH}" "${BUILD_DIR}")
101-
add_custom_command(
102-
OUTPUT ${GENERATED_SRCS}
103-
COMMAND ${COMMAND}
104-
DEPENDS ${GLOBAL} ${TYPESYSTEM} ${HDRS}
105-
WORKING_DIRECTORY ${WORKING_DIR}
106-
COMMENT "Running Shiboken generator for ${PROJECT_NAME} Python bindings..."
107-
)
85+
_shiboken_generator_command(COMMAND "${GLOBAL}" "${TYPESYSTEM}" "${INCLUDE_PATH}" "${BUILD_DIR}")
86+
add_custom_command(
87+
OUTPUT ${GENERATED_SRCS}
88+
COMMAND ${COMMAND}
89+
DEPENDS ${GLOBAL} ${TYPESYSTEM} ${HDRS}
90+
WORKING_DIRECTORY ${WORKING_DIR}
91+
COMMENT "Running Shiboken generator for ${PROJECT_NAME} Python bindings..."
92+
)
10893
endfunction()
10994

11095

@@ -117,19 +102,19 @@ endfunction()
117102
# :type QT_COMPONENTS: list of strings
118103
#
119104
function(shiboken_include_directories PROJECT_NAME QT_COMPONENTS)
120-
set(shiboken_INCLUDE_DIRECTORIES
121-
${PYTHON_INCLUDE_DIR}
122-
${SHIBOKEN_INCLUDE_DIR}
123-
${PYSIDE_INCLUDE_DIR}
124-
${PYSIDE_INCLUDE_DIR}/QtCore
125-
${PYSIDE_INCLUDE_DIR}/QtGui
126-
)
127-
128-
foreach(component ${QT_COMPONENTS})
129-
set(shiboken_INCLUDE_DIRECTORIES ${shiboken_INCLUDE_DIRECTORIES} ${PYSIDE_INCLUDE_DIR}/${component})
130-
endforeach()
131-
132-
include_directories(${PROJECT_NAME} ${shiboken_INCLUDE_DIRECTORIES})
105+
set(shiboken_INCLUDE_DIRECTORIES
106+
${Python3_INCLUDE_DIRS}
107+
${SHIBOKEN_INCLUDE_DIR}
108+
${PYSIDE_INCLUDE_DIR}
109+
${PYSIDE_INCLUDE_DIR}/QtCore
110+
${PYSIDE_INCLUDE_DIR}/QtGui
111+
)
112+
113+
foreach(component ${QT_COMPONENTS})
114+
set(shiboken_INCLUDE_DIRECTORIES ${shiboken_INCLUDE_DIRECTORIES} ${PYSIDE_INCLUDE_DIR}/${component})
115+
endforeach()
116+
117+
include_directories(${PROJECT_NAME} ${shiboken_INCLUDE_DIRECTORIES})
133118
endfunction()
134119

135120

@@ -142,16 +127,16 @@ endfunction()
142127
# :type QT_COMPONENTS: list of strings
143128
#
144129
function(shiboken_target_link_libraries PROJECT_NAME QT_COMPONENTS)
145-
set(shiboken_LINK_LIBRARIES
146-
${SHIBOKEN_PYTHON_LIBRARIES}
147-
${SHIBOKEN_LIBRARY}
148-
${PYSIDE_LIBRARY}
149-
)
150-
151-
foreach(component ${QT_COMPONENTS})
152-
string(TOUPPER ${component} component)
153-
set(shiboken_LINK_LIBRARIES ${shiboken_LINK_LIBRARIES} ${QT_${component}_LIBRARY})
154-
endforeach()
155-
156-
target_link_libraries(${PROJECT_NAME} ${shiboken_LINK_LIBRARIES})
130+
set(shiboken_LINK_LIBRARIES
131+
${SHIBOKEN_PYTHON_LIBRARIES}
132+
${SHIBOKEN_LIBRARY}
133+
${PYSIDE_LIBRARY}
134+
)
135+
136+
foreach(component ${QT_COMPONENTS})
137+
string(TOUPPER ${component} component)
138+
set(shiboken_LINK_LIBRARIES ${shiboken_LINK_LIBRARIES} ${QT_${component}_LIBRARY})
139+
endforeach()
140+
141+
target_link_libraries(${PROJECT_NAME} ${shiboken_LINK_LIBRARIES})
157142
endfunction()

0 commit comments

Comments
 (0)