diff options
Diffstat (limited to 'project/cmake/scripts/common/handle-depends.cmake')
-rw-r--r-- | project/cmake/scripts/common/handle-depends.cmake | 20 |
1 files changed, 19 insertions, 1 deletions
diff --git a/project/cmake/scripts/common/handle-depends.cmake b/project/cmake/scripts/common/handle-depends.cmake index b3bf3cd531..4d78928e13 100644 --- a/project/cmake/scripts/common/handle-depends.cmake +++ b/project/cmake/scripts/common/handle-depends.cmake @@ -86,8 +86,26 @@ function(add_addon_depends addon searchpath) file(GLOB patches ${dir}/*.patch) list(SORT patches) foreach(patch ${patches}) + if(NOT PATCH_PROGRAM OR "${PATCH_PROGRAM}" STREQUAL "") + if(NOT PATCH_EXECUTABLE) + # find the path to the patch executable + find_program(PATCH_EXECUTABLE NAMES patch) + + if(NOT PATCH_EXECUTABLE) + message(FATAL_ERROR "Missing patch command (we looked in ${CMAKE_PREFIX_PATH})") + endif() + endif() + + # on windows "patch.exe" can only handle CR-LF line-endings so we + # need to force it to also handle LF-only line endings + set(PATCH_PROGRAM ${PATCH_EXECUTABLE}) + if(WIN32) + set(PATCH_PROGRAM "\"${PATCH_PROGRAM}\" --binary") + endif() + endif() + file(APPEND ${PATCH_FILE} - "execute_process(COMMAND patch -p1 -i ${patch})\n") + "execute_process(COMMAND ${PATCH_PROGRAM} -p1 -i \"${patch}\")\n") endforeach() |