summaryrefslogtreecommitdiffstats
path: root/project/cmake/scripts/common
diff options
context:
space:
mode:
authormanuel <manuel@mausz.at>2016-05-01 18:06:14 +0200
committermanuel <manuel@mausz.at>2016-05-01 18:06:14 +0200
commit5823b05feb29a59510c32a9c28ca18b50b9b6399 (patch)
treeac1603a592af9415b722b2669e04e417bd13c45c /project/cmake/scripts/common
parent88de33e1836c646ccf594ef162c258d1210fd24e (diff)
downloadkodi-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.cmake2
-rw-r--r--project/cmake/scripts/common/macros.cmake98
-rw-r--r--project/cmake/scripts/common/prepare-env.cmake2
-rw-r--r--project/cmake/scripts/common/projectmacros.cmake11
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)
10configure_file(${CORE_SOURCE_DIR}/xbmc/CompileInfo.cpp.in 10configure_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)
12set(prefix ${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR})
13set(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}
17function(core_add_library name) 17function(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).
61function(copy_file_to_buildtree file relative) 69function(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()
81endfunction() 90endfunction()
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).
92function(copy_files_from_filelist_to_buildtree pattern) 103function(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)
315endmacro() 325endmacro()
316 326
317function(core_find_git_rev) 327function(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)
44endfunction() 47endfunction()