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