CMakeLists.txt
branchwebgl
changeset 8330 aaefa587e277
parent 8113 0ad9c42dca7c
parent 8317 ec9f94ab2737
child 8334 abb48dd39e26
equal deleted inserted replaced
8116:d24257910f8d 8330:aaefa587e277
     1 project(hedgewars)
     1 project(hedgewars)
     2 
     2 
     3 #initialise cmake environment
     3 #initialise cmake environment
     4 cmake_minimum_required(VERSION 2.6.0 FATAL_ERROR)
     4 cmake_minimum_required(VERSION 2.6.0)
     5 cmake_policy(VERSION 2.6)
     5 foreach(hwpolicy CMP0003 CMP0012 CMP0017)
     6 FOREACH(hwpolicy CMP0003 CMP0012 CMP0017)
     6     if(POLICY ${hwpolicy})
     7     IF(POLICY ${hwpolicy})
     7         cmake_policy(SET ${hwpolicy} NEW)
     8         CMAKE_POLICY(SET ${hwpolicy} NEW)
     8     endif()
     9     ENDIF()
     9 endforeach()
    10 ENDFOREACH()
       
    11 #use available modules, fallback to ours if not present (CMP0017 helps)
    10 #use available modules, fallback to ours if not present (CMP0017 helps)
    12 set(CMAKE_MODULE_PATH "${CMAKE_ROOT}/Modules" "${CMAKE_CURRENT_SOURCE_DIR}/cmake_modules")
    11 set(CMAKE_MODULE_PATH "${CMAKE_ROOT}/Modules" "${CMAKE_CURRENT_SOURCE_DIR}/cmake_modules")
    13 
    12 
    14 #set some default values
    13 
    15 option(NOREVISION "Build Hedgewars without revision information" OFF)
    14 #usually this is set at release time
    16 
    15 option(NOREVISION "Build Hedgewars without revision information [default: off]" OFF)
       
    16 
       
    17 #set other default values
    17 option(NOSERVER "Disable gameServer build [default: auto]" OFF)
    18 option(NOSERVER "Disable gameServer build [default: auto]" OFF)
    18 option(NOPNG "Disable screenshoot compression [default: auto]" OFF)
    19 option(NOPNG "Disable screenshoot compression [default: auto]" OFF)
    19 option(NOVIDEOREC "Disable video recording [default: auto]" OFF)
    20 option(NOVIDEOREC "Disable video recording [default: auto]" OFF)
    20 
    21 
    21 
    22 
    23 option(NOPASCAL "Compile hwengine as native C [default: off]" ${WEBGL})
    24 option(NOPASCAL "Compile hwengine as native C [default: off]" ${WEBGL})
    24 option(LIBENGINE "Enable hwengine library [default: off]" OFF)
    25 option(LIBENGINE "Enable hwengine library [default: off]" OFF)
    25 
    26 
    26 option(ANDROID "Enable Android build [default: off]" OFF)
    27 option(ANDROID "Enable Android build [default: off]" OFF)
    27 option(NOAUTOUPDATE "Disable OS X Sparkle update checking" OFF)
    28 option(NOAUTOUPDATE "Disable OS X Sparkle update checking" OFF)
    28 option(CROSSAPPLE "Enable OSX when not on OSX [default: off]" OFF)
       
    29 option(MINIMAL_FLAGS "Respect system flags as much as possible [default: off]" OFF)
    29 option(MINIMAL_FLAGS "Respect system flags as much as possible [default: off]" OFF)
       
    30 set(FPFLAGS "" CACHE STRING "Additional Freepascal flags" FORCE)
       
    31 set(GHFLAGS "" CACHE STRING "Additional Haskell flags" FORCE)
    30 
    32 
    31 
    33 
    32 #detect Mercurial revision (if present)
    34 #detect Mercurial revision (if present)
    33 IF(NOT NOREVISION)
    35 if(NOT NOREVISION)
    34     set(default_build_type "DEBUG")
    36     set(default_build_type "DEBUG")
    35     set(version_suffix "-development_version")
    37     set(version_suffix "-development_version")
    36     set(HW_DEV true)
    38     set(HW_DEV true)
    37     FIND_PROGRAM(HGCOMMAND hg)
    39     find_program(HGCOMMAND hg)
    38     IF(HGCOMMAND AND (EXISTS ${CMAKE_SOURCE_DIR}/.hg))
    40     if(HGCOMMAND AND (EXISTS ${CMAKE_SOURCE_DIR}/.hg))
    39         execute_process(COMMAND ${HGCOMMAND} identify -in
    41         execute_process(COMMAND ${HGCOMMAND} identify -in
    40                         WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
    42                         WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
    41                         OUTPUT_VARIABLE internal_version
    43                         OUTPUT_VARIABLE internal_version
    42                         ERROR_QUIET
    44                         ERROR_QUIET
    43                     )
    45                     )
    44         #check local repo status
    46         #check local repo status
    45         STRING(REGEX REPLACE "[^+]" "" HGCHANGED ${internal_version})
    47         string(REGEX REPLACE "[^+]" "" HGCHANGED ${internal_version})
    46 
    48 
    47         STRING(REGEX REPLACE "[0-9a-zA-Z]+(.*) ([0-9]+)(.*)" "\\2" revision_number ${internal_version})
    49         string(REGEX REPLACE "[0-9a-zA-Z]+(.*) ([0-9]+)(.*)" "\\2" revision_number ${internal_version})
    48         STRING(REGEX REPLACE "([0-9a-zA-Z]+)(.*) [0-9]+(.*)" "\\1" revision_hash ${internal_version})
    50         string(REGEX REPLACE "([0-9a-zA-Z]+)(.*) [0-9]+(.*)" "\\1" revision_hash ${internal_version})
    49 
    51 
    50         MESSAGE(STATUS "Building revision ${revision_number} from hash ${revision_hash} ${HGCHANGED}")
    52         message(STATUS "Building revision ${revision_number} from hash ${revision_hash} ${HGCHANGED}")
    51         IF(HGCHANGED)
    53         if(HGCHANGED)
    52             MESSAGE(WARNING "Notice: you have uncommitted changes in your repository")
    54             MESSAGE(WARNING "Notice: you have uncommitted changes in your repository")
    53         ENDIF()
    55         endif()
    54         set(version_suffix "-${revision_number}${HGCHANGED}")
    56         set(version_suffix "-${revision_number}${HGCHANGED}")
    55     ENDIF()
    57     endif()
    56 ELSE(NOT NOREVISION)
    58 else(NOT NOREVISION)
    57     set(default_build_type "RELEASE")
    59     set(default_build_type "RELEASE")
    58     set(HWDEV false)
    60     set(HWDEV false)
    59     MESSAGE(STATUS "Building distributable version")
    61     message(STATUS "Building distributable version")
    60 ENDIF(NOT NOREVISION)
    62 endif(NOT NOREVISION)
    61 
    63 
    62 
    64 
    63 #versioning
    65 #versioning
    64 set(CPACK_PACKAGE_VERSION_MAJOR 0)
    66 set(CPACK_PACKAGE_VERSION_MAJOR 0)
    65 set(CPACK_PACKAGE_VERSION_MINOR 9)
    67 set(CPACK_PACKAGE_VERSION_MINOR 9)
    77 else()
    79 else()
    78     message(STATUS "Found CLANG: ${CLANG_EXECUTABLE} (version ${CLANG_VERSION})")
    80     message(STATUS "Found CLANG: ${CLANG_EXECUTABLE} (version ${CLANG_VERSION})")
    79 endif()
    81 endif()
    80 
    82 
    81 
    83 
    82 #bundle .app setup
    84 set(EXECUTABLE_OUTPUT_PATH ${PROJECT_BINARY_DIR}/bin)
    83 if(APPLE OR CROSSAPPLE)
    85 set(LIBRARY_OUTPUT_PATH ${PROJECT_BINARY_DIR}/bin)
    84     #paths for creating the bundle
    86 
    85     set(bundle_name Hedgewars.app)
    87 if(UNIX AND NOT APPLE)
    86     set(frameworks_dir ${bundle_name}/Contents/Frameworks/)
    88     set(target_binary_install_dir "bin")
    87     set(CMAKE_INSTALL_PREFIX ${bundle_name}/Contents/MacOS/)
    89     set(target_library_install_dir "lib")
    88     set(DATA_INSTALL_DIR "../Resources/")
    90     if(DEFINED DATA_INSTALL_DIR)
    89     set(target_dir ".")
    91         set(SHAREPATH "${DATA_INSTALL_DIR}")
    90     set(minimum_macosx_version "10.6")
    92     else()
    91 else()
    93         set(SHAREPATH "share/hedgewars/")
    92     set(target_dir "bin")
    94     endif()
    93 endif()
    95 else()
       
    96     set(target_binary_install_dir "./")
       
    97 
       
    98     if(APPLE)
       
    99         set(CMAKE_INSTALL_PREFIX "Hedgewars.app/Contents/MacOS/")
       
   100         set(SHAREPATH "../Resources/")
       
   101         set(target_library_install_dir "../Frameworks/")
       
   102     else()
       
   103         if(WIN32)
       
   104             set(target_library_install_dir "./")
       
   105             set(SHAREPATH "./")
       
   106             set(CMAKE_PREFIX_PATH "${CMAKE_SOURCE_DIR}/misc/winutils/")
       
   107             link_directories("${EXECUTABLE_OUTPUT_PATH}" "${CMAKE_SOURCE_DIR}/misc/winutils/bin")
       
   108         endif(WIN32)
       
   109     endif()
       
   110 endif()
       
   111 
    94 
   112 
    95 if(APPLE)
   113 if(APPLE)
    96     set(CMAKE_FIND_FRAMEWORK "FIRST")
   114     set(CMAKE_FIND_FRAMEWORK "FIRST")
    97 
   115 
    98     #what system are we building for
   116     #what system are we building for
   118     if(NOT minimum_macosx_version)
   136     if(NOT minimum_macosx_version)
   119         set(minimum_macosx_version ${current_macosx_version})
   137         set(minimum_macosx_version ${current_macosx_version})
   120     endif()
   138     endif()
   121 
   139 
   122     #lower systems don't have enough processing power anyway
   140     #lower systems don't have enough processing power anyway
   123     if (minimum_macosx_version LESS "10.4")
   141     if (minimum_macosx_version VERSION_LESS "10.4")
   124         message(FATAL_ERROR "Hedgewars is not supported on Mac OS X pre-10.4")
   142         message(FATAL_ERROR "Hedgewars is not supported on Mac OS X pre-10.4")
   125     endif()
   143     endif()
   126 
   144 
   127     #workaround for http://playcontrol.net/ewing/jibberjabber/big_behind-the-scenes_chang.html#SDL_mixer (Update 2)
   145     #workaround for http://playcontrol.net/ewing/jibberjabber/big_behind-the-scenes_chang.html#SDL_mixer (Update 2)
   128     if(current_macosx_version MATCHES "10.4")
   146     if(current_macosx_version VERSION_EQUAL "10.4")
   129         find_package(SDL_mixer REQUIRED)
   147         find_package(SDL_mixer REQUIRED)
   130         set(DYLIB_SMPEG "-dylib_file @loader_path/Frameworks/smpeg.framework/Versions/A/smpeg:${SDLMIXER_LIBRARY}/Versions/A/Frameworks/smpeg.framework/Versions/A/smpeg")
   148         set(DYLIB_SMPEG "-dylib_file @loader_path/Frameworks/smpeg.framework/Versions/A/smpeg:${SDLMIXER_LIBRARY}/Versions/A/Frameworks/smpeg.framework/Versions/A/smpeg")
   131         set(DYLIB_MIKMOD "-dylib_file @loader_path/Frameworks/mikmod.framework/Versions/A/mikmod:${SDLMIXER_LIBRARY}/Versions/A/Frameworks/mikmod.framework/Versions/A/mikmod")
   149         set(DYLIB_MIKMOD "-dylib_file @loader_path/Frameworks/mikmod.framework/Versions/A/mikmod:${SDLMIXER_LIBRARY}/Versions/A/Frameworks/mikmod.framework/Versions/A/mikmod")
   132         set(pascal_flags "-k${DYLIB_SMPEG}" "-k${DYLIB_MIKMOD}" ${pascal_flags})
   150         set(pascal_flags "-k${DYLIB_SMPEG}" "-k${DYLIB_MIKMOD}" ${pascal_flags})
   133         set(CMAKE_C_FLAGS "${DYLIB_SMPEG}" "${DYLIB_MIKMOD}" ${CMAKE_C_FLAGS})
   151         set(CMAKE_C_FLAGS "${DYLIB_SMPEG}" "${DYLIB_MIKMOD}" ${CMAKE_C_FLAGS})
   134     endif()
   152     endif()
   135 
   153 
   136     #CMAKE_OSX_ARCHITECTURES and CMAKE_OSX_SYSROOT need to be set for universal binary and correct linking
   154     #CMAKE_OSX_ARCHITECTURES and CMAKE_OSX_SYSROOT need to be set for universal binary and correct linking
   137     if(NOT CMAKE_OSX_ARCHITECTURES)
   155     if(NOT CMAKE_OSX_ARCHITECTURES)
   138         if(current_macosx_version LESS "10.6")
   156         if(current_macosx_version VERSION_LESS "10.6")
   139             if(${CMAKE_SYSTEM_PROCESSOR} MATCHES "powerpc*")
   157             if(${CMAKE_SYSTEM_PROCESSOR} MATCHES "powerpc*")
   140                 set(CMAKE_OSX_ARCHITECTURES "ppc7400")
   158                 set(CMAKE_OSX_ARCHITECTURES "ppc7400")
   141             else()
   159             else()
   142                 set(CMAKE_OSX_ARCHITECTURES "i386")
   160                 set(CMAKE_OSX_ARCHITECTURES "i386")
   143             endif()
   161             endif()
   146         endif()
   164         endif()
   147     endif()
   165     endif()
   148 
   166 
   149     #CMAKE_OSX_SYSROOT is set at the system version we are supposed to build on
   167     #CMAKE_OSX_SYSROOT is set at the system version we are supposed to build on
   150     #we need to provide the correct one when host and target differ
   168     #we need to provide the correct one when host and target differ
   151     if(NOT ${minimum_macosx_version} MATCHES ${current_macosx_version})
   169     if(NOT ${minimum_macosx_version} VERSION_EQUAL ${current_macosx_version})
   152         if(minimum_macosx_version MATCHES "10.4")
   170         if(minimum_macosx_version VERSION_EQUAL "10.4")
   153             set(CMAKE_OSX_SYSROOT "/Developer/SDKs/MacOSX10.4u.sdk/")
   171             set(CMAKE_OSX_SYSROOT "/Developer/SDKs/MacOSX10.4u.sdk/")
   154             set(CMAKE_C_COMPILER "gcc-4.0")
   172             set(CMAKE_C_COMPILER "gcc-4.0")
   155             set(CMAKE_CXX_COMPILER "g++-4.0")
   173             set(CMAKE_CXX_COMPILER "g++-4.0")
   156         else()
   174         else()
   157             string(REGEX REPLACE "([0-9]+.[0-9]+).[0-9]+" "\\1" sdk_version ${minimum_macosx_version})
   175             string(REGEX REPLACE "([0-9]+.[0-9]+).[0-9]+" "\\1" sdk_version ${minimum_macosx_version})
   162     #add user framework directory, other paths can be passed via FPFLAGS
   180     #add user framework directory, other paths can be passed via FPFLAGS
   163     set(pascal_flags "-Ff~/Library/Frameworks" ${pascal_flags})
   181     set(pascal_flags "-Ff~/Library/Frameworks" ${pascal_flags})
   164     #set deployment target
   182     #set deployment target
   165     set(pascal_flags "-k-macosx_version_min" "-k${minimum_macosx_version}" "-XR${CMAKE_OSX_SYSROOT}" ${pascal_flags})
   183     set(pascal_flags "-k-macosx_version_min" "-k${minimum_macosx_version}" "-XR${CMAKE_OSX_SYSROOT}" ${pascal_flags})
   166 
   184 
   167     message(STATUS "Build system: Mac OS X ${current_macosx_version} with C compiler: ${CMAKE_C_COMPILER}")
   185     #silly libav that always brings in VideoDecoderAcceleration, avaible only from 10.6.3
   168     message(STATUS "Target system: Mac OS X ${minimum_macosx_version} for architecture(s): ${CMAKE_OSX_ARCHITECTURES}")
   186     if(NOT NOVIDEOREC AND ${minimum_macosx_version} VERSION_LESS "10.6")
       
   187         set(WARNING "Video recording support before OS X 10.6 is experimental")
       
   188     endif()
   169 endif(APPLE)
   189 endif(APPLE)
   170 
   190 
   171 
   191 
   172 #when build type is not specified, assume Debug/Release according to build version information
   192 #when build type is not specified, assume Debug/Release according to build version information
   173 if (CMAKE_BUILD_TYPE)
   193 if (CMAKE_BUILD_TYPE)
   174     string (TOUPPER ${CMAKE_BUILD_TYPE} CMAKE_BUILD_TYPE)
   194     string (TOUPPER ${CMAKE_BUILD_TYPE} CMAKE_BUILD_TYPE)
   175     if ( NOT( (CMAKE_BUILD_TYPE MATCHES "RELEASE") OR (CMAKE_BUILD_TYPE MATCHES "DEBUG") ) )
   195     if ( NOT( (CMAKE_BUILD_TYPE MATCHES "RELEASE") OR (CMAKE_BUILD_TYPE MATCHES "DEBUG") ) )
   176         set (CMAKE_BUILD_TYPE ${default_build_type} CACHE STRING "Only 'Debug' or 'Release' options are allowed." FORCE)
   196         set (CMAKE_BUILD_TYPE ${default_build_type} CACHE STRING "Choose the build type, options are: Debug Release." FORCE)
   177         message (STATUS "Unknown build type, using default (${default_build_type})")
   197         message (STATUS "Unknown build type, using default (${default_build_type})")
   178     endif ()
   198     endif ()
   179 else (CMAKE_BUILD_TYPE)
   199 else (CMAKE_BUILD_TYPE)
   180     set (CMAKE_BUILD_TYPE ${default_build_type} CACHE STRING "Choose the build type, options are: Debug Release." FORCE)
   200     set (CMAKE_BUILD_TYPE ${default_build_type} CACHE STRING "Choose the build type, options are: Debug Release." FORCE)
   181 endif (CMAKE_BUILD_TYPE)
   201 endif (CMAKE_BUILD_TYPE)
   196     set(CMAKE_CXX_FLAGS_DEBUG "-Wall -DDEBUG")
   216     set(CMAKE_CXX_FLAGS_DEBUG "-Wall -DDEBUG")
   197 endif()
   217 endif()
   198 
   218 
   199 #parse additional parameters
   219 #parse additional parameters
   200 if(FPFLAGS OR GHFLAGS)
   220 if(FPFLAGS OR GHFLAGS)
   201     math(EXPR cmake_version "${CMAKE_MAJOR_VERSION}*10000 + ${CMAKE_MINOR_VERSION}*100 + ${CMAKE_PATCH_VERSION}")
   221     set(cmake_version "${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION}.${CMAKE_PATCH_VERSION}")
   202     if(cmake_version LESS "020800")
   222     if(cmake_version VERSION_LESS "2.8")
   203         message(STATUS "FPFLAGS and GHFLAGS are available only when using CMake >= 2.8")
   223         message(WARNING "FPFLAGS and GHFLAGS are available only when using CMake >= 2.8")
   204     else()
   224     else()
   205         separate_arguments(fpflags_parsed UNIX_COMMAND ${FPFLAGS})
   225         separate_arguments(fpflags_parsed UNIX_COMMAND ${FPFLAGS})
   206         separate_arguments(ghflags_parsed UNIX_COMMAND ${GHFLAGS})
   226         separate_arguments(ghflags_parsed UNIX_COMMAND ${GHFLAGS})
   207     endif()
   227     endif()
   208 endif()
   228 endif()
   209 
   229 
   210 set(pascal_flags ${fpflags_parsed} "-vm4079,4080,4081" "-B" "-FE../bin" "-Cs2000000" "-vewnq" "-dDEBUGFILE" ${pascal_flags})
   230 set(pascal_flags ${fpflags_parsed}              # user flags
       
   231                  "-vm4079,4080,4081"            # fpc output format
       
   232                  "-B"                           # compile all units
       
   233                  "-FE${PROJECT_BINARY_DIR}/bin" # fpc output directory
       
   234                  "-Fl${PROJECT_BINARY_DIR}/bin" # fpc linking directory
       
   235                  "-Cs2000000"                   # stack size
       
   236                  "-vewnq"                       # fpc output verbosity
       
   237                  "-dDEBUGFILE"                  # macro for engine output
       
   238                  ${pascal_flags}                # adding to list
       
   239                  )
   211 set(haskell_flags "-O2" ${ghflags_parsed} ${haskell_flags})
   240 set(haskell_flags "-O2" ${ghflags_parsed} ${haskell_flags})
   212 
   241 
   213 #get BUILD_TYPE and enable/disable optimisation
   242 #get BUILD_TYPE and enable/disable optimisation
       
   243 message(STATUS "Using ${CMAKE_BUILD_TYPE} configuration")
   214 if(CMAKE_BUILD_TYPE MATCHES "DEBUG")
   244 if(CMAKE_BUILD_TYPE MATCHES "DEBUG")
   215     message(STATUS "Building Debug flavour")
       
   216     set(pascal_flags "-O-" "-g" "-gl" "-gv" ${pascal_flags})
   245     set(pascal_flags "-O-" "-g" "-gl" "-gv" ${pascal_flags})
   217     set(haskell_flags "-Wall" "-debug" "-dcore-lint" "-fno-warn-unused-do-bind" ${haskell_flags})
   246     set(haskell_flags "-Wall" "-debug" "-dcore-lint" "-fno-warn-unused-do-bind" ${haskell_flags})
   218 else()
   247 else()
   219     message(STATUS "Building Release flavour")
       
   220 #    set(pascal_flags "-O3" "-OpPENTIUM4" "-CfSSE3" "-Xs" "-Si" ${pascal_flags})
   248 #    set(pascal_flags "-O3" "-OpPENTIUM4" "-CfSSE3" "-Xs" "-Si" ${pascal_flags})
   221     set(pascal_flags "-Os" "-Ooregvar" "-Xs" "-Si" ${pascal_flags})
   249     set(pascal_flags "-Os" "-Xs" "-Si" ${pascal_flags})
   222     set(haskell_flags "-w" "-fno-warn-unused-do-bind" ${haskell_flags})
   250     set(haskell_flags "-w" "-fno-warn-unused-do-bind" ${haskell_flags})
   223 endif()
   251 endif()
   224 
       
   225 
       
   226 #finish setting paths
       
   227 if(DEFINED DATA_INSTALL_DIR)
       
   228     set(SHAREPATH ${DATA_INSTALL_DIR}/hedgewars/)
       
   229 else()
       
   230     set(SHAREPATH share/hedgewars/)
       
   231 endif()
       
   232 set(EXECUTABLE_OUTPUT_PATH ${PROJECT_BINARY_DIR}/bin)
       
   233 set(LIBRARY_OUTPUT_PATH ${EXECUTABLE_OUTPUT_PATH})
       
   234 if(WIN32)
       
   235     set(CMAKE_PREFIX_PATH "${CMAKE_SOURCE_DIR}/misc/winutils/")
       
   236     link_directories("${EXECUTABLE_OUTPUT_PATH}" "${CMAKE_SOURCE_DIR}/misc/winutils/bin")
       
   237 endif(WIN32)
       
   238 
   252 
   239 
   253 
   240 #Haskell compiler discovery (for server and engine in c)
   254 #Haskell compiler discovery (for server and engine in c)
   241 if((NOT NOSERVER) OR NOPASCAL)
   255 if((NOT NOSERVER) OR NOPASCAL)
   242     if(GHC)
   256     if(GHC)
   275     #linking with liblua.a requires system readline
   289     #linking with liblua.a requires system readline
   276     set(pascal_flags "-k${EXECUTABLE_OUTPUT_PATH}/lib${LUA_LIBRARY}.a" "-k-lreadline" ${pascal_flags})
   290     set(pascal_flags "-k${EXECUTABLE_OUTPUT_PATH}/lib${LUA_LIBRARY}.a" "-k-lreadline" ${pascal_flags})
   277 endif()
   291 endif()
   278 
   292 
   279 
   293 
   280 #physfs library
   294 #physfs library (static on unix, dll on win32)
   281 add_subdirectory(misc/physfs)
   295 add_subdirectory(misc/physfs)
       
   296 if(NOT WIN32)
       
   297     set(pascal_flags "-k${LIBRARY_OUTPUT_PATH}/libphysfs.a" ${pascal_flags})
       
   298 endif()
       
   299 
   282 
   300 
   283 #frontend library
   301 #frontend library
   284 add_subdirectory(project_files/frontlib)
   302 add_subdirectory(project_files/frontlib)
   285 
   303 
   286 
   304 
   329     set(CPACK_NSIS_DISPLAY_NAME "Hedgewars")
   347     set(CPACK_NSIS_DISPLAY_NAME "Hedgewars")
   330     set(CPACK_NSIS_HELP_LINK "http://www.hedgewars.org/")
   348     set(CPACK_NSIS_HELP_LINK "http://www.hedgewars.org/")
   331     set(CPACK_NSIS_URL_INFO_ABOUT "http://www.hedgewars.org/")
   349     set(CPACK_NSIS_URL_INFO_ABOUT "http://www.hedgewars.org/")
   332     set(CPACK_NSIS_CONTACT "unC0Rr@gmail.com")
   350     set(CPACK_NSIS_CONTACT "unC0Rr@gmail.com")
   333     set(CPACK_NSIS_MODIFY_PATH OFF)
   351     set(CPACK_NSIS_MODIFY_PATH OFF)
       
   352     set(CPACK_NSIS_EXECUTABLES_DIRECTORY "${target_binary_install_dir}")
   334     set(CPACK_GENERATOR "ZIP;NSIS")
   353     set(CPACK_GENERATOR "ZIP;NSIS")
   335     set(CPACK_PACKAGE_INSTALL_REGISTRY_KEY "hedgewars")
   354     set(CPACK_PACKAGE_INSTALL_REGISTRY_KEY "hedgewars")
   336 else(WIN32 AND NOT UNIX)
   355 else(WIN32 AND NOT UNIX)
   337     set(CPACK_STRIP_FILES "bin/hedgewars;bin/hwengine")
   356     set(CPACK_STRIP_FILES "bin/hedgewars;bin/hwengine")
   338 endif(WIN32 AND NOT UNIX)
   357 endif(WIN32 AND NOT UNIX)