aboutsummaryrefslogtreecommitdiff
path: root/find-modules
diff options
context:
space:
mode:
Diffstat (limited to 'find-modules')
-rw-r--r--find-modules/FindGradle.cmake90
-rw-r--r--find-modules/FindQtWaylandScanner.cmake4
-rw-r--r--find-modules/FindReuseTool.cmake6
-rw-r--r--find-modules/FindWaylandScanner.cmake3
-rw-r--r--find-modules/local.properties.cmake1
-rwxr-xr-xfind-modules/rules_engine.py3
-rwxr-xr-xfind-modules/run-sip.py3
-rw-r--r--find-modules/settings.gradle.cmake1
-rw-r--r--find-modules/sip_generator.py6
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