FindSelfPackers.cmake 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. #
  2. # this module looks for some executable packers (i.e. softwares that
  3. # compress executables or shared libs into on-the-fly self-extracting
  4. # executables or shared libs.
  5. #
  6. # Examples:
  7. # UPX: http://wildsau.idv.uni-linz.ac.at/mfx/upx.html
  8. INCLUDE(${CMAKE_ROOT}/Modules/FindCygwin.cmake)
  9. IF (CYGWIN_INSTALL_PATH)
  10. FIND_PROGRAM(SELF_PACKER_FOR_EXECUTABLE
  11. upx
  12. ${CYGWIN_INSTALL_PATH}/bin
  13. )
  14. FIND_PROGRAM(SELF_PACKER_FOR_SHARED_LIB
  15. upx
  16. ${CYGWIN_INSTALL_PATH}/bin
  17. )
  18. ELSE (CYGWIN_INSTALL_PATH)
  19. FIND_PROGRAM(SELF_PACKER_FOR_EXECUTABLE
  20. upx
  21. /bin
  22. /usr/bin
  23. /usr/local/bin
  24. /sbin
  25. )
  26. FIND_PROGRAM(SELF_PACKER_FOR_SHARED_LIB
  27. upx
  28. /bin
  29. /usr/bin
  30. /usr/local/bin
  31. /sbin
  32. )
  33. ENDIF (CYGWIN_INSTALL_PATH)
  34. #
  35. # Set flags
  36. #
  37. IF (SELF_PACKER_FOR_EXECUTABLE MATCHES "upx")
  38. SET (SELF_PACKER_FOR_EXECUTABLE_FLAGS "-q" CACHE STRING
  39. "Flags for the executable self-packer.")
  40. ELSE (SELF_PACKER_FOR_EXECUTABLE MATCHES "upx")
  41. SET (SELF_PACKER_FOR_EXECUTABLE_FLAGS "" CACHE STRING
  42. "Flags for the executable self-packer.")
  43. ENDIF (SELF_PACKER_FOR_EXECUTABLE MATCHES "upx")
  44. IF (SELF_PACKER_FOR_SHARED_LIB MATCHES "upx")
  45. SET (SELF_PACKER_FOR_SHARED_LIB_FLAGS "-q" CACHE STRING
  46. "Flags for the shared lib self-packer.")
  47. ELSE (SELF_PACKER_FOR_SHARED_LIB MATCHES "upx")
  48. SET (SELF_PACKER_FOR_SHARED_LIB_FLAGS "" CACHE STRING
  49. "Flags for the shared lib self-packer.")
  50. ENDIF (SELF_PACKER_FOR_SHARED_LIB MATCHES "upx")