diff -r 9ecd5bc9810b -r dfe678f129e4 CMakeLists.txt --- a/CMakeLists.txt Sun Jun 10 14:36:40 2012 -0400 +++ b/CMakeLists.txt Mon Jun 11 00:03:04 2012 +0200 @@ -4,9 +4,9 @@ #initialise cmake environment cmake_minimum_required(VERSION 2.6.0 FATAL_ERROR) FOREACH(policy CMP0003 CMP0012) - IF(POLICY ${policy}) - CMAKE_POLICY(SET ${policy} NEW) - ENDIF() + IF(POLICY ${policy}) + CMAKE_POLICY(SET ${policy} NEW) + ENDIF() ENDFOREACH() set(CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/cmake_modules) @@ -15,26 +15,26 @@ set(version_suffix "-dev") #UNSET THIS VARIABLE AT RELEASE TIME set(HGCHANGED "") IF(version_suffix MATCHES "-dev") - set(HW_DEV true) - IF (EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/.hg) - FIND_PROGRAM(HGCOMMAND hg) - IF(HGCOMMAND) - exec_program(${HGCOMMAND} - ARGS identify -in ${CMAKE_CURRENT_SOURCE_DIR} - OUTPUT_VARIABLE version_suffix - ) - STRING(REGEX REPLACE "[^+]" "" HGCHANGED ${version_suffix}) - STRING(REGEX REPLACE "([0-9a-zA-Z]+)(.*) ([0-9]+)(.*)" "\\3-\\1" version_suffix ${version_suffix}) - IF (HGCHANGED) - MESSAGE(STATUS "Building revision ${version_suffix} (SOURCE CODE MODIFIED)") - ELSE() - MESSAGE(STATUS "Building revision ${version_suffix}") - ENDIF() - set(version_suffix "-${version_suffix}") - ENDIF() - ENDIF() + set(HW_DEV true) + IF (EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/.hg) + FIND_PROGRAM(HGCOMMAND hg) + IF(HGCOMMAND) + exec_program(${HGCOMMAND} + ARGS identify -in ${CMAKE_CURRENT_SOURCE_DIR} + OUTPUT_VARIABLE version_suffix + ) + STRING(REGEX REPLACE "[^+]" "" HGCHANGED ${version_suffix}) + STRING(REGEX REPLACE "([0-9a-zA-Z]+)(.*) ([0-9]+)(.*)" "\\3-\\1" version_suffix ${version_suffix}) + IF (HGCHANGED) + MESSAGE(STATUS "Building revision ${version_suffix} (SOURCE CODE MODIFIED)") + ELSE() + MESSAGE(STATUS "Building revision ${version_suffix}") + ENDIF() + set(version_suffix "-${version_suffix}") + ENDIF() + ENDIF() ELSE() - set(HW_DEV false) + set(HW_DEV false) ENDIF() @@ -48,107 +48,107 @@ #set some safe values IF(NOT WITH_SERVER) - SET(WITH_SERVER 0) + SET(WITH_SERVER 0) ENDIF(NOT WITH_SERVER) IF(NOT BUILD_ENGINE_LIBRARY) - SET(BUILD_ENGINE_LIBRARY 0) + SET(BUILD_ENGINE_LIBRARY 0) ENDIF(NOT BUILD_ENGINE_LIBRARY) set(target_dir "bin") #bundle .app setup if(APPLE) - set(CMAKE_FIND_FRAMEWORK "FIRST") + set(CMAKE_FIND_FRAMEWORK "FIRST") - #paths for creating the bundle - set(bundle_name Hedgewars.app) - set(frameworks_dir ${bundle_name}/Contents/Frameworks/) - set(CMAKE_INSTALL_PREFIX ${bundle_name}/Contents/MacOS/) - set(DATA_INSTALL_DIR "../Resources/") - set(target_dir ".") + #paths for creating the bundle + set(bundle_name Hedgewars.app) + set(frameworks_dir ${bundle_name}/Contents/Frameworks/) + set(CMAKE_INSTALL_PREFIX ${bundle_name}/Contents/MacOS/) + set(DATA_INSTALL_DIR "../Resources/") + set(target_dir ".") - #what system are we building for - set(minimum_macosx_version $ENV{MACOSX_DEPLOYMENT_TARGET}) + #what system are we building for + set(minimum_macosx_version $ENV{MACOSX_DEPLOYMENT_TARGET}) - #detect on which system we are: if sw_vers cannot be found for any reason (re)use minimum_macosx_version - find_program(sw_vers sw_vers) - if(sw_vers) - exec_program(${sw_vers} ARGS "-productVersion" OUTPUT_VARIABLE current_macosx_version) - string(REGEX REPLACE "([0-9]+.[0-9]+).[0-9]+" "\\1" current_macosx_version ${current_macosx_version}) + #detect on which system we are: if sw_vers cannot be found for any reason (re)use minimum_macosx_version + find_program(sw_vers sw_vers) + if(sw_vers) + exec_program(${sw_vers} ARGS "-productVersion" OUTPUT_VARIABLE current_macosx_version) + string(REGEX REPLACE "([0-9]+.[0-9]+).[0-9]+" "\\1" current_macosx_version ${current_macosx_version}) + else() + if(NOT minimum_macosx_version) + message(FATAL_ERROR "sw_vers not found! Need explicit MACOSX_DEPLOYMENT_TARGET variable set") else() - if(NOT minimum_macosx_version) - message(FATAL_ERROR "sw_vers not found! Need explicit MACOSX_DEPLOYMENT_TARGET variable set") - else() - set(current_macosx_version ${minimum_macosx_version}) - endif() - endif() + set(current_macosx_version ${minimum_macosx_version}) + endif() + endif() - #if nothing is set, we deploy only for the current system - if(NOT minimum_macosx_version) - set(minimum_macosx_version ${current_macosx_version}) - endif() + #if nothing is set, we deploy only for the current system + if(NOT minimum_macosx_version) + set(minimum_macosx_version ${current_macosx_version}) + endif() - #lower systems don't have enough processing power anyways - if (minimum_macosx_version LESS "10.4") - message(FATAL_ERROR "Hedgewars is not supported on Mac OS X pre-10.4") - endif() + #lower systems don't have enough processing power anyways + if (minimum_macosx_version LESS "10.4") + message(FATAL_ERROR "Hedgewars is not supported on Mac OS X pre-10.4") + endif() - #workaround for http://playcontrol.net/ewing/jibberjabber/big_behind-the-scenes_chang.html#SDL_mixer (Update 2) - if(current_macosx_version MATCHES "10.4") - find_package(SDL_mixer REQUIRED) - set(DYLIB_SMPEG "-dylib_file @loader_path/Frameworks/smpeg.framework/Versions/A/smpeg:${SDLMIXER_LIBRARY}/Versions/A/Frameworks/smpeg.framework/Versions/A/smpeg") - set(DYLIB_MIKMOD "-dylib_file @loader_path/Frameworks/mikmod.framework/Versions/A/mikmod:${SDLMIXER_LIBRARY}/Versions/A/Frameworks/mikmod.framework/Versions/A/mikmod") - set(pascal_flags "-k${DYLIB_SMPEG}" "-k${DYLIB_MIKMOD}" ${pascal_flags}) - set(CMAKE_C_FLAGS "${DYLIB_SMPEG}" "${DYLIB_MIKMOD}" ${CMAKE_C_FLAGS}) - endif() + #workaround for http://playcontrol.net/ewing/jibberjabber/big_behind-the-scenes_chang.html#SDL_mixer (Update 2) + if(current_macosx_version MATCHES "10.4") + find_package(SDL_mixer REQUIRED) + set(DYLIB_SMPEG "-dylib_file @loader_path/Frameworks/smpeg.framework/Versions/A/smpeg:${SDLMIXER_LIBRARY}/Versions/A/Frameworks/smpeg.framework/Versions/A/smpeg") + set(DYLIB_MIKMOD "-dylib_file @loader_path/Frameworks/mikmod.framework/Versions/A/mikmod:${SDLMIXER_LIBRARY}/Versions/A/Frameworks/mikmod.framework/Versions/A/mikmod") + set(pascal_flags "-k${DYLIB_SMPEG}" "-k${DYLIB_MIKMOD}" ${pascal_flags}) + set(CMAKE_C_FLAGS "${DYLIB_SMPEG}" "${DYLIB_MIKMOD}" ${CMAKE_C_FLAGS}) + endif() - #CMAKE_OSX_ARCHITECTURES and CMAKE_OSX_SYSROOT need to be set for universal binary and correct linking - if(NOT CMAKE_OSX_ARCHITECTURES) - if(current_macosx_version LESS "10.6") - if(${CMAKE_SYSTEM_PROCESSOR} MATCHES "powerpc*") - set(CMAKE_OSX_ARCHITECTURES "ppc7400") - else() - set(CMAKE_OSX_ARCHITECTURES "i386") - endif() - else() - set(CMAKE_OSX_ARCHITECTURES "x86_64") - endif() - endif() + #CMAKE_OSX_ARCHITECTURES and CMAKE_OSX_SYSROOT need to be set for universal binary and correct linking + if(NOT CMAKE_OSX_ARCHITECTURES) + if(current_macosx_version LESS "10.6") + if(${CMAKE_SYSTEM_PROCESSOR} MATCHES "powerpc*") + set(CMAKE_OSX_ARCHITECTURES "ppc7400") + else() + set(CMAKE_OSX_ARCHITECTURES "i386") + endif() + else() + set(CMAKE_OSX_ARCHITECTURES "x86_64") + endif() + endif() - #CMAKE_OSX_SYSROOT is set at the system version we are supposed to build on - #we need to provide the correct one when host and target differ - if(NOT ${minimum_macosx_version} MATCHES ${current_macosx_version}) - if(minimum_macosx_version MATCHES "10.4") - set(CMAKE_OSX_SYSROOT "/Developer/SDKs/MacOSX10.4u.sdk/") - set(CMAKE_C_COMPILER "gcc-4.0") - set(CMAKE_CXX_COMPILER "g++-4.0") - else() - string(REGEX REPLACE "([0-9]+.[0-9]+).[0-9]+" "\\1" sdk_version ${minimum_macosx_version}) - set(CMAKE_OSX_SYSROOT "/Developer/SDKs/MacOSX${sdk_version}.sdk/") - endif() - endif() + #CMAKE_OSX_SYSROOT is set at the system version we are supposed to build on + #we need to provide the correct one when host and target differ + if(NOT ${minimum_macosx_version} MATCHES ${current_macosx_version}) + if(minimum_macosx_version MATCHES "10.4") + set(CMAKE_OSX_SYSROOT "/Developer/SDKs/MacOSX10.4u.sdk/") + set(CMAKE_C_COMPILER "gcc-4.0") + set(CMAKE_CXX_COMPILER "g++-4.0") + else() + string(REGEX REPLACE "([0-9]+.[0-9]+).[0-9]+" "\\1" sdk_version ${minimum_macosx_version}) + set(CMAKE_OSX_SYSROOT "/Developer/SDKs/MacOSX${sdk_version}.sdk/") + endif() + endif() - #add user framework directory, other paths can be passed via FPFLAGS - set(pascal_flags "-Ff~/Library/Frameworks" ${pascal_flags}) - #set deployment target - set(pascal_flags "-k-macosx_version_min" "-k${minimum_macosx_version}" "-XR${CMAKE_OSX_SYSROOT}" ${pascal_flags}) + #add user framework directory, other paths can be passed via FPFLAGS + set(pascal_flags "-Ff~/Library/Frameworks" ${pascal_flags}) + #set deployment target + set(pascal_flags "-k-macosx_version_min" "-k${minimum_macosx_version}" "-XR${CMAKE_OSX_SYSROOT}" ${pascal_flags}) - message(STATUS "Build system: Mac OS X ${current_macosx_version} with GCC:${CMAKE_C_COMPILER}") - message(STATUS "Target system: Mac OS X ${minimum_macosx_version} for architecture(s):${CMAKE_OSX_ARCHITECTURES}") + message(STATUS "Build system: Mac OS X ${current_macosx_version} with GCC:${CMAKE_C_COMPILER}") + message(STATUS "Target system: Mac OS X ${minimum_macosx_version} for architecture(s):${CMAKE_OSX_ARCHITECTURES}") endif(APPLE) #build Debug only when explicitally set if (NOT CMAKE_BUILD_TYPE) - set (CMAKE_BUILD_TYPE RELEASE CACHE STRING "Choose the type of build, options are: Debug Release." FORCE) + set (CMAKE_BUILD_TYPE RELEASE CACHE STRING "Choose the type of build, options are: Debug Release." FORCE) endif (NOT CMAKE_BUILD_TYPE) if(CMAKE_BUILD_TYPE MATCHES DEBUG OR CMAKE_BUILD_TYPE MATCHES "Debug" OR CMAKE_BUILD_TYPE MATCHES "debug") - message(STATUS "Building Debug") - set(Optz false) + message(STATUS "Building Debug") + set(Optz false) else() - message(STATUS "Building Release") - set(Optz true) + message(STATUS "Building Release") + set(Optz true) endif() @@ -166,61 +166,61 @@ set(haskell_flags "-O2" ${haskell_flags} ${ghflags_full}) if(Optz) -# set(pascal_flags "-O3" "-OpPENTIUM4" "-CfSSE3" "-Xs" "-Si" ${pascal_flags}) - set(pascal_flags "-Os" "-Ooregvar" "-Xs" "-Si" ${pascal_flags}) - set(haskell_flags "-w" "-fno-warn-unused-do-bind" ${haskell_flags}) +# set(pascal_flags "-O3" "-OpPENTIUM4" "-CfSSE3" "-Xs" "-Si" ${pascal_flags}) + set(pascal_flags "-Os" "-Ooregvar" "-Xs" "-Si" ${pascal_flags}) + set(haskell_flags "-w" "-fno-warn-unused-do-bind" ${haskell_flags}) else(Optz) - set(pascal_flags "-O-" "-g" "-gl" "-gv" "-Ct" "-dDEBUGFILE" ${pascal_flags}) - set(haskell_flags "-Wall" "-debug" "-dcore-lint" "-fno-warn-unused-do-bind" ${haskell_flags}) + set(pascal_flags "-O-" "-g" "-gl" "-gv" "-Ct" "-dDEBUGFILE" ${pascal_flags}) + set(haskell_flags "-Wall" "-debug" "-dcore-lint" "-fno-warn-unused-do-bind" ${haskell_flags}) endif(Optz) if(DEFINED DATA_INSTALL_DIR) - set(SHAREPATH ${DATA_INSTALL_DIR}/hedgewars/) + set(SHAREPATH ${DATA_INSTALL_DIR}/hedgewars/) else() - set(SHAREPATH share/hedgewars/) + set(SHAREPATH share/hedgewars/) endif() set(EXECUTABLE_OUTPUT_PATH ${PROJECT_BINARY_DIR}/bin) if(WITH_SERVER) - if(GHC) - set(ghc_executable ${GHC}) - else() - find_program(ghc_executable ghc) - endif() + if(GHC) + set(ghc_executable ${GHC}) + else() + find_program(ghc_executable ghc) + endif() - if(ghc_executable) - set(HAVE_NETSERVER true) - add_subdirectory(gameServer) - else() - message(STATUS "No GHC executable found, server will *not* be built") - set(HAVE_NETSERVER false) - endif() + if(ghc_executable) + set(HAVE_NETSERVER true) + add_subdirectory(gameServer) + else() + message(STATUS "No GHC executable found, server will *not* be built") + set(HAVE_NETSERVER false) + endif() else(WITH_SERVER) - set(HAVE_NETSERVER false) + set(HAVE_NETSERVER false) endif(WITH_SERVER) find_package(Lua) if(NOT ${LUA_FOUND}) message(STATUS "Lua library not found, building bundled dependency") - add_subdirectory(misc/liblua) - #link with liblua.a (which requires system readline) - set(pascal_flags "-k${CMAKE_BINARY_DIR}/bin/liblua.a" "-k-lreadline" ${pascal_flags}) + add_subdirectory(misc/liblua) + #link with liblua.a (which requires system readline) + set(pascal_flags "-k${CMAKE_BINARY_DIR}/bin/liblua.a" "-k-lreadline" ${pascal_flags}) endif() add_subdirectory(hedgewars) #run cmake -DANDROID=1 to enable this if(ANDROID) - add_subdirectory(project_files/Android-build) + add_subdirectory(project_files/Android-build) endif() if(NOT (BUILD_ENGINE_LIBRARY OR ANDROID)) - add_subdirectory(bin) - add_subdirectory(misc/quazip) - add_subdirectory(QTfrontend) - add_subdirectory(share) - add_subdirectory(tools) + add_subdirectory(bin) + add_subdirectory(misc/quazip) + add_subdirectory(QTfrontend) + add_subdirectory(share) + add_subdirectory(tools) endif() @@ -235,74 +235,74 @@ set(CPACK_PACKAGE_INSTALL_DIRECTORY "Hedgewars ${HEDGEWARS_VERSION}") if(WIN32 AND NOT UNIX) - set(CPACK_NSIS_DISPLAY_NAME "Hedgewars") - set(CPACK_NSIS_HELP_LINK "http://www.hedgewars.org/") - set(CPACK_NSIS_URL_INFO_ABOUT "http://www.hedgewars.org/") - set(CPACK_NSIS_CONTACT "unC0Rr@gmail.com") - set(CPACK_NSIS_MODIFY_PATH OFF) - set(CPACK_GENERATOR "ZIP;NSIS") - set(CPACK_PACKAGE_INSTALL_REGISTRY_KEY "hedgewars") + set(CPACK_NSIS_DISPLAY_NAME "Hedgewars") + set(CPACK_NSIS_HELP_LINK "http://www.hedgewars.org/") + set(CPACK_NSIS_URL_INFO_ABOUT "http://www.hedgewars.org/") + set(CPACK_NSIS_CONTACT "unC0Rr@gmail.com") + set(CPACK_NSIS_MODIFY_PATH OFF) + set(CPACK_GENERATOR "ZIP;NSIS") + set(CPACK_PACKAGE_INSTALL_REGISTRY_KEY "hedgewars") else(WIN32 AND NOT UNIX) - set(CPACK_STRIP_FILES "bin/hedgewars;bin/hwengine") + set(CPACK_STRIP_FILES "bin/hedgewars;bin/hwengine") endif(WIN32 AND NOT UNIX) set(CPACK_SOURCE_IGNORE_FILES - "~" - "\\\\.hg" - "\\\\.svn" - "\\\\.exe$" - "\\\\.a$" - "\\\\.dll$" - "\\\\.xcf$" - "\\\\.cxx$" - "\\\\.db$" - "\\\\.dof$" - "\\\\.layout$" - "\\\\.zip$" - "\\\\.gz$" - "\\\\.bz2$" - "\\\\.tmp$" - "\\\\.core$" - "\\\\.sh$" - "\\\\.sifz$" - "\\\\.svg$" - "\\\\.svgz$" - "\\\\.ppu$" - "\\\\.psd$" - "\\\\.o$" - "Makefile" - "Doxyfile" - "CMakeFiles" - "debug" - "release$" - "Debug$" - "Release$" - "proto\\\\.inc$" - "hwconsts\\\\.cpp$" - "playlist\\\\.inc$" - "CPack" - "cmake_install\\\\.cmake$" - "config\\\\.inc$" - "hwengine\\\\.desktop$" - "CMakeCache\\\\.txt$" -# "^${CMAKE_CURRENT_SOURCE_DIR}/misc/libopenalbridge" -# "^${CMAKE_CURRENT_SOURCE_DIR}/misc/libfreetype" - "^${CMAKE_CURRENT_SOURCE_DIR}/misc/liblua" -# "^${CMAKE_CURRENT_SOURCE_DIR}/misc/libtremor" - "^${CMAKE_CURRENT_SOURCE_DIR}/project_files/HedgewarsMobile/" - "^${CMAKE_CURRENT_SOURCE_DIR}/bin/[a-z]" - "^${CMAKE_CURRENT_SOURCE_DIR}/tools/templates" - "^${CMAKE_CURRENT_SOURCE_DIR}/doc" - "^${CMAKE_CURRENT_SOURCE_DIR}/templates" - "^${CMAKE_CURRENT_SOURCE_DIR}/Graphics" - "^${CMAKE_CURRENT_SOURCE_DIR}/realtest" - "^${CMAKE_CURRENT_SOURCE_DIR}/tmp" - "^${CMAKE_CURRENT_SOURCE_DIR}/utils" - "^${CMAKE_CURRENT_SOURCE_DIR}/share/hedgewars/Data/Maps/test" - "^${CMAKE_CURRENT_SOURCE_DIR}/share/hedgewars/Data/Themes/ethereal" - "^${CMAKE_CURRENT_SOURCE_DIR}/install_manifest.txt" - "^${CMAKE_CURRENT_SOURCE_DIR}/CMakeCache.txt" - "^${CMAKE_CURRENT_SOURCE_DIR}/hedgewars\\\\." + "~" + "\\\\.hg" + "\\\\.svn" + "\\\\.exe$" + "\\\\.a$" + "\\\\.dll$" + "\\\\.xcf$" + "\\\\.cxx$" + "\\\\.db$" + "\\\\.dof$" + "\\\\.layout$" + "\\\\.zip$" + "\\\\.gz$" + "\\\\.bz2$" + "\\\\.tmp$" + "\\\\.core$" + "\\\\.sh$" + "\\\\.sifz$" + "\\\\.svg$" + "\\\\.svgz$" + "\\\\.ppu$" + "\\\\.psd$" + "\\\\.o$" + "Makefile" + "Doxyfile" + "CMakeFiles" + "debug" + "release$" + "Debug$" + "Release$" + "proto\\\\.inc$" + "hwconsts\\\\.cpp$" + "playlist\\\\.inc$" + "CPack" + "cmake_install\\\\.cmake$" + "config\\\\.inc$" + "hwengine\\\\.desktop$" + "CMakeCache\\\\.txt$" +# "^${CMAKE_CURRENT_SOURCE_DIR}/misc/libopenalbridge" +# "^${CMAKE_CURRENT_SOURCE_DIR}/misc/libfreetype" + "^${CMAKE_CURRENT_SOURCE_DIR}/misc/liblua" +# "^${CMAKE_CURRENT_SOURCE_DIR}/misc/libtremor" + "^${CMAKE_CURRENT_SOURCE_DIR}/project_files/HedgewarsMobile/" + "^${CMAKE_CURRENT_SOURCE_DIR}/bin/[a-z]" + "^${CMAKE_CURRENT_SOURCE_DIR}/tools/templates" + "^${CMAKE_CURRENT_SOURCE_DIR}/doc" + "^${CMAKE_CURRENT_SOURCE_DIR}/templates" + "^${CMAKE_CURRENT_SOURCE_DIR}/Graphics" + "^${CMAKE_CURRENT_SOURCE_DIR}/realtest" + "^${CMAKE_CURRENT_SOURCE_DIR}/tmp" + "^${CMAKE_CURRENT_SOURCE_DIR}/utils" + "^${CMAKE_CURRENT_SOURCE_DIR}/share/hedgewars/Data/Maps/test" + "^${CMAKE_CURRENT_SOURCE_DIR}/share/hedgewars/Data/Themes/ethereal" + "^${CMAKE_CURRENT_SOURCE_DIR}/install_manifest.txt" + "^${CMAKE_CURRENT_SOURCE_DIR}/CMakeCache.txt" + "^${CMAKE_CURRENT_SOURCE_DIR}/hedgewars\\\\." ) include(CPack)