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