BUG: use different commands for shared libraries and exe for manifest stuff fix for bug#4039
This commit is contained in:
parent
6d932c627b
commit
5ac4801a04
|
@ -0,0 +1,30 @@
|
|||
|
||||
# Leave the first line of this file empty so this module will not be
|
||||
# included in the documentation.
|
||||
|
||||
# This script is invoked from Windows-cl.cmake and passed the TARGET
|
||||
# variable on the command line.
|
||||
|
||||
# Conditionally embed the manifest in the executable if it exists.
|
||||
IF(EXISTS "${TARGET}.manifest")
|
||||
# Construct the manifest embedding command.
|
||||
SET(CMD
|
||||
mt ${CMAKE_CL_NOLOGO} /manifest ${TARGET}.manifest
|
||||
/outputresource:${TARGET}
|
||||
)
|
||||
|
||||
# Run the embedding command.
|
||||
EXECUTE_PROCESS(COMMAND ${CMD}\;\#1 RESULT_VARIABLE RESULT)
|
||||
|
||||
# Check whether the command failed.
|
||||
IF(NOT "${RESULT}" MATCHES "^0$")
|
||||
# The embedding failed remove the target and the manifest.
|
||||
FILE(REMOVE ${TARGET} ${TARGET}.manifest)
|
||||
|
||||
# Describe the failure in a message.
|
||||
STRING(REGEX REPLACE ";" " " CMD "${CMD}")
|
||||
MESSAGE(FATAL_ERROR
|
||||
"Failed to embed manifest in ${TARGET} using command \"${CMD};#1\""
|
||||
)
|
||||
ENDIF(NOT "${RESULT}" MATCHES "^0$")
|
||||
ENDIF(EXISTS "${TARGET}.manifest")
|
|
@ -218,10 +218,10 @@ IF(MSVC80)
|
|||
# create a C shared module just copy the shared library rule
|
||||
SET(CMAKE_C_CREATE_SHARED_MODULE "${CMAKE_C_CREATE_SHARED_LIBRARY}")
|
||||
SET(CMAKE_CXX_LINK_EXECUTABLE "${CMAKE_CXX_LINK_EXECUTABLE}"
|
||||
"$(CMAKE_COMMAND) -DTARGET=<TARGET> -DCMAKE_CL_NOLOGO=${CMAKE_CL_NOLOGO} -P \"${CMAKE_ROOT}/Modules/CMakeVCManifest.cmake\""
|
||||
"$(CMAKE_COMMAND) -DTARGET=<TARGET> -DCMAKE_CL_NOLOGO=${CMAKE_CL_NOLOGO} -P \"${CMAKE_ROOT}/Modules/CMakeVCManifestExe.cmake\""
|
||||
)
|
||||
SET(CMAKE_C_LINK_EXECUTABLE "${CMAKE_C_LINK_EXECUTABLE}"
|
||||
"$(CMAKE_COMMAND) -DTARGET=<TARGET> -DCMAKE_CL_NOLOGO=${CMAKE_CL_NOLOGO} -P \"${CMAKE_ROOT}/Modules/CMakeVCManifest.cmake\""
|
||||
"$(CMAKE_COMMAND) -DTARGET=<TARGET> -DCMAKE_CL_NOLOGO=${CMAKE_CL_NOLOGO} -P \"${CMAKE_ROOT}/Modules/CMakeVCManifestExe.cmake\""
|
||||
)
|
||||
|
||||
SET(CMAKE_BUILD_TYPE_INIT Debug)
|
||||
|
|
Loading…
Reference in New Issue