diff options
Diffstat (limited to 'find-modules')
-rw-r--r-- | find-modules/FindGradle.cmake | 90 | ||||
-rw-r--r-- | find-modules/FindQtWaylandScanner.cmake | 4 | ||||
-rw-r--r-- | find-modules/FindReuseTool.cmake | 6 | ||||
-rw-r--r-- | find-modules/FindWaylandScanner.cmake | 3 | ||||
-rw-r--r-- | find-modules/local.properties.cmake | 1 | ||||
-rwxr-xr-x | find-modules/rules_engine.py | 3 | ||||
-rwxr-xr-x | find-modules/run-sip.py | 3 | ||||
-rw-r--r-- | find-modules/settings.gradle.cmake | 1 | ||||
-rw-r--r-- | find-modules/sip_generator.py | 6 |
9 files changed, 103 insertions, 14 deletions
diff --git a/find-modules/FindGradle.cmake b/find-modules/FindGradle.cmake new file mode 100644 index 00000000..414ea661 --- /dev/null +++ b/find-modules/FindGradle.cmake @@ -0,0 +1,90 @@ +#.rst: +# FindGradle +# ---------- +# +# Provides the ability to build Android AAR libraries using Gradle. +# +# This relies on the Qt provided Gradle, so a Qt for Android installation +# is required. +# +# gradle_add_aar(<target> +# BUIDLFILE build.gradle +# NAME <aar-name>) +# +# This builds an Android AAR library using the given ``build.gradle`` file. +# +# gradle_install_aar(<target> +# DESTINATION <dest>) +# +# Installs a Android AAR library that has been created with ``gradle_add_aar``. +# +# Since 5.76.0. + +#============================================================================= +# SPDX-FileCopyrightText: 2019 Volker Krause <vkrause@kde.org> +# +# SPDX-License-Identifier: BSD-3-Clause +#============================================================================= + +include(CMakeParseArguments) +include(FindPackageHandleStandardArgs) + +find_package(Qt5Core REQUIRED) + +if (NOT WIN32) + set(Gradle_EXECUTABLE ${CMAKE_BINARY_DIR}/gradle/gradlew) +else() + set(Gradle_EXECUTABLE ${CMAKE_BINARY_DIR}/gradle/gradlew.bat) +endif() + +get_target_property(_qt_core_location Qt5::Core LOCATION) +get_filename_component(_qt_install_root ${_qt_core_location} DIRECTORY) +get_filename_component(_qt_install_root ${_qt_install_root}/../ ABSOLUTE) + +set(_gradle_template_dir ${CMAKE_CURRENT_LIST_DIR}) + +add_custom_command(OUTPUT ${Gradle_EXECUTABLE} + COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_BINARY_DIR}/gradle + COMMAND ${CMAKE_COMMAND} -E copy_directory ${_qt_install_root}/src/3rdparty/gradle ${CMAKE_BINARY_DIR}/gradle +) +add_custom_target(gradle DEPENDS ${Gradle_EXECUTABLE}) + +find_package_handle_standard_args(Gradle DEFAULT_MSG Gradle_EXECUTABLE) + +function(gradle_add_aar target) + cmake_parse_arguments(ARG "" "BUILDFILE;NAME" "" ${ARGN}) + + set(_build_root ${CMAKE_CURRENT_BINARY_DIR}/gradle_build/${ARG_NAME}) + configure_file(${_gradle_template_dir}/local.properties.cmake ${_build_root}/local.properties) + configure_file(${_gradle_template_dir}/settings.gradle.cmake ${_build_root}/settings.gradle) + configure_file(${ARG_BUILDFILE} ${_build_root}/build.gradle) + + if (CMAKE_BUILD_TYPE MATCHES "[Dd][Ee][Bb][Uu][Gg]") + set(_aar_suffix "-debug") + set(_aar_gradleCmd "assembleDebug") + else() + set(_aar_suffix "-release") + set(_aar_gradleCmd "assembleRelease") + endif() + + file(GLOB_RECURSE _src_files CONFIGURE_DEPENDS "*") + add_custom_command( + OUTPUT ${_build_root}/build/outputs/aar/${ARG_NAME}${_aar_suffix}.aar + COMMAND ${Gradle_EXECUTABLE} ${_aar_gradleCmd} + # this allows make create-apk to work without installations for apps with AAR libs in the same repository + COMMAND ${CMAKE_COMMAND} -E copy ${_build_root}/build/outputs/aar/${ARG_NAME}${_aar_suffix}.aar ${CMAKE_BINARY_DIR}/jar/${ARG_NAME}.aar + DEPENDS ${Gradle_EXECUTABLE} ${_src_files} + DEPENDS gradle + WORKING_DIRECTORY ${_build_root} + ) + add_custom_target(${target} ALL DEPENDS ${_build_root}/build/outputs/aar/${ARG_NAME}${_aar_suffix}.aar) + set_target_properties(${target} PROPERTIES LOCATION ${_build_root}/build/outputs/aar/${ARG_NAME}${_aar_suffix}.aar) + set_target_properties(${target} PROPERTIES OUTPUT_NAME ${ARG_NAME}) +endfunction() + +function(gradle_install_aar target) + cmake_parse_arguments(ARG "" "DESTINATION" "" ${ARGN}) + get_target_property(_loc ${target} LOCATION) + get_target_property(_name ${target} OUTPUT_NAME) + install(FILES ${_loc} DESTINATION ${ARG_DESTINATION} RENAME ${_name}.aar) +endfunction() diff --git a/find-modules/FindQtWaylandScanner.cmake b/find-modules/FindQtWaylandScanner.cmake index 65da5d2e..efbbe87a 100644 --- a/find-modules/FindQtWaylandScanner.cmake +++ b/find-modules/FindQtWaylandScanner.cmake @@ -117,8 +117,6 @@ function(ecm_add_qtwayland_client_protocol out_var) BASENAME ${ARGS_BASENAME}) get_filename_component(_infile ${ARGS_PROTOCOL} ABSOLUTE) - set(_ccode "${CMAKE_CURRENT_BINARY_DIR}/wayland-${ARGS_BASENAME}-client-protocol.c") - set(_cheader "${CMAKE_CURRENT_BINARY_DIR}/wayland-${ARGS_BASENAME}-client-protocol.h") set(_header "${CMAKE_CURRENT_BINARY_DIR}/qwayland-${ARGS_BASENAME}.h") set(_code "${CMAKE_CURRENT_BINARY_DIR}/qwayland-${ARGS_BASENAME}.cpp") @@ -132,7 +130,7 @@ function(ecm_add_qtwayland_client_protocol out_var) COMMAND ${QtWaylandScanner_EXECUTABLE} client-code ${_infile} "" ${_prefix} > ${_code} DEPENDS ${_infile} ${_header} VERBATIM) - set_property(SOURCE ${_header} ${_code} ${_cheader} ${_ccode} PROPERTY SKIP_AUTOMOC ON) + set_property(SOURCE ${_header} ${_code} PROPERTY SKIP_AUTOMOC ON) list(APPEND ${out_var} "${_code}") set(${out_var} ${${out_var}} PARENT_SCOPE) diff --git a/find-modules/FindReuseTool.cmake b/find-modules/FindReuseTool.cmake index 9377f49e..adceeeb9 100644 --- a/find-modules/FindReuseTool.cmake +++ b/find-modules/FindReuseTool.cmake @@ -3,8 +3,8 @@ # Finds the REUSE Tool by FSFE: https://github.com/fsfe/reuse-tool # -# REUSE_TOOL_FOUND - True if REUSE tool is found. -# REUSE_TOOL_EXECUTABLE - Path to executable +# REUSETOOL_FOUND - True if REUSE tool is found. +# REUSETOOL_EXECUTABLE - Path to executable #============================================================================= # SPDX-FileCopyrightText: 2020 Andreas Cord-Landwehr <cordlandwehr@kde.org> @@ -19,5 +19,5 @@ find_package_handle_standard_args(ReuseTool FOUND_VAR REUSETOOL_FOUND REQUIRED_VARS - REUSE_TOOL_EXECUTABLE + REUSETOOL_EXECUTABLE ) diff --git a/find-modules/FindWaylandScanner.cmake b/find-modules/FindWaylandScanner.cmake index 61b4875e..08b0650b 100644 --- a/find-modules/FindWaylandScanner.cmake +++ b/find-modules/FindWaylandScanner.cmake @@ -134,7 +134,8 @@ function(ecm_add_wayland_server_protocol out_var) get_filename_component(_infile ${ARGS_PROTOCOL} ABSOLUTE) set(_server_header "${CMAKE_CURRENT_BINARY_DIR}/wayland-${ARGS_BASENAME}-server-protocol.h") - set_property(SOURCE ${_server_header} PROPERTY SKIP_AUTOMOC ON) + set(_server_code "${CMAKE_CURRENT_BINARY_DIR}/wayland-${ARGS_BASENAME}-protocol.c") + set_property(SOURCE ${_server_header} ${_server_code} PROPERTY SKIP_AUTOMOC ON) set_source_files_properties(${_server_header} GENERATED) add_custom_command(OUTPUT "${_server_header}" diff --git a/find-modules/local.properties.cmake b/find-modules/local.properties.cmake new file mode 100644 index 00000000..4f14cc3f --- /dev/null +++ b/find-modules/local.properties.cmake @@ -0,0 +1 @@ +sdk.dir=@ANDROID_SDK_ROOT@ diff --git a/find-modules/rules_engine.py b/find-modules/rules_engine.py index 60611eeb..b9e9dedd 100755 --- a/find-modules/rules_engine.py +++ b/find-modules/rules_engine.py @@ -18,7 +18,6 @@ import os import re import sys import textwrap -import traceback from copy import deepcopy from clang.cindex import CursorKind @@ -51,7 +50,7 @@ class Rule(object): # Derive a useful name for diagnostic purposes. # caller = os.path.basename(inspect.stack()[3][1]) - self.name = "{}:{}[{}],{}".format(caller, type(db).__name__, rule_number, fn.__name__) + self.name = "{}:{}[{}],{}".format(caller, type(db).__name__, rule_number, fn.__name__) self.rule_number = rule_number self.fn = fn self.usage = 0 diff --git a/find-modules/run-sip.py b/find-modules/run-sip.py index fc8a5e2b..e745a607 100755 --- a/find-modules/run-sip.py +++ b/find-modules/run-sip.py @@ -1,6 +1,7 @@ #!/usr/bin/env python -import os, sys +import os +import sys import fnmatch import subprocess diff --git a/find-modules/settings.gradle.cmake b/find-modules/settings.gradle.cmake new file mode 100644 index 00000000..6628d9e7 --- /dev/null +++ b/find-modules/settings.gradle.cmake @@ -0,0 +1 @@ +rootProject.name = '@ARG_NAME@' diff --git a/find-modules/sip_generator.py b/find-modules/sip_generator.py index 2dd2ef11..b8418649 100644 --- a/find-modules/sip_generator.py +++ b/find-modules/sip_generator.py @@ -12,12 +12,10 @@ import argparse import gettext import inspect import logging -import os -import re import sys import traceback from clang import cindex -from clang.cindex import AccessSpecifier, AvailabilityKind, CursorKind, SourceRange, StorageClass, TokenKind, TypeKind, TranslationUnit +from clang.cindex import AccessSpecifier, AvailabilityKind, CursorKind, SourceRange, TokenKind, TypeKind, TranslationUnit import rules_engine @@ -784,7 +782,7 @@ def main(argv=None): body, includes = g.create_sip(args.source, args.include_filename) with open(args.output, "w") as outputFile: outputFile.write(body) - except Exception as e: + except Exception: tbk = traceback.format_exc() print(tbk) return -1 |