Hello community,
here is the log from the commit of package extra-cmake-modules for
openSUSE:Factory checked in at 2020-10-12 13:53:17
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/extra-cmake-modules (Old)
and /work/SRC/openSUSE:Factory/.extra-cmake-modules.new.3486 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "extra-cmake-modules"
Mon Oct 12 13:53:17 2020 rev:82 rq:840790 version:5.75.0
Changes:
--------
--- /work/SRC/openSUSE:Factory/extra-cmake-modules/extra-cmake-modules.changes
2020-09-18 14:37:23.595787763 +0200
+++
/work/SRC/openSUSE:Factory/.extra-cmake-modules.new.3486/extra-cmake-modules.changes
2020-10-12 13:55:05.682111057 +0200
@@ -1,0 +2,9 @@
+Mon Oct 5 08:32:49 UTC 2020 - Christophe Giboudeaux <[email protected]>
+
+- Update to 5.75.0
+ * New feature release
+ * For more details please see:
+ * https://kde.org/announcements/kde-frameworks-5.75.0
+- Too many changes to list here.
+
+-------------------------------------------------------------------
Old:
----
extra-cmake-modules-5.74.0.tar.xz
extra-cmake-modules-5.74.0.tar.xz.sig
New:
----
extra-cmake-modules-5.75.0.tar.xz
extra-cmake-modules-5.75.0.tar.xz.sig
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ extra-cmake-modules.spec ++++++
--- /var/tmp/diff_new_pack.GbV0Lx/_old 2020-10-12 13:55:06.210111271 +0200
+++ /var/tmp/diff_new_pack.GbV0Lx/_new 2020-10-12 13:55:06.214111273 +0200
@@ -16,7 +16,7 @@
#
-%define _tar_path 5.74
+%define _tar_path 5.75
# Full KF5 version (e.g. 5.33.0)
%{!?_kf5_version: %global _kf5_version %{version}}
# Last major and minor KF5 version (e.g. 5.33)
@@ -29,7 +29,7 @@
# Only needed for the package signature condition
%bcond_without lang
Name: extra-cmake-modules
-Version: 5.74.0
+Version: 5.75.0
Release: 0
Summary: CMake modules
License: BSD-3-Clause
++++++ extra-cmake-modules-5.74.0.tar.xz -> extra-cmake-modules-5.75.0.tar.xz
++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/extra-cmake-modules-5.74.0/CMakeLists.txt
new/extra-cmake-modules-5.75.0/CMakeLists.txt
--- old/extra-cmake-modules-5.74.0/CMakeLists.txt 2020-08-30
12:20:31.000000000 +0200
+++ new/extra-cmake-modules-5.75.0/CMakeLists.txt 2020-10-01
14:34:06.000000000 +0200
@@ -11,7 +11,7 @@
# Preliminary setup
#
-set(VERSION "5.74.0") # handled by release scripts
+set(VERSION "5.75.0") # handled by release scripts
if (POLICY CMP0048)
cmake_policy(SET CMP0048 NEW)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/extra-cmake-modules-5.74.0/docs/module/ECMCheckOutboundLicense.rst
new/extra-cmake-modules-5.75.0/docs/module/ECMCheckOutboundLicense.rst
--- old/extra-cmake-modules-5.74.0/docs/module/ECMCheckOutboundLicense.rst
1970-01-01 01:00:00.000000000 +0100
+++ new/extra-cmake-modules-5.75.0/docs/module/ECMCheckOutboundLicense.rst
2020-10-01 14:34:06.000000000 +0200
@@ -0,0 +1 @@
+.. ecm-module:: ../../modules/ECMCheckOutboundLicense.cmake
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/extra-cmake-modules-5.74.0/find-modules/FindKF5.cmake
new/extra-cmake-modules-5.75.0/find-modules/FindKF5.cmake
--- old/extra-cmake-modules-5.74.0/find-modules/FindKF5.cmake 2020-08-30
12:20:31.000000000 +0200
+++ new/extra-cmake-modules-5.75.0/find-modules/FindKF5.cmake 2020-10-01
14:34:06.000000000 +0200
@@ -54,7 +54,7 @@
${_exact_arg} ${_quiet_arg}
CONFIG
)
- # CMake >= 3.17 wants to be explictly told we are fine with name mismatch
here
+ # CMake >= 3.17 wants to be explicitly told we are fine with name mismatch
here
set(_name_mismatched_arg)
if(NOT CMAKE_VERSION VERSION_LESS 3.17)
set(_name_mismatched_arg NAME_MISMATCHED)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/extra-cmake-modules-5.74.0/find-modules/FindReuseTool.cmake
new/extra-cmake-modules-5.75.0/find-modules/FindReuseTool.cmake
--- old/extra-cmake-modules-5.74.0/find-modules/FindReuseTool.cmake
1970-01-01 01:00:00.000000000 +0100
+++ new/extra-cmake-modules-5.75.0/find-modules/FindReuseTool.cmake
2020-10-01 14:34:06.000000000 +0200
@@ -0,0 +1,23 @@
+# WARNING: FOR ECM-INTERNAL USE ONLY, DO NOT USE IN OWN PROJECTS
+# THIS FILE MIGHT DISAPPEAR IN FUTURE VERSIONS OF ECM.
+
+# 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
+
+#=============================================================================
+# SPDX-FileCopyrightText: 2020 Andreas Cord-Landwehr <[email protected]>
+#
+# SPDX-License-Identifier: BSD-3-Clause
+#=============================================================================
+
+find_program(REUSETOOL_EXECUTABLE NAMES reuse)
+
+include(FindPackageHandleStandardArgs)
+find_package_handle_standard_args(ReuseTool
+ FOUND_VAR
+ REUSETOOL_FOUND
+ REQUIRED_VARS
+ REUSE_TOOL_EXECUTABLE
+)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/extra-cmake-modules-5.74.0/kde-modules/KDECMakeSettings.cmake
new/extra-cmake-modules-5.75.0/kde-modules/KDECMakeSettings.cmake
--- old/extra-cmake-modules-5.74.0/kde-modules/KDECMakeSettings.cmake
2020-08-30 12:20:31.000000000 +0200
+++ new/extra-cmake-modules-5.75.0/kde-modules/KDECMakeSettings.cmake
2020-10-01 14:34:06.000000000 +0200
@@ -300,7 +300,7 @@
WORKING_DIRECTORY "${dir}")
if(exitCode EQUAL 0)
- string(REGEX MATCHALL ".+[:\\/]([-A-Za-z0-9]+)(.git)?\\s*" ""
${giturl})
+ string(REGEX MATCHALL ".+kde\\.org[:\\/]([-A-Za-z0-9\\/]+)(.git)?\\s*"
"" ${giturl})
set(${reponame} ${CMAKE_MATCH_1})
endif()
@@ -325,7 +325,7 @@
_repository_name(_reponame "${CMAKE_SOURCE_DIR}")
set(releaseme_clone_commands
- COMMAND git clone --depth 1 https://anongit.kde.org/releaseme.git
+ COMMAND git clone --depth 1 https://invent.kde.org/sdk/releaseme.git
)
add_custom_command(
OUTPUT "${CMAKE_BINARY_DIR}/releaseme"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/extra-cmake-modules-5.74.0/modules/CheckAtomic.cmake
new/extra-cmake-modules-5.75.0/modules/CheckAtomic.cmake
--- old/extra-cmake-modules-5.74.0/modules/CheckAtomic.cmake 1970-01-01
01:00:00.000000000 +0100
+++ new/extra-cmake-modules-5.75.0/modules/CheckAtomic.cmake 2020-10-01
14:34:06.000000000 +0200
@@ -0,0 +1,96 @@
+#.rst:
+# CheckAtomic
+# -----------
+#
+# Check if the compiler supports std:atomic out of the box or if libatomic is
+# needed for atomic support. If it is needed libatomicis added to
+# CMAKE_REQUIRED_LIBRARIES. So after running CheckAtomic you can use
+# std:atomic.
+#
+# Since 5.75.0.
+
+#=============================================================================
+# SPDX-FileCopyrightText: 2003-2018 University of Illinois at Urbana-Champaign.
+#
+# SPDX-License-Identifier: BSD-3-Clause
+#=============================================================================
+
+include(CheckCXXSourceCompiles)
+include(CheckLibraryExists)
+
+# Sometimes linking against libatomic is required for atomic ops, if
+# the platform doesn't support lock-free atomics.
+
+function(check_working_cxx_atomics varname)
+ set(OLD_CMAKE_REQUIRED_FLAGS ${CMAKE_REQUIRED_FLAGS})
+ set(CMAKE_REQUIRED_FLAGS "${CMAKE_REQUIRED_FLAGS} -std=c++11")
+ check_cxx_source_compiles("
+ #include <atomic>
+ std::atomic<int> x;
+ std::atomic<short> y;
+ std::atomic<char> z;
+ int main() {
+ ++z;
+ ++y;
+ return ++x;
+ }
+ " ${varname})
+ set(CMAKE_REQUIRED_FLAGS ${OLD_CMAKE_REQUIRED_FLAGS})
+endfunction()
+
+function(check_working_cxx_atomics64 varname)
+ set(OLD_CMAKE_REQUIRED_FLAGS ${CMAKE_REQUIRED_FLAGS})
+ set(CMAKE_REQUIRED_FLAGS "-std=c++11 ${CMAKE_REQUIRED_FLAGS}")
+ check_cxx_source_compiles("
+ #include <atomic>
+ #include <cstdint>
+ std::atomic<uint64_t> x (0);
+ int main() {
+ uint64_t i = x.load(std::memory_order_relaxed);
+ return 0;
+ }
+ " ${varname})
+ set(CMAKE_REQUIRED_FLAGS ${OLD_CMAKE_REQUIRED_FLAGS})
+endfunction()
+
+# Check for (non-64-bit) atomic operations.
+if(MSVC)
+ set(HAVE_CXX_ATOMICS_WITHOUT_LIB True)
+elseif(LLVM_COMPILER_IS_GCC_COMPATIBLE)
+ # First check if atomics work without the library.
+ check_working_cxx_atomics(HAVE_CXX_ATOMICS_WITHOUT_LIB)
+ # If not, check if the library exists, and atomics work with it.
+ if(NOT HAVE_CXX_ATOMICS_WITHOUT_LIB)
+ check_library_exists(atomic __atomic_fetch_add_4 "" HAVE_LIBATOMIC)
+ if(HAVE_LIBATOMIC)
+ list(APPEND CMAKE_REQUIRED_LIBRARIES "atomic")
+ check_working_cxx_atomics(HAVE_CXX_ATOMICS_WITH_LIB)
+ if (NOT HAVE_CXX_ATOMICS_WITH_LIB)
+ message(FATAL_ERROR "Host compiler must support std::atomic!")
+ endif()
+ else()
+ message(FATAL_ERROR "Host compiler appears to require libatomic, but
cannot find it.")
+ endif()
+ endif()
+endif()
+
+# Check for 64 bit atomic operations.
+if(MSVC)
+ set(HAVE_CXX_ATOMICS64_WITHOUT_LIB True)
+elseif(LLVM_COMPILER_IS_GCC_COMPATIBLE)
+ # First check if atomics work without the library.
+ check_working_cxx_atomics64(HAVE_CXX_ATOMICS64_WITHOUT_LIB)
+ # If not, check if the library exists, and atomics work with it.
+ if(NOT HAVE_CXX_ATOMICS64_WITHOUT_LIB)
+ check_library_exists(atomic __atomic_load_8 "" HAVE_CXX_LIBATOMICS64)
+ if(HAVE_CXX_LIBATOMICS64)
+ list(APPEND CMAKE_REQUIRED_LIBRARIES "atomic")
+ check_working_cxx_atomics64(HAVE_CXX_ATOMICS64_WITH_LIB)
+ if (NOT HAVE_CXX_ATOMICS64_WITH_LIB)
+ message(FATAL_ERROR "Host compiler must support 64-bit std::atomic!")
+ endif()
+ else()
+ message(FATAL_ERROR "Host compiler appears to require libatomic for
64-bit operations, but cannot find it.")
+ endif()
+ endif()
+endif()
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/extra-cmake-modules-5.74.0/modules/ECMCheckOutboundLicense.cmake
new/extra-cmake-modules-5.75.0/modules/ECMCheckOutboundLicense.cmake
--- old/extra-cmake-modules-5.74.0/modules/ECMCheckOutboundLicense.cmake
1970-01-01 01:00:00.000000000 +0100
+++ new/extra-cmake-modules-5.75.0/modules/ECMCheckOutboundLicense.cmake
2020-10-01 14:34:06.000000000 +0200
@@ -0,0 +1,156 @@
+#.rst:
+# ECMCheckOutboundLicense
+# -----------------------
+#
+# Assert that source file licenses are compatible with a desired outbound
license
+# of a compiled binary artifact (e.g., library, plugin or application).
+#
+# This module provides the ``ecm_check_outbound_license`` function that
+# generates unit tests for checking the compatibility of license statements.
+# The license statements in all tested files are required to be added by using
+# the SPDX marker ``SPDX-License-Identifier``.
+#
+# During the CMake configuration of the project, a temporary license bill of
+# materials (BOM) in SPDX format is generated by calling the REUSE tool
+# (see <https://reuse.software>). That BOM is parsed and license computations
+# based on an internal compatibility matrix are performed.
+#
+# Preconditions for using this module:
+# * All tested input source files must contain the SPDX-License-Identifier
tag.
+# * Python3 must be available.
+# * The REUSE tool must be available, which generates the bill-of-materials
+# by running ``reuse spdx`` on the tested directory.
+#
+# When this module is included, a ``SKIP_LICENSE_TESTS`` option is added
(default
+# OFF). Turning this option on skips the generation of license tests, which
might
+# be convenient if licenses shall not be tested in all build configurations.
+#
+# ::
+#
+# ecm_check_outbound_license(LICENSES <outbound-licenses>
+# FILES <source-files>
+# [TEST_NAME <name>]
+# [WILL_FAIL])
+#
+# This method adds a custom unit test to ensure the specified outbound license
to be
+# compatible with the specified license headers. Note that a convenient way is
to use
+# the CMake GLOB command of the FILE function.
+#
+# ``LICENSES`` : List of one or multiple outbound license regarding which the
compatibility
+# of the source code files shall be tested. Currently, the
following values
+# are supported (values are SPDX registry identifiers):
+# * MIT
+# * BSD-2-Clause
+# * BSD-3-Clause
+# * LGPL-2.0-only
+# * LGPL-2.1-only
+# * LGPL-3.0-only
+# * GPL-2.0-only
+# * GPL-3.0-only
+#
+# ``FILES:`` : List of source files that contain valid
SPDX-License-Identifier markers.
+# The paths can be relative to the CMake file that generates
the test case
+# or be absolute paths.
+#
+# ``TEST_NAME`` : Optional parameter that defines the name of the generated
test case.
+# If no name is defined, the relative path to the test
directory with appended
+# license name is used. Every test has ``licensecheck_`` as
prefix.
+#
+# ``WILL_FAIL`` : Optional parameter that inverts the test result. This
parameter is usually only
+# used for tests of the module.
+#
+# Since 5.75.0
+
+#=============================================================================
+# SPDX-FileCopyrightText: 2020 Andreas Cord-Landwehr <[email protected]>
+# SPDX-License-Identifier: BSD-3-Clause
+
+include(FeatureSummary)
+
+option(SKIP_LICENSE_TESTS "Skip outbound license tests" OFF)
+
+find_package(Python3)
+set_package_properties(Python3 PROPERTIES
+ PURPOSE "Required to run tests of module ECMCheckOutboundLicense"
+ TYPE OPTIONAL
+)
+
+find_package(ReuseTool)
+set_package_properties(ReuseTool PROPERTIES
+ PURPOSE "Required to run tests of module ECMCheckOutboundLicense"
+ TYPE OPTIONAL
+)
+
+if (NOT SKIP_LICENSE_TESTS AND NOT REUSETOOL_FOUND)
+ add_feature_info(SPDX_LICENSE_TESTING FALSE "Automatic license testing
based on SPDX definitions (requires reuse tool)")
+ message(WARNING "Reuse tool not found, skipping test generation")
+else()
+ add_feature_info(SPDX_LICENSE_TESTING TRUE "Automatic license testing
based on SPDX definitions (requires reuse tool)")
+endif()
+
+set(SPDX_BOM_OUTPUT "${CMAKE_BINARY_DIR}/spdx.txt")
+
+# test fixture for generating SPDX bill of materials
+if(SKIP_LICENSE_TESTS OR NOT REUSETOOL_FOUND)
+ message(STATUS "Skipping execution of outbound license tests.")
+else()
+ add_test(
+ NAME generate_spdx_bom
+ COMMAND reuse spdx -o ${SPDX_BOM_OUTPUT}
+ WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
+ )
+ set_tests_properties(generate_spdx_bom PROPERTIES FIXTURES_SETUP SPDX_BOM)
+endif()
+
+function(ecm_check_outbound_license)
+ if(SKIP_LICENSE_TESTS OR NOT REUSETOOL_FOUND)
+ return()
+ endif()
+
+ set(_options WILL_FAIL)
+ set(_oneValueArgs TEST_NAME)
+ set(_multiValueArgs LICENSES FILES)
+ cmake_parse_arguments(ARG "${_options}" "${_oneValueArgs}"
"${_multiValueArgs}" ${ARGN} )
+
+ if(NOT ARG_LICENSES)
+ message(FATAL_ERROR "No LICENSES argument given to
ecm_check_outbound_license")
+ endif()
+
+ if(NOT ARG_FILES)
+ message(WARNING "No FILES argument given to
ecm_check_outbound_license")
+ return()
+ endif()
+
+ if(NOT ARG_TEST_NAME)
+ # compute test name based on licensecheck_<relative-path>_<licence> if
not name given
+ string(REPLACE "${CMAKE_SOURCE_DIR}/" "" TEMP_TEST_NAME
"${CMAKE_CURRENT_SOURCE_DIR}_${ARG_LICENSE}")
+ string(MAKE_C_IDENTIFIER ${TEMP_TEST_NAME} ARG_TEST_NAME)
+ endif()
+
+ # generate file with list of relative file paths
+ string(REPLACE "${CMAKE_BINARY_DIR}/" "" RELATIVE_PREFIX_PATH
${CMAKE_CURRENT_BINARY_DIR})
+ set(OUTPUT_FILE ${CMAKE_BINARY_DIR}/licensecheck_${ARG_TEST_NAME}.txt)
+ message(STATUS "Generate test input file: ${OUTPUT_FILE}")
+ file(REMOVE ${OUTPUT_FILE})
+ foreach(_file ${ARG_FILES})
+ # check script expects files to start with "./", which must be
relative to CMAKE_SOURCE_DIR
+ if (IS_ABSOLUTE ${_file})
+ string(REPLACE ${CMAKE_SOURCE_DIR} "." TEMPORARY_PATH ${_file})
+ file(APPEND ${OUTPUT_FILE} "${TEMPORARY_PATH}\n")
+ else()
+ file(APPEND ${OUTPUT_FILE} "./${RELATIVE_PREFIX_PATH}/${_file}\n")
+ endif()
+ endforeach()
+
+ file(COPY ${ECM_MODULE_DIR}/check-outbound-license.py DESTINATION
${CMAKE_BINARY_DIR})
+
+ foreach(_license ${ARG_LICENSES})
+ string(MAKE_C_IDENTIFIER ${_license} LICENSE_ID)
+ add_test(
+ NAME licensecheck_${ARG_TEST_NAME}_${LICENSE_ID}
+ COMMAND python3 ${CMAKE_BINARY_DIR}/check-outbound-license.py -l
${_license} -s ${SPDX_BOM_OUTPUT} -i ${OUTPUT_FILE}
+ )
+ set_tests_properties(licensecheck_${ARG_TEST_NAME}_${LICENSE_ID}
PROPERTIES FIXTURES_REQUIRED SPDX_BOM)
+ set_tests_properties(licensecheck_${ARG_TEST_NAME}_${LICENSE_ID}
PROPERTIES WILL_FAIL ${ARG_WILL_FAIL})
+ endforeach()
+endfunction()
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/extra-cmake-modules-5.74.0/modules/ECMGenerateDBusServiceFile.cmake
new/extra-cmake-modules-5.75.0/modules/ECMGenerateDBusServiceFile.cmake
--- old/extra-cmake-modules-5.74.0/modules/ECMGenerateDBusServiceFile.cmake
2020-08-30 12:20:31.000000000 +0200
+++ new/extra-cmake-modules-5.75.0/modules/ECMGenerateDBusServiceFile.cmake
2020-10-01 14:34:06.000000000 +0200
@@ -12,10 +12,11 @@
# EXECUTABLE <executable>
# [SYSTEMD_SERVICE <systemd service>]
# DESTINATION <install_path>
+# [RENAME <dbus service filename>]
# )
#
# A D-Bus service file ``<service name>.service`` will be generated and
installed
-# in the relevant D-Bus config location.
+# in the relevant D-Bus config location. This filename can be customized with
RENAME.
#
# ``<executable>`` must be an absolute path to the installed service
executable. When using it with
# ``KDEInstallDirs`` it needs to be the ``_FULL_`` variant of the path
variable.
@@ -43,12 +44,14 @@
# EXECUTABLE ${KDE_INSTALL_FULL_BINDIR}/kded5
# SYSTEMD_SERVICE plasma-kded.service
# DESTINATION ${KDE_INSTALL_DBUSSERVICEDIR}
+# RENAME org.kde.daemon.service
# )
#
# Since 5.73.0.
#=============================================================================
# SPDX-FileCopyrightText: 2020 Kai Uwe Broulik <[email protected]>
+# SPDX-FileCopyrightText: 2020 Henri Chain <[email protected]>
#
# SPDX-License-Identifier: BSD-3-Clause
@@ -56,7 +59,7 @@
function(ecm_generate_dbus_service_file)
set(options)
- set(oneValueArgs EXECUTABLE NAME SYSTEMD_SERVICE DESTINATION)
+ set(oneValueArgs EXECUTABLE NAME SYSTEMD_SERVICE DESTINATION RENAME)
set(multiValueArgs)
cmake_parse_arguments(ARG "${options}" "${oneValueArgs}"
"${multiValueArgs}" ${ARGN})
@@ -95,5 +98,9 @@
file(APPEND ${_service_file} "SystemdService=${ARG_SYSTEMD_SERVICE}\n")
endif()
- install(FILES ${_service_file} DESTINATION ${ARG_DESTINATION})
+ if (ARG_RENAME)
+ install(FILES ${_service_file} DESTINATION ${ARG_DESTINATION} RENAME
${ARG_RENAME})
+ else()
+ install(FILES ${_service_file} DESTINATION ${ARG_DESTINATION})
+ endif()
endfunction()
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/extra-cmake-modules-5.74.0/modules/check-outbound-license.py
new/extra-cmake-modules-5.75.0/modules/check-outbound-license.py
--- old/extra-cmake-modules-5.74.0/modules/check-outbound-license.py
1970-01-01 01:00:00.000000000 +0100
+++ new/extra-cmake-modules-5.75.0/modules/check-outbound-license.py
2020-10-01 14:34:06.000000000 +0200
@@ -0,0 +1,139 @@
+#!/usr/bin/env python3
+# SPDX-FileCopyrightText: 2020 Andreas Cord-Landwehr <[email protected]>
+# SPDX-License-Identifier: BSD-3-Clause
+
+# key : outbound license identifier
+# values : list of acceptable licenses that are compatible with outbound
license
+compatibilityMatrix = {
+ "MIT": [
+ "CC0-1.0",
+ "MIT"],
+ "BSD-2-Clause": [
+ "CC0-1.0",
+ "MIT",
+ "BSD-2-Clause"],
+ "BSD-3-Clause": [
+ "CC0-1.0",
+ "MIT",
+ "BSD-2-Clause",
+ "BSD-3-Clause"],
+ "LGPL-2.0-only": [
+ "CC0-1.0",
+ "LGPL-2.0-only",
+ "LGPL-2.0-or-later",
+ "MIT",
+ "BSD-2-Clause",
+ "BSD-3-Clause",
+ "bzip2-1.0.6"],
+ "LGPL-2.1-only": [
+ "CC0-1.0",
+ "LGPL-2.0-or-later",
+ "LGPL-2.1-only",
+ "LGPL-2.1-or-later",
+ "MIT",
+ "BSD-2-Clause",
+ "BSD-3-Clause",
+ "bzip2-1.0.6"],
+ "LGPL-3.0-only": [
+ "CC0-1.0",
+ "LGPL-2.0-or-later",
+ "LGPL-2.1-or-later",
+ "LGPL-3.0-only",
+ "LGPL-3.0-or-later",
+ "MIT",
+ "BSD-2-Clause",
+ "BSD-3-Clause",
+ "bzip2-1.0.6"],
+ "GPL-2.0-only": [
+ "CC0-1.0",
+ "LGPL-2.0-only",
+ "LGPL-2.1-only",
+ "LGPL-2.0-or-later",
+ "LGPL-2.1-or-later",
+ "GPL-2.0-only",
+ "GPL-2.0-or-later",
+ "MIT",
+ "BSD-2-Clause",
+ "BSD-3-Clause",
+ "bzip2-1.0.6"],
+ "GPL-3.0-only": [
+ "CC0-1.0",
+ "LGPL-2.0-or-later",
+ "LGPL-2.1-or-later",
+ "LGPL-3.0-only",
+ "LGPL-3.0-or-later",
+ "GPL-2.0-or-later",
+ "GPL-3.0-only",
+ "GPL-3.0-or-later",
+ "MIT",
+ "BSD-2-Clause",
+ "BSD-3-Clause",
+ "bzip2-1.0.6"]
+}
+
+def check_outbound_license(license, files, spdxDictionary):
+ """
+ Asserts that the list of source files @p files, when combined into
+ a library or executable, can be delivered under the combined license @p
license .
+ """
+ print("Checking Target License: " + license)
+ if not license in compatibilityMatrix:
+ print("Error: unknown license selected")
+ return False
+
+ allLicensesAreCompatible = True
+
+ for sourceFile in files:
+ compatible = False
+ sourceFileStripped = sourceFile.strip()
+ for fileLicense in spdxDictionary[sourceFileStripped]:
+ if fileLicense in compatibilityMatrix[license]:
+ compatible = True
+ print("OK " + sourceFileStripped + " : " + fileLicense)
+ if not compatible:
+ allLicensesAreCompatible = False
+ print("-- " + sourceFileStripped + " : ( " + ", ".join([str(i) for
i in spdxDictionary[sourceFileStripped]]) + " )")
+ return allLicensesAreCompatible
+
+if __name__ == '__main__':
+ print("Parsing SPDX BOM file")
+ import sys
+ import argparse
+
+ # parse commands
+ parser = argparse.ArgumentParser()
+ parser.add_argument("-l", "--license", help="set outbound license to test")
+ parser.add_argument("-s", "--spdx", help="spdx bill-of-materials file")
+ parser.add_argument("-i", "--input", help="input file with list of source
files to test")
+ args = parser.parse_args()
+
+ # TODO check if required arguments are present and give meaningful feedback
+
+ # collect name and licenses from SPDX blocks
+ spdxDictionary = {}
+ fileName = ""
+ licenses = []
+ f = open(args.spdx, "r")
+ for line in f:
+ if line.startswith("FileName:"):
+ # strip "FileName: "
+ # thus name expected to start with "./", which is relative to
CMAKE_SOURCE_DIR
+ fileName = line[10:].strip()
+ if line.startswith("LicenseInfoInFile:"):
+ licenses.append(line[19:].strip())
+ if line == '' or line == "\n":
+ spdxDictionary[fileName] = licenses
+ fileName = ""
+ licenses = []
+ f.close();
+
+ # read file with list of test files
+ f = open(args.input, "r")
+ testfiles = f.readlines()
+ f.close()
+
+ if check_outbound_license(args.license, testfiles, spdxDictionary) == True:
+ sys.exit(0);
+
+ # in any other case, return error code
+ sys.exit(1)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/extra-cmake-modules-5.74.0/tests/CMakeLists.txt
new/extra-cmake-modules-5.75.0/tests/CMakeLists.txt
--- old/extra-cmake-modules-5.74.0/tests/CMakeLists.txt 2020-08-30
12:20:31.000000000 +0200
+++ new/extra-cmake-modules-5.75.0/tests/CMakeLists.txt 2020-10-01
14:34:06.000000000 +0200
@@ -60,6 +60,11 @@
list(APPEND CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/find-modules)
+# enforce finding of ReuseTool in parent scope of module, beause
+# only here the module path can point into the source directory
+find_package(ReuseTool)
+add_subdirectory(ECMCheckOutboundLicenseTest)
+
# Skip if PyQt not available
find_file(SIP_Qt5Core_Mod_FILE
NAMES QtCoremod.sip
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/extra-cmake-modules-5.74.0/tests/ECMCheckOutboundLicenseTest/CMakeLists.txt
new/extra-cmake-modules-5.75.0/tests/ECMCheckOutboundLicenseTest/CMakeLists.txt
---
old/extra-cmake-modules-5.74.0/tests/ECMCheckOutboundLicenseTest/CMakeLists.txt
1970-01-01 01:00:00.000000000 +0100
+++
new/extra-cmake-modules-5.75.0/tests/ECMCheckOutboundLicenseTest/CMakeLists.txt
2020-10-01 14:34:06.000000000 +0200
@@ -0,0 +1,88 @@
+set(ECM_MODULE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/../../modules)
+set(CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/../../modules)
+include(ECMCheckOutboundLicense)
+
+# check relative and absolute input paths
+ecm_check_outbound_license(
+LICENSES LGPL-2.1-only
+TEST_NAME absolute-path-handling
+FILES
+ testdata/BSD-2-Clause.cpp
+ ${CMAKE_CURRENT_SOURCE_DIR}/testdata/LGPL-2.1-or-later.cpp
+)
+
+# check test case generation wihout TEST_NAME statement
+ecm_check_outbound_license(
+LICENSES LGPL-2.1-only
+FILES
+ testdata/BSD-2-Clause.cpp
+)
+
+# check multi license case
+ecm_check_outbound_license(
+LICENSES LGPL-2.1-only GPL-3.0-only
+TEST_NAME multiple-licenses
+FILES
+ testdata/BSD-2-Clause.cpp
+)
+
+
+# check for valid LGPL-2.1-only
+ecm_check_outbound_license(
+LICENSES LGPL-2.1-only
+TEST_NAME valid-LGPL-2.1-only
+FILES
+ testdata/BSD-2-Clause.cpp
+ testdata/LGPL-2.1-or-later.cpp
+)
+
+# check for valid LGPL-3.0-only
+ecm_check_outbound_license(
+LICENSES LGPL-3.0-only
+TEST_NAME valid-LGPL-3.0-only
+FILES
+ testdata/BSD-2-Clause.cpp
+ testdata/LGPL-2.1-or-later.cpp
+ testdata/LGPL-3.0-only.cpp
+)
+
+# check for valid GPL-2.0-only
+ecm_check_outbound_license(
+LICENSES GPL-2.0-only
+TEST_NAME valid-GPL-2.0-only
+FILES
+ testdata/BSD-2-Clause.cpp
+ testdata/LGPL-2.1-or-later.cpp
+ testdata/GPL-2.0-only.cpp
+)
+
+# check for valid GPL-3.0-only
+ecm_check_outbound_license(
+LICENSES GPL-3.0-only
+TEST_NAME valid-GPL-3.0-only
+FILES
+ testdata/BSD-2-Clause.cpp
+ testdata/LGPL-2.1-or-later.cpp
+ testdata/LGPL-3.0-only.cpp
+ testdata/GPL-3.0-only.cpp
+)
+
+# check for invalid GPL-3.0-only
+ecm_check_outbound_license(
+LICENSES LGPL-2.1-only
+TEST_NAME invalid-LGPL-2.1-only
+FILES
+ testdata/LGPL-2.0-only.cpp
+ testdata/GPL-3.0-only.cpp
+WILL_FAIL
+)
+
+# check for invalid GPL-3.0-only
+ecm_check_outbound_license(
+LICENSES GPL-3.0-only
+TEST_NAME invalid-GPL-3.0-only
+FILES
+ testdata/GPL-2.0-only.cpp
+ testdata/GPL-3.0-only.cpp
+WILL_FAIL
+)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/extra-cmake-modules-5.74.0/tests/ECMCheckOutboundLicenseTest/testdata/BSD-2-Clause.cpp
new/extra-cmake-modules-5.75.0/tests/ECMCheckOutboundLicenseTest/testdata/BSD-2-Clause.cpp
---
old/extra-cmake-modules-5.74.0/tests/ECMCheckOutboundLicenseTest/testdata/BSD-2-Clause.cpp
1970-01-01 01:00:00.000000000 +0100
+++
new/extra-cmake-modules-5.75.0/tests/ECMCheckOutboundLicenseTest/testdata/BSD-2-Clause.cpp
2020-10-01 14:34:06.000000000 +0200
@@ -0,0 +1,6 @@
+/*
+ SPDX-FileCopyrightText: 2020 Jane Doe <[email protected]>
+ SPDX-License-Identifier: BSD-2-Clause
+*/
+
+// nothing in here, it is only a test
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/extra-cmake-modules-5.74.0/tests/ECMCheckOutboundLicenseTest/testdata/GPL-2.0-only.cpp
new/extra-cmake-modules-5.75.0/tests/ECMCheckOutboundLicenseTest/testdata/GPL-2.0-only.cpp
---
old/extra-cmake-modules-5.74.0/tests/ECMCheckOutboundLicenseTest/testdata/GPL-2.0-only.cpp
1970-01-01 01:00:00.000000000 +0100
+++
new/extra-cmake-modules-5.75.0/tests/ECMCheckOutboundLicenseTest/testdata/GPL-2.0-only.cpp
2020-10-01 14:34:06.000000000 +0200
@@ -0,0 +1,6 @@
+/*
+ SPDX-FileCopyrightText: 2020 John Doe <[email protected]>
+ SPDX-License-Identifier: GPL-2.0-only
+*/
+
+// nothing in here, it is only a test
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/extra-cmake-modules-5.74.0/tests/ECMCheckOutboundLicenseTest/testdata/GPL-2.0-or-later.cpp
new/extra-cmake-modules-5.75.0/tests/ECMCheckOutboundLicenseTest/testdata/GPL-2.0-or-later.cpp
---
old/extra-cmake-modules-5.74.0/tests/ECMCheckOutboundLicenseTest/testdata/GPL-2.0-or-later.cpp
1970-01-01 01:00:00.000000000 +0100
+++
new/extra-cmake-modules-5.75.0/tests/ECMCheckOutboundLicenseTest/testdata/GPL-2.0-or-later.cpp
2020-10-01 14:34:06.000000000 +0200
@@ -0,0 +1,6 @@
+/*
+ SPDX-FileCopyrightText: 2020 John Doe <[email protected]>
+ SPDX-License-Identifier: GPL-2.0-or-later
+*/
+
+// nothing in here, it is only a test
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/extra-cmake-modules-5.74.0/tests/ECMCheckOutboundLicenseTest/testdata/GPL-3.0-only.cpp
new/extra-cmake-modules-5.75.0/tests/ECMCheckOutboundLicenseTest/testdata/GPL-3.0-only.cpp
---
old/extra-cmake-modules-5.74.0/tests/ECMCheckOutboundLicenseTest/testdata/GPL-3.0-only.cpp
1970-01-01 01:00:00.000000000 +0100
+++
new/extra-cmake-modules-5.75.0/tests/ECMCheckOutboundLicenseTest/testdata/GPL-3.0-only.cpp
2020-10-01 14:34:06.000000000 +0200
@@ -0,0 +1,6 @@
+/*
+ SPDX-FileCopyrightText: 2020 John Doe <[email protected]>
+ SPDX-License-Identifier: GPL-3.0-only
+*/
+
+// nothing in here, it is only a test
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/extra-cmake-modules-5.74.0/tests/ECMCheckOutboundLicenseTest/testdata/LGPL-2.1-or-later.cpp
new/extra-cmake-modules-5.75.0/tests/ECMCheckOutboundLicenseTest/testdata/LGPL-2.1-or-later.cpp
---
old/extra-cmake-modules-5.74.0/tests/ECMCheckOutboundLicenseTest/testdata/LGPL-2.1-or-later.cpp
1970-01-01 01:00:00.000000000 +0100
+++
new/extra-cmake-modules-5.75.0/tests/ECMCheckOutboundLicenseTest/testdata/LGPL-2.1-or-later.cpp
2020-10-01 14:34:06.000000000 +0200
@@ -0,0 +1,6 @@
+/*
+ SPDX-FileCopyrightText: 2020 John Doe <[email protected]>
+ SPDX-License-Identifier: LGPL-2.1-or-later
+*/
+
+// nothing in here, it is only a test
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/extra-cmake-modules-5.74.0/tests/ECMCheckOutboundLicenseTest/testdata/LGPL-3.0-only.cpp
new/extra-cmake-modules-5.75.0/tests/ECMCheckOutboundLicenseTest/testdata/LGPL-3.0-only.cpp
---
old/extra-cmake-modules-5.74.0/tests/ECMCheckOutboundLicenseTest/testdata/LGPL-3.0-only.cpp
1970-01-01 01:00:00.000000000 +0100
+++
new/extra-cmake-modules-5.75.0/tests/ECMCheckOutboundLicenseTest/testdata/LGPL-3.0-only.cpp
2020-10-01 14:34:06.000000000 +0200
@@ -0,0 +1,6 @@
+/*
+ SPDX-FileCopyrightText: 2020 Jane Doe <[email protected]>
+ SPDX-License-Identifier: LGPL-3.0-only
+*/
+
+// nothing in here, it is only a test
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/extra-cmake-modules-5.74.0/tests/ECMGenerateDBusServiceFileTest/CMakeLists.txt
new/extra-cmake-modules-5.75.0/tests/ECMGenerateDBusServiceFileTest/CMakeLists.txt
---
old/extra-cmake-modules-5.74.0/tests/ECMGenerateDBusServiceFileTest/CMakeLists.txt
2020-08-30 12:20:31.000000000 +0200
+++
new/extra-cmake-modules-5.75.0/tests/ECMGenerateDBusServiceFileTest/CMakeLists.txt
2020-10-01 14:34:06.000000000 +0200
@@ -19,6 +19,7 @@
EXECUTABLE /usr/bin/kded5
SYSTEMD_SERVICE plasma-kded.service
DESTINATION ${CMAKE_INSTALL_PREFIX}/test
+ RENAME org.kde.kded5.withSystemD.renamed.service
)
# this will be run by CTest
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/extra-cmake-modules-5.74.0/tests/ECMGenerateDBusServiceFileTest/check_tree.cmake.in
new/extra-cmake-modules-5.75.0/tests/ECMGenerateDBusServiceFileTest/check_tree.cmake.in
---
old/extra-cmake-modules-5.74.0/tests/ECMGenerateDBusServiceFileTest/check_tree.cmake.in
2020-08-30 12:20:31.000000000 +0200
+++
new/extra-cmake-modules-5.75.0/tests/ECMGenerateDBusServiceFileTest/check_tree.cmake.in
2020-10-01 14:34:06.000000000 +0200
@@ -1,4 +1,9 @@
-set(EXPECTED "@CMAKE_CURRENT_SOURCE_DIR@/expected")
+if (WIN32)
+ set(EXPECTED "@CMAKE_CURRENT_SOURCE_DIR@/windowsexpected")
+else ()
+ set(EXPECTED "@CMAKE_CURRENT_SOURCE_DIR@/expected")
+endif (WIN32)
+
set(ACTUAL "@CMAKE_INSTALL_PREFIX@")
# Compares files in two directories, emits a fatal error if the top level
files are different
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/extra-cmake-modules-5.74.0/tests/ECMGenerateDBusServiceFileTest/expected/org.kde.kded5.withSystemD.renamed.service
new/extra-cmake-modules-5.75.0/tests/ECMGenerateDBusServiceFileTest/expected/org.kde.kded5.withSystemD.renamed.service
---
old/extra-cmake-modules-5.74.0/tests/ECMGenerateDBusServiceFileTest/expected/org.kde.kded5.withSystemD.renamed.service
1970-01-01 01:00:00.000000000 +0100
+++
new/extra-cmake-modules-5.75.0/tests/ECMGenerateDBusServiceFileTest/expected/org.kde.kded5.withSystemD.renamed.service
2020-10-01 14:34:06.000000000 +0200
@@ -0,0 +1,4 @@
+[D-BUS Service]
+Name=org.kde.kded5.withSystemD
+Exec=/usr/bin/kded5
+SystemdService=plasma-kded.service
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/extra-cmake-modules-5.74.0/tests/ECMGenerateDBusServiceFileTest/expected/org.kde.kded5.withSystemD.service
new/extra-cmake-modules-5.75.0/tests/ECMGenerateDBusServiceFileTest/expected/org.kde.kded5.withSystemD.service
---
old/extra-cmake-modules-5.74.0/tests/ECMGenerateDBusServiceFileTest/expected/org.kde.kded5.withSystemD.service
2020-08-30 12:20:31.000000000 +0200
+++
new/extra-cmake-modules-5.75.0/tests/ECMGenerateDBusServiceFileTest/expected/org.kde.kded5.withSystemD.service
1970-01-01 01:00:00.000000000 +0100
@@ -1,4 +0,0 @@
-[D-BUS Service]
-Name=org.kde.kded5.withSystemD
-Exec=/usr/bin/kded5
-SystemdService=plasma-kded.service
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/extra-cmake-modules-5.74.0/tests/ECMGenerateDBusServiceFileTest/windowsexpected/org.kde.kded5.service
new/extra-cmake-modules-5.75.0/tests/ECMGenerateDBusServiceFileTest/windowsexpected/org.kde.kded5.service
---
old/extra-cmake-modules-5.74.0/tests/ECMGenerateDBusServiceFileTest/windowsexpected/org.kde.kded5.service
1970-01-01 01:00:00.000000000 +0100
+++
new/extra-cmake-modules-5.75.0/tests/ECMGenerateDBusServiceFileTest/windowsexpected/org.kde.kded5.service
2020-10-01 14:34:06.000000000 +0200
@@ -0,0 +1,3 @@
+[D-BUS Service]
+Name=org.kde.kded5
+Exec=kded5
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/extra-cmake-modules-5.74.0/tests/ECMGenerateDBusServiceFileTest/windowsexpected/org.kde.kded5.withSystemD.renamed.service
new/extra-cmake-modules-5.75.0/tests/ECMGenerateDBusServiceFileTest/windowsexpected/org.kde.kded5.withSystemD.renamed.service
---
old/extra-cmake-modules-5.74.0/tests/ECMGenerateDBusServiceFileTest/windowsexpected/org.kde.kded5.withSystemD.renamed.service
1970-01-01 01:00:00.000000000 +0100
+++
new/extra-cmake-modules-5.75.0/tests/ECMGenerateDBusServiceFileTest/windowsexpected/org.kde.kded5.withSystemD.renamed.service
2020-10-01 14:34:06.000000000 +0200
@@ -0,0 +1,4 @@
+[D-BUS Service]
+Name=org.kde.kded5.withSystemD
+Exec=kded5
+SystemdService=plasma-kded.service
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/extra-cmake-modules-5.74.0/tests/ExecuteCoreModules/CMakeLists.txt
new/extra-cmake-modules-5.75.0/tests/ExecuteCoreModules/CMakeLists.txt
--- old/extra-cmake-modules-5.74.0/tests/ExecuteCoreModules/CMakeLists.txt
2020-08-30 12:20:31.000000000 +0200
+++ new/extra-cmake-modules-5.75.0/tests/ExecuteCoreModules/CMakeLists.txt
2020-10-01 14:34:06.000000000 +0200
@@ -4,6 +4,7 @@
file(GLOB all_core_modules "${CMAKE_CURRENT_SOURCE_DIR}/../../modules/*cmake")
set(CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/../../modules)
+list(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/../../find-modules)
foreach(module ${all_core_modules})
message(STATUS "module: ${module}")
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/extra-cmake-modules-5.74.0/tests/KDEFetchTranslations/CMakeLists.txt
new/extra-cmake-modules-5.75.0/tests/KDEFetchTranslations/CMakeLists.txt
--- old/extra-cmake-modules-5.74.0/tests/KDEFetchTranslations/CMakeLists.txt
2020-08-30 12:20:31.000000000 +0200
+++ new/extra-cmake-modules-5.75.0/tests/KDEFetchTranslations/CMakeLists.txt
2020-10-01 14:34:06.000000000 +0200
@@ -18,8 +18,8 @@
endforeach()
_repository_name(name "${CMAKE_CURRENT_SOURCE_DIR}/../../")
-if (NOT ${name} STREQUAL "extra-cmake-modules")
- message(FATAL_ERROR "Wrong repository name: ${name}, should be
'extra-cmake-modules'")
+if (NOT ${name} STREQUAL "frameworks/extra-cmake-modules")
+ message(FATAL_ERROR "Wrong repository name: ${name}, should be
'frameworks/extra-cmake-modules'")
endif()
add_executable(dummy ../ExecuteKDEModules/main.c)
ecm_mark_nongui_executable(dummy)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/extra-cmake-modules-5.74.0/toolchain/Android.cmake
new/extra-cmake-modules-5.75.0/toolchain/Android.cmake
--- old/extra-cmake-modules-5.74.0/toolchain/Android.cmake 2020-08-30
12:20:31.000000000 +0200
+++ new/extra-cmake-modules-5.75.0/toolchain/Android.cmake 2020-10-01
14:34:06.000000000 +0200
@@ -45,8 +45,12 @@
# ``ANDROID_ABI``
# The ABI to use. See the ``sources/cxx-stl/gnu-libstdc++/*/libs``
# directories in the NDK. Default: ``armeabi-v7a``.
+# ``ANDROID_SDK_COMPILE_API``
+# The platform API level to compile against. May be different from the NDK
+# target. Default: newest installed version (e.g. android-30).
# ``ANDROID_SDK_BUILD_TOOLS_REVISION``
-# The build tools version to use. Default: ``21.1.1``.
+# The build tools version to use.
+# Default: newest installed version (e.g. ``30.0.2``).
# ``ANDROID_EXTRA_LIBS``
# The ";"-separated list of full paths to libs to include in resulting APK.
#
@@ -137,9 +141,18 @@
set(ANDROID_SDK_ROOT "$ENV{ANDROID_SDK_ROOT}" CACHE PATH "Android SDK path")
+file(GLOB platforms LIST_DIRECTORIES TRUE RELATIVE
${ANDROID_SDK_ROOT}/platforms ${ANDROID_SDK_ROOT}/platforms/*)
+list(SORT platforms COMPARE NATURAL)
+list(GET platforms -1 _default_platform)
+set(ANDROID_SDK_COMPILE_API "${_default_platform}" CACHE STRING "Android API
Level")
+if(ANDROID_SDK_COMPILE_API MATCHES "^android-([0-9]+)$")
+ set(ANDROID_SDK_COMPILE_API ${CMAKE_MATCH_1})
+endif()
+
file(GLOB build-tools LIST_DIRECTORIES TRUE RELATIVE
${ANDROID_SDK_ROOT}/build-tools ${ANDROID_SDK_ROOT}/build-tools/*)
-list(GET build-tools 0 _default_sdk)
-set(ANDROID_SDK_BUILD_TOOLS_REVISION "${_default_sdk}" CACHE STRING "Android
API Level")
+list(SORT build-tools COMPARE NATURAL)
+list(GET build-tools -1 _default_sdk)
+set(ANDROID_SDK_BUILD_TOOLS_REVISION "${_default_sdk}" CACHE STRING "Android
Build Tools version")
set(CMAKE_SYSTEM_VERSION ${CMAKE_ANDROID_API})
set(CMAKE_SYSTEM_NAME Android)
@@ -147,11 +160,40 @@
set(CMAKE_ANDROID_STL_TYPE c++_shared)
endif()
+# Workaround link failure at FindThreads in CXX-only mode,
+# armv7 really doesn't like mixing PIC/PIE code.
+# Since we only have to care about a single compiler,
+# hard-code the values here.
+if (NOT TARGET Threads::Threads)
+ set(Threads_FOUND TRUE)
+ set(CMAKE_THREAD_LIBS_INIT "-pthread")
+ add_library(Threads::Threads INTERFACE IMPORTED)
+ set_property(TARGET Threads::Threads PROPERTY INTERFACE_COMPILE_OPTIONS
"-pthread")
+ set_property(TARGET Threads::Threads PROPERTY INTERFACE_LINK_LIBRARIES
"-pthread")
+endif()
+
# let the Android NDK toolchain file do the actual work
set(ANDROID_PLATFORM "android-${CMAKE_ANDROID_API}")
set(ANDROID_STL ${CMAKE_ANDROID_STL_TYPE})
include(${CMAKE_ANDROID_NDK}/build/cmake/android.toolchain.cmake REQUIRED)
+## HACK: Remove when we can depend on NDK r22
+# Workaround issue https://github.com/android/ndk/issues/929
+if(ANDROID_NDK_MAJOR VERSION_LESS 22)
+ unset(CMAKE_SYSROOT)
+ set(ANDROID_SYSROOT_PREFIX "${ANDROID_TOOLCHAIN_ROOT}/sysroot/usr")
+
+ list(APPEND CMAKE_SYSTEM_INCLUDE_PATH
+ "${ANDROID_SYSROOT_PREFIX}/include/${CMAKE_LIBRARY_ARCHITECTURE}")
+ list(APPEND CMAKE_SYSTEM_INCLUDE_PATH "${ANDROID_SYSROOT_PREFIX}/include")
+
+ # Prepend in reverse order
+ list(PREPEND CMAKE_SYSTEM_LIBRARY_PATH
+ "${ANDROID_SYSROOT_PREFIX}/lib/${CMAKE_LIBRARY_ARCHITECTURE}")
+ list(PREPEND CMAKE_SYSTEM_LIBRARY_PATH
+
"${ANDROID_SYSROOT_PREFIX}/lib/${CMAKE_LIBRARY_ARCHITECTURE}/${ANDROID_PLATFORM_LEVEL}")
+endif()
+
# these aren't set yet at this point by the Android toolchain, but without
# those the find_package() call in ECMAndroidDeployQt will fail
set(CMAKE_FIND_LIBRARY_PREFIXES "lib")
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/extra-cmake-modules-5.74.0/toolchain/ECMAndroidDeployQt.cmake
new/extra-cmake-modules-5.75.0/toolchain/ECMAndroidDeployQt.cmake
--- old/extra-cmake-modules-5.74.0/toolchain/ECMAndroidDeployQt.cmake
2020-08-30 12:20:31.000000000 +0200
+++ new/extra-cmake-modules-5.75.0/toolchain/ECMAndroidDeployQt.cmake
2020-10-01 14:34:06.000000000 +0200
@@ -78,8 +78,11 @@
COMMAND cmake -E copy "$<TARGET_FILE:${QTANDROID_EXPORTED_TARGET}>"
"${EXECUTABLE_DESTINATION_PATH}"
COMMAND LANG=C cmake
"-DTARGET=$<TARGET_FILE:${QTANDROID_EXPORTED_TARGET}>" -P
${_CMAKE_ANDROID_DIR}/hasMainSymbol.cmake
COMMAND LANG=C cmake
-DINPUT_FILE="${QTANDROID_EXPORTED_TARGET}-deployment.json.in2"
-DOUTPUT_FILE="${QTANDROID_EXPORTED_TARGET}-deployment.json"
"-DTARGET=$<TARGET_FILE:${QTANDROID_EXPORTED_TARGET}>"
"-DOUTPUT_DIR=$<TARGET_FILE_DIR:${QTANDROID_EXPORTED_TARGET}>"
"-DEXPORT_DIR=${CMAKE_INSTALL_PREFIX}"
"-DECM_ADDITIONAL_FIND_ROOT_PATH=\"${ECM_ADDITIONAL_FIND_ROOT_PATH}\""
"-DANDROID_EXTRA_LIBS=\"${ANDROID_EXTRA_LIBS}\"" -P
${_CMAKE_ANDROID_DIR}/specifydependencies.cmake
- COMMAND $<TARGET_FILE_DIR:Qt5::qmake>/androiddeployqt --gradle --input
"${QTANDROID_EXPORTED_TARGET}-deployment.json" --apk
"${ANDROID_APK_OUTPUT_DIR}/${QTANDROID_EXPORTED_TARGET}-${CMAKE_ANDROID_ARCH_ABI}.apk"
--output "${EXPORT_DIR}" --deployment bundled ${arguments}
+ COMMAND $<TARGET_FILE_DIR:Qt5::qmake>/androiddeployqt --gradle --input
"${QTANDROID_EXPORTED_TARGET}-deployment.json" --apk
"${ANDROID_APK_OUTPUT_DIR}/${QTANDROID_EXPORTED_TARGET}-${CMAKE_ANDROID_ARCH_ABI}.apk"
--output "${EXPORT_DIR}" --android-platform android-${ANDROID_SDK_COMPILE_API}
--deployment bundled ${arguments}
)
+ # --android-platform above is only available as a command line option
+ # This specifies the actual version of the SDK files to use, and
+ # can be different from both the NDK target and the Java API target.
add_custom_target(install-apk-${QTANDROID_EXPORTED_TARGET}
COMMAND adb install -r
"${ANDROID_APK_OUTPUT_DIR}/${QTANDROID_EXPORTED_TARGET}-${CMAKE_ANDROID_ARCH_ABI}.apk"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/extra-cmake-modules-5.74.0/toolchain/deployment-file-qt514.json.in
new/extra-cmake-modules-5.75.0/toolchain/deployment-file-qt514.json.in
--- old/extra-cmake-modules-5.74.0/toolchain/deployment-file-qt514.json.in
2020-08-30 12:20:31.000000000 +0200
+++ new/extra-cmake-modules-5.75.0/toolchain/deployment-file-qt514.json.in
2020-10-01 14:34:06.000000000 +0200
@@ -11,8 +11,10 @@
##EXTRALIBS##
##EXTRAPLUGINS##
"android-package-source-directory":
"$<TARGET_PROPERTY:create-apk-${QTANDROID_EXPORTED_TARGET},ANDROID_APK_DIR>",
- "stdcpp-path": "@CMAKE_SYSROOT@/usr/lib",
+ "stdcpp-path": "@ANDROID_SYSROOT_PREFIX@/lib",
"sdkBuildToolsRevision": "@ANDROID_SDK_BUILD_TOOLS_REVISION@",
+ "android-min-sdk-version": "@ANDROID_API_LEVEL@",
+ "android-target-sdk-version": "@ANDROID_SDK_COMPILE_API@",
"extraPrefixDirs": [ @EXTRA_PREFIX_DIRS@ ],
"architectures": { "@CMAKE_ANDROID_ARCH_ABI@": "@ECM_ANDROID_STL_ARCH@" }
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/extra-cmake-modules-5.74.0/toolchain/deployment-file.json.in
new/extra-cmake-modules-5.75.0/toolchain/deployment-file.json.in
--- old/extra-cmake-modules-5.74.0/toolchain/deployment-file.json.in
2020-08-30 12:20:31.000000000 +0200
+++ new/extra-cmake-modules-5.75.0/toolchain/deployment-file.json.in
2020-10-01 14:34:06.000000000 +0200
@@ -15,5 +15,7 @@
"android-package-source-directory":
"$<TARGET_PROPERTY:create-apk-${QTANDROID_EXPORTED_TARGET},ANDROID_APK_DIR>",
"stdcpp-path":##CMAKE_CXX_STANDARD_LIBRARIES##,
"sdkBuildToolsRevision": "@ANDROID_SDK_BUILD_TOOLS_REVISION@",
+ "android-min-sdk-version": "@ANDROID_API_LEVEL@",
+ "android-target-sdk-version": "@ANDROID_SDK_COMPILE_API@",
"extraPrefixDirs": [ @EXTRA_PREFIX_DIRS@ ]
}