diff options
Diffstat (limited to 'sources/pyside-tools/CMakeLists.txt')
-rw-r--r-- | sources/pyside-tools/CMakeLists.txt | 122 |
1 files changed, 75 insertions, 47 deletions
diff --git a/sources/pyside-tools/CMakeLists.txt b/sources/pyside-tools/CMakeLists.txt index 3652a94c1..e629ec570 100644 --- a/sources/pyside-tools/CMakeLists.txt +++ b/sources/pyside-tools/CMakeLists.txt @@ -1,59 +1,87 @@ -cmake_minimum_required(VERSION 3.16) +# Copyright (C) 2023 The Qt Company Ltd. +# SPDX-License-Identifier: BSD-3-Clause + +cmake_minimum_required(VERSION 3.18) project(pyside-tools) -# Don't display "up-to-date / install" messages when installing, to reduce visual clutter. -if (QUIET_BUILD) - set(CMAKE_INSTALL_MESSAGE NEVER) -endif() +include(cmake/PySideToolsSetup.cmake) -find_package(Qt6 COMPONENTS Core) +if(${CMAKE_SYSTEM_NAME} STREQUAL "Android") + # create Qt6AndroidBindings.jar + if (NOT DEFINED ANDROID_SDK_ROOT) + message(FATAL_ERROR "Please provide the location of the Android SDK directory via " + "your toolchain file") + endif() + if (NOT DEFINED ANDROID_PLATFORM) + message(FATAL_ERROR "Please provide the location of the Android Platform API level via " + "your toolchain file eg: android-31") + endif() + include(cmake/PySideAndroid.cmake) + create_and_install_qt_javabindings() +else() + set(files ${CMAKE_CURRENT_SOURCE_DIR}/pyside_tool.py + ${CMAKE_CURRENT_SOURCE_DIR}/metaobjectdump.py + ${CMAKE_CURRENT_SOURCE_DIR}/project.py + ${CMAKE_CURRENT_SOURCE_DIR}/qml.py + ${CMAKE_CURRENT_SOURCE_DIR}/qtpy2cpp.py + ${CMAKE_CURRENT_SOURCE_DIR}/deploy.py + ${CMAKE_CURRENT_SOURCE_DIR}/android_deploy.py + ${CMAKE_CURRENT_SOURCE_DIR}/requirements-android.txt) -set(TOOLS_PATH "${QT6_INSTALL_PREFIX}/bin") + set(directories ${CMAKE_CURRENT_SOURCE_DIR}/deploy_lib + ${CMAKE_CURRENT_SOURCE_DIR}/project) -set(UIC_PATH "${TOOLS_PATH}/uic${CMAKE_EXECUTABLE_SUFFIX}") -set(RCC_PATH "${TOOLS_PATH}/rcc${CMAKE_EXECUTABLE_SUFFIX}") -if (APPLE) - set(DESIGNER_PATH "${TOOLS_PATH}/Designer.app") -else() - set(DESIGNER_PATH "${TOOLS_PATH}/designer${CMAKE_EXECUTABLE_SUFFIX}") -endif() + if(NOT NO_QT_TOOLS STREQUAL "yes") + set(TOOLS_PATH "${QT6_INSTALL_PREFIX}/${QT6_HOST_INFO_BINDIR}") + set(LIBEXEC_PATH "${QT6_INSTALL_PREFIX}/${QT6_HOST_INFO_LIBEXECDIR}") + + list(APPEND files "${LIBEXEC_PATH}/uic${CMAKE_EXECUTABLE_SUFFIX}" + "${LIBEXEC_PATH}/rcc${CMAKE_EXECUTABLE_SUFFIX}" + "${LIBEXEC_PATH}/qmltyperegistrar${CMAKE_EXECUTABLE_SUFFIX}" + "${LIBEXEC_PATH}/qmlimportscanner${CMAKE_EXECUTABLE_SUFFIX}" + "${LIBEXEC_PATH}/qmlcachegen${CMAKE_EXECUTABLE_SUFFIX}" + "${TOOLS_PATH}/lrelease${CMAKE_EXECUTABLE_SUFFIX}" + "${TOOLS_PATH}/lupdate${CMAKE_EXECUTABLE_SUFFIX}" + "${TOOLS_PATH}/qmllint${CMAKE_EXECUTABLE_SUFFIX}" + "${TOOLS_PATH}/qmlformat${CMAKE_EXECUTABLE_SUFFIX}" + "${TOOLS_PATH}/qmlls${CMAKE_EXECUTABLE_SUFFIX}" + "${TOOLS_PATH}/qsb${CMAKE_EXECUTABLE_SUFFIX}" + "${TOOLS_PATH}/balsam${CMAKE_EXECUTABLE_SUFFIX}" + "${TOOLS_PATH}/balsamui${CMAKE_EXECUTABLE_SUFFIX}") + + if (APPLE) + list(APPEND directories "${TOOLS_PATH}/Assistant.app" + "${TOOLS_PATH}/Designer.app" + "${TOOLS_PATH}/Linguist.app") + else() + list(APPEND files "${TOOLS_PATH}/assistant${CMAKE_EXECUTABLE_SUFFIX}" + "${TOOLS_PATH}/designer${CMAKE_EXECUTABLE_SUFFIX}" + "${TOOLS_PATH}/linguist${CMAKE_EXECUTABLE_SUFFIX}") + endif() + endif() + + list(APPEND directories ${CMAKE_CURRENT_SOURCE_DIR}/qtpy2cpp_lib) + + # pyside6-rcc, pyside6-uic, pyside6-designer, shiboken and pyside6-lupdate entrypoints + foreach(file ${files}) + if(EXISTS ${file}) + install(FILES "${file}" + DESTINATION bin + PERMISSIONS + OWNER_EXECUTE OWNER_WRITE OWNER_READ + GROUP_EXECUTE GROUP_READ + WORLD_EXECUTE WORLD_READ) + else() + message(WARNING "${file} does not exist. Hence, pyside6-${file} will not work") + endif() + endforeach() -install(FILES "${UIC_PATH}" - DESTINATION bin - PERMISSIONS - OWNER_EXECUTE OWNER_WRITE OWNER_READ - GROUP_EXECUTE GROUP_READ - WORLD_EXECUTE WORLD_READ) - -install(FILES "${RCC_PATH}" - DESTINATION bin - PERMISSIONS - OWNER_EXECUTE OWNER_WRITE OWNER_READ - GROUP_EXECUTE GROUP_READ - WORLD_EXECUTE WORLD_READ) - -if (EXISTS ${DESIGNER_PATH}) - if (APPLE) - install(DIRECTORY "${DESIGNER_PATH}" + foreach(directory ${directories}) + install(DIRECTORY "${directory}" DESTINATION bin FILE_PERMISSIONS OWNER_EXECUTE OWNER_WRITE OWNER_READ GROUP_EXECUTE GROUP_READ WORLD_EXECUTE WORLD_READ) - else() - install(FILES "${DESIGNER_PATH}" - DESTINATION bin - PERMISSIONS - OWNER_EXECUTE OWNER_WRITE OWNER_READ - GROUP_EXECUTE GROUP_READ - WORLD_EXECUTE WORLD_READ) - endif() + endforeach() endif() - -# pyside6-rcc, pyside6-uic, pyside6-designer, shiboken and pyside6-lupdate entrypoints -install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/pyside_tool.py - DESTINATION bin - PERMISSIONS - OWNER_EXECUTE OWNER_WRITE OWNER_READ - GROUP_EXECUTE GROUP_READ - WORLD_EXECUTE WORLD_READ) |