1# Distributed under the OSI-approved BSD 3-Clause License. See accompanying 2# file Copyright.txt or https://cmake.org/licensing for details. 3 4#[=======================================================================[.rst: 5FindSelfPackers 6--------------- 7 8Find upx 9 10This module looks for some executable packers (i.e. software that 11compress executables or shared libs into on-the-fly self-extracting 12executables or shared libs. Examples: 13 14:: 15 16 UPX: http://wildsau.idv.uni-linz.ac.at/mfx/upx.html 17#]=======================================================================] 18 19include(${CMAKE_CURRENT_LIST_DIR}/FindCygwin.cmake) 20include(${CMAKE_CURRENT_LIST_DIR}/FindMsys.cmake) 21 22find_program(SELF_PACKER_FOR_EXECUTABLE 23 upx 24 ${CYGWIN_INSTALL_PATH}/bin 25 ${MSYS_INSTALL_PATH}/usr/bin 26) 27 28find_program(SELF_PACKER_FOR_SHARED_LIB 29 upx 30 ${CYGWIN_INSTALL_PATH}/bin 31 ${MSYS_INSTALL_PATH}/usr/bin 32) 33 34mark_as_advanced( 35 SELF_PACKER_FOR_EXECUTABLE 36 SELF_PACKER_FOR_SHARED_LIB 37) 38 39# 40# Set flags 41# 42if (SELF_PACKER_FOR_EXECUTABLE MATCHES "upx") 43 set (SELF_PACKER_FOR_EXECUTABLE_FLAGS "-q" CACHE STRING 44 "Flags for the executable self-packer.") 45else () 46 set (SELF_PACKER_FOR_EXECUTABLE_FLAGS "" CACHE STRING 47 "Flags for the executable self-packer.") 48endif () 49 50if (SELF_PACKER_FOR_SHARED_LIB MATCHES "upx") 51 set (SELF_PACKER_FOR_SHARED_LIB_FLAGS "-q" CACHE STRING 52 "Flags for the shared lib self-packer.") 53else () 54 set (SELF_PACKER_FOR_SHARED_LIB_FLAGS "" CACHE STRING 55 "Flags for the shared lib self-packer.") 56endif () 57 58mark_as_advanced( 59 SELF_PACKER_FOR_EXECUTABLE_FLAGS 60 SELF_PACKER_FOR_SHARED_LIB_FLAGS 61) 62