1# - Try to find the MakeNSIS 2# Once done this will define 3# 4# MAKENSIS_FOUND - system has MakeNSIS 5# MAKENSIS - the MakeNSIS program 6# MAKENSIS_FLAGS - the MakeNSIS flags 7# MAKENSIS_SUFFIX - the MakeNSIS output file suffix 8 9# Copyright (c) 2011, Pali Rohár <pali.rohar@gmail.com> 10# 11# Redistribution and use is allowed according to the terms of the BSD license. 12# For details see the accompanying COPYING-CMAKE-SCRIPTS file. 13 14if(MAKENSIS) 15 set(MAKENSIS_FOUND true) 16else() 17 find_program(MAKENSIS NAMES makensis HINTS "C:/Program Files/NSIS" "C:/Program Files (x86)/NSIS") 18 find_package(SelfPackers) 19 20 set(MAKENSIS_ADDITIONAL_FLAGS "" CACHE STRING "Additional flags for makensis") 21 22 if(MAKENSIS) 23 set(MAKENSIS_FOUND true) 24 message(STATUS "Found MakeNSIS: ${MAKENSIS}") 25 else() 26 set(MAKENSIS_FOUND false) 27# message(FATAL_ERROR "Could not find program MakeNSIS") # TODO: This fail if REQUIRED is not used too! 28 message(STATUS "Could not find program MakeNSIS") 29 endif() 30 31 if(NOT CMAKE_VERBOSE_MAKEFILE) 32 set(MAKENSIS_FLAGS ${MAKENSIS_FLAGS} -V2 -DQUIET) 33 endif() 34 35 if(CMAKE_BUILD_TYPE STREQUAL "Debug") 36 set(MAKENSIS_FLAGS ${MAKENSIS_FLAGS} -DDBG) 37 set(MAKENSIS_SUFFIX ${MAKENSIS_SUFFIX}-debug) 38 endif() 39 40 if(CMAKE_SIZEOF_VOID_P STREQUAL 8) 41 set(MAKENSIS_FLAGS ${MAKENSIS_FLAGS} -DX86_64) 42 set(MAKENSIS_SUFFIX ${MAKENSIS_SUFFIX}-x86_64) 43 endif() 44 45 if(ENABLE_UPX AND SELF_PACKER_FOR_EXECUTABLE) 46 set(MAKENSIS_FLAGS ${MAKENSIS_FLAGS} -DUPX=${SELF_PACKER_FOR_EXECUTABLE} -DUPX_FLAGS=${SELF_PACKER_FOR_EXECUTABLE_FLAGS}) 47 endif() 48 49 set(MAKENSIS_FLAGS ${MAKENSIS_ADDITIONAL_FLAGS} ${MAKENSIS_FLAGS} -NOCD CACHE STRING "") 50 set(MAKENSIS_SUFFIX ${MAKENSIS_SUFFIX}${CMAKE_EXECUTABLE_SUFFIX} CACHE STRING "") 51 52 mark_as_advanced(MAKENSIS MAKENSIS_FLAGS MAKENSIS_SUFFIX) 53endif() 54