FindSelfPackers.cmake 1.4 KB

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