FindSelfPackers.cmake 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  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. FIND_PROGRAM(SELF_PACKER_FOR_EXECUTABLE
  10. upx
  11. ${CYGWIN_INSTALL_PATH}/bin
  12. /bin
  13. /usr/bin
  14. /usr/local/bin
  15. /sbin
  16. )
  17. FIND_PROGRAM(SELF_PACKER_FOR_SHARED_LIB
  18. upx
  19. ${CYGWIN_INSTALL_PATH}/bin
  20. /bin
  21. /usr/bin
  22. /usr/local/bin
  23. /sbin
  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 (SELF_PACKER_FOR_EXECUTABLE MATCHES "upx")
  36. SET (SELF_PACKER_FOR_EXECUTABLE_FLAGS "" CACHE STRING
  37. "Flags for the executable self-packer.")
  38. ENDIF (SELF_PACKER_FOR_EXECUTABLE MATCHES "upx")
  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 (SELF_PACKER_FOR_SHARED_LIB MATCHES "upx")
  43. SET (SELF_PACKER_FOR_SHARED_LIB_FLAGS "" CACHE STRING
  44. "Flags for the shared lib self-packer.")
  45. ENDIF (SELF_PACKER_FOR_SHARED_LIB MATCHES "upx")
  46. MARK_AS_ADVANCED(
  47. SELF_PACKER_FOR_EXECUTABLE_FLAGS
  48. SELF_PACKER_FOR_SHARED_LIB_FLAGS
  49. )