Apply cmake-format v0.6.0
This commit is contained in:
parent
a635b38e73
commit
b8d00d27c9
|
@ -28,12 +28,8 @@ set(HEADER_FILES
|
|||
resources/qtconfigarguments.h
|
||||
resources/resources.h
|
||||
resources/importplugin.h)
|
||||
set(SRC_FILES
|
||||
misc/dialogutils.cpp
|
||||
misc/desktoputils.cpp
|
||||
models/checklistmodel.cpp
|
||||
resources/qtconfigarguments.cpp
|
||||
resources/resources.cpp)
|
||||
set(SRC_FILES misc/dialogutils.cpp misc/desktoputils.cpp models/checklistmodel.cpp resources/qtconfigarguments.cpp
|
||||
resources/resources.cpp)
|
||||
set(RES_FILES resources/qtutilsicons.qrc)
|
||||
|
||||
set(WIDGETS_HEADER_FILES
|
||||
|
@ -84,18 +80,10 @@ set(WIDGETS_UI_FILES
|
|||
paletteeditor/paletteeditor.ui)
|
||||
|
||||
set(CMAKE_MODULE_FILES
|
||||
cmake/modules/AndroidApk.cmake
|
||||
cmake/modules/QtConfig.cmake
|
||||
cmake/modules/QtGuiConfig.cmake
|
||||
cmake/modules/QtLinkage.cmake
|
||||
cmake/modules/QtWebViewProviderConfig.cmake
|
||||
cmake/modules/QtJsProviderConfig.cmake)
|
||||
set(CMAKE_TEMPLATE_FILES
|
||||
cmake/templates/qtconfig.h.in
|
||||
cmake/templates/webviewdefs.h.in
|
||||
cmake/templates/webviewincludes.h.in
|
||||
cmake/templates/jsdefs.h.in
|
||||
cmake/templates/jsincludes.h.in)
|
||||
cmake/modules/AndroidApk.cmake cmake/modules/QtConfig.cmake cmake/modules/QtGuiConfig.cmake
|
||||
cmake/modules/QtLinkage.cmake cmake/modules/QtWebViewProviderConfig.cmake cmake/modules/QtJsProviderConfig.cmake)
|
||||
set(CMAKE_TEMPLATE_FILES cmake/templates/qtconfig.h.in cmake/templates/webviewdefs.h.in cmake/templates/webviewincludes.h.in
|
||||
cmake/templates/jsdefs.h.in cmake/templates/jsincludes.h.in)
|
||||
if (ANDROID)
|
||||
list(APPEND CMAKE_MODULE_FILES)
|
||||
list(APPEND CMAKE_TEMPLATE_FILES cmake/templates/android-deployment.json.in)
|
||||
|
@ -127,7 +115,10 @@ set(SCRIPT_FILES scripts/required_icons.sh)
|
|||
set(CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake/modules" "${CMAKE_MODULE_PATH}")
|
||||
|
||||
# configure platform specific capslock detection for enterpassworddialog.cpp
|
||||
if (WIN32 OR (UNIX AND NOT APPLE AND NOT ANDROID))
|
||||
if (WIN32
|
||||
OR (UNIX
|
||||
AND NOT APPLE
|
||||
AND NOT ANDROID))
|
||||
set(ENABLE_CAPSLOCK_DETECTION_BY_DEFAULT ON)
|
||||
else ()
|
||||
set(ENABLE_CAPSLOCK_DETECTION_BY_DEFAULT OFF)
|
||||
|
@ -148,13 +139,16 @@ if (CAPSLOCK_DETECTION)
|
|||
if (NOT HAVE_PLATFORM_SPECIFIC_CAPSLOCK_DETECTION)
|
||||
message(FATAL_ERROR "No backend for capslock detection found (WinAPI or X11 must be provided)")
|
||||
endif ()
|
||||
set_property(SOURCE enterpassworddialog/enterpassworddialog.cpp
|
||||
APPEND
|
||||
PROPERTY COMPILE_DEFINITIONS ${META_PROJECT_VARNAME}_PLATFORM_SPECIFIC_CAPSLOCK_DETECTION)
|
||||
set_property(
|
||||
SOURCE enterpassworddialog/enterpassworddialog.cpp
|
||||
APPEND
|
||||
PROPERTY COMPILE_DEFINITIONS ${META_PROJECT_VARNAME}_PLATFORM_SPECIFIC_CAPSLOCK_DETECTION)
|
||||
endif ()
|
||||
|
||||
# configure support for D-Bus notifications
|
||||
if (UNIX AND NOT APPLE AND NOT ANDROID)
|
||||
if (UNIX
|
||||
AND NOT APPLE
|
||||
AND NOT ANDROID)
|
||||
set(ENABLE_DBUS_NOTIFICATIONS_BY_DEFAULT ON)
|
||||
else ()
|
||||
set(ENABLE_DBUS_NOTIFICATIONS_BY_DEFAULT OFF)
|
||||
|
|
|
@ -26,7 +26,9 @@ endif ()
|
|||
set(ANDROID_APK_APPLICATION_ID_SUFFIX
|
||||
""
|
||||
CACHE STRING "suffix for Android APK ID, use e.g. \".debug\" to produce a co-installable debug version")
|
||||
set(ANDROID_APK_APPLICATION_LABEL "${META_APP_NAME}" CACHE STRING "user visible name for the APK")
|
||||
set(ANDROID_APK_APPLICATION_LABEL
|
||||
"${META_APP_NAME}"
|
||||
CACHE STRING "user visible name for the APK")
|
||||
|
||||
# find "android" subdirectory in the source directory and check for AndroidManifest.xml
|
||||
set(ANDROID_APK_SUBDIR "${CMAKE_CURRENT_SOURCE_DIR}/android")
|
||||
|
@ -43,7 +45,11 @@ endif ()
|
|||
# link Android package directory to binary directory evaluating templates on top-level
|
||||
set(ANDROID_PACKAGE_SOURCE_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/android-package-source-directory")
|
||||
file(MAKE_DIRECTORY "${ANDROID_PACKAGE_SOURCE_DIRECTORY}")
|
||||
file(GLOB_RECURSE ANDROID_APK_FILES LIST_DIRECTORIES false RELATIVE "${ANDROID_APK_SUBDIR}" "${ANDROID_APK_SUBDIR}/*")
|
||||
file(
|
||||
GLOB_RECURSE ANDROID_APK_FILES
|
||||
LIST_DIRECTORIES false
|
||||
RELATIVE "${ANDROID_APK_SUBDIR}"
|
||||
"${ANDROID_APK_SUBDIR}/*")
|
||||
set(ANDROID_SOURCE_DIRECTORY_FILES)
|
||||
foreach (ANDROID_APK_FILE ${ANDROID_APK_FILES})
|
||||
if (IS_DIRECTORY "${ANDROID_APK_FILE}")
|
||||
|
@ -60,10 +66,7 @@ foreach (ANDROID_APK_FILE ${ANDROID_APK_FILES})
|
|||
if (ANDROID_APK_FILE_EXT STREQUAL ".in")
|
||||
string(LENGTH "${ANDROID_APK_FILE}" ANDROID_APK_FILE_LENGTH)
|
||||
math(EXPR ANDROID_APK_FILE_LENGTH "${ANDROID_APK_FILE_LENGTH} - 3")
|
||||
string(SUBSTRING "${ANDROID_APK_FILE}"
|
||||
0
|
||||
${ANDROID_APK_FILE_LENGTH}
|
||||
ANDROID_APK_FILE_NAME)
|
||||
string(SUBSTRING "${ANDROID_APK_FILE}" 0 ${ANDROID_APK_FILE_LENGTH} ANDROID_APK_FILE_NAME)
|
||||
configure_file("${ANDROID_APK_SUBDIR}/${ANDROID_APK_FILE}"
|
||||
"${ANDROID_PACKAGE_SOURCE_DIRECTORY}/${ANDROID_APK_FILE_NAME}")
|
||||
set(ANDROID_APK_FILE "${ANDROID_APK_FILE_NAME}")
|
||||
|
@ -90,7 +93,9 @@ else ()
|
|||
set(ANDROID_APK_TOOL_PREFIX "${CMAKE_CXX_ANDROID_TOOLCHAIN_PREFIX}")
|
||||
endif ()
|
||||
|
||||
set(ANDROID_APK_TOOLCHAIN_VERSION "" CACHE STRING "toolchain version for making APK file")
|
||||
set(ANDROID_APK_TOOLCHAIN_VERSION
|
||||
""
|
||||
CACHE STRING "toolchain version for making APK file")
|
||||
if (NOT ANDROID_APK_TOOLCHAIN_VERSION)
|
||||
if (CMAKE_CXX_ANDROID_TOOLCHAIN_PREFIX MATCHES ".*/.+-linux-android-([^/]+)/.*")
|
||||
set(ANDROID_APK_TOOLCHAIN_VERSION "${CMAKE_MATCH_1}")
|
||||
|
@ -104,10 +109,11 @@ if (NOT ANDROID_APK_TOOLCHAIN_VERSION)
|
|||
endif ()
|
||||
|
||||
# determine Android build tools version note: Assuming the build tools are installed under "${CMAKE_ANDROID_SDK}/build-tools"
|
||||
file(GLOB ANDROID_APK_BUILD_TOOLS_VERSIONS
|
||||
LIST_DIRECTORIES TRUE
|
||||
RELATIVE "${CMAKE_ANDROID_SDK}/build-tools"
|
||||
"${CMAKE_ANDROID_SDK}/build-tools/*")
|
||||
file(
|
||||
GLOB ANDROID_APK_BUILD_TOOLS_VERSIONS
|
||||
LIST_DIRECTORIES TRUE
|
||||
RELATIVE "${CMAKE_ANDROID_SDK}/build-tools"
|
||||
"${CMAKE_ANDROID_SDK}/build-tools/*")
|
||||
if (NOT ANDROID_APK_BUILD_TOOLS_VERSIONS)
|
||||
message(FATAL_ERROR "No build-tools present under \"${CMAKE_ANDROID_SDK}/build-tools\".")
|
||||
endif ()
|
||||
|
@ -115,7 +121,9 @@ list(GET ANDROID_APK_BUILD_TOOLS_VERSIONS 0 ANDROID_APK_BUILD_TOOLS_VERSION)
|
|||
|
||||
# deduce path of C++ standard library from "CMAKE_CXX_STANDARD_LIBRARIES" note: Assuming CMAKE_CXX_STANDARD_LIBRARIES
|
||||
# contains a paths or quotes paths with flags appended.
|
||||
set(ANDROID_APK_CXX_STANDARD_LIBRARY "" CACHE STRING "path to standard library for making APK file")
|
||||
set(ANDROID_APK_CXX_STANDARD_LIBRARY
|
||||
""
|
||||
CACHE STRING "path to standard library for making APK file")
|
||||
if (NOT ANDROID_APK_CXX_STANDARD_LIBRARY)
|
||||
foreach (CMAKE_CXX_STANDARD_LIBRARY ${CMAKE_CXX_STANDARD_LIBRARIES})
|
||||
if (EXISTS "${CMAKE_CXX_STANDARD_LIBRARY}")
|
||||
|
@ -144,22 +152,15 @@ foreach (PATH ${ANDROID_APK_BINARY_DIRS})
|
|||
# symlink "lib" subdirectory so androiddeployqt finds the library in the runtime path when specified via
|
||||
# "extraPrefixDirs"
|
||||
list(APPEND ANDROID_APK_BINARY_DIRS_DEPENDS "${PATH}/lib")
|
||||
add_custom_command(OUTPUT "${PATH}/lib"
|
||||
COMMAND "${CMAKE_COMMAND}"
|
||||
-E
|
||||
create_symlink
|
||||
"${PATH}"
|
||||
"${PATH}/lib")
|
||||
add_custom_command(OUTPUT "${PATH}/lib" COMMAND "${CMAKE_COMMAND}" -E create_symlink "${PATH}" "${PATH}/lib")
|
||||
endforeach ()
|
||||
include(ListToString)
|
||||
list_to_string(""
|
||||
"\n \""
|
||||
"\","
|
||||
"${ANDROID_APK_BINARY_DIRS}"
|
||||
ANDROID_APK_BINARY_DIRS)
|
||||
list_to_string("" "\n \"" "\"," "${ANDROID_APK_BINARY_DIRS}" ANDROID_APK_BINARY_DIRS)
|
||||
|
||||
# find dependencies note: androiddeployqt seems to find only Qt libraries and plugins but misses other target_link_libraries
|
||||
set(ANDROID_APK_ADDITIONAL_LIBS "" CACHE STRING "additional libraries to be bundled into the Android APK")
|
||||
set(ANDROID_APK_ADDITIONAL_LIBS
|
||||
""
|
||||
CACHE STRING "additional libraries to be bundled into the Android APK")
|
||||
set(ANDROID_APK_EXTRA_LIBS "${ANDROID_APK_ADDITIONAL_LIBS}")
|
||||
function (add_android_apk_extra_libs TARGET_NAME)
|
||||
get_target_property(ANDROID_APK_EXTRA_LIBS_FOR_TARGET ${TARGET_NAME} LINK_LIBRARIES)
|
||||
|
@ -176,23 +177,18 @@ function (add_android_apk_extra_libs TARGET_NAME)
|
|||
message(
|
||||
WARNING
|
||||
"Unable to find library \"${LIBRARY}\" required by target \"${TARGET_NAME}\". It won't be added to the APK."
|
||||
)
|
||||
)
|
||||
endif ()
|
||||
endforeach ()
|
||||
set(ANDROID_APK_EXTRA_LIBS "${ANDROID_APK_EXTRA_LIBS}" PARENT_SCOPE)
|
||||
set(ANDROID_APK_EXTRA_LIBS
|
||||
"${ANDROID_APK_EXTRA_LIBS}"
|
||||
PARENT_SCOPE)
|
||||
endfunction ()
|
||||
add_android_apk_extra_libs("${META_TARGET_NAME}")
|
||||
list_to_string(","
|
||||
""
|
||||
""
|
||||
"${ANDROID_APK_EXTRA_LIBS}"
|
||||
ANDROID_APK_EXTRA_LIBS)
|
||||
list_to_string("," "" "" "${ANDROID_APK_EXTRA_LIBS}" ANDROID_APK_EXTRA_LIBS)
|
||||
|
||||
# query certain qmake variables
|
||||
foreach (QMAKE_VARIABLE
|
||||
QT_INSTALL_QML
|
||||
QT_INSTALL_PLUGINS
|
||||
QT_INSTALL_IMPORTS)
|
||||
foreach (QMAKE_VARIABLE QT_INSTALL_QML QT_INSTALL_PLUGINS QT_INSTALL_IMPORTS)
|
||||
query_qmake_variable(${QMAKE_VARIABLE})
|
||||
endforeach ()
|
||||
|
||||
|
@ -202,11 +198,7 @@ function (compose_dirs_for_android_apk)
|
|||
set(OPTIONAL_ARGS)
|
||||
set(ONE_VALUE_ARGS OUTPUT_VARIABLE)
|
||||
set(MULTI_VALUE_ARGS POSSIBLE_DIRS)
|
||||
cmake_parse_arguments(ARGS
|
||||
"${OPTIONAL_ARGS}"
|
||||
"${ONE_VALUE_ARGS}"
|
||||
"${MULTI_VALUE_ARGS}"
|
||||
${ARGN})
|
||||
cmake_parse_arguments(ARGS "${OPTIONAL_ARGS}" "${ONE_VALUE_ARGS}" "${MULTI_VALUE_ARGS}" ${ARGN})
|
||||
|
||||
list(REMOVE_DUPLICATES ARGS_POSSIBLE_DIRS)
|
||||
unset(DIRS)
|
||||
|
@ -216,35 +208,30 @@ function (compose_dirs_for_android_apk)
|
|||
endif ()
|
||||
endforeach ()
|
||||
|
||||
list_to_string(","
|
||||
""
|
||||
""
|
||||
"${DIRS}"
|
||||
DIRS)
|
||||
set("${ARGS_OUTPUT_VARIABLE}" "${DIRS}" PARENT_SCOPE)
|
||||
list_to_string("," "" "" "${DIRS}" DIRS)
|
||||
set("${ARGS_OUTPUT_VARIABLE}"
|
||||
"${DIRS}"
|
||||
PARENT_SCOPE)
|
||||
endfunction ()
|
||||
|
||||
# pick QML import paths from install prefix
|
||||
compose_dirs_for_android_apk(OUTPUT_VARIABLE
|
||||
ANDROID_APK_QML_IMPORT_DIRS
|
||||
POSSIBLE_DIRS
|
||||
"${QT_INSTALL_IMPORTS}"
|
||||
"${QT_INSTALL_QML}"
|
||||
"${CMAKE_INSTALL_PREFIX}/lib/qt/imports"
|
||||
"${CMAKE_INSTALL_PREFIX}/lib/imports"
|
||||
"${CMAKE_INSTALL_PREFIX}/lib/qt/qml"
|
||||
"${CMAKE_INSTALL_PREFIX}/lib/qml")
|
||||
compose_dirs_for_android_apk(
|
||||
OUTPUT_VARIABLE
|
||||
ANDROID_APK_QML_IMPORT_DIRS
|
||||
POSSIBLE_DIRS
|
||||
"${QT_INSTALL_IMPORTS}"
|
||||
"${QT_INSTALL_QML}"
|
||||
"${CMAKE_INSTALL_PREFIX}/lib/qt/imports"
|
||||
"${CMAKE_INSTALL_PREFIX}/lib/imports"
|
||||
"${CMAKE_INSTALL_PREFIX}/lib/qt/qml"
|
||||
"${CMAKE_INSTALL_PREFIX}/lib/qml")
|
||||
if (NOT ANDROID_APK_QML_IMPORT_DIRS)
|
||||
message(WARNING "Unable to find QML import directories for making the APK.")
|
||||
endif ()
|
||||
|
||||
# pick extra plugins from install prefix
|
||||
compose_dirs_for_android_apk(OUTPUT_VARIABLE
|
||||
ANDROID_APK_EXTRA_PLUGIN_DIRS
|
||||
POSSIBLE_DIRS
|
||||
"${QT_INSTALL_PLUGINS}"
|
||||
"${CMAKE_INSTALL_PREFIX}/lib/qt/plugins"
|
||||
"${CMAKE_INSTALL_PREFIX}/lib/plugins")
|
||||
compose_dirs_for_android_apk(OUTPUT_VARIABLE ANDROID_APK_EXTRA_PLUGIN_DIRS POSSIBLE_DIRS "${QT_INSTALL_PLUGINS}"
|
||||
"${CMAKE_INSTALL_PREFIX}/lib/qt/plugins" "${CMAKE_INSTALL_PREFIX}/lib/plugins")
|
||||
if (NOT ANDROID_APK_EXTRA_PLUGIN_DIRS)
|
||||
message(WARNING "Unable to find extra plugin directories for making the APK.")
|
||||
endif ()
|
||||
|
@ -253,7 +240,10 @@ endif ()
|
|||
find_template_file("android-deployment.json" QT_UTILITIES ANDROID_DEPLOYMENT_JSON_TEMPLATE_FILE)
|
||||
set(ANDROID_DEPLOYMENT_JSON_FILE "${CMAKE_CURRENT_BINARY_DIR}/android-deployment.json")
|
||||
configure_file("${ANDROID_DEPLOYMENT_JSON_TEMPLATE_FILE}" "${ANDROID_DEPLOYMENT_JSON_FILE}.configured")
|
||||
file(GENERATE OUTPUT "${ANDROID_DEPLOYMENT_JSON_FILE}" INPUT "${ANDROID_DEPLOYMENT_JSON_FILE}.configured")
|
||||
file(
|
||||
GENERATE
|
||||
OUTPUT "${ANDROID_DEPLOYMENT_JSON_FILE}"
|
||||
INPUT "${ANDROID_DEPLOYMENT_JSON_FILE}.configured")
|
||||
|
||||
# pass make arguments
|
||||
if (CMAKE_GENERATOR STREQUAL "Unix Makefiles")
|
||||
|
@ -276,17 +266,23 @@ if (ANDROID_APK_FORCE_DEBUG OR CMAKE_BUILD_TYPE STREQUAL "Debug")
|
|||
set(ANDROID_APK_ADDITIONAL_ANDROIDDEPOYQT_OPTIONS)
|
||||
else ()
|
||||
set(ANDROID_APK_ADDITIONAL_ANDROIDDEPOYQT_OPTIONS --release)
|
||||
set(ANDROID_APK_KEYSTORE_URL "" CACHE STRING "keystore URL for signing the Android APK")
|
||||
set(ANDROID_APK_KEYSTORE_ALIAS "" CACHE STRING "keystore alias for signing the Android APK")
|
||||
set(ANDROID_APK_KEYSTORE_PASSWORD "" CACHE STRING "keystore password for signing the Android APK")
|
||||
set(ANDROID_APK_KEYSTORE_KEY_PASSWORD "" CACHE STRING "keystore key password for signing the Android APK")
|
||||
set(ANDROID_APK_KEYSTORE_URL
|
||||
""
|
||||
CACHE STRING "keystore URL for signing the Android APK")
|
||||
set(ANDROID_APK_KEYSTORE_ALIAS
|
||||
""
|
||||
CACHE STRING "keystore alias for signing the Android APK")
|
||||
set(ANDROID_APK_KEYSTORE_PASSWORD
|
||||
""
|
||||
CACHE STRING "keystore password for signing the Android APK")
|
||||
set(ANDROID_APK_KEYSTORE_KEY_PASSWORD
|
||||
""
|
||||
CACHE STRING "keystore key password for signing the Android APK")
|
||||
|
||||
if (ANDROID_APK_KEYSTORE_URL AND ANDROID_APK_KEYSTORE_ALIAS)
|
||||
set(ANDROID_APK_FILE_PATH
|
||||
"${ANDROID_APK_BUILD_DIR}/build/outputs/apk/${ANDROID_APK_FILE_DIRECTORY}apk-release-signed.apk")
|
||||
list(APPEND ANDROID_APK_ADDITIONAL_ANDROIDDEPOYQT_OPTIONS
|
||||
--sign
|
||||
"${ANDROID_APK_KEYSTORE_URL}"
|
||||
list(APPEND ANDROID_APK_ADDITIONAL_ANDROIDDEPOYQT_OPTIONS --sign "${ANDROID_APK_KEYSTORE_URL}"
|
||||
"${ANDROID_APK_KEYSTORE_ALIAS}")
|
||||
if (ANDROID_APK_KEYSTORE_PASSWORD)
|
||||
list(APPEND ANDROID_APK_ADDITIONAL_ANDROIDDEPOYQT_OPTIONS --storepass "${ANDROID_APK_KEYSTORE_PASSWORD}")
|
||||
|
@ -302,40 +298,29 @@ else ()
|
|||
|
||||
endif ()
|
||||
set(ANDROID_APK_BINARY_PATH "${ANDROID_APK_BUILD_DIR}/libs/${CMAKE_ANDROID_ARCH_ABI}/lib${META_TARGET_NAME}.so")
|
||||
add_custom_command(OUTPUT "${ANDROID_APK_BINARY_PATH}"
|
||||
COMMAND "${CMAKE_COMMAND}"
|
||||
-E
|
||||
copy
|
||||
"$<TARGET_FILE:${META_TARGET_NAME}>"
|
||||
"${ANDROID_APK_BINARY_PATH}"
|
||||
COMMENT "Preparing build dir for Android APK"
|
||||
DEPENDS "${META_TARGET_NAME}" COMMAND_EXPAND_LISTS
|
||||
VERBATIM)
|
||||
add_custom_command(
|
||||
OUTPUT "${ANDROID_APK_BINARY_PATH}"
|
||||
COMMAND "${CMAKE_COMMAND}" -E copy "$<TARGET_FILE:${META_TARGET_NAME}>" "${ANDROID_APK_BINARY_PATH}"
|
||||
COMMENT "Preparing build dir for Android APK"
|
||||
DEPENDS "${META_TARGET_NAME}" COMMAND_EXPAND_LISTS
|
||||
VERBATIM)
|
||||
add_custom_command(
|
||||
OUTPUT "${ANDROID_APK_FILE_PATH}"
|
||||
COMMAND rm
|
||||
-r
|
||||
"${ANDROID_APK_BUILD_DIR}/assets/--Added-by-androiddeployqt--/lib"
|
||||
||
|
||||
true
|
||||
COMMAND $<TARGET_FILE_DIR:Qt5::qmake>/androiddeployqt
|
||||
--gradle
|
||||
--input
|
||||
"${ANDROID_DEPLOYMENT_JSON_FILE}"
|
||||
--output
|
||||
"${ANDROID_APK_BUILD_DIR}"
|
||||
--deployment
|
||||
bundled
|
||||
${MAKE_ARGUMENTS}
|
||||
--verbose
|
||||
${ANDROID_APK_ADDITIONAL_ANDROIDDEPOYQT_OPTIONS}
|
||||
COMMAND rm -r "${ANDROID_APK_BUILD_DIR}/assets/--Added-by-androiddeployqt--/lib" || true
|
||||
COMMAND
|
||||
$<TARGET_FILE_DIR:Qt5::qmake>/androiddeployqt --gradle --input "${ANDROID_DEPLOYMENT_JSON_FILE}" --output
|
||||
"${ANDROID_APK_BUILD_DIR}" --deployment bundled ${MAKE_ARGUMENTS} --verbose
|
||||
${ANDROID_APK_ADDITIONAL_ANDROIDDEPOYQT_OPTIONS}
|
||||
WORKING_DIRECTORY "${ANDROID_APK_BUILD_DIR}"
|
||||
COMMENT "Creating Android APK ${ANDROID_APK_FILE_PATH} using androiddeployqt"
|
||||
DEPENDS
|
||||
"${ANDROID_DEPLOYMENT_JSON_FILE};${ANDROID_APK_BINARY_PATH};${ANDROID_SOURCE_DIRECTORY_FILES};${ANDROID_APK_BINARY_DIRS_DEPENDS}"
|
||||
COMMAND_EXPAND_LISTS
|
||||
VERBATIM)
|
||||
add_custom_target("${META_TARGET_NAME}_apk" COMMENT "Android APK" DEPENDS "${ANDROID_APK_FILE_PATH}")
|
||||
add_custom_target(
|
||||
"${META_TARGET_NAME}_apk"
|
||||
COMMENT "Android APK"
|
||||
DEPENDS "${ANDROID_APK_FILE_PATH}")
|
||||
if (NOT TARGET apk)
|
||||
add_custom_target(apk)
|
||||
endif ()
|
||||
|
@ -347,12 +332,13 @@ if (CMAKE_BUILD_TYPE STREQUAL "Debug")
|
|||
else ()
|
||||
set(ANDROID_APK_FINAL_NAME "${META_ID}-${META_APP_VERSION}.apk")
|
||||
endif ()
|
||||
install(FILES "${ANDROID_APK_FILE_PATH}" DESTINATION "share/apk" RENAME "${ANDROID_APK_FINAL_NAME}" COMPONENT apk)
|
||||
add_custom_target("${META_TARGET_NAME}_install_apk"
|
||||
COMMAND "${CMAKE_COMMAND}"
|
||||
-DCMAKE_INSTALL_COMPONENT=apk
|
||||
-P
|
||||
"${CMAKE_BINARY_DIR}/cmake_install.cmake")
|
||||
install(
|
||||
FILES "${ANDROID_APK_FILE_PATH}"
|
||||
DESTINATION "share/apk"
|
||||
RENAME "${ANDROID_APK_FINAL_NAME}"
|
||||
COMPONENT apk)
|
||||
add_custom_target("${META_TARGET_NAME}_install_apk" COMMAND "${CMAKE_COMMAND}" -DCMAKE_INSTALL_COMPONENT=apk -P
|
||||
"${CMAKE_BINARY_DIR}/cmake_install.cmake")
|
||||
add_dependencies("${META_TARGET_NAME}_install_apk" "${META_TARGET_NAME}_apk")
|
||||
if (NOT TARGET install-apk)
|
||||
add_custom_target(install-apk)
|
||||
|
@ -361,12 +347,10 @@ add_dependencies(install-apk "${META_TARGET_NAME}_install_apk")
|
|||
|
||||
# add deploy target for APK
|
||||
find_program(ADB_BIN adb)
|
||||
add_custom_target("${META_TARGET_NAME}_deploy_apk"
|
||||
COMMAND "${ADB_BIN}"
|
||||
install
|
||||
-r
|
||||
"${ANDROID_APK_FILE_PATH}"
|
||||
COMMENT "Deploying Android APK"
|
||||
DEPENDS "${ANDROID_APK_FILE_PATH}")
|
||||
add_custom_target(
|
||||
"${META_TARGET_NAME}_deploy_apk"
|
||||
COMMAND "${ADB_BIN}" install -r "${ANDROID_APK_FILE_PATH}"
|
||||
COMMENT "Deploying Android APK"
|
||||
DEPENDS "${ANDROID_APK_FILE_PATH}")
|
||||
|
||||
set(ANDROID_APK_CONFIGURED YES)
|
||||
|
|
|
@ -37,7 +37,9 @@ if (DISABLE_DEPRECATED_QT_FEATURES)
|
|||
endif ()
|
||||
|
||||
# allow specifying a custom directory for Qt plugins
|
||||
set(QT_PLUGIN_DIR "" CACHE STRING "specifies the directory to install Qt plugins")
|
||||
set(QT_PLUGIN_DIR
|
||||
""
|
||||
CACHE STRING "specifies the directory to install Qt plugins")
|
||||
|
||||
# check whether D-Bus interfaces need to be processed
|
||||
if (DBUS_FILES)
|
||||
|
@ -60,29 +62,25 @@ if (IMPORTED_KF_MODULES)
|
|||
endif ()
|
||||
|
||||
# find and use the required Qt/KF modules
|
||||
set(QT_PACKAGE_PREFIX "Qt5" CACHE STRING "specifies the prefix for Qt packages")
|
||||
set(QT_PACKAGE_PREFIX
|
||||
"Qt5"
|
||||
CACHE STRING "specifies the prefix for Qt packages")
|
||||
foreach (MODULE ${QT_MODULES})
|
||||
unset(MODULE_OPTIONS)
|
||||
if ("${MODULE}" IN_LIST META_PUBLIC_QT_MODULES)
|
||||
list(APPEND MODULE_OPTIONS VISIBILITY PUBLIC)
|
||||
endif ()
|
||||
use_qt_module(PREFIX
|
||||
"${QT_PACKAGE_PREFIX}"
|
||||
MODULE
|
||||
"${MODULE}"
|
||||
${MODULE_OPTIONS})
|
||||
use_qt_module(PREFIX "${QT_PACKAGE_PREFIX}" MODULE "${MODULE}" ${MODULE_OPTIONS})
|
||||
endforeach ()
|
||||
set(KF_PACKAGE_PREFIX "KF5" CACHE STRING "specifies the prefix for KDE Frameworks packages")
|
||||
set(KF_PACKAGE_PREFIX
|
||||
"KF5"
|
||||
CACHE STRING "specifies the prefix for KDE Frameworks packages")
|
||||
foreach (MODULE ${KF_MODULES})
|
||||
unset(MODULE_OPTIONS)
|
||||
if ("${MODULE}" IN_LIST META_PUBLIC_KF_MODULES)
|
||||
list(APPEND MODULE_OPTIONS VISIBILITY PUBLIC)
|
||||
endif ()
|
||||
use_qt_module(PREFIX
|
||||
"${KF_PACKAGE_PREFIX}"
|
||||
MODULE
|
||||
"${MODULE}"
|
||||
${MODULE_OPTIONS})
|
||||
use_qt_module(PREFIX "${KF_PACKAGE_PREFIX}" MODULE "${MODULE}" ${MODULE_OPTIONS})
|
||||
endforeach ()
|
||||
|
||||
# hack for using static Qt via "StaticQt5" prefix: find regular Qt5Core module as well so Qt version is defined
|
||||
|
@ -106,31 +104,36 @@ endforeach ()
|
|||
if (STATIC_LINKAGE AND META_PROJECT_IS_APPLICATION)
|
||||
message(STATUS "Linking application ${META_PROJECT_NAME} against Qt 5 plugins because static linkage is enabled.")
|
||||
|
||||
if (Gui IN_LIST QT_MODULES OR Widgets IN_LIST QT_MODULES OR Quick IN_LIST QT_MODULES)
|
||||
if (Gui IN_LIST QT_MODULES
|
||||
OR Widgets IN_LIST QT_MODULES
|
||||
OR Quick IN_LIST QT_MODULES)
|
||||
if (WIN32)
|
||||
use_qt_module(PREFIX
|
||||
"${QT_PACKAGE_PREFIX}"
|
||||
MODULE
|
||||
Gui
|
||||
PLUGINS
|
||||
WindowsIntegration
|
||||
ONLY_PLUGINS)
|
||||
use_qt_module(
|
||||
PREFIX
|
||||
"${QT_PACKAGE_PREFIX}"
|
||||
MODULE
|
||||
Gui
|
||||
PLUGINS
|
||||
WindowsIntegration
|
||||
ONLY_PLUGINS)
|
||||
elseif (APPLE)
|
||||
use_qt_module(PREFIX
|
||||
"${QT_PACKAGE_PREFIX}"
|
||||
MODULE
|
||||
Gui
|
||||
PLUGINS
|
||||
CocoaIntegration
|
||||
ONLY_PLUGINS)
|
||||
use_qt_module(
|
||||
PREFIX
|
||||
"${QT_PACKAGE_PREFIX}"
|
||||
MODULE
|
||||
Gui
|
||||
PLUGINS
|
||||
CocoaIntegration
|
||||
ONLY_PLUGINS)
|
||||
elseif (TARGET ${QT5_Gui_STATIC_PREFIX}QXcbIntegrationPlugin)
|
||||
use_qt_module(PREFIX
|
||||
"${QT_PACKAGE_PREFIX}"
|
||||
MODULE
|
||||
Gui
|
||||
PLUGINS
|
||||
XcbIntegration
|
||||
ONLY_PLUGINS)
|
||||
use_qt_module(
|
||||
PREFIX
|
||||
"${QT_PACKAGE_PREFIX}"
|
||||
MODULE
|
||||
Gui
|
||||
PLUGINS
|
||||
XcbIntegration
|
||||
ONLY_PLUGINS)
|
||||
else ()
|
||||
message(WARNING "The required platform plugin for your platform is unknown an can not be linked in statically.")
|
||||
endif ()
|
||||
|
@ -143,23 +146,21 @@ if (STATIC_LINKAGE AND META_PROJECT_IS_APPLICATION)
|
|||
if (Widgets IN_LIST QT_MODULES)
|
||||
foreach (WIDGET_STYLE_PLUGIN ${KNOWN_WIDGET_STYLE_PLUGINS})
|
||||
if (TARGET "${QT_PACKAGE_PREFIX}::Q${WIDGET_STYLE_PLUGIN}Plugin")
|
||||
use_qt_module(PREFIX
|
||||
"${QT_PACKAGE_PREFIX}"
|
||||
MODULE
|
||||
Widgets
|
||||
PLUGINS
|
||||
${WIDGET_STYLE_PLUGIN}
|
||||
ONLY_PLUGINS)
|
||||
use_qt_module(
|
||||
PREFIX
|
||||
"${QT_PACKAGE_PREFIX}"
|
||||
MODULE
|
||||
Widgets
|
||||
PLUGINS
|
||||
${WIDGET_STYLE_PLUGIN}
|
||||
ONLY_PLUGINS)
|
||||
list(APPEND USED_WIDGET_STYLE_PLUGINS "${WIDGET_STYLE_PLUGIN}")
|
||||
endif ()
|
||||
endforeach ()
|
||||
|
||||
# allow importing image format plugins via config.h
|
||||
if (USED_WIDGET_STYLE_PLUGINS)
|
||||
list_to_string(" "
|
||||
"\\\n Q_IMPORT_PLUGIN(Q"
|
||||
"Plugin)"
|
||||
"${USED_WIDGET_STYLE_PLUGINS}"
|
||||
list_to_string(" " "\\\n Q_IMPORT_PLUGIN(Q" "Plugin)" "${USED_WIDGET_STYLE_PLUGINS}"
|
||||
WIDGET_STYLE_PLUGINS_ARRAY)
|
||||
endif ()
|
||||
endif ()
|
||||
|
@ -172,48 +173,44 @@ if (STATIC_LINKAGE AND META_PROJECT_IS_APPLICATION)
|
|||
set(SVG_SUPPORT ON)
|
||||
list(REMOVE_ITEM IMAGE_FORMAT_SUPPORT Svg)
|
||||
else ()
|
||||
use_qt_module(PREFIX
|
||||
"${QT_PACKAGE_PREFIX}"
|
||||
MODULE
|
||||
Gui
|
||||
PLUGINS
|
||||
${IMAGE_FORMAT}
|
||||
ONLY_PLUGINS)
|
||||
use_qt_module(
|
||||
PREFIX
|
||||
"${QT_PACKAGE_PREFIX}"
|
||||
MODULE
|
||||
Gui
|
||||
PLUGINS
|
||||
${IMAGE_FORMAT}
|
||||
ONLY_PLUGINS)
|
||||
endif ()
|
||||
endforeach ()
|
||||
|
||||
# allow importing image format plugins via config.h
|
||||
list_to_string(" "
|
||||
"\\\n Q_IMPORT_PLUGIN(Q"
|
||||
"Plugin)"
|
||||
"${IMAGE_FORMAT_SUPPORT}"
|
||||
IMAGE_FORMAT_SUPPORT_ARRAY)
|
||||
list_to_string(" " "\\\n Q_IMPORT_PLUGIN(Q" "Plugin)" "${IMAGE_FORMAT_SUPPORT}" IMAGE_FORMAT_SUPPORT_ARRAY)
|
||||
endif ()
|
||||
|
||||
# ensure SVG plugins are built-in if configured
|
||||
if ((SVG_SUPPORT OR SVG_ICON_SUPPORT) AND NOT Svg IN_LIST QT_MODULES)
|
||||
use_qt_module(PREFIX
|
||||
"${QT_PACKAGE_PREFIX}"
|
||||
MODULE
|
||||
Svg)
|
||||
use_qt_module(PREFIX "${QT_PACKAGE_PREFIX}" MODULE Svg)
|
||||
endif ()
|
||||
if (SVG_SUPPORT)
|
||||
use_qt_module(PREFIX
|
||||
"${QT_PACKAGE_PREFIX}"
|
||||
MODULE
|
||||
Svg
|
||||
PLUGINS
|
||||
Svg
|
||||
ONLY_PLUGINS)
|
||||
use_qt_module(
|
||||
PREFIX
|
||||
"${QT_PACKAGE_PREFIX}"
|
||||
MODULE
|
||||
Svg
|
||||
PLUGINS
|
||||
Svg
|
||||
ONLY_PLUGINS)
|
||||
endif ()
|
||||
if (SVG_ICON_SUPPORT)
|
||||
use_qt_module(PREFIX
|
||||
"${QT_PACKAGE_PREFIX}"
|
||||
MODULE
|
||||
Svg
|
||||
PLUGINS
|
||||
SvgIcon
|
||||
ONLY_PLUGINS)
|
||||
use_qt_module(
|
||||
PREFIX
|
||||
"${QT_PACKAGE_PREFIX}"
|
||||
MODULE
|
||||
Svg
|
||||
PLUGINS
|
||||
SvgIcon
|
||||
ONLY_PLUGINS)
|
||||
endif ()
|
||||
endif ()
|
||||
|
||||
|
@ -231,11 +228,8 @@ if (CMAKE_FIND_ROOT_PATH)
|
|||
list(APPEND QT_TRANSLATION_SEARCH_PATHS "${CMAKE_FIND_ROOT_PATH}/share/qt/translations"
|
||||
"${CMAKE_FIND_ROOT_PATH}/share/qt5/translations")
|
||||
endif ()
|
||||
list(APPEND QT_TRANSLATION_SEARCH_PATHS
|
||||
"${CMAKE_INSTALL_PREFIX}/share/qt/translations"
|
||||
"${CMAKE_INSTALL_PREFIX}/share/qt5/translations"
|
||||
"/usr/share/qt/translations"
|
||||
"/usr/share/qt5/translations")
|
||||
list(APPEND QT_TRANSLATION_SEARCH_PATHS "${CMAKE_INSTALL_PREFIX}/share/qt/translations"
|
||||
"${CMAKE_INSTALL_PREFIX}/share/qt5/translations" "/usr/share/qt/translations" "/usr/share/qt5/translations")
|
||||
list(REMOVE_DUPLICATES QT_TRANSLATION_SEARCH_PATHS)
|
||||
foreach (QT_TRANSLATION_PATH ${QT_TRANSLATION_SEARCH_PATHS})
|
||||
if (NOT IS_DIRECTORY "${QT_TRANSLATION_PATH}")
|
||||
|
@ -262,16 +256,12 @@ if (BUILTIN_TRANSLATIONS AND NOT QT_TRANSLATION_FILES)
|
|||
message(
|
||||
WARNING
|
||||
"Unable to find translations of Qt itself so Qt's translation files will not be built-in. Be sure Qt translations (https://code.qt.io/cgit/qt/qttranslations.git) are installed. Was looking under: ${QT_TRANSLATION_SEARCH_PATHS}"
|
||||
)
|
||||
)
|
||||
endif ()
|
||||
|
||||
# make relevant Qt translations available as array via config.h
|
||||
if (QT_TRANSLATION_FILES)
|
||||
list_to_string(","
|
||||
" \\\n QStringLiteral(\""
|
||||
"\")"
|
||||
"${QT_TRANSLATION_FILES}"
|
||||
QT_TRANSLATION_FILES_ARRAY)
|
||||
list_to_string("," " \\\n QStringLiteral(\"" "\")" "${QT_TRANSLATION_FILES}" QT_TRANSLATION_FILES_ARRAY)
|
||||
endif ()
|
||||
|
||||
# enable lrelease and add install target for localization
|
||||
|
@ -283,22 +273,25 @@ if (ENABLE_QT_TRANSLATIONS AND TS_FILES)
|
|||
# the LinguistTools module is required (but not add it to QT_MODULES because we don't link against it)
|
||||
find_package(Qt5LinguistTools REQUIRED)
|
||||
|
||||
set(LUPDATE_OPTIONS "" CACHE STRING "specifies options passed to lupdate")
|
||||
set(LUPDATE_OPTIONS
|
||||
""
|
||||
CACHE STRING "specifies options passed to lupdate")
|
||||
|
||||
# adds the translations and a target for it
|
||||
qt5_create_translation(QM_FILES
|
||||
${HEADER_FILES}
|
||||
${SRC_FILES}
|
||||
${WIDGETS_HEADER_FILES}
|
||||
${WIDGETS_SRC_FILES}
|
||||
${WIDGETS_UI_FILES}
|
||||
${QML_HEADER_FILES}
|
||||
${QML_SRC_FILES}
|
||||
${QML_RES_FILES}
|
||||
${EXCLUDED_FILES}
|
||||
${TS_FILES}
|
||||
OPTIONS
|
||||
${LUPDATE_OPTIONS})
|
||||
qt5_create_translation(
|
||||
QM_FILES
|
||||
${HEADER_FILES}
|
||||
${SRC_FILES}
|
||||
${WIDGETS_HEADER_FILES}
|
||||
${WIDGETS_SRC_FILES}
|
||||
${WIDGETS_UI_FILES}
|
||||
${QML_HEADER_FILES}
|
||||
${QML_SRC_FILES}
|
||||
${QML_RES_FILES}
|
||||
${EXCLUDED_FILES}
|
||||
${TS_FILES}
|
||||
OPTIONS
|
||||
${LUPDATE_OPTIONS})
|
||||
add_custom_target(${META_PROJECT_NAME}_translations DEPENDS ${QM_FILES})
|
||||
if (NOT TARGET translations)
|
||||
add_custom_target(translations DEPENDS ${META_PROJECT_NAME}_translations)
|
||||
|
@ -308,14 +301,14 @@ if (ENABLE_QT_TRANSLATIONS AND TS_FILES)
|
|||
|
||||
# add install target for translations
|
||||
if (NOT META_NO_INSTALL_TARGETS AND ENABLE_INSTALL_TARGETS)
|
||||
install(FILES ${QM_FILES} DESTINATION "${META_DATA_DIR}/translations" COMPONENT localization)
|
||||
install(
|
||||
FILES ${QM_FILES}
|
||||
DESTINATION "${META_DATA_DIR}/translations"
|
||||
COMPONENT localization)
|
||||
if (NOT TARGET install-localization)
|
||||
set(LOCALIZATION_TARGET "install-localization")
|
||||
add_custom_target(${LOCALIZATION_TARGET}
|
||||
COMMAND "${CMAKE_COMMAND}"
|
||||
-DCMAKE_INSTALL_COMPONENT=localization
|
||||
-P
|
||||
"${CMAKE_BINARY_DIR}/cmake_install.cmake")
|
||||
add_custom_target(${LOCALIZATION_TARGET} COMMAND "${CMAKE_COMMAND}" -DCMAKE_INSTALL_COMPONENT=localization -P
|
||||
"${CMAKE_BINARY_DIR}/cmake_install.cmake")
|
||||
add_dependencies(${LOCALIZATION_TARGET} ${META_PROJECT_NAME}_translations)
|
||||
endif ()
|
||||
endif ()
|
||||
|
@ -326,10 +319,7 @@ endif ()
|
|||
# make application specific translation available as array via config.h (even if this project has no translations, there
|
||||
# might be some from dependencies)
|
||||
if (APP_SPECIFIC_QT_TRANSLATION_FILES)
|
||||
list_to_string(","
|
||||
" \\\n QStringLiteral(\""
|
||||
"\")"
|
||||
"${APP_SPECIFIC_QT_TRANSLATION_FILES}"
|
||||
list_to_string("," " \\\n QStringLiteral(\"" "\")" "${APP_SPECIFIC_QT_TRANSLATION_FILES}"
|
||||
APP_SPECIFIC_QT_TRANSLATION_FILES_ARRAY)
|
||||
else ()
|
||||
set(APP_SPECIFIC_QT_TRANSLATIONS_AVAILABLE NO)
|
||||
|
@ -358,7 +348,9 @@ endif ()
|
|||
|
||||
# add icons to be built-in
|
||||
if (REQUIRED_ICONS)
|
||||
set(BUILTIN_ICON_THEMES "" CACHE STRING "specifies icon themes to be built-in")
|
||||
set(BUILTIN_ICON_THEMES
|
||||
""
|
||||
CACHE STRING "specifies icon themes to be built-in")
|
||||
option(BUILTIN_ICON_THEMES_IN_LIBRARIES "specifies whether icon themes should also be built-in when building libraries"
|
||||
OFF)
|
||||
if (BUILTIN_ICON_THEMES AND (BUILTIN_ICON_THEMES_IN_LIBRARIES OR (NOT "${META_PROJECT_TYPE}" STREQUAL "library")))
|
||||
|
@ -375,10 +367,7 @@ if (REQUIRED_ICONS)
|
|||
file(REMOVE_RECURSE "${BUILTIN_ICONS_DIR}")
|
||||
file(MAKE_DIRECTORY "${BUILTIN_ICONS_DIR}")
|
||||
foreach (ICON_THEME ${BUILTIN_ICON_THEMES})
|
||||
string(REGEX MATCHALL
|
||||
"([^:]+|[^:]+$)"
|
||||
ICON_THEME_PARTS
|
||||
"${ICON_THEME}")
|
||||
string(REGEX MATCHALL "([^:]+|[^:]+$)" ICON_THEME_PARTS "${ICON_THEME}")
|
||||
list(LENGTH ICON_THEME_PARTS ICON_THEME_PARTS_LENGTH)
|
||||
if ("${ICON_THEME_PARTS_LENGTH}" STREQUAL 2)
|
||||
list(GET ICON_THEME_PARTS 0 ICON_THEME)
|
||||
|
@ -393,15 +382,19 @@ if (REQUIRED_ICONS)
|
|||
message(
|
||||
STATUS
|
||||
"The specified icon theme \"${ICON_THEME}\" has been located under \"${ICON_THEME_PATH}\" and will be built-in."
|
||||
)
|
||||
)
|
||||
# find index files
|
||||
if (NOT ICON_THEME STREQUAL FALLBACK_ICON_THEME)
|
||||
file(GLOB GLOBBED_ICON_THEME_INDEX_FILES
|
||||
LIST_DIRECTORIES false
|
||||
"${ICON_THEME_PATH}/index.theme" "${ICON_THEME_PATH}/icon-theme.cache")
|
||||
file(
|
||||
GLOB GLOBBED_ICON_THEME_INDEX_FILES
|
||||
LIST_DIRECTORIES false
|
||||
"${ICON_THEME_PATH}/index.theme" "${ICON_THEME_PATH}/icon-theme.cache")
|
||||
else ()
|
||||
# only index.theme required when icons are provided as fallback anyways
|
||||
file(GLOB GLOBBED_ICON_THEME_INDEX_FILES LIST_DIRECTORIES false "${ICON_THEME_PATH}/index.theme")
|
||||
file(
|
||||
GLOB GLOBBED_ICON_THEME_INDEX_FILES
|
||||
LIST_DIRECTORIES false
|
||||
"${ICON_THEME_PATH}/index.theme")
|
||||
endif ()
|
||||
# make the first specified built-in the default theme
|
||||
if (NOT EXISTS "${DEFAULT_THEME_INDEX_FILE}")
|
||||
|
@ -413,55 +406,40 @@ if (REQUIRED_ICONS)
|
|||
if (NOT ICON_THEME STREQUAL FALLBACK_ICON_THEME)
|
||||
set(GLOB_PATTERNS)
|
||||
foreach (REQUIRED_ICON ${REQUIRED_ICONS})
|
||||
list(APPEND GLOB_PATTERNS
|
||||
"${ICON_THEME_PATH}/${REQUIRED_ICON}"
|
||||
"${ICON_THEME_PATH}/${REQUIRED_ICON}.*"
|
||||
"${ICON_THEME_PATH}/*/${REQUIRED_ICON}"
|
||||
list(APPEND GLOB_PATTERNS "${ICON_THEME_PATH}/${REQUIRED_ICON}"
|
||||
"${ICON_THEME_PATH}/${REQUIRED_ICON}.*" "${ICON_THEME_PATH}/*/${REQUIRED_ICON}"
|
||||
"${ICON_THEME_PATH}/*/${REQUIRED_ICON}.*")
|
||||
endforeach ()
|
||||
file(GLOB_RECURSE GLOBBED_ICON_THEME_FILES LIST_DIRECTORIES false ${GLOB_PATTERNS})
|
||||
file(
|
||||
GLOB_RECURSE GLOBBED_ICON_THEME_FILES
|
||||
LIST_DIRECTORIES false
|
||||
${GLOB_PATTERNS})
|
||||
else ()
|
||||
message(
|
||||
STATUS
|
||||
"Icon files for specified theme \"${ICON_THEME}\" are skipped because these are provided as fallback anyways."
|
||||
)
|
||||
)
|
||||
set(GLOBBED_ICON_THEME_FILES)
|
||||
endif ()
|
||||
# make temporary copy of required icons and create resource list for Qt
|
||||
foreach (ICON_THEME_FILE ${GLOBBED_ICON_THEME_INDEX_FILES} ${GLOBBED_ICON_THEME_FILES})
|
||||
# resolve symlinks
|
||||
if (IS_SYMLINK "${ICON_THEME_FILE}")
|
||||
string(REGEX
|
||||
REPLACE "^${ICON_SEARCH_PATH}/"
|
||||
""
|
||||
ICON_THEME_FILE_RELATIVE_PATH
|
||||
"${ICON_THEME_FILE}")
|
||||
string(REGEX
|
||||
REPLACE "(^[^/\\]+)"
|
||||
"${NEW_ICON_THEME_NAME}"
|
||||
NEW_ICON_THEME_FILE_RELATIVE_PATH
|
||||
"${ICON_THEME_FILE_RELATIVE_PATH}")
|
||||
string(REGEX REPLACE "^${ICON_SEARCH_PATH}/" "" ICON_THEME_FILE_RELATIVE_PATH
|
||||
"${ICON_THEME_FILE}")
|
||||
string(REGEX REPLACE "(^[^/\\]+)" "${NEW_ICON_THEME_NAME}" NEW_ICON_THEME_FILE_RELATIVE_PATH
|
||||
"${ICON_THEME_FILE_RELATIVE_PATH}")
|
||||
set(ICON_THEME_FILE_ALIAS " alias=\"${NEW_ICON_THEME_FILE_RELATIVE_PATH}\"")
|
||||
get_filename_component(ICON_THEME_FILE "${ICON_THEME_FILE}" REALPATH)
|
||||
else ()
|
||||
unset(ICON_THEME_FILE_ALIAS)
|
||||
endif ()
|
||||
string(REGEX
|
||||
REPLACE "^${ICON_SEARCH_PATH}/"
|
||||
""
|
||||
ICON_THEME_FILE_RELATIVE_PATH
|
||||
"${ICON_THEME_FILE}")
|
||||
string(REGEX
|
||||
REPLACE "(^[^/\\]+)"
|
||||
"${NEW_ICON_THEME_NAME}"
|
||||
NEW_ICON_THEME_FILE_RELATIVE_PATH
|
||||
"${ICON_THEME_FILE_RELATIVE_PATH}")
|
||||
string(REGEX REPLACE "^${ICON_SEARCH_PATH}/" "" ICON_THEME_FILE_RELATIVE_PATH "${ICON_THEME_FILE}")
|
||||
string(REGEX REPLACE "(^[^/\\]+)" "${NEW_ICON_THEME_NAME}" NEW_ICON_THEME_FILE_RELATIVE_PATH
|
||||
"${ICON_THEME_FILE_RELATIVE_PATH}")
|
||||
get_filename_component(ICON_THEME_FILE_DIR "${ICON_THEME_FILE_RELATIVE_PATH}" DIRECTORY)
|
||||
string(REGEX
|
||||
REPLACE "(^[^/\\]+)"
|
||||
"${NEW_ICON_THEME_NAME}"
|
||||
NEW_ICON_THEME_FILE_DIR
|
||||
"${ICON_THEME_FILE_DIR}")
|
||||
string(REGEX REPLACE "(^[^/\\]+)" "${NEW_ICON_THEME_NAME}" NEW_ICON_THEME_FILE_DIR
|
||||
"${ICON_THEME_FILE_DIR}")
|
||||
file(MAKE_DIRECTORY "${BUILTIN_ICONS_DIR}/${NEW_ICON_THEME_FILE_DIR}")
|
||||
file(COPY "${ICON_THEME_FILE}" DESTINATION "${BUILTIN_ICONS_DIR}/${NEW_ICON_THEME_FILE_DIR}")
|
||||
list(APPEND ICON_THEME_FILES
|
||||
|
@ -477,9 +455,7 @@ if (REQUIRED_ICONS)
|
|||
endforeach ()
|
||||
set(BUILTIN_ICON_THEMES_QRC_FILE "${CMAKE_CURRENT_BINARY_DIR}/icons/${META_PROJECT_NAME}_builtinicons.qrc")
|
||||
list(REMOVE_DUPLICATES ICON_THEME_FILES)
|
||||
string(CONCAT BUILTIN_ICON_THEMES_QRC_FILE_CONTENT
|
||||
"<RCC><qresource prefix=\"/icons\">"
|
||||
${ICON_THEME_FILES}
|
||||
string(CONCAT BUILTIN_ICON_THEMES_QRC_FILE_CONTENT "<RCC><qresource prefix=\"/icons\">" ${ICON_THEME_FILES}
|
||||
"</qresource></RCC>")
|
||||
file(WRITE "${BUILTIN_ICON_THEMES_QRC_FILE}" "${BUILTIN_ICON_THEMES_QRC_FILE_CONTENT}")
|
||||
list(APPEND RES_FILES "${BUILTIN_ICON_THEMES_QRC_FILE}")
|
||||
|
@ -508,10 +484,9 @@ if (QT_RESOURCES)
|
|||
# make enabling resources of static dependencies available via config.h
|
||||
unset(ENABLE_QT_RESOURCES_OF_STATIC_DEPENDENCIES)
|
||||
foreach (QT_RESOURCE ${STATIC_LIBRARIES_QT_RESOURCES})
|
||||
set(
|
||||
ENABLE_QT_RESOURCES_OF_STATIC_DEPENDENCIES
|
||||
set(ENABLE_QT_RESOURCES_OF_STATIC_DEPENDENCIES
|
||||
"${ENABLE_QT_RESOURCES_OF_STATIC_DEPENDENCIES} \\\n struct initializer_${QT_RESOURCE} { \\\n initializer_${QT_RESOURCE}() { Q_INIT_RESOURCE(${QT_RESOURCE}); } \\\n ~initializer_${QT_RESOURCE}() { Q_CLEANUP_RESOURCE(${QT_RESOURCE}); } \\\n } dummy_${QT_RESOURCE};"
|
||||
)
|
||||
)
|
||||
endforeach ()
|
||||
endif ()
|
||||
|
||||
|
@ -525,9 +500,10 @@ if (WIDGETS_UI_FILES AND WIDGETS_GUI)
|
|||
# also add install for header files generated by uic
|
||||
foreach (UI_FILE WIDGETS_UI_FILES)
|
||||
get_filename_component(UI_NAME "${UI_FILE}" NAME_WE)
|
||||
install(FILES "${CMAKE_CURRENT_BINARY_DIR}/ui_${UI_NAME}.h"
|
||||
DESTINATION "include/${META_PROJECT_NAME}/ui"
|
||||
COMPONENT ui-header)
|
||||
install(
|
||||
FILES "${CMAKE_CURRENT_BINARY_DIR}/ui_${UI_NAME}.h"
|
||||
DESTINATION "include/${META_PROJECT_NAME}/ui"
|
||||
COMPONENT ui-header)
|
||||
endforeach ()
|
||||
endif ()
|
||||
endif ()
|
||||
|
|
|
@ -21,11 +21,7 @@ list(APPEND ADDITIONAL_QT_MODULES Gui)
|
|||
if (WIDGETS_GUI)
|
||||
list(APPEND META_PRIVATE_COMPILE_DEFINITIONS GUI_QTWIDGETS)
|
||||
list(APPEND META_PUBLIC_COMPILE_DEFINITIONS ${META_PROJECT_VARNAME_UPPER}_GUI_QTWIDGETS)
|
||||
list(APPEND WIDGETS_FILES
|
||||
${WIDGETS_HEADER_FILES}
|
||||
${WIDGETS_SRC_FILES}
|
||||
${WIDGETS_RES_FILES}
|
||||
${WIDGETS_UI_FILES})
|
||||
list(APPEND WIDGETS_FILES ${WIDGETS_HEADER_FILES} ${WIDGETS_SRC_FILES} ${WIDGETS_RES_FILES} ${WIDGETS_UI_FILES})
|
||||
list(APPEND ADDITIONAL_HEADER_FILES ${WIDGETS_HEADER_FILES})
|
||||
if (WIDGETS_FILES)
|
||||
list(APPEND ADDITIONAL_QT_MODULES Widgets)
|
||||
|
@ -41,10 +37,7 @@ endif ()
|
|||
if (QUICK_GUI)
|
||||
list(APPEND META_PRIVATE_COMPILE_DEFINITIONS GUI_QTQUICK)
|
||||
list(APPEND META_PUBLIC_COMPILE_DEFINITIONS ${META_PROJECT_VARNAME_UPPER}_GUI_QTQUICK)
|
||||
list(APPEND QML_FILES
|
||||
${QML_HEADER_FILES}
|
||||
${QML_SRC_FILES}
|
||||
${QML_RES_FILES})
|
||||
list(APPEND QML_FILES ${QML_HEADER_FILES} ${QML_SRC_FILES} ${QML_RES_FILES})
|
||||
list(APPEND ADDITIONAL_HEADER_FILES ${QML_HEADER_FILES})
|
||||
if (QML_FILES)
|
||||
list(APPEND ADDITIONAL_QT_MODULES Qml Quick)
|
||||
|
|
|
@ -5,7 +5,9 @@ if (TARGET_CONFIG_DONE)
|
|||
endif ()
|
||||
|
||||
# configure the specified JavaScript provider
|
||||
set(JS_PROVIDER "qml" CACHE STRING "specifies the JavaScript provider: qml (default), script or none")
|
||||
set(JS_PROVIDER
|
||||
"qml"
|
||||
CACHE STRING "specifies the JavaScript provider: qml (default), script or none")
|
||||
if (JS_PROVIDER STREQUAL "script")
|
||||
set(JS_PROVIDER Script)
|
||||
set(JS_DEFINITION "${META_PROJECT_VARNAME_UPPER}_USE_SCRIPT")
|
||||
|
@ -36,15 +38,15 @@ if (JS_PROVIDER)
|
|||
|
||||
include(TemplateFinder)
|
||||
find_template_file("jsdefs.h" QT_UTILITIES JS_DEFS_H_TEMPLATE_FILE)
|
||||
configure_file("${JS_DEFS_H_TEMPLATE_FILE}"
|
||||
"${JS_HEADER_DIR}/jsdefs.h" # simply add this to source to ease inclusion
|
||||
NEWLINE_STYLE UNIX # since this goes to sources ensure consistency
|
||||
)
|
||||
configure_file(
|
||||
"${JS_DEFS_H_TEMPLATE_FILE}" "${JS_HEADER_DIR}/jsdefs.h" # simply add this to source to ease inclusion
|
||||
NEWLINE_STYLE UNIX # since this goes to sources ensure consistency
|
||||
)
|
||||
find_template_file("jsincludes.h" QT_UTILITIES JS_INCLUDES_H_TEMPLATE_FILE)
|
||||
configure_file("${JS_INCLUDES_H_TEMPLATE_FILE}"
|
||||
"${JS_HEADER_DIR}/jsincludes.h" # simply add this to source to ease inclusion
|
||||
NEWLINE_STYLE UNIX # since this goes to sources ensure consistency
|
||||
)
|
||||
configure_file(
|
||||
"${JS_INCLUDES_H_TEMPLATE_FILE}" "${JS_HEADER_DIR}/jsincludes.h" # simply add this to source to ease inclusion
|
||||
NEWLINE_STYLE UNIX # since this goes to sources ensure consistency
|
||||
)
|
||||
list(APPEND WIDGETS_FILES "${JS_HEADER_DIR}/jsdefs.h" "${JS_HEADER_DIR}/jsincludes.h")
|
||||
endif ()
|
||||
|
||||
|
|
|
@ -20,17 +20,9 @@ endif ()
|
|||
macro (use_qt_module)
|
||||
# parse arguments
|
||||
set(OPTIONAL_ARGS ONLY_PLUGINS)
|
||||
set(ONE_VALUE_ARGS
|
||||
PREFIX
|
||||
MODULE
|
||||
VISIBILITY
|
||||
LIBRARIES_VARIABLE)
|
||||
set(ONE_VALUE_ARGS PREFIX MODULE VISIBILITY LIBRARIES_VARIABLE)
|
||||
set(MULTI_VALUE_ARGS TARGETS PLUGINS)
|
||||
cmake_parse_arguments(ARGS
|
||||
"${OPTIONAL_ARGS}"
|
||||
"${ONE_VALUE_ARGS}"
|
||||
"${MULTI_VALUE_ARGS}"
|
||||
${ARGN})
|
||||
cmake_parse_arguments(ARGS "${OPTIONAL_ARGS}" "${ONE_VALUE_ARGS}" "${MULTI_VALUE_ARGS}" ${ARGN})
|
||||
|
||||
# validate values
|
||||
if (NOT ARGS_PREFIX)
|
||||
|
@ -76,9 +68,8 @@ macro (use_qt_module)
|
|||
get_target_property("${ARGS_MODULE}_INTERFACE_LINK_LIBRARIES_RELEASE" "${TARGET}"
|
||||
INTERFACE_LINK_LIBRARIES_RELEASE)
|
||||
if ("${ARGS_MODULE}_INTERFACE_LINK_LIBRARIES_RELEASE")
|
||||
set_target_properties("${TARGET}"
|
||||
PROPERTIES INTERFACE_LINK_LIBRARIES
|
||||
"${${ARGS_MODULE}_INTERFACE_LINK_LIBRARIES_RELEASE}")
|
||||
set_target_properties("${TARGET}" PROPERTIES INTERFACE_LINK_LIBRARIES
|
||||
"${${ARGS_MODULE}_INTERFACE_LINK_LIBRARIES_RELEASE}")
|
||||
endif ()
|
||||
endforeach ()
|
||||
endif ()
|
||||
|
@ -99,10 +90,7 @@ macro (use_qt_module)
|
|||
endforeach ()
|
||||
|
||||
# unset variables (can not simply use a function because Qt's variables need to be exported)
|
||||
foreach (ARGUMENT
|
||||
${OPTIONAL_ARGS}
|
||||
${ONE_VALUE_ARGS}
|
||||
${MULTI_VALUE_ARGS})
|
||||
foreach (ARGUMENT ${OPTIONAL_ARGS} ${ONE_VALUE_ARGS} ${MULTI_VALUE_ARGS})
|
||||
unset(ARGS_${ARGUMENT})
|
||||
endforeach ()
|
||||
endmacro ()
|
||||
|
@ -116,24 +104,23 @@ function (query_qmake_variable QMAKE_VARIABLE)
|
|||
|
||||
# execute qmake
|
||||
get_target_property(QMAKE_BIN Qt5::qmake IMPORTED_LOCATION)
|
||||
execute_process(COMMAND "${QMAKE_BIN}" -query "${QMAKE_VARIABLE}"
|
||||
RESULT_VARIABLE "${QMAKE_VARIABLE}_RESULT"
|
||||
OUTPUT_VARIABLE "${QMAKE_VARIABLE}")
|
||||
execute_process(
|
||||
COMMAND "${QMAKE_BIN}" -query "${QMAKE_VARIABLE}"
|
||||
RESULT_VARIABLE "${QMAKE_VARIABLE}_RESULT"
|
||||
OUTPUT_VARIABLE "${QMAKE_VARIABLE}")
|
||||
if (NOT "${${QMAKE_VARIABLE}_RESULT}" STREQUAL 0 OR "${${QMAKE_VARIABLE}}" STREQUAL "")
|
||||
message(
|
||||
FATAL_ERROR
|
||||
"Unable to read qmake variable ${QMAKE_VARIABLE} via \"${QMAKE_BIN} -query ${QMAKE_VARIABLE}\"; output was \"${${QMAKE_VARIABLE}}\"."
|
||||
)
|
||||
)
|
||||
endif ()
|
||||
|
||||
# remove new-line character at the end
|
||||
string(REGEX
|
||||
REPLACE "\n$"
|
||||
""
|
||||
"${QMAKE_VARIABLE}"
|
||||
"${${QMAKE_VARIABLE}}")
|
||||
string(REGEX REPLACE "\n$" "" "${QMAKE_VARIABLE}" "${${QMAKE_VARIABLE}}")
|
||||
|
||||
# export variable to parent scope
|
||||
set("${QMAKE_VARIABLE}" "${${QMAKE_VARIABLE}}" PARENT_SCOPE)
|
||||
set("${QMAKE_VARIABLE}"
|
||||
"${${QMAKE_VARIABLE}}"
|
||||
PARENT_SCOPE)
|
||||
message(STATUS "qmake variable ${QMAKE_VARIABLE} is ${${QMAKE_VARIABLE}}")
|
||||
endfunction ()
|
||||
|
|
|
@ -5,7 +5,9 @@ if (TARGET_CONFIG_DONE)
|
|||
endif ()
|
||||
|
||||
# configure the specified web view provider
|
||||
set(WEBVIEW_PROVIDER "webengine" CACHE STRING "specifies the web view provider: webengine (default), webkit or none")
|
||||
set(WEBVIEW_PROVIDER
|
||||
"webengine"
|
||||
CACHE STRING "specifies the web view provider: webengine (default), webkit or none")
|
||||
if (WEBVIEW_PROVIDER STREQUAL "webkit")
|
||||
set(WEBVIEW_PROVIDER WebKitWidgets)
|
||||
set(WEBVIEW_DEFINITION "${META_PROJECT_VARNAME_UPPER}_USE_WEBKIT")
|
||||
|
@ -35,15 +37,16 @@ if (WEBVIEW_PROVIDER)
|
|||
|
||||
include(TemplateFinder)
|
||||
find_template_file("webviewdefs.h" QT_UTILITIES WEBVIEWDEFS_H_TEMPLATE_FILE)
|
||||
configure_file("${WEBVIEWDEFS_H_TEMPLATE_FILE}"
|
||||
"${WEBVIEW_HEADER_DIR}/webviewdefs.h" # simply add this to source to ease inclusion
|
||||
NEWLINE_STYLE UNIX # since this goes to sources ensure consistency
|
||||
)
|
||||
configure_file(
|
||||
"${WEBVIEWDEFS_H_TEMPLATE_FILE}" "${WEBVIEW_HEADER_DIR}/webviewdefs.h" # simply add this to source to ease inclusion
|
||||
NEWLINE_STYLE UNIX # since this goes to sources ensure consistency
|
||||
)
|
||||
find_template_file("webviewincludes.h" QT_UTILITIES WEBVIEWINCLUDES_H_TEMPLATE_FILE)
|
||||
configure_file("${WEBVIEWINCLUDES_H_TEMPLATE_FILE}"
|
||||
"${WEBVIEW_HEADER_DIR}/webviewincludes.h" # simply add this to source to ease inclusion
|
||||
NEWLINE_STYLE UNIX # since this goes to sources ensure consistency
|
||||
)
|
||||
configure_file(
|
||||
"${WEBVIEWINCLUDES_H_TEMPLATE_FILE}" "${WEBVIEW_HEADER_DIR}/webviewincludes.h" # simply add this to source to ease
|
||||
# inclusion
|
||||
NEWLINE_STYLE UNIX # since this goes to sources ensure consistency
|
||||
)
|
||||
list(APPEND WIDGETS_FILES "${WEBVIEW_HEADER_DIR}/webviewdefs.h" "${WEBVIEW_HEADER_DIR}/webviewincludes.h")
|
||||
endif ()
|
||||
|
||||
|
|
Loading…
Reference in New Issue