diff options
author | h.udo <hudokkow@gmail.com> | 2016-09-08 18:15:54 +0100 |
---|---|---|
committer | h.udo <hudokkow@gmail.com> | 2016-12-21 10:04:18 +0000 |
commit | a18701e7b2fe03780f90502d5d51e09cdc3ad718 (patch) | |
tree | a9d2c2cca8599a18a78c6b1345f42e48e76ddb27 /cmake/scripts/windows/tools/patch.cmake | |
parent | f2b31fda391d3364b7307ab9f9216fa0ee7164c7 (diff) |
[cmake] Move to root folder: Move files
Diffstat (limited to 'cmake/scripts/windows/tools/patch.cmake')
-rw-r--r-- | cmake/scripts/windows/tools/patch.cmake | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/cmake/scripts/windows/tools/patch.cmake b/cmake/scripts/windows/tools/patch.cmake new file mode 100644 index 0000000000..0ef2952219 --- /dev/null +++ b/cmake/scripts/windows/tools/patch.cmake @@ -0,0 +1,37 @@ +find_program(PATCH_FOUND NAMES patch patch.exe) +if(PATCH_FOUND) + message(STATUS "patch utility found at ${PATCH_FOUND}") +else() + set(PATCH_ARCHIVE_NAME "patch-2.5.9-7-bin-1") + set(PATCH_ARCHIVE "${PATCH_ARCHIVE_NAME}.zip") + set(PATCH_URL "${KODI_MIRROR}/build-deps/win32/${PATCH_ARCHIVE}") + set(PATCH_DOWNLOAD ${BUILD_DIR}/download/${PATCH_ARCHIVE}) + + # download the archive containing patch.exe + message(STATUS "Downloading patch utility from ${PATCH_URL}...") + file(DOWNLOAD "${PATCH_URL}" "${PATCH_DOWNLOAD}" STATUS PATCH_DL_STATUS LOG PATCH_LOG SHOW_PROGRESS) + list(GET PATCH_DL_STATUS 0 PATCH_RETCODE) + if(NOT PATCH_RETCODE EQUAL 0) + message(FATAL_ERROR "ERROR downloading ${PATCH_URL} - status: ${PATCH_DL_STATUS} log: ${PATCH_LOG}") + endif() + + # extract the archive containing patch.exe + execute_process(COMMAND ${CMAKE_COMMAND} -E tar xzvf ${PATCH_DOWNLOAD} + WORKING_DIRECTORY ${BUILD_DIR}) + + # make sure the extraction worked and that patch.exe is there + set(PATCH_PATH ${BUILD_DIR}/${PATCH_ARCHIVE_NAME}) + set(PATCH_BINARY_PATH ${PATCH_PATH}/bin/patch.exe) + if(NOT EXISTS ${PATCH_PATH} OR NOT EXISTS ${PATCH_BINARY_PATH}) + message(FATAL_ERROR "ERROR extracting patch utility from ${PATCH_PATH}") + endif() + + # copy patch.exe into the output directory + file(INSTALL ${PATCH_BINARY_PATH} DESTINATION ${ADDON_DEPENDS_PATH}/bin) + + # make sure that cmake can find the copied patch.exe + find_program(PATCH_FOUND NAMES patch patch.exe) + if(NOT PATCH_FOUND) + message(FATAL_ERROR "ERROR installing patch utility from ${PATCH_BINARY_PATH} to ${ADDON_DEPENDS_PATH}/bin") + endif() +endif() |