summaryrefslogtreecommitdiffstats
path: root/cmake/scripts
diff options
context:
space:
mode:
Diffstat (limited to 'cmake/scripts')
-rw-r--r--cmake/scripts/android/ArchSetup.cmake1
-rw-r--r--cmake/scripts/common/ArchSetup.cmake17
-rw-r--r--cmake/scripts/common/HandleDepends.cmake8
-rw-r--r--cmake/scripts/common/Macros.cmake9
-rw-r--r--cmake/scripts/common/ProjectMacros.cmake8
-rw-r--r--cmake/scripts/darwin_embedded/ExtraTargets.cmake11
-rw-r--r--cmake/scripts/linux/ArchSetup.cmake10
-rw-r--r--cmake/scripts/linux/Install.cmake2
-rw-r--r--cmake/scripts/osx/Install.cmake19
9 files changed, 61 insertions, 24 deletions
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()
39list(APPEND SYSTEM_DEFINES -DHAS_ZEROCONF) 39list(APPEND SYSTEM_DEFINES -DHAS_ZEROCONF)
40 40
41set(ENABLE_X11 OFF CACHE BOOL "" FORCE) 41set(ENABLE_X11 OFF CACHE BOOL "" FORCE)
42set(ENABLE_CLANGTIDY OFF CACHE BOOL "Enable clang-tidy support?" FORCE)
42set(ENABLE_OPTICAL OFF CACHE BOOL "" FORCE) 43set(ENABLE_OPTICAL OFF CACHE BOOL "" FORCE)
43set(ENABLE_MDNS OFF CACHE BOOL "" FORCE) 44set(ENABLE_MDNS OFF CACHE BOOL "" FORCE)
44 45
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)
108 list(APPEND SYSTEM_DEFINES -DHAVE_INTTYPES_H=1) 108 list(APPEND SYSTEM_DEFINES -DHAVE_INTTYPES_H=1)
109endif() 109endif()
110 110
111set(CMAKE_REQUIRED_DEFINITIONS "-D_GNU_SOURCE")
112check_symbol_exists("STATX_BTIME" "linux/stat.h" HAVE_STATX)
113if(HAVE_STATX)
114 check_function_exists("statx" FOUND_STATX_FUNCTION)
115 if(FOUND_STATX_FUNCTION)
116 message(STATUS "statx is available")
117 list(APPEND ARCH_DEFINES "-DHAVE_STATX=1")
118 else()
119 message(STATUS "statx flags found but no linkable function : C library too old ?")
120 endif()
121else()
122 message(STATUS "statx() not found")
123endif()
124set(CMAKE_REQUIRED_DEFINITIONS "")
125
111find_package(SSE) 126find_package(SSE)
112foreach(_sse SSE SSE2 SSE3 SSSE3 SSE4_1 SSE4_2 AVX AVX2) 127foreach(_sse SSE SSE2 SSE3 SSSE3 SSE4_1 SSE4_2 AVX AVX2)
113 if(${${_sse}_FOUND}) 128 if(${${_sse}_FOUND})
@@ -144,3 +159,5 @@ if(NOT MSVC)
144 add_options(ALL_LANGUAGES DEBUG "-g" "-D_DEBUG") 159 add_options(ALL_LANGUAGES DEBUG "-g" "-D_DEBUG")
145endif() 160endif()
146 161
162# set for compile info to help detect binary addons
163set(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)
185 set(EXTERNALPROJECT_SETUP PREFIX ${BUILD_DIR}/${id} 185 set(EXTERNALPROJECT_SETUP PREFIX ${BUILD_DIR}/${id}
186 CMAKE_ARGS ${extraflags} ${BUILD_ARGS} 186 CMAKE_ARGS ${extraflags} ${BUILD_ARGS}
187 PATCH_COMMAND ${PATCH_COMMAND} 187 PATCH_COMMAND ${PATCH_COMMAND}
188 "${INSTALL_COMMAND}") 188 ${INSTALL_COMMAND})
189 189
190 if(CMAKE_VERSION VERSION_GREATER 3.5.9) 190 if(CMAKE_VERSION VERSION_GREATER 3.5.9)
191 list(APPEND EXTERNALPROJECT_SETUP GIT_SHALLOW 1) 191 list(APPEND EXTERNALPROJECT_SETUP GIT_SHALLOW 1)
@@ -201,7 +201,7 @@ function(add_addon_depends addon searchpath)
201 externalproject_add(${id} 201 externalproject_add(${id}
202 GIT_REPOSITORY ${url} 202 GIT_REPOSITORY ${url}
203 GIT_TAG ${revision} 203 GIT_TAG ${revision}
204 "${EXTERNALPROJECT_SETUP}") 204 ${EXTERNALPROJECT_SETUP})
205 205
206 # For patchfiles to work, disable (users globally set) autocrlf=true 206 # For patchfiles to work, disable (users globally set) autocrlf=true
207 if(CMAKE_MINIMUM_REQUIRED_VERSION VERSION_GREATER 3.7) 207 if(CMAKE_MINIMUM_REQUIRED_VERSION VERSION_GREATER 3.7)
@@ -249,12 +249,12 @@ function(add_addon_depends addon searchpath)
249 "${URL_HASH_COMMAND}" 249 "${URL_HASH_COMMAND}"
250 DOWNLOAD_DIR ${DOWNLOAD_DIR} 250 DOWNLOAD_DIR ${DOWNLOAD_DIR}
251 CONFIGURE_COMMAND ${CONFIGURE_COMMAND} 251 CONFIGURE_COMMAND ${CONFIGURE_COMMAND}
252 "${EXTERNALPROJECT_SETUP}") 252 ${EXTERNALPROJECT_SETUP})
253 endif() 253 endif()
254 else() 254 else()
255 externalproject_add(${id} 255 externalproject_add(${id}
256 SOURCE_DIR ${dir} 256 SOURCE_DIR ${dir}
257 "${EXTERNALPROJECT_SETUP}") 257 ${EXTERNALPROJECT_SETUP})
258 endif() 258 endif()
259 259
260 if(deps) 260 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()
626# APP_VERSION_TAG_LC - lowercased app version tag 626# APP_VERSION_TAG_LC - lowercased app version tag
627# APP_VERSION - the app version (${APP_VERSION_MAJOR}.${APP_VERSION_MINOR}-${APP_VERSION_TAG}) 627# APP_VERSION - the app version (${APP_VERSION_MAJOR}.${APP_VERSION_MINOR}-${APP_VERSION_TAG})
628# APP_ADDON_API - the addon API version in the form of 16.9.702 628# APP_ADDON_API - the addon API version in the form of 16.9.702
629# ADDON_REPOS - official addon repositories and their origin path delimited by pipe
630# - e.g. repository.xbmc.org|https://mirrors.kodi.tv -
631# (multiple repo/path-sets are delimited by comma)
629# FILE_VERSION - file version in the form of 16,9,702,0 - Windows only 632# FILE_VERSION - file version in the form of 16,9,702,0 - Windows only
630# JSONRPC_VERSION - the json api version in the form of 8.3.0 633# JSONRPC_VERSION - the json api version in the form of 8.3.0
631# 634#
@@ -646,6 +649,7 @@ macro(core_find_versions)
646 string(REGEX REPLACE "([^ ;]*) ([^;]*)" "\\1;\\2" version_list "${version_list};${json_version}") 649 string(REGEX REPLACE "([^ ;]*) ([^;]*)" "\\1;\\2" version_list "${version_list};${json_version}")
647 set(version_props 650 set(version_props
648 ADDON_API 651 ADDON_API
652 ADDON_REPOS
649 APP_NAME 653 APP_NAME
650 APP_PACKAGE 654 APP_PACKAGE
651 COMPANY_NAME 655 COMPANY_NAME
@@ -676,12 +680,13 @@ macro(core_find_versions)
676 string(TOLOWER ${APP_VERSION_TAG} APP_VERSION_TAG_LC) 680 string(TOLOWER ${APP_VERSION_TAG} APP_VERSION_TAG_LC)
677 endif() 681 endif()
678 string(REPLACE "." "," FILE_VERSION ${APP_ADDON_API}.0) 682 string(REPLACE "." "," FILE_VERSION ${APP_ADDON_API}.0)
683 set(ADDON_REPOS ${APP_ADDON_REPOS})
679 set(JSONRPC_VERSION ${APP_JSONRPC_VERSION}) 684 set(JSONRPC_VERSION ${APP_JSONRPC_VERSION})
680 685
681 # Set defines used in addon.xml.in and read from versions.h to set add-on 686 # Set defines used in addon.xml.in and read from versions.h to set add-on
682 # version parts automatically 687 # version parts automatically
683 # This part is nearly identical to "AddonHelpers.cmake", except location of versions.h 688 # This part is nearly identical to "AddonHelpers.cmake", except location of versions.h
684 file(STRINGS ${CORE_SOURCE_DIR}/xbmc/addons/kodi-addon-dev-kit/include/kodi/versions.h BIN_ADDON_PARTS) 689 file(STRINGS ${CORE_SOURCE_DIR}/xbmc/addons/kodi-dev-kit/include/kodi/versions.h BIN_ADDON_PARTS)
685 foreach(loop_var ${BIN_ADDON_PARTS}) 690 foreach(loop_var ${BIN_ADDON_PARTS})
686 string(FIND "${loop_var}" "#define ADDON_" matchres) 691 string(FIND "${loop_var}" "#define ADDON_" matchres)
687 if("${matchres}" EQUAL 0) 692 if("${matchres}" EQUAL 0)
@@ -748,5 +753,5 @@ macro(find_addon_xml_in_files)
748 endforeach() 753 endforeach()
749 754
750 # Append also versions.h to depends 755 # Append also versions.h to depends
751 list(APPEND ADDON_XML_DEPENDS "${CORE_SOURCE_DIR}/xbmc/addons/kodi-addon-dev-kit/include/kodi/versions.h") 756 list(APPEND ADDON_XML_DEPENDS "${CORE_SOURCE_DIR}/xbmc/addons/kodi-dev-kit/include/kodi/versions.h")
752endmacro() 757endmacro()
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()
77 77
78function(sca_add_tests) 78function(sca_add_tests)
79 find_program(CLANGCHECK_COMMAND clang-check) 79 find_program(CLANGCHECK_COMMAND clang-check)
80 find_program(CPPCHECK_COMMAND cppcheck) 80 find_program(CPPCHECK_EXECUTABLE cppcheck)
81 if(CLANGCHECK_COMMAND AND CMAKE_EXPORT_COMPILE_COMMANDS) 81 if(CLANGCHECK_COMMAND AND CMAKE_EXPORT_COMPILE_COMMANDS)
82 configure_file(${PROJECT_SOURCE_DIR}/cmake/scripts/linux/clang-check-test.sh.in 82 configure_file(${PROJECT_SOURCE_DIR}/cmake/scripts/linux/clang-check-test.sh.in
83 ${CORE_BUILD_DIR}/clang-check-test.sh) 83 ${CORE_BUILD_DIR}/clang-check-test.sh)
84 endif() 84 endif()
85 if(CPPCHECK_COMMAND) 85 if(CPPCHECK_EXECUTABLE)
86 configure_file(${PROJECT_SOURCE_DIR}/cmake/scripts/linux/cppcheck-test.sh.in 86 configure_file(${PROJECT_SOURCE_DIR}/cmake/scripts/linux/cppcheck-test.sh.in
87 ${CORE_BUILD_DIR}/cppcheck-test.sh) 87 ${CORE_BUILD_DIR}/cppcheck-test.sh)
88 set(CPPCHECK_INCLUDES) 88 set(CPPCHECK_INCLUDES)
@@ -99,9 +99,9 @@ function(sca_add_tests)
99 COMMAND ${CORE_BUILD_DIR}/clang-check-test.sh ${CLANGCHECK_COMMAND} ${src} 99 COMMAND ${CORE_BUILD_DIR}/clang-check-test.sh ${CLANGCHECK_COMMAND} ${src}
100 CONFIGURATIONS analyze clang-check) 100 CONFIGURATIONS analyze clang-check)
101 endif() 101 endif()
102 if(CPPCHECK_COMMAND) 102 if(CPPCHECK_EXECUTABLE)
103 add_test(NAME cppcheck+${name} 103 add_test(NAME cppcheck+${name}
104 COMMAND ${CORE_BUILD_DIR}/cppcheck-test.sh ${CPPCHECK_COMMAND} ${src} ${CPPCHECK_INCLUDES} 104 COMMAND ${CORE_BUILD_DIR}/cppcheck-test.sh ${CPPCHECK_EXECUTABLE} ${src} ${CPPCHECK_INCLUDES}
105 CONFIGURATIONS analyze cppcheck) 105 CONFIGURATIONS analyze cppcheck)
106 endif() 106 endif()
107 endif() 107 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)
7 set(ENTITLEMENTS_OUT_PATH "${CMAKE_BINARY_DIR}/CMakeFiles/${TOPSHELF_EXTENSION_NAME}.dir/TopShelf.entitlements") 7 set(ENTITLEMENTS_OUT_PATH "${CMAKE_BINARY_DIR}/CMakeFiles/${TOPSHELF_EXTENSION_NAME}.dir/TopShelf.entitlements")
8 8
9 set(SOURCES 9 set(SOURCES
10 ${TOPSHELF_DIR}/ServiceProvider.m 10 ${TOPSHELF_DIR}/../../ios-common/DarwinEmbedUtils.mm
11 ${TOPSHELF_DIR}/../tvosShared.m) 11 ${TOPSHELF_DIR}/ServiceProvider.mm
12 ${TOPSHELF_DIR}/../tvosShared.mm)
12 set(HEADERS 13 set(HEADERS
14 ${TOPSHELF_DIR}/../../ios-common/DarwinEmbedUtils.h
13 ${TOPSHELF_DIR}/ServiceProvider.h 15 ${TOPSHELF_DIR}/ServiceProvider.h
14 ${TOPSHELF_DIR}/../tvosShared.h) 16 ${TOPSHELF_DIR}/../tvosShared.h)
15 add_executable(${TOPSHELF_EXTENSION_NAME} MACOSX_BUNDLE ${SOURCES} ${HEADERS}) 17 add_executable(${TOPSHELF_EXTENSION_NAME} MACOSX_BUNDLE ${SOURCES} ${HEADERS})
@@ -21,5 +23,10 @@ if(CORE_PLATFORM_NAME_LC STREQUAL tvos)
21 XCODE_ATTRIBUTE_CODE_SIGN_ENTITLEMENTS ${ENTITLEMENTS_OUT_PATH}) 23 XCODE_ATTRIBUTE_CODE_SIGN_ENTITLEMENTS ${ENTITLEMENTS_OUT_PATH})
22 target_link_libraries(${TOPSHELF_EXTENSION_NAME} "-framework TVServices" "-framework Foundation") 24 target_link_libraries(${TOPSHELF_EXTENSION_NAME} "-framework TVServices" "-framework Foundation")
23 25
26 add_custom_command(TARGET ${TOPSHELF_EXTENSION_NAME} POST_BUILD
27 COMMAND "NATIVEPREFIX=${NATIVEPREFIX}"
28 ${CMAKE_SOURCE_DIR}/tools/darwin/Support/Codesign-topshelf.command
29 )
30
24 add_dependencies(${APP_NAME_LC} ${TOPSHELF_EXTENSION_NAME}) 31 add_dependencies(${APP_NAME_LC} ${TOPSHELF_EXTENSION_NAME})
25endif() 32endif()
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()
37 endif() 37 endif()
38endif() 38endif()
39 39
40# temp until further cleanup is done
41# add Raspberry Pi 2 and 3 specific flags
42if(CORE_PLATFORM_NAME_LC STREQUAL rbpi)
43 if(CPU MATCHES "cortex-a7")
44 set(NEON_FLAGS "-fPIC -mcpu=cortex-a7 -mfloat-abi=hard -mfpu=neon-vfpv4 -mvectorize-with-neon-quad")
45 elseif(CPU MATCHES "cortex-a53")
46 set(NEON_FLAGS "-fPIC -mcpu=cortex-a53 -mfloat-abi=hard -mfpu=neon-fp-armv8 -mvectorize-with-neon-quad")
47 endif()
48endif()
49
50if((CMAKE_BUILD_TYPE STREQUAL Release OR CMAKE_BUILD_TYPE STREQUAL MinSizeRel) 40if((CMAKE_BUILD_TYPE STREQUAL Release OR CMAKE_BUILD_TYPE STREQUAL MinSizeRel)
51 AND CMAKE_COMPILER_IS_GNUCXX) 41 AND CMAKE_COMPILER_IS_GNUCXX)
52 # Make sure we strip binaries in Release build 42 # 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)
199 COMPONENT kodi-eventclients-common) 199 COMPONENT kodi-eventclients-common)
200 200
201 # Install kodi-eventclients-common python files 201 # Install kodi-eventclients-common python files
202 file(WRITE ${CMAKE_BINARY_DIR}/packages/deb/defs.py ICON_PATH="usr/share/pixmaps/${APP_NAME_LC}/") 202 file(WRITE ${CMAKE_BINARY_DIR}/packages/deb/defs.py ICON_PATH="/usr/share/pixmaps/${APP_NAME_LC}/")
203 install(PROGRAMS ${CMAKE_BINARY_DIR}/packages/deb/defs.py 203 install(PROGRAMS ${CMAKE_BINARY_DIR}/packages/deb/defs.py
204 ${CMAKE_SOURCE_DIR}/tools/EventClients/lib/python/__init__.py 204 ${CMAKE_SOURCE_DIR}/tools/EventClients/lib/python/__init__.py
205 ${CMAKE_SOURCE_DIR}/tools/EventClients/Clients/PS3BDRemote/ps3_remote.py 205 ${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})
30configure_file(${CMAKE_SOURCE_DIR}/tools/darwin/packaging/osx/mkdmg-osx.sh.in 30configure_file(${CMAKE_SOURCE_DIR}/tools/darwin/packaging/osx/mkdmg-osx.sh.in
31 ${CMAKE_BINARY_DIR}/tools/darwin/packaging/osx/mkdmg-osx.sh @ONLY) 31 ${CMAKE_BINARY_DIR}/tools/darwin/packaging/osx/mkdmg-osx.sh @ONLY)
32 32
33string(TOLOWER ${CORE_BUILD_CONFIG} CORE_BUILD_CONFIG_LOWERCASED)
34if(${CORE_BUILD_CONFIG_LOWERCASED} STREQUAL "release")
35 set(ALLOW_DEBUGGER "false")
36else()
37 set(ALLOW_DEBUGGER "true")
38endif()
39configure_file(${CMAKE_SOURCE_DIR}/tools/darwin/packaging/osx/Kodi.entitlements.in
40 ${CMAKE_BINARY_DIR}/tools/darwin/packaging/osx/Kodi.entitlements @ONLY)
41
33add_custom_target(dmg 42add_custom_target(dmg
34 COMMAND ${CMAKE_COMMAND} -E copy_directory ${CMAKE_SOURCE_DIR}/tools/darwin/packaging/osx/ 43 COMMAND ${CMAKE_COMMAND} -E copy_directory ${CMAKE_SOURCE_DIR}/tools/darwin/packaging/osx/
35 ${CMAKE_BINARY_DIR}/tools/darwin/packaging/osx/ 44 ${CMAKE_BINARY_DIR}/tools/darwin/packaging/osx/
36 COMMAND ${CMAKE_COMMAND} -E copy_directory ${CMAKE_SOURCE_DIR}/tools/darwin/packaging/media/osx/ 45 COMMAND ${CMAKE_COMMAND} -E copy_directory ${CMAKE_SOURCE_DIR}/tools/darwin/packaging/media/osx/
37 ${CMAKE_BINARY_DIR}/tools/darwin/packaging/media/osx/ 46 ${CMAKE_BINARY_DIR}/tools/darwin/packaging/media/osx/
38 COMMAND ./mkdmg-osx.sh ${CORE_BUILD_CONFIG} 47 COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_SOURCE_DIR}/tools/darwin/Support/Codesign.command
48 ${CMAKE_BINARY_DIR}/tools/darwin/packaging/osx/Codesign.command
49 COMMAND "CODESIGNING_FOLDER_PATH=${PACKAGE_OUTPUT_DIR}/${APP_NAME}.app"
50 "DEV_ACCOUNT=${DEV_ACCOUNT}"
51 "DEV_ACCOUNT_PASSWORD=${DEV_ACCOUNT_PASSWORD}"
52 "DEV_TEAM=${DEV_TEAM}"
53 "EXPANDED_CODE_SIGN_IDENTITY_NAME=${CODE_SIGN_IDENTITY}"
54 "PLATFORM_NAME=${PLATFORM}"
55 ./mkdmg-osx.sh ${CORE_BUILD_CONFIG_LOWERCASED}
39 WORKING_DIRECTORY ${CMAKE_BINARY_DIR}/tools/darwin/packaging/osx) 56 WORKING_DIRECTORY ${CMAKE_BINARY_DIR}/tools/darwin/packaging/osx)
40set_target_properties(dmg PROPERTIES FOLDER "Build Utilities") 57set_target_properties(dmg PROPERTIES FOLDER "Build Utilities")
41add_dependencies(dmg bundle) 58add_dependencies(dmg bundle)