summaryrefslogtreecommitdiffstats
path: root/cmake/scripts/common
diff options
context:
space:
mode:
Diffstat (limited to 'cmake/scripts/common')
-rw-r--r--cmake/scripts/common/AddonHelpers.cmake11
-rw-r--r--cmake/scripts/common/GenerateVersionedFiles.cmake2
-rw-r--r--cmake/scripts/common/HandleDepends.cmake24
-rw-r--r--cmake/scripts/common/Macros.cmake31
4 files changed, 34 insertions, 34 deletions
diff --git a/cmake/scripts/common/AddonHelpers.cmake b/cmake/scripts/common/AddonHelpers.cmake
index a91e366..2f3f302 100644
--- a/cmake/scripts/common/AddonHelpers.cmake
+++ b/cmake/scripts/common/AddonHelpers.cmake
@@ -199,7 +199,7 @@ macro (build_addon target prefix libs)
199 endif() 199 endif()
200 200
201 # TODO: remove this hack after v18 201 # TODO: remove this hack after v18
202 string(REPLACE "<platform>\@PLATFORM\@</platform>" "<platform>@PLATFORM_TAG@</platform>" addon_file "${addon_file}") 202 string(REPLACE "<platform>\@PLATFORM\@</platform>" "<platform>\@PLATFORM_TAG\@</platform>" addon_file "${addon_file}")
203 203
204 string(CONFIGURE "${addon_file}" addon_file_conf @ONLY) 204 string(CONFIGURE "${addon_file}" addon_file_conf @ONLY)
205 file(GENERATE OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/${target}/addon.xml CONTENT "${addon_file_conf}") 205 file(GENERATE OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/${target}/addon.xml CONTENT "${addon_file_conf}")
@@ -289,10 +289,12 @@ macro (build_addon target prefix libs)
289 COMPONENT ${target}-${${prefix}_VERSION}-${PLATFORM_TAG}) 289 COMPONENT ${target}-${${prefix}_VERSION}-${PLATFORM_TAG})
290 endif() 290 endif()
291 if(${prefix}_CUSTOM_DATA) 291 if(${prefix}_CUSTOM_DATA)
292 install(DIRECTORY ${${prefix}_CUSTOM_DATA} DESTINATION ${target}/resources) 292 install(DIRECTORY ${${prefix}_CUSTOM_DATA} DESTINATION ${target}/resources
293 COMPONENT ${target}-${${prefix}_VERSION}-${PLATFORM_TAG})
293 endif() 294 endif()
294 if(${prefix}_ADDITIONAL_BINARY) 295 if(${prefix}_ADDITIONAL_BINARY)
295 install(FILES ${${prefix}_ADDITIONAL_BINARY} DESTINATION ${target}) 296 install(FILES ${${prefix}_ADDITIONAL_BINARY} DESTINATION ${target}
297 COMPONENT ${target}-${${prefix}_VERSION}-${PLATFORM_TAG})
296 endif() 298 endif()
297 endif() 299 endif()
298 add_cpack_workaround(${target} ${${prefix}_VERSION} ${ext}) 300 add_cpack_workaround(${target} ${${prefix}_VERSION} ${ext})
@@ -341,10 +343,11 @@ macro (build_addon target prefix libs)
341 if(${APP_NAME_UC}_BUILD_DIR) 343 if(${APP_NAME_UC}_BUILD_DIR)
342 file(GLOB_RECURSE files ${CMAKE_CURRENT_SOURCE_DIR}/${target}/*) 344 file(GLOB_RECURSE files ${CMAKE_CURRENT_SOURCE_DIR}/${target}/*)
343 if(${prefix}_CUSTOM_DATA) 345 if(${prefix}_CUSTOM_DATA)
346 get_filename_component(dname ${${prefix}_CUSTOM_DATA} NAME)
344 add_custom_command(TARGET ${target} POST_BUILD 347 add_custom_command(TARGET ${target} POST_BUILD
345 COMMAND ${CMAKE_COMMAND} -E copy_directory 348 COMMAND ${CMAKE_COMMAND} -E copy_directory
346 ${${prefix}_CUSTOM_DATA} 349 ${${prefix}_CUSTOM_DATA}
347 ${${APP_NAME_UC}_BUILD_DIR}/addons/${target}/resources) 350 ${${APP_NAME_UC}_BUILD_DIR}/addons/${target}/resources/${dname})
348 endif() 351 endif()
349 foreach(file ${files}) 352 foreach(file ${files})
350 string(REPLACE "${CMAKE_CURRENT_SOURCE_DIR}/${target}/" "" name "${file}") 353 string(REPLACE "${CMAKE_CURRENT_SOURCE_DIR}/${target}/" "" name "${file}")
diff --git a/cmake/scripts/common/GenerateVersionedFiles.cmake b/cmake/scripts/common/GenerateVersionedFiles.cmake
index 011f495..1d324db 100644
--- a/cmake/scripts/common/GenerateVersionedFiles.cmake
+++ b/cmake/scripts/common/GenerateVersionedFiles.cmake
@@ -15,7 +15,7 @@ endfunction()
15file(GLOB ADDON_XML_IN_FILE ${CORE_SOURCE_DIR}/addons/*/addon.xml.in) 15file(GLOB ADDON_XML_IN_FILE ${CORE_SOURCE_DIR}/addons/*/addon.xml.in)
16 16
17# remove 'xbmc.json', will be created from 'xbmc/interfaces/json-rpc/schema/CMakeLists.txt' 17# remove 'xbmc.json', will be created from 'xbmc/interfaces/json-rpc/schema/CMakeLists.txt'
18list(REMOVE_ITEM ADDON_XML_IN_FILE xbmc.json) 18list(REMOVE_ITEM ADDON_XML_IN_FILE ${CORE_SOURCE_DIR}/addons/xbmc.json/addon.xml.in)
19 19
20foreach(loop_var ${ADDON_XML_IN_FILE}) 20foreach(loop_var ${ADDON_XML_IN_FILE})
21 list(GET loop_var 0 xml_name) 21 list(GET loop_var 0 xml_name)
diff --git a/cmake/scripts/common/HandleDepends.cmake b/cmake/scripts/common/HandleDepends.cmake
index 47f7d9b..40e382b 100644
--- a/cmake/scripts/common/HandleDepends.cmake
+++ b/cmake/scripts/common/HandleDepends.cmake
@@ -88,16 +88,12 @@ function(add_addon_depends addon searchpath)
88 message(${BUILD_ARGS}) 88 message(${BUILD_ARGS})
89 endif() 89 endif()
90 90
91 # prepare patchfile. ensure we have a clean file after reconfiguring 91 set(PATCH_COMMAND)
92 set(PATCH_FILE ${BUILD_DIR}/${id}/tmp/patch.cmake)
93 file(REMOVE ${PATCH_FILE})
94 92
95 # if there's a CMakeLists.txt use it to prepare the build 93 # if there's a CMakeLists.txt use it to prepare the build
96 if(EXISTS ${dir}/CMakeLists.txt) 94 if(EXISTS ${dir}/CMakeLists.txt)
97 set_property(DIRECTORY APPEND PROPERTY CMAKE_CONFIGURE_DEPENDS ${dir}/CMakeLists.txt) 95 set_property(DIRECTORY APPEND PROPERTY CMAKE_CONFIGURE_DEPENDS ${dir}/CMakeLists.txt)
98 file(APPEND ${PATCH_FILE} 96 list(APPEND PATCH_COMMAND COMMAND ${CMAKE_COMMAND} -E copy_if_different ${dir}/CMakeLists.txt ${BUILD_DIR}/${id}/src/${id})
99 "file(COPY ${dir}/CMakeLists.txt
100 DESTINATION ${BUILD_DIR}/${id}/src/${id})\n")
101 endif() 97 endif()
102 98
103 # check if we have patches to apply 99 # check if we have patches to apply
@@ -124,14 +120,13 @@ function(add_addon_depends addon searchpath)
124 file(READ ${patch} patch_content_hex HEX) 120 file(READ ${patch} patch_content_hex HEX)
125 # Force handle LF-only line endings 121 # Force handle LF-only line endings
126 if(NOT patch_content_hex MATCHES "0d0a") 122 if(NOT patch_content_hex MATCHES "0d0a")
127 set(PATCH_PROGRAM "\"${PATCH_PROGRAM}\" --binary") 123 list(APPEND PATCH_PROGRAM --binary)
128 endif() 124 endif()
129 endif() 125 endif()
130 endif() 126 endif()
131 127
132 set_property(DIRECTORY APPEND PROPERTY CMAKE_CONFIGURE_DEPENDS ${patch}) 128 set_property(DIRECTORY APPEND PROPERTY CMAKE_CONFIGURE_DEPENDS ${patch})
133 file(APPEND ${PATCH_FILE} 129 list(APPEND PATCH_COMMAND COMMAND ${PATCH_PROGRAM} -p1 -i ${patch})
134 "execute_process(COMMAND ${PATCH_PROGRAM} -p1 -i \"${patch}\")\n")
135 endforeach() 130 endforeach()
136 131
137 132
@@ -168,18 +163,11 @@ function(add_addon_depends addon searchpath)
168 if(CROSS_AUTOCONF AND AUTOCONF_FILES) 163 if(CROSS_AUTOCONF AND AUTOCONF_FILES)
169 foreach(afile ${AUTOCONF_FILES}) 164 foreach(afile ${AUTOCONF_FILES})
170 set_property(DIRECTORY APPEND PROPERTY CMAKE_CONFIGURE_DEPENDS ${afile}) 165 set_property(DIRECTORY APPEND PROPERTY CMAKE_CONFIGURE_DEPENDS ${afile})
171 file(APPEND ${PATCH_FILE} 166 list(APPEND PATCH_COMMAND COMMAND ${CMAKE_COMMAND} -E echo "AUTOCONF: copying ${afile} to ${BUILD_DIR}/${id}/src/${id}")
172 "message(STATUS \"AUTOCONF: copying ${afile} to ${BUILD_DIR}/${id}/src/${id}\")\n 167 list(APPEND PATCH_COMMAND COMMAND ${CMAKE_COMMAND} -E copy_if_different ${afile} ${BUILD_DIR}/${id}/src/${id})
173 file(COPY ${afile} DESTINATION ${BUILD_DIR}/${id}/src/${id})\n")
174 endforeach() 168 endforeach()
175 endif() 169 endif()
176 170
177 # if the patch file exists we need to set the PATCH_COMMAND
178 set(PATCH_COMMAND "")
179 if(EXISTS ${PATCH_FILE})
180 set(PATCH_COMMAND ${CMAKE_COMMAND} -P ${PATCH_FILE})
181 endif()
182
183 # prepare the setup of the call to externalproject_add() 171 # prepare the setup of the call to externalproject_add()
184 set(EXTERNALPROJECT_SETUP PREFIX ${BUILD_DIR}/${id} 172 set(EXTERNALPROJECT_SETUP PREFIX ${BUILD_DIR}/${id}
185 CMAKE_ARGS ${extraflags} ${BUILD_ARGS} 173 CMAKE_ARGS ${extraflags} ${BUILD_ARGS}
diff --git a/cmake/scripts/common/Macros.cmake b/cmake/scripts/common/Macros.cmake
index 0d89dd3..eefd7c8 100644
--- a/cmake/scripts/common/Macros.cmake
+++ b/cmake/scripts/common/Macros.cmake
@@ -72,11 +72,7 @@ function(core_add_library name)
72 add_library(${name} STATIC ${SOURCES} ${HEADERS} ${OTHERS}) 72 add_library(${name} STATIC ${SOURCES} ${HEADERS} ${OTHERS})
73 set_target_properties(${name} PROPERTIES PREFIX "") 73 set_target_properties(${name} PROPERTIES PREFIX "")
74 set(core_DEPENDS ${name} ${core_DEPENDS} CACHE STRING "" FORCE) 74 set(core_DEPENDS ${name} ${core_DEPENDS} CACHE STRING "" FORCE)
75 set(lib_DEPS libcpluff ffmpeg crossguid ${PLATFORM_GLOBAL_TARGET_DEPS}) 75 add_dependencies(${name} ${GLOBAL_TARGET_DEPS})
76 if(NOT CORE_SYSTEM_NAME STREQUAL windowsstore)
77 list(APPEND lib_DEPS dvdnav)
78 endif()
79 add_dependencies(${name} ${lib_DEPS})
80 set(CORE_LIBRARY ${name} PARENT_SCOPE) 76 set(CORE_LIBRARY ${name} PARENT_SCOPE)
81 77
82 # Add precompiled headers to Kodi main libraries 78 # Add precompiled headers to Kodi main libraries
@@ -106,11 +102,7 @@ function(core_add_test_library name)
106 set_target_properties(${name} PROPERTIES PREFIX "" 102 set_target_properties(${name} PROPERTIES PREFIX ""
107 EXCLUDE_FROM_ALL 1 103 EXCLUDE_FROM_ALL 1
108 FOLDER "Build Utilities/tests") 104 FOLDER "Build Utilities/tests")
109 set(lib_DEPS libcpluff ffmpeg crossguid ${PLATFORM_GLOBAL_TARGET_DEPS}) 105 add_dependencies(${name} ${GLOBAL_TARGET_DEPS})
110 if(NOT CORE_SYSTEM_NAME STREQUAL windowsstore)
111 list(APPEND lib_DEPS dvdnav)
112 endif()
113 add_dependencies(${name} ${lib_DEPS})
114 set(test_archives ${test_archives} ${name} CACHE STRING "" FORCE) 106 set(test_archives ${test_archives} ${name} CACHE STRING "" FORCE)
115 endif() 107 endif()
116 foreach(src IN LISTS SOURCES SUPPORTED_SOURCES HEADERS OTHERS) 108 foreach(src IN LISTS SOURCES SUPPORTED_SOURCES HEADERS OTHERS)
@@ -631,6 +623,8 @@ function(core_find_git_rev stamp)
631 # allow manual setting GIT_VERSION 623 # allow manual setting GIT_VERSION
632 if(GIT_VERSION) 624 if(GIT_VERSION)
633 set(${stamp} ${GIT_VERSION} PARENT_SCOPE) 625 set(${stamp} ${GIT_VERSION} PARENT_SCOPE)
626 string(TIMESTAMP APP_BUILD_DATE "%Y%m%d" UTC)
627 set(APP_BUILD_DATE ${APP_BUILD_DATE} PARENT_SCOPE)
634 else() 628 else()
635 find_package(Git) 629 find_package(Git)
636 if(GIT_FOUND AND EXISTS ${CMAKE_SOURCE_DIR}/.git) 630 if(GIT_FOUND AND EXISTS ${CMAKE_SOURCE_DIR}/.git)
@@ -661,12 +655,18 @@ function(core_find_git_rev stamp)
661 WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}) 655 WORKING_DIRECTORY ${CMAKE_SOURCE_DIR})
662 string(REPLACE "\"" "" DATE ${DATE}) 656 string(REPLACE "\"" "" DATE ${DATE})
663 string(REPLACE "-" "" DATE ${DATE}) 657 string(REPLACE "-" "" DATE ${DATE})
658
659 # build date
660 string(TIMESTAMP APP_BUILD_DATE "%Y%m%d" UTC)
661 set(APP_BUILD_DATE ${APP_BUILD_DATE} PARENT_SCOPE)
664 else() 662 else()
665 if(EXISTS ${CMAKE_SOURCE_DIR}/BUILDDATE) 663 if(EXISTS ${CMAKE_SOURCE_DIR}/BUILDDATE)
666 file(STRINGS ${CMAKE_SOURCE_DIR}/BUILDDATE DATE LIMIT_INPUT 8) 664 file(STRINGS ${CMAKE_SOURCE_DIR}/BUILDDATE DATE LIMIT_INPUT 8)
667 else() 665 else()
668 string(TIMESTAMP DATE "%Y%m%d" UTC) 666 string(TIMESTAMP DATE "%Y%m%d" UTC)
669 endif() 667 endif()
668 set(APP_BUILD_DATE ${DATE} PARENT_SCOPE)
669
670 if(EXISTS ${CMAKE_SOURCE_DIR}/VERSION) 670 if(EXISTS ${CMAKE_SOURCE_DIR}/VERSION)
671 file(STRINGS ${CMAKE_SOURCE_DIR}/VERSION HASH LIMIT_INPUT 16) 671 file(STRINGS ${CMAKE_SOURCE_DIR}/VERSION HASH LIMIT_INPUT 16)
672 else() 672 else()
@@ -721,6 +721,7 @@ macro(core_find_versions)
721 APP_NAME 721 APP_NAME
722 APP_PACKAGE 722 APP_PACKAGE
723 COMPANY_NAME 723 COMPANY_NAME
724 COPYRIGHT_YEARS
724 JSONRPC_VERSION 725 JSONRPC_VERSION
725 PACKAGE_DESCRIPTION 726 PACKAGE_DESCRIPTION
726 PACKAGE_IDENTITY 727 PACKAGE_IDENTITY
@@ -784,6 +785,12 @@ endmacro()
784# find all folders containing addon.xml.in and used to define 785# find all folders containing addon.xml.in and used to define
785# ADDON_XML_OUTPUTS, ADDON_XML_DEPENDS and ADDON_INSTALL_DATA 786# ADDON_XML_OUTPUTS, ADDON_XML_DEPENDS and ADDON_INSTALL_DATA
786macro(find_addon_xml_in_files) 787macro(find_addon_xml_in_files)
788 set(filter ${ARGV0})
789
790 if(filter AND VERBOSE)
791 message(STATUS "find_addon_xml_in_files: filtering ${filter}")
792 endif()
793
787 file(GLOB ADDON_XML_IN_FILE ${CMAKE_SOURCE_DIR}/addons/*/addon.xml.in) 794 file(GLOB ADDON_XML_IN_FILE ${CMAKE_SOURCE_DIR}/addons/*/addon.xml.in)
788 foreach(loop_var ${ADDON_XML_IN_FILE}) 795 foreach(loop_var ${ADDON_XML_IN_FILE})
789 list(GET loop_var 0 xml_name) 796 list(GET loop_var 0 xml_name)
@@ -792,7 +799,9 @@ macro(find_addon_xml_in_files)
792 string(REPLACE "${CORE_SOURCE_DIR}/" "" xml_name ${xml_name}) 799 string(REPLACE "${CORE_SOURCE_DIR}/" "" xml_name ${xml_name})
793 800
794 list(APPEND ADDON_XML_DEPENDS "${CORE_SOURCE_DIR}/${xml_name}/addon.xml.in") 801 list(APPEND ADDON_XML_DEPENDS "${CORE_SOURCE_DIR}/${xml_name}/addon.xml.in")
795 list(APPEND ADDON_XML_OUTPUTS "${CMAKE_BINARY_DIR}/${xml_name}/addon.xml") 802 if(filter AND NOT xml_name MATCHES ${filter})
803 list(APPEND ADDON_XML_OUTPUTS "${CMAKE_BINARY_DIR}/${xml_name}/addon.xml")
804 endif()
796 805
797 # Read content of add-on folder to have on install 806 # Read content of add-on folder to have on install
798 file(GLOB ADDON_FILES "${CORE_SOURCE_DIR}/${xml_name}/*") 807 file(GLOB ADDON_FILES "${CORE_SOURCE_DIR}/${xml_name}/*")