CMakeLists.txt: Allow PIE with UPX since it now seems to work with it
Signed-off-by: Username404 <w.iron.zombie@gmail.com>
This commit is contained in:
parent
8706db23b3
commit
8a7f556520
|
@ -186,17 +186,7 @@ option(NO_SELF_PACKER "Disables usage of a self-packer")
|
|||
if (NOT (UPPERCASE_BUILD_TYPE STREQUAL "DEBUG" OR UPPERCASE_BUILD_TYPE STREQUAL "RELWITHDEBINFO" OR NO_SELF_PACKER OR DEFINED EMSCRIPTEN))
|
||||
include(FindSelfPackers)
|
||||
if (SELF_PACKER_FOR_EXECUTABLE MATCHES upx) # UPX version d61edc9 or higher is required when using a cross-compiler to target the musl C library
|
||||
if (CMAKE_CXX_LINK_NO_PIE_SUPPORTED OR MINGW) # MINGW does not support PIE, yet the variable is set to NO.
|
||||
set(SELF_PACKER_FOR_EXECUTABLE_FLAGS ${SELF_PACKER_FOR_EXECUTABLE_FLAGS} --ultra-brute --best)
|
||||
if (USER_DEFINED_PIE AND CMAKE_POSITION_INDEPENDENT_CODE)
|
||||
message(NOTICE "-- Could NOT manually enable PIE (UPX is in use)")
|
||||
endif()
|
||||
set(CMAKE_POSITION_INDEPENDENT_CODE FALSE)
|
||||
set_target_properties(${EXENAME} PROPERTIES POSITION_INDEPENDENT_CODE ${CMAKE_POSITION_INDEPENDENT_CODE})
|
||||
else()
|
||||
set(SELF_PACKER_FOR_EXECUTABLE "SELF_PACKER_FOR_EXECUTABLE-NOTFOUND")
|
||||
message(NOTICE "UPX usage has been disabled because position-dependent executables are unsupported by the current compiler")
|
||||
endif()
|
||||
endif()
|
||||
if (NOT SELF_PACKER_FOR_EXECUTABLE STREQUAL "SELF_PACKER_FOR_EXECUTABLE-NOTFOUND")
|
||||
add_custom_command(TARGET ${EXENAME} POST_BUILD COMMAND "${SELF_PACKER_FOR_EXECUTABLE}" ${SELF_PACKER_FOR_EXECUTABLE_FLAGS} $<TARGET_FILE:${EXENAME}> VERBATIM)
|
||||
|
|
Loading…
Reference in New Issue