CMakeLists.txt: Disable UPX when position-dependent executables are not supported by the compiler
Signed-off-by: Username404 <w.iron.zombie@gmail.com>
This commit is contained in:
		
							parent
							
								
									3e6b6f9560
								
							
						
					
					
						commit
						b8bb1181d1
					
				@ -161,12 +161,17 @@ 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 OR MINGW))
 | 
					if (NOT (UPPERCASE_BUILD_TYPE STREQUAL "DEBUG" OR UPPERCASE_BUILD_TYPE STREQUAL "RELWITHDEBINFO" OR NO_SELF_PACKER OR DEFINED EMSCRIPTEN OR MINGW))
 | 
				
			||||||
    include(FindSelfPackers)
 | 
					    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 (SELF_PACKER_FOR_EXECUTABLE MATCHES upx) # UPX version d61edc9 or higher is required when using a cross-compiler to target the musl C library
 | 
				
			||||||
        set(SELF_PACKER_FOR_EXECUTABLE_FLAGS ${SELF_PACKER_FOR_EXECUTABLE_FLAGS} --ultra-brute --best)
 | 
					        if (CMAKE_CXX_LINK_NO_PIE_SUPPORTED)
 | 
				
			||||||
        if (USER_DEFINED_PIE AND CMAKE_POSITION_INDEPENDENT_CODE)
 | 
					            set(SELF_PACKER_FOR_EXECUTABLE_FLAGS ${SELF_PACKER_FOR_EXECUTABLE_FLAGS} --ultra-brute --best)
 | 
				
			||||||
            message(NOTICE "-- Could NOT manually enable PIE (UPX is in use)")
 | 
					            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()
 | 
				
			||||||
        set(CMAKE_POSITION_INDEPENDENT_CODE FALSE)
 | 
					 | 
				
			||||||
        set_target_properties(${EXENAME} PROPERTIES POSITION_INDEPENDENT_CODE ${CMAKE_POSITION_INDEPENDENT_CODE})
 | 
					 | 
				
			||||||
    endif()
 | 
					    endif()
 | 
				
			||||||
    if (NOT SELF_PACKER_FOR_EXECUTABLE STREQUAL "SELF_PACKER_FOR_EXECUTABLE-NOTFOUND")
 | 
					    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)
 | 
					        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
	
	Block a user