diff options
Diffstat (limited to 'cmake/scripts/common')
| -rw-r--r-- | cmake/scripts/common/AddonHelpers.cmake | 11 | ||||
| -rw-r--r-- | cmake/scripts/common/GenerateVersionedFiles.cmake | 2 | ||||
| -rw-r--r-- | cmake/scripts/common/HandleDepends.cmake | 24 | ||||
| -rw-r--r-- | cmake/scripts/common/Macros.cmake | 31 |
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() | |||
| 15 | file(GLOB ADDON_XML_IN_FILE ${CORE_SOURCE_DIR}/addons/*/addon.xml.in) | 15 | file(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' |
| 18 | list(REMOVE_ITEM ADDON_XML_IN_FILE xbmc.json) | 18 | list(REMOVE_ITEM ADDON_XML_IN_FILE ${CORE_SOURCE_DIR}/addons/xbmc.json/addon.xml.in) |
| 19 | 19 | ||
| 20 | foreach(loop_var ${ADDON_XML_IN_FILE}) | 20 | foreach(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 |
| 786 | macro(find_addon_xml_in_files) | 787 | macro(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}/*") |
