2015-11-08 15:24:28 +00:00
|
|
|
# Macros for PyQt
|
2010-06-20 17:09:21 +00:00
|
|
|
# ~~~~~~~~~~~~~~~~
|
|
|
|
# Copyright (c) 2009, Juergen E. Fischer <jef at norbit dot de>
|
|
|
|
# Redistribution and use is allowed according to the terms of the BSD license.
|
|
|
|
# For details see the accompanying COPYING-CMAKE-SCRIPTS file.
|
2010-01-16 11:04:41 +00:00
|
|
|
|
2016-09-20 09:45:28 +10:00
|
|
|
SET(PYUIC_PROG_NAME pyuic5)
|
|
|
|
SET(PYUIC_PROG_NAMES pyuic5)
|
|
|
|
SET(PYRCC_PROG_NAME pyrcc5)
|
2010-01-16 11:04:41 +00:00
|
|
|
|
2015-11-08 15:24:28 +00:00
|
|
|
IF(NOT PYUIC_PROGRAM)
|
2021-04-01 20:29:50 +02:00
|
|
|
FIND_PROGRAM(PYUIC_PROGRAM NAMES ${PYUIC_PROG_NAMES} PATHS $ENV{LIB_DIR}/bin)
|
2015-11-08 15:24:28 +00:00
|
|
|
IF (NOT PYUIC_PROGRAM)
|
2019-07-09 15:21:09 +02:00
|
|
|
MESSAGE(FATAL_ERROR "pyuic5 not found - aborting")
|
2015-11-08 15:24:28 +00:00
|
|
|
ENDIF (NOT PYUIC_PROGRAM)
|
|
|
|
ENDIF(NOT PYUIC_PROGRAM)
|
2010-01-16 11:04:41 +00:00
|
|
|
|
|
|
|
# Adapted from QT4_WRAP_UI
|
2015-11-08 15:24:28 +00:00
|
|
|
MACRO(PYQT_WRAP_UI outfiles )
|
2021-09-28 21:01:47 +02:00
|
|
|
SET(PYUIC_WRAPPER_OUTPUT_DIRECTORY "${PYTHON_OUTPUT_DIRECTORY}")
|
|
|
|
SET(PYUIC_WRAPPER_PYTHON_EXECUTABLE "${Python_EXECUTABLE}")
|
2019-04-29 17:10:13 +02:00
|
|
|
IF(CMAKE_HOST_WIN32)
|
2016-05-23 19:38:17 +10:00
|
|
|
IF(USING_NINJA OR USING_NMAKE)
|
2020-04-14 09:39:56 +10:00
|
|
|
SET(PYUIC_WRAPPER "${CMAKE_SOURCE_DIR}/scripts/pyuic_wrapper.bat")
|
2016-05-23 19:38:17 +10:00
|
|
|
SET(PYUIC_WRAPPER_PATH "${QGIS_OUTPUT_DIRECTORY}/bin")
|
|
|
|
ELSE(USING_NINJA OR USING_NMAKE)
|
2020-04-14 09:39:56 +10:00
|
|
|
SET(PYUIC_WRAPPER "${CMAKE_SOURCE_DIR}/scripts/pyuic_wrapper.bat")
|
2016-05-23 19:38:17 +10:00
|
|
|
SET(PYUIC_WRAPPER_PATH "${QGIS_OUTPUT_DIRECTORY}/bin/${CMAKE_BUILD_TYPE}")
|
|
|
|
ENDIF(USING_NINJA OR USING_NMAKE)
|
2021-09-28 21:01:47 +02:00
|
|
|
ELSEIF(MINGW)
|
|
|
|
# Clear all variables to invoke PYUIC_PROGRAM directly
|
|
|
|
SET(PYUIC_WRAPPER_OUTPUT_DIRECTORY "")
|
|
|
|
SET(PYUIC_WRAPPER_PYTHON_EXECUTABLE "")
|
|
|
|
ELSE()
|
2014-05-22 10:13:23 +02:00
|
|
|
# TODO osx
|
2020-04-14 09:39:56 +10:00
|
|
|
SET(PYUIC_WRAPPER "${CMAKE_SOURCE_DIR}/scripts/pyuic_wrapper.sh")
|
2022-02-18 23:22:17 +01:00
|
|
|
SET(PYUIC_WRAPPER_PATH "${QGIS_OUTPUT_DIRECTORY}/lib${LIB_SUFFIX}")
|
2021-09-28 21:01:47 +02:00
|
|
|
ENDIF()
|
2014-05-22 10:13:23 +02:00
|
|
|
|
2010-01-16 11:04:41 +00:00
|
|
|
FOREACH(it ${ARGN})
|
|
|
|
GET_FILENAME_COMPONENT(outfile ${it} NAME_WE)
|
|
|
|
GET_FILENAME_COMPONENT(infile ${it} ABSOLUTE)
|
|
|
|
SET(outfile ${CMAKE_CURRENT_BINARY_DIR}/ui_${outfile}.py)
|
|
|
|
ADD_CUSTOM_COMMAND(OUTPUT ${outfile}
|
2021-09-28 21:01:47 +02:00
|
|
|
COMMAND ${PYUIC_WRAPPER} "${PYUIC_PROGRAM}" "${PYUIC_WRAPPER_PATH}" "${PYUIC_WRAPPER_OUTPUT_DIRECTORY}" "${PYUIC_WRAPPER_PYTHON_EXECUTABLE}" ${infile} -o ${outfile}
|
2015-11-08 15:24:28 +00:00
|
|
|
MAIN_DEPENDENCY ${infile}
|
2016-03-16 00:34:06 +01:00
|
|
|
DEPENDS pygui pycore pyqtcompat
|
2010-01-16 11:04:41 +00:00
|
|
|
)
|
|
|
|
SET(${outfiles} ${${outfiles}} ${outfile})
|
|
|
|
ENDFOREACH(it)
|
2015-11-08 15:24:28 +00:00
|
|
|
ENDMACRO(PYQT_WRAP_UI)
|
2010-01-16 11:04:41 +00:00
|
|
|
|
2015-11-08 15:24:28 +00:00
|
|
|
IF(NOT PYRCC_PROGRAM)
|
2021-04-01 20:29:50 +02:00
|
|
|
FIND_PROGRAM(PYRCC_PROGRAM NAMES ${PYRCC_PROG_NAME} PATHS $ENV{LIB_DIR}/bin)
|
2015-11-08 15:24:28 +00:00
|
|
|
IF (NOT PYRCC_PROGRAM)
|
2019-07-09 15:21:09 +02:00
|
|
|
MESSAGE(FATAL_ERROR "pyrcc5 not found - aborting")
|
2015-11-08 15:24:28 +00:00
|
|
|
ENDIF (NOT PYRCC_PROGRAM)
|
|
|
|
ENDIF(NOT PYRCC_PROGRAM)
|
2010-01-16 11:04:41 +00:00
|
|
|
|
|
|
|
# Adapted from QT4_ADD_RESOURCES
|
2015-11-08 15:24:28 +00:00
|
|
|
MACRO (PYQT_ADD_RESOURCES outfiles )
|
2010-01-16 11:04:41 +00:00
|
|
|
FOREACH (it ${ARGN})
|
|
|
|
GET_FILENAME_COMPONENT(outfile ${it} NAME_WE)
|
|
|
|
GET_FILENAME_COMPONENT(infile ${it} ABSOLUTE)
|
|
|
|
GET_FILENAME_COMPONENT(rc_path ${infile} PATH)
|
|
|
|
SET(outfile ${CMAKE_CURRENT_BINARY_DIR}/${outfile}_rc.py)
|
2015-11-08 15:24:28 +00:00
|
|
|
# parse file for dependencies
|
2010-01-16 11:04:41 +00:00
|
|
|
# all files are absolute paths or relative to the location of the qrc file
|
|
|
|
FILE(READ "${infile}" _RC_FILE_CONTENTS)
|
|
|
|
STRING(REGEX MATCHALL "<file[^<]+" _RC_FILES "${_RC_FILE_CONTENTS}")
|
|
|
|
SET(_RC_DEPENDS)
|
|
|
|
FOREACH(_RC_FILE ${_RC_FILES})
|
|
|
|
STRING(REGEX REPLACE "^<file[^>]*>" "" _RC_FILE "${_RC_FILE}")
|
|
|
|
STRING(REGEX MATCH "^/|([A-Za-z]:/)" _ABS_PATH_INDICATOR "${_RC_FILE}")
|
|
|
|
IF(NOT _ABS_PATH_INDICATOR)
|
|
|
|
SET(_RC_FILE "${rc_path}/${_RC_FILE}")
|
|
|
|
ENDIF(NOT _ABS_PATH_INDICATOR)
|
|
|
|
SET(_RC_DEPENDS ${_RC_DEPENDS} "${_RC_FILE}")
|
|
|
|
ENDFOREACH(_RC_FILE)
|
|
|
|
ADD_CUSTOM_COMMAND(OUTPUT ${outfile}
|
2017-11-05 11:24:59 -07:00
|
|
|
COMMAND ${PYRCC_PROGRAM} ${_name_opt} -o ${outfile} ${infile}
|
2010-01-16 11:04:41 +00:00
|
|
|
MAIN_DEPENDENCY ${infile}
|
|
|
|
DEPENDS ${_RC_DEPENDS})
|
|
|
|
SET(${outfiles} ${${outfiles}} ${outfile})
|
|
|
|
ENDFOREACH (it)
|
2015-11-08 15:24:28 +00:00
|
|
|
ENDMACRO (PYQT_ADD_RESOURCES)
|