From 249b758b0dbd833a172fd6cab9c64345174dbdf0 Mon Sep 17 00:00:00 2001 From: "Lubomir I. Ivanov" Date: Wed, 15 Nov 2017 22:17:37 +0200 Subject: cmake: make sure to only handle objcopy from MXE The native Windows build does not use the MXE tools and call such as `i686-w64-mingw32.shared-objcopy` can fail. Attempt to first find if the program exists using `find_program()` and only then call it. Signed-off-by: Lubomir I. Ivanov --- CMakeLists.txt | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index c504421c8..1773d12fd 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -426,12 +426,15 @@ elseif(CMAKE_SYSTEM_NAME STREQUAL "Windows") if(NOT DEFINED OBJCOPY) set(OBJCOPY i686-w64-mingw32.shared-objcopy) endif() - message(STATUS "Build type is 'RelWithDebInfo'. Creating debug symbols in a separate file.") - add_custom_command(TARGET ${SUBSURFACE_TARGET} POST_BUILD - COMMAND ${OBJCOPY} --only-keep-debug ${SUBSURFACE_TARGET}.exe ${SUBSURFACE_TARGET}.exe.debug - COMMAND ${OBJCOPY} --strip-debug --strip-unneeded ${SUBSURFACE_TARGET}.exe - COMMAND ${OBJCOPY} --add-gnu-debuglink=${SUBSURFACE_TARGET}.exe.debug ${SUBSURFACE_TARGET}.exe - ) + find_program(OBJCOPY_FOUND ${OBJCOPY}) + if (OBJCOPY_FOUND) + message(STATUS "Build type is 'RelWithDebInfo'. Creating debug symbols in a separate file.") + add_custom_command(TARGET ${SUBSURFACE_TARGET} POST_BUILD + COMMAND ${OBJCOPY} --only-keep-debug ${SUBSURFACE_TARGET}.exe ${SUBSURFACE_TARGET}.exe.debug + COMMAND ${OBJCOPY} --strip-debug --strip-unneeded ${SUBSURFACE_TARGET}.exe + COMMAND ${OBJCOPY} --add-gnu-debuglink=${SUBSURFACE_TARGET}.exe.debug ${SUBSURFACE_TARGET}.exe + ) + endif() endif() # Windows bundling rules -- cgit v1.2.3-70-g09d2