mirror of
https://github.com/qgis/QGIS.git
synced 2025-02-22 00:06:12 -05:00
use cmake native FindPython (#42497)
This commit is contained in:
parent
cb24fe48e1
commit
555f516925
@ -1,14 +1,15 @@
|
||||
#############################################################
|
||||
# CMake settings
|
||||
cmake_minimum_required(VERSION 3.10.0)
|
||||
cmake_minimum_required(VERSION 3.12.0)
|
||||
set(CMAKE_COLOR_MAKEFILE ON)
|
||||
set(CMAKE_AUTORCC ON)
|
||||
# set path to additional CMake modules
|
||||
set(CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmake ${CMAKE_MODULE_PATH})
|
||||
# POLICIES
|
||||
cmake_policy (SET CMP0048 NEW)
|
||||
cmake_policy (SET CMP0053 NEW)
|
||||
cmake_policy (SET CMP0071 NEW)
|
||||
cmake_policy(SET CMP0048 NEW)
|
||||
cmake_policy(SET CMP0053 NEW)
|
||||
cmake_policy(SET CMP0071 NEW)
|
||||
cmake_policy(SET CMP0094 NEW)
|
||||
|
||||
# don't relink it only the shared object changes
|
||||
set(CMAKE_LINK_DEPENDS_NO_SHARED ON)
|
||||
@ -932,16 +933,15 @@ endif()
|
||||
set(QGIS_INSTALL_SYS_LIBS TRUE CACHE BOOL "If set to TRUE install all required system libs in the output package")
|
||||
|
||||
#############################################################
|
||||
# Python build dependency
|
||||
# Python
|
||||
|
||||
find_package(PythonLibrary REQUIRED)
|
||||
set(MIN_PYTHON_VERSION "3.7")
|
||||
if(${PYTHON_SHORT_VERSION} VERSION_LESS ${MIN_PYTHON_VERSION})
|
||||
message(FATAL_ERROR "Python version ${PYTHON_SHORT_VERSION} is too old. Minimum Python version is ${MIN_PYTHON_VERSION}.")
|
||||
endif()
|
||||
set(Python_FIND_FRAMEWORK "LAST")
|
||||
|
||||
#############################################################
|
||||
# Python bindings
|
||||
find_package(Python ${MIN_PYTHON_VERSION} REQUIRED COMPONENTS Interpreter Development)
|
||||
message("-- Found Python executable: ${Python_EXECUTABLE} (version ${Python_VERSION})")
|
||||
message("-- Python library: ${Python_LIBRARIES}")
|
||||
message("-- Python site-packages: ${Python_SITEARCH}")
|
||||
|
||||
if (WITH_CORE AND WITH_BINDINGS AND NOT WITH_QT6)
|
||||
# python support: check for interpreter, sip, pyqt5
|
||||
@ -960,15 +960,15 @@ if (WITH_CORE AND WITH_BINDINGS AND NOT WITH_QT6)
|
||||
set(SIP_CONCAT_PARTS 11)
|
||||
|
||||
if (NOT BINDINGS_GLOBAL_INSTALL)
|
||||
set(PYTHON_SITE_PACKAGES_DIR ${QGIS_DATA_DIR}/python)
|
||||
set(Python_SITEARCH ${QGIS_DATA_DIR}/python)
|
||||
endif()
|
||||
|
||||
if (WITH_CUSTOM_WIDGETS)
|
||||
set(PYUIC_WIDGET_PLUGIN_DIRECTORY ${PYQT5_MOD_DIR}/uic/widget-plugins/)
|
||||
endif()
|
||||
|
||||
endif()
|
||||
|
||||
|
||||
#############################################################
|
||||
# create qgsconfig.h
|
||||
# installed with app target
|
||||
|
@ -256734,7 +256734,7 @@ Nathan Woodrow <madmanwoo@gmail.com> 2013-09-14
|
||||
|
||||
Jürgen E. Fischer <jef@norbit.de> 2013-09-13
|
||||
|
||||
fix retrieval of PYTHON_SITE_PACKAGES_DIR - broke debian builds
|
||||
fix retrieval of Python_SITEARCH - broke debian builds
|
||||
|
||||
Merge: b14e13388e 2b4e13930d
|
||||
Marco Hugentobler <marco.hugentobler@sourcepole.ch> 2013-09-13
|
||||
|
@ -1,40 +0,0 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
#
|
||||
# Copyright (c) 2007, Simon Edwards <simon@simonzone.com>
|
||||
# All rights reserved.
|
||||
#
|
||||
# Redistribution and use in source and binary forms, with or without
|
||||
# modification, are permitted provided that the following conditions are met:
|
||||
# * Redistributions of source code must retain the above copyright
|
||||
# notice, this list of conditions and the following disclaimer.
|
||||
# * Redistributions in binary form must reproduce the above copyright
|
||||
# notice, this list of conditions and the following disclaimer in the
|
||||
# documentation and/or other materials provided with the distribution.
|
||||
# * Neither the name of the Simon Edwards <simon@simonzone.com> nor the
|
||||
# names of its contributors may be used to endorse or promote products
|
||||
# derived from this software without specific prior written permission.
|
||||
#
|
||||
# THIS SOFTWARE IS PROVIDED BY Simon Edwards <simon@simonzone.com> ''AS IS'' AND ANY
|
||||
# EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||
# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
# DISCLAIMED. IN NO EVENT SHALL Simon Edwards <simon@simonzone.com> BE LIABLE FOR ANY
|
||||
# DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||
# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
|
||||
# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
#
|
||||
# FindLibPython.py
|
||||
# Copyright (c) 2007, Simon Edwards <simon@simonzone.com>
|
||||
# Redistribution and use is allowed according to the terms of the BSD license.
|
||||
# For details see the accompanying COPYING-CMAKE-SCRIPTS file.
|
||||
|
||||
import sys
|
||||
import distutils.sysconfig
|
||||
|
||||
print("exec_prefix:%s" % sys.exec_prefix)
|
||||
print("short_version:%s" % sys.version[:3])
|
||||
print("long_version:%s" % sys.version.split()[0])
|
||||
print("py_inc_dir:%s" % distutils.sysconfig.get_python_inc())
|
||||
print("site_packages_dir:%s" % distutils.sysconfig.get_python_lib(plat_specific=1))
|
@ -29,7 +29,7 @@ ELSE(EXISTS PYQT5_VERSION)
|
||||
|
||||
FIND_FILE(_find_pyqt5_py FindPyQt5.py PATHS ${CMAKE_MODULE_PATH} NO_CMAKE_FIND_ROOT_PATH)
|
||||
|
||||
EXECUTE_PROCESS(COMMAND ${PYTHON_EXECUTABLE} ${_find_pyqt5_py} OUTPUT_VARIABLE pyqt_config)
|
||||
EXECUTE_PROCESS(COMMAND ${Python_EXECUTABLE} ${_find_pyqt5_py} OUTPUT_VARIABLE pyqt_config)
|
||||
IF(pyqt_config)
|
||||
STRING(REGEX REPLACE "^pyqt_version:([^\n]+).*$" "\\1" PYQT5_VERSION ${pyqt_config})
|
||||
STRING(REGEX REPLACE ".*\npyqt_version_str:([^\n]+).*$" "\\1" PYQT5_VERSION_STR ${pyqt_config})
|
||||
|
@ -1,121 +0,0 @@
|
||||
# Find Python
|
||||
# ~~~~~~~~~~~
|
||||
# Find the Python interpreter and related Python directories.
|
||||
#
|
||||
# This file defines the following variables:
|
||||
#
|
||||
# PYTHON_EXECUTABLE - The path and filename of the Python interpreter.
|
||||
#
|
||||
# PYTHON_SHORT_VERSION - The version of the Python interpreter found,
|
||||
# excluding the patch version number. (e.g. 2.5 and not 2.5.1))
|
||||
#
|
||||
# PYTHON_LONG_VERSION - The version of the Python interpreter found as a human
|
||||
# readable string.
|
||||
#
|
||||
# PYTHON_SITE_PACKAGES_DIR - Location of the Python site-packages directory.
|
||||
#
|
||||
# PYTHON_INCLUDE_PATH - Directory holding the python.h include file.
|
||||
#
|
||||
# PYTHON_LIBRARY, PYTHON_LIBRARIES- Location of the Python library.
|
||||
|
||||
# Copyright (c) 2007, Simon Edwards <simon@simonzone.com>
|
||||
# Redistribution and use is allowed according to the terms of the BSD license.
|
||||
# For details see the accompanying COPYING-CMAKE-SCRIPTS file.
|
||||
|
||||
|
||||
|
||||
INCLUDE(CMakeFindFrameworks)
|
||||
|
||||
if(EXISTS "${PYTHON_INCLUDE_PATH}" AND EXISTS "${PYTHON_LIBRARY}" AND EXISTS "${PYTHON_SITE_PACKAGES_DIR}")
|
||||
# Already in cache, be silent
|
||||
set(PYTHONLIBRARY_FOUND TRUE)
|
||||
else(EXISTS "${PYTHON_INCLUDE_PATH}" AND EXISTS "${PYTHON_LIBRARY}" AND EXISTS "${PYTHON_SITE_PACKAGES_DIR}")
|
||||
|
||||
FIND_PACKAGE(PythonInterp 3)
|
||||
|
||||
if(PYTHONINTERP_FOUND)
|
||||
FIND_FILE(_find_lib_python_py FindLibPython.py PATHS ${CMAKE_MODULE_PATH} NO_CMAKE_FIND_ROOT_PATH)
|
||||
EXECUTE_PROCESS(COMMAND ${PYTHON_EXECUTABLE} ${_find_lib_python_py} OUTPUT_VARIABLE python_config)
|
||||
|
||||
if(python_config)
|
||||
STRING(REGEX REPLACE ".*exec_prefix:([^\n]+).*$" "\\1" PYTHON_PREFIX ${python_config})
|
||||
STRING(REGEX REPLACE ".*\nshort_version:([^\n]+).*$" "\\1" PYTHON_SHORT_VERSION ${python_config})
|
||||
STRING(REGEX REPLACE ".*\nlong_version:([^\n]+).*$" "\\1" PYTHON_LONG_VERSION ${python_config})
|
||||
STRING(REGEX REPLACE ".*\npy_inc_dir:([^\n]+).*$" "\\1" PYTHON_INCLUDE_PATH ${python_config})
|
||||
if(NOT PYTHON_SITE_PACKAGES_DIR)
|
||||
if(NOT PYTHON_LIBS_WITH_KDE_LIBS)
|
||||
STRING(REGEX REPLACE ".*\nsite_packages_dir:([^\n]+).*$" "\\1" PYTHON_SITE_PACKAGES_DIR ${python_config})
|
||||
else(NOT PYTHON_LIBS_WITH_KDE_LIBS)
|
||||
set(PYTHON_SITE_PACKAGES_DIR ${KDE4_LIB_INSTALL_DIR}/python${PYTHON_SHORT_VERSION}/site-packages)
|
||||
endif(NOT PYTHON_LIBS_WITH_KDE_LIBS)
|
||||
endif(NOT PYTHON_SITE_PACKAGES_DIR)
|
||||
STRING(REGEX REPLACE "([0-9]+).([0-9]+)" "\\1\\2" PYTHON_SHORT_VERSION_NO_DOT ${PYTHON_SHORT_VERSION})
|
||||
set(PYTHON_LIBRARY_NAMES python${PYTHON_SHORT_VERSION} python${PYTHON_SHORT_VERSION_NO_DOT} python${PYTHON_SHORT_VERSION}m python${PYTHON_SHORT_VERSION_NO_DOT}m)
|
||||
if(WIN32)
|
||||
STRING(REPLACE "\\" "/" PYTHON_SITE_PACKAGES_DIR ${PYTHON_SITE_PACKAGES_DIR})
|
||||
FIND_LIBRARY(PYTHON_LIBRARY NAMES ${PYTHON_LIBRARY_NAMES} PATHS ${PYTHON_PREFIX}/lib ${PYTHON_PREFIX}/libs)
|
||||
elseif(APPLE AND QGIS_MAC_DEPS_DIR)
|
||||
FIND_LIBRARY(PYTHON_LIBRARY NAMES ${PYTHON_LIBRARY_NAMES} PATHS $ENV{LIB_DIR}/lib)
|
||||
else(WIN32)
|
||||
FIND_LIBRARY(PYTHON_LIBRARY NAMES ${PYTHON_LIBRARY_NAMES})
|
||||
endif(WIN32)
|
||||
set(PYTHON_INCLUDE_PATH ${PYTHON_INCLUDE_PATH} CACHE FILEPATH "Directory holding the python.h include file" FORCE)
|
||||
set(PYTHONLIBRARY_FOUND TRUE)
|
||||
endif(python_config)
|
||||
|
||||
# adapted from cmake's builtin FindPythonLibs
|
||||
if(APPLE)
|
||||
# If a framework has been detected in the include path, make sure
|
||||
# framework's versioned library (not any .dylib) is used for linking
|
||||
# NOTE: don't rely upon Python.framework/Versions/Current, since that may be 2.7
|
||||
if("${PYTHON_INCLUDE_PATH}" MATCHES "Python\\.framework")
|
||||
set(PYTHON_LIBRARY "")
|
||||
set(PYTHON_DEBUG_LIBRARY "")
|
||||
# get clean path to just framework
|
||||
STRING(REGEX REPLACE "^(.*/Python\\.framework).*$" "\\1" _py_fw "${PYTHON_INCLUDE_PATH}")
|
||||
if("${_py_fw}" MATCHES "Cellar/python")
|
||||
# Appears to be a Homebrew Python install; do specific fix ups
|
||||
# get Homebrew prefix (may not be /usr/local)
|
||||
STRING(REGEX REPLACE "^(.+)/Cellar.*$" "\\1" _hb_prefix "${_py_fw}")
|
||||
# prefer the Homebrew prefix framework over only versioned Python keg
|
||||
set(_py_fw "${_hb_prefix}/Frameworks/Python.framework")
|
||||
# prefer the symlinked-to Homebrew site-packages over only versioned Python keg
|
||||
set(PYTHON_SITE_PACKAGES_DIR "${_hb_prefix}/lib/python${PYTHON_SHORT_VERSION}/site-packages")
|
||||
endif("${_py_fw}" MATCHES "Cellar/python")
|
||||
# prefer the Headers subdirectory for includes
|
||||
if(EXISTS "${_py_fw}/Versions/${PYTHON_SHORT_VERSION}/Headers")
|
||||
set(PYTHON_INCLUDE_PATH "${_py_fw}/Versions/${PYTHON_SHORT_VERSION}/Headers" CACHE FILEPATH "Directory holding the python.h include file" FORCE)
|
||||
endif(EXISTS "${_py_fw}/Versions/${PYTHON_SHORT_VERSION}/Headers")
|
||||
endif("${PYTHON_INCLUDE_PATH}" MATCHES "Python\\.framework")
|
||||
if(NOT PYTHON_LIBRARY)
|
||||
# ensure the versioned framework's library is defined, instead of relying upon -F search paths
|
||||
if(EXISTS "${_py_fw}/Versions/${PYTHON_SHORT_VERSION}/Python")
|
||||
set(PYTHON_LIBRARY "${_py_fw}/Versions/${PYTHON_SHORT_VERSION}/Python" CACHE FILEPATH "Python framework library" FORCE)
|
||||
endif(EXISTS "${_py_fw}/Versions/${PYTHON_SHORT_VERSION}/Python")
|
||||
endif(NOT PYTHON_LIBRARY)
|
||||
if(PYTHON_LIBRARY)
|
||||
set(PYTHONLIBRARY_FOUND TRUE)
|
||||
endif(PYTHON_LIBRARY)
|
||||
endif(APPLE)
|
||||
endif(PYTHONINTERP_FOUND)
|
||||
|
||||
if(PYTHONLIBRARY_FOUND)
|
||||
if(APPLE)
|
||||
# keep reference to system or custom python site-packages
|
||||
# useful during app-bundling operations
|
||||
set(PYTHON_SITE_PACKAGES_SYS ${PYTHON_SITE_PACKAGES_DIR} CACHE FILEPATH "Directory holding Python site packages")
|
||||
endif(APPLE)
|
||||
set(PYTHON_LIBRARIES ${PYTHON_LIBRARY})
|
||||
if(NOT PYTHONLIBRARY_FIND_QUIETLY)
|
||||
message(STATUS "Found Python executable: ${PYTHON_EXECUTABLE}")
|
||||
message(STATUS "Found Python version: ${PYTHON_LONG_VERSION}")
|
||||
message(STATUS "Found Python library: ${PYTHON_LIBRARY}")
|
||||
message(STATUS "Found Python site-packages: ${PYTHON_SITE_PACKAGES_DIR}")
|
||||
endif(NOT PYTHONLIBRARY_FIND_QUIETLY)
|
||||
else(PYTHONLIBRARY_FOUND)
|
||||
if(PYTHONLIBRARY_FIND_REQUIRED)
|
||||
message(FATAL_ERROR "Could not find Python")
|
||||
endif(PYTHONLIBRARY_FIND_REQUIRED)
|
||||
endif(PYTHONLIBRARY_FOUND)
|
||||
|
||||
endif (EXISTS "${PYTHON_INCLUDE_PATH}" AND EXISTS "${PYTHON_LIBRARY}" AND EXISTS "${PYTHON_SITE_PACKAGES_DIR}")
|
@ -25,7 +25,7 @@ ELSE(QSCI_MOD_VERSION_STR)
|
||||
|
||||
SET(QSCI_VER 5)
|
||||
|
||||
EXECUTE_PROCESS(COMMAND ${PYTHON_EXECUTABLE} ${_find_qsci_py} ${QSCI_VER} OUTPUT_VARIABLE qsci_ver)
|
||||
EXECUTE_PROCESS(COMMAND ${Python_EXECUTABLE} ${_find_qsci_py} ${QSCI_VER} OUTPUT_VARIABLE qsci_ver)
|
||||
|
||||
IF(qsci_ver)
|
||||
STRING(REGEX REPLACE "^qsci_version_str:([^\n]+).*$" "\\1" QSCI_MOD_VERSION_STR ${qsci_ver})
|
||||
|
@ -33,7 +33,7 @@ ELSE(SIP_VERSION)
|
||||
|
||||
FIND_FILE(_find_sip_py FindSIP.py PATHS ${CMAKE_MODULE_PATH} NO_CMAKE_FIND_ROOT_PATH)
|
||||
|
||||
EXECUTE_PROCESS(COMMAND ${PYTHON_EXECUTABLE} ${_find_sip_py} OUTPUT_VARIABLE sip_config)
|
||||
EXECUTE_PROCESS(COMMAND ${Python_EXECUTABLE} ${_find_sip_py} OUTPUT_VARIABLE sip_config)
|
||||
IF(sip_config)
|
||||
STRING(REGEX REPLACE "^sip_version:([^\n]+).*$" "\\1" SIP_VERSION ${sip_config})
|
||||
STRING(REGEX REPLACE ".*\nsip_version_num:([^\n]+).*$" "\\1" SIP_VERSION_NUM ${sip_config})
|
||||
|
@ -44,7 +44,7 @@ MACRO(PYQT_WRAP_UI outfiles )
|
||||
GET_FILENAME_COMPONENT(infile ${it} ABSOLUTE)
|
||||
SET(outfile ${CMAKE_CURRENT_BINARY_DIR}/ui_${outfile}.py)
|
||||
ADD_CUSTOM_COMMAND(OUTPUT ${outfile}
|
||||
COMMAND ${PYUIC_WRAPPER} "${PYUIC_PROGRAM}" "${PYUIC_WRAPPER_PATH}" "${QGIS_OUTPUT_DIRECTORY}/python" "${PYTHON_EXECUTABLE}" ${infile} -o ${outfile}
|
||||
COMMAND ${PYUIC_WRAPPER} "${PYUIC_PROGRAM}" "${PYUIC_WRAPPER_PATH}" "${QGIS_OUTPUT_DIRECTORY}/python" "${Python_EXECUTABLE}" ${infile} -o ${outfile}
|
||||
MAIN_DEPENDENCY ${infile}
|
||||
DEPENDS pygui pycore pyqtcompat
|
||||
)
|
||||
|
@ -44,7 +44,7 @@ MACRO(PYTHON_INSTALL SOURCE_FILE DESTINATION_DIR)
|
||||
ADD_CUSTOM_COMMAND(
|
||||
TARGET compile_python_files
|
||||
COMMAND ${CMAKE_COMMAND} -E echo ${message}
|
||||
COMMAND ${PYTHON_EXECUTABLE} ${_python_compile_py} ${_bin_py}
|
||||
COMMAND ${Python_EXECUTABLE} ${_python_compile_py} ${_bin_py}
|
||||
DEPENDS ${_absfilename}
|
||||
)
|
||||
ELSE(_abs_bin_py STREQUAL ${_absfilename})
|
||||
@ -52,7 +52,7 @@ MACRO(PYTHON_INSTALL SOURCE_FILE DESTINATION_DIR)
|
||||
TARGET compile_python_files
|
||||
COMMAND ${CMAKE_COMMAND} -E echo ${message}
|
||||
COMMAND ${CMAKE_COMMAND} -E copy ${_absfilename} ${_bin_py}
|
||||
COMMAND ${PYTHON_EXECUTABLE} ${_python_compile_py} ${_bin_py}
|
||||
COMMAND ${Python_EXECUTABLE} ${_python_compile_py} ${_bin_py}
|
||||
DEPENDS ${_absfilename}
|
||||
)
|
||||
ENDIF(_abs_bin_py STREQUAL ${_absfilename})
|
||||
|
@ -151,7 +151,7 @@ MACRO(BUILD_SIP_PYTHON_MODULE MODULE_NAME SIP_FILES EXTRA_OBJECTS)
|
||||
|
||||
SET_TARGET_PROPERTIES(${_logical_name} PROPERTIES CXX_VISIBILITY_PRESET default)
|
||||
IF (NOT APPLE)
|
||||
TARGET_LINK_LIBRARIES(${_logical_name} ${PYTHON_LIBRARY})
|
||||
TARGET_LINK_LIBRARIES(${_logical_name} ${Python_LIBRARIES})
|
||||
ENDIF (NOT APPLE)
|
||||
TARGET_LINK_LIBRARIES(${_logical_name} ${EXTRA_LINK_LIBRARIES})
|
||||
IF (APPLE)
|
||||
@ -172,5 +172,5 @@ MACRO(BUILD_SIP_PYTHON_MODULE MODULE_NAME SIP_FILES EXTRA_OBJECTS)
|
||||
)
|
||||
ENDIF(WIN32)
|
||||
|
||||
INSTALL(TARGETS ${_logical_name} DESTINATION "${PYTHON_SITE_PACKAGES_DIR}/${_parent_module_path}")
|
||||
INSTALL(TARGETS ${_logical_name} DESTINATION "${Python_SITEARCH}/${_parent_module_path}")
|
||||
ENDMACRO(BUILD_SIP_PYTHON_MODULE MODULE_NAME SIP_FILES EXTRA_OBJECTS)
|
||||
|
@ -19,9 +19,6 @@
|
||||
# For details see the accompanying COPYING-CMAKE-SCRIPTS
|
||||
#
|
||||
|
||||
# Need python interpreter:
|
||||
FIND_PACKAGE(PythonInterp 3 REQUIRED)
|
||||
MARK_AS_ADVANCED(PYTHON_EXECUTABLE)
|
||||
|
||||
MACRO(ADD_PYTHON_TEST TESTNAME FILENAME)
|
||||
GET_SOURCE_FILE_PROPERTY(loc ${FILENAME} LOCATION)
|
||||
@ -84,9 +81,9 @@ MESSAGE(\"export LD_LIBRARY_PATH=\$ENV{LD_LIBRARY_PATH}\")
|
||||
|
||||
FILE(APPEND ${CMAKE_CURRENT_BINARY_DIR}/${TESTNAME}.cmake "
|
||||
MESSAGE(\"export PYTHONPATH=\$ENV{PYTHONPATH}\")
|
||||
MESSAGE(STATUS \"Running ${PYTHON_TEST_WRAPPER_PROCESSED} ${PYTHON_EXECUTABLE} ${loc} ${wo_semicolon}\")
|
||||
MESSAGE(STATUS \"Running ${PYTHON_TEST_WRAPPER_PROCESSED} ${Python_EXECUTABLE} ${loc} ${wo_semicolon}\")
|
||||
EXECUTE_PROCESS(
|
||||
COMMAND ${PYTHON_TEST_WRAPPER_PROCESSED} ${PYTHON_EXECUTABLE} ${loc} ${wo_semicolon}
|
||||
COMMAND ${PYTHON_TEST_WRAPPER_PROCESSED} ${Python_EXECUTABLE} ${loc} ${wo_semicolon}
|
||||
RESULT_VARIABLE import_res
|
||||
)
|
||||
# Pass the output back to ctest
|
||||
@ -114,5 +111,5 @@ MACRO(ADD_PYTHON_COMPILEALL_TEST DIRNAME)
|
||||
# Find the python script:
|
||||
GET_FILENAME_COMPONENT(PYTHON_COMPILE_ALL_PY "${temp_path}/../compileall.py" ABSOLUTE)
|
||||
# add test, use DIRNAME to create unique name for the test:
|
||||
ADD_TEST(COMPILE_ALL-${DIRNAME} ${PYTHON_EXECUTABLE} "${PYTHON_COMPILE_ALL_PY}" -q ${DIRNAME})
|
||||
ADD_TEST(COMPILE_ALL-${DIRNAME} ${Python_EXECUTABLE} "${PYTHON_COMPILE_ALL_PY}" -q ${DIRNAME})
|
||||
ENDMACRO(ADD_PYTHON_COMPILEALL_TEST)
|
||||
|
@ -145,9 +145,9 @@ ENDFUNCTION() # SETUP_TARGET_FOR_COVERAGE
|
||||
# Pass them in list form, e.g.: "-j;2" for -j 2
|
||||
FUNCTION(SETUP_TARGET_FOR_COVERAGE_COBERTURA _targetname _testrunner _outputname)
|
||||
|
||||
IF(NOT PYTHON_EXECUTABLE)
|
||||
IF(NOT Python_EXECUTABLE)
|
||||
MESSAGE(FATAL_ERROR "Python not found! Aborting...")
|
||||
ENDIF() # NOT PYTHON_EXECUTABLE
|
||||
ENDIF() # NOT Python_EXECUTABLE
|
||||
|
||||
IF(NOT GCOVR_PATH)
|
||||
MESSAGE(FATAL_ERROR "gcovr not found! Aborting...")
|
||||
|
@ -31,7 +31,7 @@ if (UNIX AND NOT APPLE AND PYQT5_FOUND)
|
||||
add_custom_command(
|
||||
OUTPUT ${CMAKE_BINARY_DIR}/org.qgis.qgis.desktop ${CMAKE_BINARY_DIR}/org.qgis.qgis.appdata.xml
|
||||
WORKING_DIRECTORY "${CMAKE_SOURCE_DIR}"
|
||||
COMMAND ${PYTHON_EXECUTABLE}
|
||||
COMMAND ${Python_EXECUTABLE}
|
||||
ARGS ${CMAKE_SOURCE_DIR}/scripts/ts2appinfo.py "${CMAKE_BINARY_DIR}"
|
||||
COMMENT "Updating appinfo files..."
|
||||
DEPENDS ${QM_FILES} ${CMAKE_SOURCE_DIR}/linux/org.qgis.qgis.desktop.in ${CMAKE_SOURCE_DIR}/linux/org.qgis.qgis.appdata.xml.in
|
||||
|
@ -143,7 +143,7 @@ cmake -G "%CMAKEGEN%" ^
|
||||
-D SPATIALITE_LIBRARY=%O4W_ROOT%/lib/spatialite_i.lib ^
|
||||
-D PYTHON_EXECUTABLE=%O4W_ROOT%/bin/python3.exe ^
|
||||
-D SIP_BINARY_PATH=%PYTHONHOME:\=/%/sip.exe ^
|
||||
-D PYTHON_INCLUDE_PATH=%PYTHONHOME:\=/%/include ^
|
||||
-D PYTHON_INCLUDE_DIR=%PYTHONHOME:\=/%/include ^
|
||||
-D PYTHON_LIBRARY=%PYTHONHOME:\=/%/libs/%PYVER%.lib ^
|
||||
-D QT_LIBRARY_DIR=%O4W_ROOT%/lib ^
|
||||
-D QT_HEADERS_DIR=%O4W_ROOT%/apps/qt5/include ^
|
||||
|
@ -142,7 +142,7 @@ cmake -G "%CMAKEGEN%" ^
|
||||
-D SPATIALITE_LIBRARY=%O4W_ROOT%/lib/spatialite_i.lib ^
|
||||
-D PYTHON_EXECUTABLE=%O4W_ROOT%/bin/python3.exe ^
|
||||
-D SIP_BINARY_PATH=%PYTHONHOME:\=/%/sip.exe ^
|
||||
-D PYTHON_INCLUDE_PATH=%PYTHONHOME:\=/%/include ^
|
||||
-D PYTHON_INCLUDE_DIR=%PYTHONHOME:\=/%/include ^
|
||||
-D PYTHON_LIBRARY=%PYTHONHOME:\=/%/libs/%PYVER%.lib ^
|
||||
-D QT_LIBRARY_DIR=%O4W_ROOT%/lib ^
|
||||
-D QT_HEADERS_DIR=%O4W_ROOT%/apps/qt5/include ^
|
||||
|
@ -5,7 +5,7 @@ CMAKE_POLICY(SET CMP0012 NEW)
|
||||
IF(@WITH_PY_COMPILE@)
|
||||
MESSAGE(STATUS "Byte-compiling core Python utilities and plugins...")
|
||||
# exclude Python 3 modules in PyQt4.uic package
|
||||
EXECUTE_PROCESS(COMMAND @PYTHON_EXECUTABLE@ -m compileall -q -x ".*uic.port_v3.*" "$ENV{DESTDIR}@CMAKE_INSTALL_PREFIX@/@QGIS_DATA_DIR@/python")
|
||||
EXECUTE_PROCESS(COMMAND @Python_EXECUTABLE@ -m compileall -q -x ".*uic.port_v3.*" "$ENV{DESTDIR}@CMAKE_INSTALL_PREFIX@/@QGIS_DATA_DIR@/python")
|
||||
ENDIF(@WITH_PY_COMPILE@)
|
||||
|
||||
set(ENV{QGIS_PREFIX_PATH} "$ENV{DESTDIR}@CMAKE_INSTALL_PREFIX@")
|
||||
|
@ -25,7 +25,7 @@ endif()
|
||||
|
||||
# Non-default/non-option-controlled target to stage and compile plugins and extras
|
||||
add_custom_target(staged-plugins-pyc DEPENDS staged-plugins
|
||||
COMMAND ${PYTHON_EXECUTABLE} -m compileall -q "${PYTHON_OUTPUT_DIRECTORY}"
|
||||
COMMAND ${Python_EXECUTABLE} -m compileall -q "${PYTHON_OUTPUT_DIRECTORY}"
|
||||
WORKING_DIRECTORY "${CMAKE_BINARY_DIR}"
|
||||
COMMENT "Byte-compiling build output/python directory..."
|
||||
)
|
||||
@ -40,7 +40,7 @@ macro(PY_COMPILE TARGET_NAME RESOURCE_PATHS)
|
||||
if(WITH_PY_COMPILE)
|
||||
add_custom_command(TARGET ${TARGET_NAME}
|
||||
POST_BUILD
|
||||
COMMAND ${PYTHON_EXECUTABLE} -m compileall -q ${RESOURCE_PATHS}
|
||||
COMMAND ${Python_EXECUTABLE} -m compileall -q ${RESOURCE_PATHS}
|
||||
WORKING_DIRECTORY "${CMAKE_BINARY_DIR}"
|
||||
COMMENT "Byte-compiling staged resource..."
|
||||
)
|
||||
@ -51,7 +51,7 @@ endmacro(PY_COMPILE)
|
||||
macro(PY_2TO3 TARGET_NAME RESOURCE_PATHS)
|
||||
add_custom_command(TARGET ${TARGET_NAME}
|
||||
POST_BUILD
|
||||
COMMAND "${PYTHON_EXECUTABLE}" "${CMAKE_SOURCE_DIR}/scripts/2to3" --no-diffs -w ${RESOURCE_PATHS}
|
||||
COMMAND "${Python_EXECUTABLE}" "${CMAKE_SOURCE_DIR}/scripts/2to3" --no-diffs -w ${RESOURCE_PATHS}
|
||||
WORKING_DIRECTORY "${CMAKE_BINARY_DIR}"
|
||||
COMMENT "Porting ${RESOURCE_PATHS} to Python 3 and Qt5"
|
||||
)
|
||||
@ -69,7 +69,7 @@ add_subdirectory(testing)
|
||||
add_subdirectory(processing)
|
||||
|
||||
include_directories(SYSTEM
|
||||
${PYTHON_INCLUDE_PATH}
|
||||
${Python_INCLUDE_DIRS}
|
||||
${SIP_INCLUDE_DIR}
|
||||
${QT_QTCORE_INCLUDE_DIR}
|
||||
${QT_QTGUI_INCLUDE_DIR}
|
||||
@ -273,7 +273,7 @@ if(WITH_ANALYSIS)
|
||||
BUILD_SIP_PYTHON_MODULE(qgis._analysis analysis/analysis.sip ${cpp_files} "" qgis_core qgis_analysis)
|
||||
endif()
|
||||
|
||||
set(QGIS_PYTHON_DIR ${PYTHON_SITE_PACKAGES_DIR}/qgis)
|
||||
set(QGIS_PYTHON_DIR ${Python_SITEARCH}/qgis)
|
||||
|
||||
if(WITH_QSCIAPI)
|
||||
# wait until after python module builds for api files to be available
|
||||
@ -303,7 +303,7 @@ if(WITH_QSCIAPI)
|
||||
set(PAP_NAME "pyqgis.pap")
|
||||
add_custom_command(TARGET qsci-pap-src
|
||||
POST_BUILD
|
||||
COMMAND ${PYTHON_EXECUTABLE} "${APIS_SRC_DIR}/generate_console_pap.py" "${APIS_SRC_DIR}/${PAP_NAME}" "${APIS_SRC_DIR}" "${APIS_BIN_DIR}"
|
||||
COMMAND ${Python_EXECUTABLE} "${APIS_SRC_DIR}/generate_console_pap.py" "${APIS_SRC_DIR}/${PAP_NAME}" "${APIS_SRC_DIR}" "${APIS_BIN_DIR}"
|
||||
WORKING_DIRECTORY "${CMAKE_BINARY_DIR}"
|
||||
COMMENT "Generating ${PAP_NAME} for console auto-completion (MAY TAKE > 1 MINUTE!)" VERBATIM)
|
||||
endif()
|
||||
|
@ -1,4 +1,4 @@
|
||||
set (QGIS_PYQT_DIR ${PYTHON_SITE_PACKAGES_DIR}/qgis/PyQt)
|
||||
set (QGIS_PYQT_DIR ${Python_SITEARCH}/qgis/PyQt)
|
||||
set (PYTHON_OUTPUT_DIRECTORY ${QGIS_OUTPUT_DIRECTORY}/python/qgis/PyQt)
|
||||
|
||||
set(PYQT_COMPAT_FILES
|
||||
|
@ -1,6 +1,6 @@
|
||||
# See ../CMakeLists.txt for info on staged-plugins* and clean-staged-plugins targets
|
||||
|
||||
set(QGIS_PYTHON_DIR ${PYTHON_SITE_PACKAGES_DIR}/qgis)
|
||||
set(QGIS_PYTHON_DIR ${Python_SITEARCH}/qgis)
|
||||
set (PYTHON_OUTPUT_DIRECTORY ${QGIS_OUTPUT_DIRECTORY}/python)
|
||||
set (NAME processing)
|
||||
|
||||
|
@ -1,6 +1,6 @@
|
||||
# See ../CMakeLists.txt for info on staged-plugins* and clean-staged-plugins targets
|
||||
|
||||
set(QGIS_PYTHON_DIR ${PYTHON_SITE_PACKAGES_DIR}/qgis)
|
||||
set(QGIS_PYTHON_DIR ${Python_SITEARCH}/qgis)
|
||||
set (PYTHON_OUTPUT_DIRECTORY ${QGIS_OUTPUT_DIRECTORY}/python)
|
||||
|
||||
set(PY_FILES
|
||||
|
@ -783,7 +783,7 @@ endif()
|
||||
string(REPLACE "\(" "\\(" JSON_HELP_FILES "${JSON_HELP_FILES}")
|
||||
string(REPLACE "\)" "\\)" JSON_HELP_FILES "${JSON_HELP_FILES}")
|
||||
add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/qgsexpression_texts.cpp
|
||||
COMMAND ${PYTHON_EXECUTABLE} ${CMAKE_SOURCE_DIR}/scripts/process_function_template.py ${CMAKE_CURRENT_BINARY_DIR}/qgsexpression_texts.cpp.temp
|
||||
COMMAND ${Python_EXECUTABLE} ${CMAKE_SOURCE_DIR}/scripts/process_function_template.py ${CMAKE_CURRENT_BINARY_DIR}/qgsexpression_texts.cpp.temp
|
||||
COMMAND ${CMAKE_COMMAND} -DSRC=${CMAKE_CURRENT_BINARY_DIR}/qgsexpression_texts.cpp.temp -DDST=${CMAKE_CURRENT_BINARY_DIR}/qgsexpression_texts.cpp -P ${CMAKE_SOURCE_DIR}/cmake/CopyIfChanged.cmake
|
||||
DEPENDS ${JSON_HELP_FILES}
|
||||
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
|
||||
|
@ -10,7 +10,7 @@ target_include_directories(qgispython PUBLIC
|
||||
${CMAKE_BINARY_DIR}/src/python
|
||||
)
|
||||
target_include_directories(qgispython SYSTEM PRIVATE
|
||||
${PYTHON_INCLUDE_PATH}
|
||||
${Python_INCLUDE_DIRS}
|
||||
)
|
||||
|
||||
set_target_properties(qgispython PROPERTIES
|
||||
@ -27,7 +27,7 @@ endif()
|
||||
|
||||
target_link_libraries(qgispython
|
||||
qgis_core
|
||||
${PYTHON_LIBRARY}
|
||||
${Python_LIBRARIES}
|
||||
${OPENPTY_LIBRARY}
|
||||
)
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user