/
FindPySide.cmake
84 lines (77 loc) · 3.06 KB
/
FindPySide.cmake
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
#
# Copyright 2016 Pixar
#
# Licensed under the Apache License, Version 2.0 (the "Apache License")
# with the following modification; you may not use this file except in
# compliance with the Apache License and the following modification to it:
# Section 6. Trademarks. is deleted and replaced with:
#
# 6. Trademarks. This License does not grant permission to use the trade
# names, trademarks, service marks, or product names of the Licensor
# and its affiliates, except as required to comply with Section 4(c) of
# the License and to reproduce the content of the NOTICE file.
#
# You may obtain a copy of the Apache License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the Apache License with the above modification is
# distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied. See the Apache License for the specific
# language governing permissions and limitations under the Apache License.
#
if (NOT PYTHON_EXECUTABLE)
message(FATAL_ERROR "Unable to find Python executable - PySide not present")
return()
endif()
execute_process(
COMMAND "${PYTHON_EXECUTABLE}" "-c" "import PySide"
RESULT_VARIABLE pySideImportResult
)
# Pyside is preferred over PySide2 since PySide2 support is still experimental.
# If this changes, be sure that the Usdviewq.qt module has the same behavior.
if (pySideImportResult EQUAL 1 OR PYSIDE_USE_PYSIDE2)
execute_process(
COMMAND "${PYTHON_EXECUTABLE}" "-c" "import PySide2"
RESULT_VARIABLE pySideImportResult
)
if (pySideImportResult EQUAL 0)
set(pySideImportResult "PySide2")
set(pySideUIC pyside2-uic python2-pyside2-uic pyside2-uic-2.7)
else()
set(pySideImportResult 0)
endif()
else()
set(pySideImportResult "PySide")
set(pySideUIC pyside-uic python2-pyside-uic pyside-uic-2.7)
endif()
find_program(PYSIDEUICBINARY NAMES ${pySideUIC} HINTS ${PYSIDE_BIN_DIR})
if (pySideImportResult)
if (EXISTS ${PYSIDEUICBINARY})
message(STATUS "Found ${pySideImportResult}: with ${PYTHON_EXECUTABLE}, will use ${PYSIDEUICBINARY} for pyside-uic binary")
set(PYSIDE_AVAILABLE True)
if (pySideImportResult STREQUAL "PySide2")
message(STATUS "Building against PySide2 is currently experimental. "
"See https://bugreports.qt.io/browse/PYSIDE-357 if "
"'No module named Compiler' errors are encountered"
)
endif()
else()
message(STATUS "Found ${pySideImportResult} but NOT pyside-uic binary")
set(PYSIDE_AVAILABLE False)
endif()
else()
if (PYSIDE_USE_PYSIDE2)
message(STATUS "Did not find PySide2 with ${PYTHON_EXECUTABLE}")
else()
message(STATUS "Did not find PySide with ${PYTHON_EXECUTABLE}")
endif()
set(PYSIDE_AVAILABLE False)
endif()
include(FindPackageHandleStandardArgs)
find_package_handle_standard_args(PySide
REQUIRED_VARS
PYSIDE_AVAILABLE
PYSIDEUICBINARY
)