From be933ef2241d79558f91796cc5b3a161f72ebf9c Mon Sep 17 00:00:00 2001 From: manuel Date: Mon, 19 Oct 2020 00:52:24 +0200 Subject: sync with upstream --- cmake/scripts/android/ArchSetup.cmake | 1 + cmake/scripts/common/ArchSetup.cmake | 17 +++++++++++++++++ cmake/scripts/common/HandleDepends.cmake | 8 ++++---- cmake/scripts/common/Macros.cmake | 9 +++++++-- cmake/scripts/common/ProjectMacros.cmake | 8 ++++---- cmake/scripts/darwin_embedded/ExtraTargets.cmake | 11 +++++++++-- cmake/scripts/linux/ArchSetup.cmake | 10 ---------- cmake/scripts/linux/Install.cmake | 2 +- cmake/scripts/osx/Install.cmake | 19 ++++++++++++++++++- 9 files changed, 61 insertions(+), 24 deletions(-) (limited to 'cmake/scripts') diff --git a/cmake/scripts/android/ArchSetup.cmake b/cmake/scripts/android/ArchSetup.cmake index 1e529de..888d042 100644 --- a/cmake/scripts/android/ArchSetup.cmake +++ b/cmake/scripts/android/ArchSetup.cmake @@ -39,6 +39,7 @@ endif() list(APPEND SYSTEM_DEFINES -DHAS_ZEROCONF) set(ENABLE_X11 OFF CACHE BOOL "" FORCE) +set(ENABLE_CLANGTIDY OFF CACHE BOOL "Enable clang-tidy support?" FORCE) set(ENABLE_OPTICAL OFF CACHE BOOL "" FORCE) set(ENABLE_MDNS OFF CACHE BOOL "" FORCE) diff --git a/cmake/scripts/common/ArchSetup.cmake b/cmake/scripts/common/ArchSetup.cmake index 2e1eb12..978a7fa 100644 --- a/cmake/scripts/common/ArchSetup.cmake +++ b/cmake/scripts/common/ArchSetup.cmake @@ -108,6 +108,21 @@ if(HAVE_INTTYPES_H) list(APPEND SYSTEM_DEFINES -DHAVE_INTTYPES_H=1) endif() +set(CMAKE_REQUIRED_DEFINITIONS "-D_GNU_SOURCE") +check_symbol_exists("STATX_BTIME" "linux/stat.h" HAVE_STATX) +if(HAVE_STATX) + check_function_exists("statx" FOUND_STATX_FUNCTION) + if(FOUND_STATX_FUNCTION) + message(STATUS "statx is available") + list(APPEND ARCH_DEFINES "-DHAVE_STATX=1") + else() + message(STATUS "statx flags found but no linkable function : C library too old ?") + endif() +else() + message(STATUS "statx() not found") +endif() +set(CMAKE_REQUIRED_DEFINITIONS "") + find_package(SSE) foreach(_sse SSE SSE2 SSE3 SSSE3 SSE4_1 SSE4_2 AVX AVX2) if(${${_sse}_FOUND}) @@ -144,3 +159,5 @@ if(NOT MSVC) add_options(ALL_LANGUAGES DEBUG "-g" "-D_DEBUG") endif() +# set for compile info to help detect binary addons +set(APP_SHARED_LIBRARY_SUFFIX "${CMAKE_SHARED_LIBRARY_SUFFIX}") diff --git a/cmake/scripts/common/HandleDepends.cmake b/cmake/scripts/common/HandleDepends.cmake index 7cacd25..c737c6a 100644 --- a/cmake/scripts/common/HandleDepends.cmake +++ b/cmake/scripts/common/HandleDepends.cmake @@ -185,7 +185,7 @@ function(add_addon_depends addon searchpath) set(EXTERNALPROJECT_SETUP PREFIX ${BUILD_DIR}/${id} CMAKE_ARGS ${extraflags} ${BUILD_ARGS} PATCH_COMMAND ${PATCH_COMMAND} - "${INSTALL_COMMAND}") + ${INSTALL_COMMAND}) if(CMAKE_VERSION VERSION_GREATER 3.5.9) list(APPEND EXTERNALPROJECT_SETUP GIT_SHALLOW 1) @@ -201,7 +201,7 @@ function(add_addon_depends addon searchpath) externalproject_add(${id} GIT_REPOSITORY ${url} GIT_TAG ${revision} - "${EXTERNALPROJECT_SETUP}") + ${EXTERNALPROJECT_SETUP}) # For patchfiles to work, disable (users globally set) autocrlf=true if(CMAKE_MINIMUM_REQUIRED_VERSION VERSION_GREATER 3.7) @@ -249,12 +249,12 @@ function(add_addon_depends addon searchpath) "${URL_HASH_COMMAND}" DOWNLOAD_DIR ${DOWNLOAD_DIR} CONFIGURE_COMMAND ${CONFIGURE_COMMAND} - "${EXTERNALPROJECT_SETUP}") + ${EXTERNALPROJECT_SETUP}) endif() else() externalproject_add(${id} SOURCE_DIR ${dir} - "${EXTERNALPROJECT_SETUP}") + ${EXTERNALPROJECT_SETUP}) endif() if(deps) diff --git a/cmake/scripts/common/Macros.cmake b/cmake/scripts/common/Macros.cmake index f7327e3..d896651 100644 --- a/cmake/scripts/common/Macros.cmake +++ b/cmake/scripts/common/Macros.cmake @@ -626,6 +626,9 @@ endfunction() # APP_VERSION_TAG_LC - lowercased app version tag # APP_VERSION - the app version (${APP_VERSION_MAJOR}.${APP_VERSION_MINOR}-${APP_VERSION_TAG}) # APP_ADDON_API - the addon API version in the form of 16.9.702 +# ADDON_REPOS - official addon repositories and their origin path delimited by pipe +# - e.g. repository.xbmc.org|https://mirrors.kodi.tv - +# (multiple repo/path-sets are delimited by comma) # FILE_VERSION - file version in the form of 16,9,702,0 - Windows only # JSONRPC_VERSION - the json api version in the form of 8.3.0 # @@ -646,6 +649,7 @@ macro(core_find_versions) string(REGEX REPLACE "([^ ;]*) ([^;]*)" "\\1;\\2" version_list "${version_list};${json_version}") set(version_props ADDON_API + ADDON_REPOS APP_NAME APP_PACKAGE COMPANY_NAME @@ -676,12 +680,13 @@ macro(core_find_versions) string(TOLOWER ${APP_VERSION_TAG} APP_VERSION_TAG_LC) endif() string(REPLACE "." "," FILE_VERSION ${APP_ADDON_API}.0) + set(ADDON_REPOS ${APP_ADDON_REPOS}) set(JSONRPC_VERSION ${APP_JSONRPC_VERSION}) # Set defines used in addon.xml.in and read from versions.h to set add-on # version parts automatically # This part is nearly identical to "AddonHelpers.cmake", except location of versions.h - file(STRINGS ${CORE_SOURCE_DIR}/xbmc/addons/kodi-addon-dev-kit/include/kodi/versions.h BIN_ADDON_PARTS) + file(STRINGS ${CORE_SOURCE_DIR}/xbmc/addons/kodi-dev-kit/include/kodi/versions.h BIN_ADDON_PARTS) foreach(loop_var ${BIN_ADDON_PARTS}) string(FIND "${loop_var}" "#define ADDON_" matchres) if("${matchres}" EQUAL 0) @@ -748,5 +753,5 @@ macro(find_addon_xml_in_files) endforeach() # Append also versions.h to depends - list(APPEND ADDON_XML_DEPENDS "${CORE_SOURCE_DIR}/xbmc/addons/kodi-addon-dev-kit/include/kodi/versions.h") + list(APPEND ADDON_XML_DEPENDS "${CORE_SOURCE_DIR}/xbmc/addons/kodi-dev-kit/include/kodi/versions.h") endmacro() diff --git a/cmake/scripts/common/ProjectMacros.cmake b/cmake/scripts/common/ProjectMacros.cmake index fba5252..67d65b2 100644 --- a/cmake/scripts/common/ProjectMacros.cmake +++ b/cmake/scripts/common/ProjectMacros.cmake @@ -77,12 +77,12 @@ endfunction() function(sca_add_tests) find_program(CLANGCHECK_COMMAND clang-check) - find_program(CPPCHECK_COMMAND cppcheck) + find_program(CPPCHECK_EXECUTABLE cppcheck) if(CLANGCHECK_COMMAND AND CMAKE_EXPORT_COMPILE_COMMANDS) configure_file(${PROJECT_SOURCE_DIR}/cmake/scripts/linux/clang-check-test.sh.in ${CORE_BUILD_DIR}/clang-check-test.sh) endif() - if(CPPCHECK_COMMAND) + if(CPPCHECK_EXECUTABLE) configure_file(${PROJECT_SOURCE_DIR}/cmake/scripts/linux/cppcheck-test.sh.in ${CORE_BUILD_DIR}/cppcheck-test.sh) set(CPPCHECK_INCLUDES) @@ -99,9 +99,9 @@ function(sca_add_tests) COMMAND ${CORE_BUILD_DIR}/clang-check-test.sh ${CLANGCHECK_COMMAND} ${src} CONFIGURATIONS analyze clang-check) endif() - if(CPPCHECK_COMMAND) + if(CPPCHECK_EXECUTABLE) add_test(NAME cppcheck+${name} - COMMAND ${CORE_BUILD_DIR}/cppcheck-test.sh ${CPPCHECK_COMMAND} ${src} ${CPPCHECK_INCLUDES} + COMMAND ${CORE_BUILD_DIR}/cppcheck-test.sh ${CPPCHECK_EXECUTABLE} ${src} ${CPPCHECK_INCLUDES} CONFIGURATIONS analyze cppcheck) endif() endif() diff --git a/cmake/scripts/darwin_embedded/ExtraTargets.cmake b/cmake/scripts/darwin_embedded/ExtraTargets.cmake index 2b9980a..01ab632 100644 --- a/cmake/scripts/darwin_embedded/ExtraTargets.cmake +++ b/cmake/scripts/darwin_embedded/ExtraTargets.cmake @@ -7,9 +7,11 @@ if(CORE_PLATFORM_NAME_LC STREQUAL tvos) set(ENTITLEMENTS_OUT_PATH "${CMAKE_BINARY_DIR}/CMakeFiles/${TOPSHELF_EXTENSION_NAME}.dir/TopShelf.entitlements") set(SOURCES - ${TOPSHELF_DIR}/ServiceProvider.m - ${TOPSHELF_DIR}/../tvosShared.m) + ${TOPSHELF_DIR}/../../ios-common/DarwinEmbedUtils.mm + ${TOPSHELF_DIR}/ServiceProvider.mm + ${TOPSHELF_DIR}/../tvosShared.mm) set(HEADERS + ${TOPSHELF_DIR}/../../ios-common/DarwinEmbedUtils.h ${TOPSHELF_DIR}/ServiceProvider.h ${TOPSHELF_DIR}/../tvosShared.h) add_executable(${TOPSHELF_EXTENSION_NAME} MACOSX_BUNDLE ${SOURCES} ${HEADERS}) @@ -21,5 +23,10 @@ if(CORE_PLATFORM_NAME_LC STREQUAL tvos) XCODE_ATTRIBUTE_CODE_SIGN_ENTITLEMENTS ${ENTITLEMENTS_OUT_PATH}) target_link_libraries(${TOPSHELF_EXTENSION_NAME} "-framework TVServices" "-framework Foundation") + add_custom_command(TARGET ${TOPSHELF_EXTENSION_NAME} POST_BUILD + COMMAND "NATIVEPREFIX=${NATIVEPREFIX}" + ${CMAKE_SOURCE_DIR}/tools/darwin/Support/Codesign-topshelf.command + ) + add_dependencies(${APP_NAME_LC} ${TOPSHELF_EXTENSION_NAME}) endif() diff --git a/cmake/scripts/linux/ArchSetup.cmake b/cmake/scripts/linux/ArchSetup.cmake index 04fc6e3..b68efe3 100644 --- a/cmake/scripts/linux/ArchSetup.cmake +++ b/cmake/scripts/linux/ArchSetup.cmake @@ -37,16 +37,6 @@ else() endif() endif() -# temp until further cleanup is done -# add Raspberry Pi 2 and 3 specific flags -if(CORE_PLATFORM_NAME_LC STREQUAL rbpi) - if(CPU MATCHES "cortex-a7") - set(NEON_FLAGS "-fPIC -mcpu=cortex-a7 -mfloat-abi=hard -mfpu=neon-vfpv4 -mvectorize-with-neon-quad") - elseif(CPU MATCHES "cortex-a53") - set(NEON_FLAGS "-fPIC -mcpu=cortex-a53 -mfloat-abi=hard -mfpu=neon-fp-armv8 -mvectorize-with-neon-quad") - endif() -endif() - if((CMAKE_BUILD_TYPE STREQUAL Release OR CMAKE_BUILD_TYPE STREQUAL MinSizeRel) AND CMAKE_COMPILER_IS_GNUCXX) # Make sure we strip binaries in Release build diff --git a/cmake/scripts/linux/Install.cmake b/cmake/scripts/linux/Install.cmake index 36c0299..acfd3ff 100644 --- a/cmake/scripts/linux/Install.cmake +++ b/cmake/scripts/linux/Install.cmake @@ -199,7 +199,7 @@ if(ENABLE_EVENTCLIENTS) COMPONENT kodi-eventclients-common) # Install kodi-eventclients-common python files - file(WRITE ${CMAKE_BINARY_DIR}/packages/deb/defs.py ICON_PATH="usr/share/pixmaps/${APP_NAME_LC}/") + file(WRITE ${CMAKE_BINARY_DIR}/packages/deb/defs.py ICON_PATH="/usr/share/pixmaps/${APP_NAME_LC}/") install(PROGRAMS ${CMAKE_BINARY_DIR}/packages/deb/defs.py ${CMAKE_SOURCE_DIR}/tools/EventClients/lib/python/__init__.py ${CMAKE_SOURCE_DIR}/tools/EventClients/Clients/PS3BDRemote/ps3_remote.py diff --git a/cmake/scripts/osx/Install.cmake b/cmake/scripts/osx/Install.cmake index aca31b4..629bc09 100644 --- a/cmake/scripts/osx/Install.cmake +++ b/cmake/scripts/osx/Install.cmake @@ -30,12 +30,29 @@ add_dependencies(bundle ${APP_NAME_LC}) configure_file(${CMAKE_SOURCE_DIR}/tools/darwin/packaging/osx/mkdmg-osx.sh.in ${CMAKE_BINARY_DIR}/tools/darwin/packaging/osx/mkdmg-osx.sh @ONLY) +string(TOLOWER ${CORE_BUILD_CONFIG} CORE_BUILD_CONFIG_LOWERCASED) +if(${CORE_BUILD_CONFIG_LOWERCASED} STREQUAL "release") + set(ALLOW_DEBUGGER "false") +else() + set(ALLOW_DEBUGGER "true") +endif() +configure_file(${CMAKE_SOURCE_DIR}/tools/darwin/packaging/osx/Kodi.entitlements.in + ${CMAKE_BINARY_DIR}/tools/darwin/packaging/osx/Kodi.entitlements @ONLY) + add_custom_target(dmg COMMAND ${CMAKE_COMMAND} -E copy_directory ${CMAKE_SOURCE_DIR}/tools/darwin/packaging/osx/ ${CMAKE_BINARY_DIR}/tools/darwin/packaging/osx/ COMMAND ${CMAKE_COMMAND} -E copy_directory ${CMAKE_SOURCE_DIR}/tools/darwin/packaging/media/osx/ ${CMAKE_BINARY_DIR}/tools/darwin/packaging/media/osx/ - COMMAND ./mkdmg-osx.sh ${CORE_BUILD_CONFIG} + COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_SOURCE_DIR}/tools/darwin/Support/Codesign.command + ${CMAKE_BINARY_DIR}/tools/darwin/packaging/osx/Codesign.command + COMMAND "CODESIGNING_FOLDER_PATH=${PACKAGE_OUTPUT_DIR}/${APP_NAME}.app" + "DEV_ACCOUNT=${DEV_ACCOUNT}" + "DEV_ACCOUNT_PASSWORD=${DEV_ACCOUNT_PASSWORD}" + "DEV_TEAM=${DEV_TEAM}" + "EXPANDED_CODE_SIGN_IDENTITY_NAME=${CODE_SIGN_IDENTITY}" + "PLATFORM_NAME=${PLATFORM}" + ./mkdmg-osx.sh ${CORE_BUILD_CONFIG_LOWERCASED} WORKING_DIRECTORY ${CMAKE_BINARY_DIR}/tools/darwin/packaging/osx) set_target_properties(dmg PROPERTIES FOLDER "Build Utilities") add_dependencies(dmg bundle) -- cgit v1.2.3