diff options
| author | manuel <manuel@mausz.at> | 2016-05-01 18:06:14 +0200 |
|---|---|---|
| committer | manuel <manuel@mausz.at> | 2016-05-01 18:06:14 +0200 |
| commit | 5823b05feb29a59510c32a9c28ca18b50b9b6399 (patch) | |
| tree | ac1603a592af9415b722b2669e04e417bd13c45c /project/cmake/scripts/common | |
| parent | 88de33e1836c646ccf594ef162c258d1210fd24e (diff) | |
| download | kodi-pvr-build-5823b05feb29a59510c32a9c28ca18b50b9b6399.tar.gz kodi-pvr-build-5823b05feb29a59510c32a9c28ca18b50b9b6399.tar.bz2 kodi-pvr-build-5823b05feb29a59510c32a9c28ca18b50b9b6399.zip | |
sync with upstream
Diffstat (limited to 'project/cmake/scripts/common')
| -rw-r--r-- | project/cmake/scripts/common/generateversionedfiles.cmake | 2 | ||||
| -rw-r--r-- | project/cmake/scripts/common/macros.cmake | 98 | ||||
| -rw-r--r-- | project/cmake/scripts/common/prepare-env.cmake | 2 | ||||
| -rw-r--r-- | project/cmake/scripts/common/projectmacros.cmake | 11 |
4 files changed, 62 insertions, 51 deletions
diff --git a/project/cmake/scripts/common/generateversionedfiles.cmake b/project/cmake/scripts/common/generateversionedfiles.cmake index 9a4080a..ea1fad5 100644 --- a/project/cmake/scripts/common/generateversionedfiles.cmake +++ b/project/cmake/scripts/common/generateversionedfiles.cmake | |||
| @@ -9,5 +9,3 @@ configure_file(${CORE_SOURCE_DIR}/addons/kodi.guilib/addon.xml.in | |||
| 9 | ${CMAKE_BINARY_DIR}/addons/kodi.guilib/addon.xml @ONLY) | 9 | ${CMAKE_BINARY_DIR}/addons/kodi.guilib/addon.xml @ONLY) |
| 10 | configure_file(${CORE_SOURCE_DIR}/xbmc/CompileInfo.cpp.in | 10 | configure_file(${CORE_SOURCE_DIR}/xbmc/CompileInfo.cpp.in |
| 11 | ${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR}/xbmc/CompileInfo.cpp @ONLY) | 11 | ${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR}/xbmc/CompileInfo.cpp @ONLY) |
| 12 | set(prefix ${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR}) | ||
| 13 | set(APP_LIBDIR ${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR}/lib/kodi) | ||
diff --git a/project/cmake/scripts/common/macros.cmake b/project/cmake/scripts/common/macros.cmake index dd2233b..0900740 100644 --- a/project/cmake/scripts/common/macros.cmake +++ b/project/cmake/scripts/common/macros.cmake | |||
| @@ -16,6 +16,12 @@ include(${CORE_SOURCE_DIR}/project/cmake/scripts/${CORE_SYSTEM_NAME}/macros.cmak | |||
| 16 | # Library will be built, optionally added to ${core_DEPENDS} | 16 | # Library will be built, optionally added to ${core_DEPENDS} |
| 17 | function(core_add_library name) | 17 | function(core_add_library name) |
| 18 | cmake_parse_arguments(arg "NO_MAIN_DEPENDS" "" "" ${ARGN}) | 18 | cmake_parse_arguments(arg "NO_MAIN_DEPENDS" "" "" ${ARGN}) |
| 19 | |||
| 20 | if(NOT SOURCES) | ||
| 21 | message(STATUS "No sources added to ${name} skipping") | ||
| 22 | return() | ||
| 23 | endif() | ||
| 24 | |||
| 19 | add_library(${name} STATIC ${SOURCES} ${HEADERS} ${OTHERS}) | 25 | add_library(${name} STATIC ${SOURCES} ${HEADERS} ${OTHERS}) |
| 20 | set_target_properties(${name} PROPERTIES PREFIX "") | 26 | set_target_properties(${name} PROPERTIES PREFIX "") |
| 21 | if(NOT arg_NO_MAIN_DEPENDS) | 27 | if(NOT arg_NO_MAIN_DEPENDS) |
| @@ -53,48 +59,52 @@ endfunction() | |||
| 53 | # Arguments: | 59 | # Arguments: |
| 54 | # file full path to file to mirror | 60 | # file full path to file to mirror |
| 55 | # relative the relative base of file path in the build/install tree | 61 | # relative the relative base of file path in the build/install tree |
| 56 | # give another parameter to exclude from install target | 62 | # Optional Arguments: |
| 63 | # NO_INSTALL: exclude file from installation target | ||
| 57 | # Implicit arguments: | 64 | # Implicit arguments: |
| 58 | # CORE_SOURCE_DIR - root of source tree | 65 | # CORE_SOURCE_DIR - root of source tree |
| 59 | # On return: | 66 | # On return: |
| 60 | # file is added to ${install_data} and mirrored in build tree | 67 | # Files is mirrored to the build tree and added to ${install_data} |
| 68 | # (if NO_INSTALL is not given). | ||
| 61 | function(copy_file_to_buildtree file relative) | 69 | function(copy_file_to_buildtree file relative) |
| 62 | if(NOT WIN32) | 70 | cmake_parse_arguments(arg "NO_INSTALL" "" "" ${ARGN}) |
| 63 | string(REPLACE "\(" "\\(" file ${file}) | ||
| 64 | string(REPLACE "\)" "\\)" file ${file}) | ||
| 65 | endif() | ||
| 66 | string(REPLACE "${relative}/" "" outfile ${file}) | 71 | string(REPLACE "${relative}/" "" outfile ${file}) |
| 72 | get_filename_component(outdir ${outfile} DIRECTORY) | ||
| 67 | 73 | ||
| 68 | if(NOT TARGET export-files) | 74 | if(NOT TARGET export-files) |
| 69 | add_custom_target(export-files ALL COMMENT "Copying files into build tree") | 75 | file(REMOVE ${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR}/ExportFiles.cmake) |
| 76 | add_custom_target(export-files ALL COMMENT "Copying files into build tree" | ||
| 77 | COMMAND ${CMAKE_COMMAND} -P ${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR}/ExportFiles.cmake) | ||
| 70 | endif() | 78 | endif() |
| 71 | if(NOT ${CORE_SOURCE_DIR} MATCHES ${CMAKE_BINARY_DIR}) | 79 | if(NOT ${CORE_SOURCE_DIR} MATCHES ${CMAKE_BINARY_DIR}) |
| 72 | if(VERBOSE) | 80 | if(VERBOSE) |
| 73 | message(STATUS "copy_file_to_buildtree - copying file: ${file} -> ${CMAKE_CURRENT_BINARY_DIR}/${outfile}") | 81 | message(STATUS "copy_file_to_buildtree - copying file: ${file} -> ${CMAKE_BINARY_DIR}/${outfile}") |
| 74 | endif() | 82 | endif() |
| 75 | add_custom_command(TARGET export-files COMMAND ${CMAKE_COMMAND} -E copy_if_different "${file}" "${CMAKE_CURRENT_BINARY_DIR}/${outfile}") | 83 | file(APPEND ${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR}/ExportFiles.cmake |
| 84 | "file(COPY \"${file}\" DESTINATION \"${CMAKE_BINARY_DIR}/${outdir}\")\n") | ||
| 76 | endif() | 85 | endif() |
| 77 | if(NOT ARGN) | 86 | if(NOT arg_NO_INSTALL) |
| 78 | list(APPEND install_data ${outfile}) | 87 | list(APPEND install_data ${outfile}) |
| 79 | set(install_data ${install_data} PARENT_SCOPE) | 88 | set(install_data ${install_data} PARENT_SCOPE) |
| 80 | endif() | 89 | endif() |
| 81 | endfunction() | 90 | endfunction() |
| 82 | 91 | ||
| 83 | # add data files to installation list with a mirror in build tree. | 92 | # Add data files to installation list with a mirror in build tree. |
| 84 | # reads list of files to install from a given list of text files. | 93 | # reads list of files to install from a given list of text files. |
| 85 | # Arguments: | 94 | # Arguments: |
| 86 | # pattern globbing pattern for text files to read | 95 | # pattern globbing pattern for text files to read |
| 87 | # give another parameter to exclude from installation target | 96 | # Optional Arguments: |
| 97 | # NO_INSTALL: exclude files from installation target | ||
| 88 | # Implicit arguments: | 98 | # Implicit arguments: |
| 89 | # CORE_SOURCE_DIR - root of source tree | 99 | # CORE_SOURCE_DIR - root of source tree |
| 90 | # On return: | 100 | # On return: |
| 91 | # files are added to ${install_data} and mirrored in build tree | 101 | # Files are mirrored to the build tree and added to ${install_data} |
| 102 | # (if NO_INSTALL is not given). | ||
| 92 | function(copy_files_from_filelist_to_buildtree pattern) | 103 | function(copy_files_from_filelist_to_buildtree pattern) |
| 93 | foreach(arg ${ARGN}) | ||
| 94 | list(APPEND pattern ${arg}) | ||
| 95 | endforeach() | ||
| 96 | # copies files listed in text files to the buildtree | 104 | # copies files listed in text files to the buildtree |
| 97 | # Input: [glob pattern: filepattern] | 105 | # Input: [glob pattern: filepattern] |
| 106 | cmake_parse_arguments(arg "NO_INSTALL" "" "" ${ARGN}) | ||
| 107 | list(APPEND pattern ${ARGN}) | ||
| 98 | list(SORT pattern) | 108 | list(SORT pattern) |
| 99 | if(VERBOSE) | 109 | if(VERBOSE) |
| 100 | message(STATUS "copy_files_from_filelist_to_buildtree - got pattern: ${pattern}") | 110 | message(STATUS "copy_files_from_filelist_to_buildtree - got pattern: ${pattern}") |
| @@ -107,8 +117,8 @@ function(copy_files_from_filelist_to_buildtree pattern) | |||
| 107 | foreach(dir ${fstrings}) | 117 | foreach(dir ${fstrings}) |
| 108 | file(GLOB_RECURSE files RELATIVE ${CORE_SOURCE_DIR} ${CORE_SOURCE_DIR}/${dir}) | 118 | file(GLOB_RECURSE files RELATIVE ${CORE_SOURCE_DIR} ${CORE_SOURCE_DIR}/${dir}) |
| 109 | foreach(file ${files}) | 119 | foreach(file ${files}) |
| 110 | if(ARGN) | 120 | if(arg_NO_INSTALL) |
| 111 | copy_file_to_buildtree(${CORE_SOURCE_DIR}/${file} ${CORE_SOURCE_DIR} 1) | 121 | copy_file_to_buildtree(${CORE_SOURCE_DIR}/${file} ${CORE_SOURCE_DIR} NO_INSTALL) |
| 112 | else() | 122 | else() |
| 113 | copy_file_to_buildtree(${CORE_SOURCE_DIR}/${file} ${CORE_SOURCE_DIR}) | 123 | copy_file_to_buildtree(${CORE_SOURCE_DIR}/${file} ${CORE_SOURCE_DIR}) |
| 114 | endif() | 124 | endif() |
| @@ -315,37 +325,37 @@ macro(today RESULT) | |||
| 315 | endmacro() | 325 | endmacro() |
| 316 | 326 | ||
| 317 | function(core_find_git_rev) | 327 | function(core_find_git_rev) |
| 318 | if(EXISTS ${CORE_SOURCE_DIR}/VERSION) | 328 | find_package(Git) |
| 319 | file(STRINGS ${CORE_SOURCE_DIR}/VERSION VERSION_FILE) | 329 | if(GIT_FOUND AND EXISTS ${CORE_SOURCE_DIR}/.git) |
| 320 | string(SUBSTRING "${VERSION_FILE}" 1 16 GIT_REV) | 330 | execute_process(COMMAND ${GIT_EXECUTABLE} diff-files --ignore-submodules --quiet -- |
| 321 | else() | 331 | RESULT_VARIABLE status_code |
| 322 | find_package(Git) | 332 | WORKING_DIRECTORY ${CORE_SOURCE_DIR}) |
| 323 | if(GIT_FOUND AND EXISTS ${CORE_SOURCE_DIR}/.git) | 333 | if (NOT status_code) |
| 324 | execute_process(COMMAND ${GIT_EXECUTABLE} diff-files --ignore-submodules --quiet -- | 334 | execute_process(COMMAND ${GIT_EXECUTABLE} diff-index --ignore-submodules --quiet HEAD -- |
| 325 | RESULT_VARIABLE status_code | 335 | RESULT_VARIABLE status_code |
| 326 | WORKING_DIRECTORY ${CORE_SOURCE_DIR}) | 336 | WORKING_DIRECTORY ${CORE_SOURCE_DIR}) |
| 327 | if (NOT status_code) | 337 | endif() |
| 328 | execute_process(COMMAND ${GIT_EXECUTABLE} diff-index --cached --ignore-submodules --quiet HEAD -- | 338 | if (status_code) |
| 329 | RESULT_VARIABLE status_code | 339 | execute_process(COMMAND ${GIT_EXECUTABLE} log -n 1 --pretty=format:"%h-dirty" HEAD |
| 340 | OUTPUT_VARIABLE HASH | ||
| 330 | WORKING_DIRECTORY ${CORE_SOURCE_DIR}) | 341 | WORKING_DIRECTORY ${CORE_SOURCE_DIR}) |
| 342 | string(SUBSTRING ${HASH} 1 13 HASH) | ||
| 343 | else() | ||
| 344 | execute_process(COMMAND ${GIT_EXECUTABLE} log -n 1 --pretty=format:"%h" HEAD | ||
| 345 | OUTPUT_VARIABLE HASH | ||
| 346 | WORKING_DIRECTORY ${CORE_SOURCE_DIR}) | ||
| 347 | string(SUBSTRING ${HASH} 1 7 HASH) | ||
| 331 | endif() | 348 | endif() |
| 332 | today(DATE) | 349 | execute_process(COMMAND ${GIT_EXECUTABLE} log -1 --pretty=format:"%cd" --date=short HEAD |
| 333 | execute_process(COMMAND ${GIT_EXECUTABLE} --no-pager log --abbrev=7 -n 1 | 350 | OUTPUT_VARIABLE DATE |
| 334 | --pretty=format:"%h-dirty" HEAD | 351 | WORKING_DIRECTORY ${CORE_SOURCE_DIR}) |
| 335 | OUTPUT_VARIABLE LOG_UNFORMATTED | 352 | string(SUBSTRING ${DATE} 1 10 DATE) |
| 336 | WORKING_DIRECTORY ${CORE_SOURCE_DIR}) | 353 | else() |
| 337 | string(SUBSTRING ${LOG_UNFORMATTED} 1 7 HASH) | 354 | today(DATE) |
| 338 | else() | 355 | set(HASH "nogitfound") |
| 339 | execute_process(COMMAND ${GIT_EXECUTABLE} --no-pager log --abbrev=7 -n 1 | ||
| 340 | --pretty=format:"%h %cd" HEAD | ||
| 341 | OUTPUT_VARIABLE LOG_UNFORMATTED | ||
| 342 | WORKING_DIRECTORY ${CORE_SOURCE_DIR}) | ||
| 343 | string(SUBSTRING ${LOG_UNFORMATTED} 1 7 HASH) | ||
| 344 | string(SUBSTRING ${LOG_UNFORMATTED} 9 10 DATE) | ||
| 345 | string(REPLACE "-" "" DATE ${DATE}) | ||
| 346 | endif() | ||
| 347 | set(GIT_REV "${DATE}-${HASH}") | ||
| 348 | endif() | 356 | endif() |
| 357 | string(REPLACE "-" "" DATE ${DATE}) | ||
| 358 | set(GIT_REV "${DATE}-${HASH}") | ||
| 349 | if(GIT_REV) | 359 | if(GIT_REV) |
| 350 | set(APP_SCMID ${GIT_REV} PARENT_SCOPE) | 360 | set(APP_SCMID ${GIT_REV} PARENT_SCOPE) |
| 351 | endif() | 361 | endif() |
diff --git a/project/cmake/scripts/common/prepare-env.cmake b/project/cmake/scripts/common/prepare-env.cmake index b9a39e7..8e9bd1c 100644 --- a/project/cmake/scripts/common/prepare-env.cmake +++ b/project/cmake/scripts/common/prepare-env.cmake | |||
| @@ -100,7 +100,7 @@ if(WIN32) | |||
| 100 | if(PATCH_FOUND) | 100 | if(PATCH_FOUND) |
| 101 | message(STATUS "patch utility found at ${PATCH_FOUND}") | 101 | message(STATUS "patch utility found at ${PATCH_FOUND}") |
| 102 | else() | 102 | else() |
| 103 | set(PATCH_ARCHIVE_NAME "patch-2.5.9-7-bin-1") | 103 | set(PATCH_ARCHIVE_NAME "patch-2.5.9-7-bin-3") |
| 104 | set(PATCH_ARCHIVE "${PATCH_ARCHIVE_NAME}.zip") | 104 | set(PATCH_ARCHIVE "${PATCH_ARCHIVE_NAME}.zip") |
| 105 | set(PATCH_URL "${KODI_MIRROR}/build-deps/win32/${PATCH_ARCHIVE}") | 105 | set(PATCH_URL "${KODI_MIRROR}/build-deps/win32/${PATCH_ARCHIVE}") |
| 106 | set(PATCH_DOWNLOAD ${BUILD_DIR}/download/${PATCH_ARCHIVE}) | 106 | set(PATCH_DOWNLOAD ${BUILD_DIR}/download/${PATCH_ARCHIVE}) |
diff --git a/project/cmake/scripts/common/projectmacros.cmake b/project/cmake/scripts/common/projectmacros.cmake index d0739c4..7ce4ee9 100644 --- a/project/cmake/scripts/common/projectmacros.cmake +++ b/project/cmake/scripts/common/projectmacros.cmake | |||
| @@ -35,10 +35,13 @@ function(copy_skin_to_buildtree skin relative) | |||
| 35 | endforeach() | 35 | endforeach() |
| 36 | file(MAKE_DIRECTORY ${CMAKE_BINARY_DIR}/${dest}/media) | 36 | file(MAKE_DIRECTORY ${CMAKE_BINARY_DIR}/${dest}/media) |
| 37 | string(REPLACE "${relative}/" "" dest ${skin}) | 37 | string(REPLACE "${relative}/" "" dest ${skin}) |
| 38 | pack_xbt(${skin}/media | 38 | pack_xbt(${skin}/media ${CMAKE_BINARY_DIR}/${dest}/media/Textures.xbt) |
| 39 | ${CMAKE_BINARY_DIR}/${dest}/media/Textures.xbt | 39 | |
| 40 | ${CMAKE_BINARY_DIR}) | 40 | file(GLOB THEMES RELATIVE ${skin}/themes ${skin}/themes/*) |
| 41 | 41 | foreach(theme ${THEMES}) | |
| 42 | pack_xbt(${skin}/themes/${theme} ${CMAKE_BINARY_DIR}/${dest}/media/${theme}.xbt) | ||
| 43 | endforeach() | ||
| 44 | |||
| 42 | set(XBT_FILES ${XBT_FILES} PARENT_SCOPE) | 45 | set(XBT_FILES ${XBT_FILES} PARENT_SCOPE) |
| 43 | set(install_data ${install_data} PARENT_SCOPE) | 46 | set(install_data ${install_data} PARENT_SCOPE) |
| 44 | endfunction() | 47 | endfunction() |
