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 <neolit123@gmail.com>
This commit is contained in:
Lubomir I. Ivanov 2017-11-15 22:17:37 +02:00
parent bd9dad7371
commit 249b758b0d

View file

@ -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