# HG changeset patch # User koda # Date 1301187239 -3600 # Node ID a767954cfa03b2b2a8e906c619ec2f651f5b7840 # Parent 74a81c276d674d4ed3b0ad5926ef2317667f1bcf this should help people hacking the cmake files (removes old comments, BUNDLE and other macros, updates to INSTALL file) diff -r 74a81c276d67 -r a767954cfa03 CMakeLists.txt --- a/CMakeLists.txt Sat Mar 26 22:49:38 2011 +0100 +++ b/CMakeLists.txt Sun Mar 27 01:53:59 2011 +0100 @@ -39,13 +39,6 @@ set(CPACK_PACKAGE_VERSION_MINOR "9") set(CPACK_PACKAGE_VERSION_PATCH "16${version_suffix}") -#forbid in-tree building -#IF (${CMAKE_SOURCE_DIR} MATCHES ${CMAKE_BINARY_DIR}) -# MESSAGE(STATUS "Please do an out-of-tree build:") -# MESSAGE(STATUS "rm CMakeCache.txt; mkdir build; cd build; cmake ..; make") -# MESSAGE(FATAL_ERROR "In-tree-build detected!") -#ENDIF (${CMAKE_SOURCE_DIR} MATCHES ${CMAKE_BINARY_DIR}) - #set some safe values IF(NOT WITH_SERVER) SET(WITH_SERVER 0) @@ -72,8 +65,8 @@ STRING(REGEX MATCH "[0-9]+\\.[0-9]+\\.[0-9]+" MACOSX_VERSION_TMP "${MACOSX_VERSION_TMP}") STRING(REGEX REPLACE "([0-9]+.[0-9]+).[0-9]+" "\\1" current_macosx_version ${MACOSX_VERSION_TMP}) + #if nothing is set, we deploy only for the current system if(NOT minimum_macosx) - #if nothing is set, we deploy only for the current system set(minimum_macosx ${current_macosx_version}) endif() @@ -81,30 +74,21 @@ set(FATAL "Hedgewars is not supported for pre-10.4 systems") endif() - set(CMAKE_OSX_ARCHITECTURES "i386;ppc7400") - - #create universal binaries only when it's time to bundle the application, also build server - IF(BUNDLE) - set(WITH_SERVER true) - if(NOT minimum_macosx MATCHES "10.6") - set(CMAKE_C_COMPILER "gcc-4.0") - set(CMAKE_CXX_COMPILER "g++-4.0") + if(NOT CMAKE_OSX_ARCHITECTURES) + if(current_macosx_version MATCHES "10.6") + set(CMAKE_OSX_ARCHITECTURES "x86_64;i386") else() - if(current_macosx_version MATCHES "10.6") - if(MACAPPSTORE) - set(CMAKE_OSX_ARCHITECTURES "x86_64;i386") - else() - set(CMAKE_OSX_ARCHITECTURES "x86_64") - endif() - endif() + set(CMAKE_OSX_ARCHITECTURES "i386;ppc7400") endif() - ELSE() - if(current_macosx_version MATCHES "10.6") - set(CMAKE_OSX_ARCHITECTURES "x86_64") - endif() - ENDIF() + endif() + + message(STATUS "Build system: Mac OS X ${current_macosx_version} - Target ${minimum_macosx} ${CMAKE_OSX_ARCHITECTURES}") - message(STATUS "Target system: Mac OS X ${minimum_macosx} ${CMAKE_OSX_ARCHITECTURES}") + #be sure to select ppc-compatible toolchains just in case + if(NOT minimum_macosx MATCHES "10.6") + set(CMAKE_C_COMPILER "gcc-4.0") + set(CMAKE_CXX_COMPILER "g++-4.0") + endif() if(minimum_macosx MATCHES "10.4") set(CMAKE_OSX_SYSROOT "/Developer/SDKs/MacOSX10.4u.sdk/") @@ -129,9 +113,6 @@ #this snippet sets "Release" mode by default -#IF (NOT CMAKE_BUILD_TYPE) -# SET(CMAKE_BUILD_TYPE "Release") -#ENDIF (NOT CMAKE_BUILD_TYPE) if (NOT CMAKE_BUILD_TYPE) set (CMAKE_BUILD_TYPE RELEASE CACHE STRING "Choose the type of build, options are: None Debug Release." FORCE) endif (NOT CMAKE_BUILD_TYPE) @@ -141,7 +122,6 @@ set(Optz true) else() message(STATUS "Building Debug") - #set(CMAKE_VERBOSE_MAKEFILE true) set(Optz false) endif() @@ -177,16 +157,22 @@ set(HEDGEWARS_PROTO_VER 38) if(WITH_SERVER) - message(STATUS "Server is going to be built! Make sure you have GHC installed") - set(HAVE_NETSERVER true) - add_subdirectory(gameServer) + find_program(ghc_executable ghc) + + 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) endif(WITH_SERVER) add_subdirectory(misc/liblua) add_subdirectory(hedgewars) -#add_subdirectory(misc/libopenalbridge) + if(NOT BUILD_ENGINE_LIBRARY) add_subdirectory(bin) add_subdirectory(QTfrontend) diff -r 74a81c276d67 -r a767954cfa03 INSTALL --- a/INSTALL Sat Mar 26 22:49:38 2011 +0100 +++ b/INSTALL Sun Mar 27 01:53:59 2011 +0100 @@ -1,5 +1,5 @@ To compile and install you need: - - Qt >= 4.4 + - Qt >= 4.5 - FreePascal >= 2.2.4 - SDL >= 1.2.5 - SDL_net >= 1.2.5 @@ -9,21 +9,19 @@ - CMake >= 2.6.0 - Lua >= 5.1.0 For server: - - Glasgow Haskell Compiler 6.10 + - Glasgow Haskell Compiler >= 6.10 + - bytestring-show package - dataenc package - hslogger package - - utf8-string package 1. Configure: $ cmake . or -$ cmake -DCMAKE_BUILD_TYPE="Release" -DCMAKE_INSTALL_PREFIX="install_prefix" -DDATA_INSTALL_DIR="data_dir" . - -add -DWITH_SERVER=1 to compile net server; to create a relocatable bundle under Mac OS X you can do +$ cmake -DCMAKE_BUILD_TYPE="Release" -DCMAKE_INSTALL_PREFIX="install_prefix" \ +-DDATA_INSTALL_DIR="data_dir" . -$ cmake -DCMAKE_BUILD_TYPE="Release" -DBUNDLE=1 . - -if you have Qt installed but it is not found you can set it up with -DQT_QMAKE_EXECUTABLE="path_to_qmake" +add -DWITH_SERVER=1 to compile net server; if you have Qt installed but it is +not found you can set it up with -DQT_QMAKE_EXECUTABLE="path_to_qmake" 2. Compile: $ make diff -r 74a81c276d67 -r a767954cfa03 tools/CMakeLists.txt --- a/tools/CMakeLists.txt Sat Mar 26 22:49:38 2011 +0100 +++ b/tools/CMakeLists.txt Sun Mar 27 01:53:59 2011 +0100 @@ -7,8 +7,7 @@ ADD_CUSTOM_TARGET(uninstall "${CMAKE_COMMAND}" -P "${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake") endif() -if (APPLE AND BUNDLE) - +if (APPLE) find_package(Qt4 REQUIRED) find_package(SDL REQUIRED) find_package(SDL_image REQUIRED) @@ -44,4 +43,4 @@ CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/CreateMacBundle.cmake.in ${CMAKE_CURRENT_BINARY_DIR}/CreateMacBundle.cmake) -endif(APPLE AND BUNDLE) +endif() diff -r 74a81c276d67 -r a767954cfa03 tools/CreateMacBundle.cmake.in --- a/tools/CreateMacBundle.cmake.in Sat Mar 26 22:49:38 2011 +0100 +++ b/tools/CreateMacBundle.cmake.in Sun Mar 27 01:53:59 2011 +0100 @@ -1,18 +1,24 @@ message(STATUS "Performing standalone bundle creation...") -execute_process(COMMAND mkdir -p ${frameworks_dir}) +execute_process(COMMAND ls ${frameworks_dir} RESULT_VARIABLE doBundle OUTPUT_QUIET ERROR_QUIET) -execute_process(COMMAND ${macdeployqt_EXE} ${CMAKE_BINARY_DIR}/${bundle_name} OUTPUT_QUIET ERROR_QUIET) +if(doBundle EQUAL 1) + execute_process(COMMAND mkdir -p ${frameworks_dir}) + + execute_process(COMMAND ${macdeployqt_EXE} ${CMAKE_BINARY_DIR}/${bundle_name} OUTPUT_QUIET ERROR_QUIET) -execute_process(COMMAND cp -pPR ${sdl_dir} ${CMAKE_BINARY_DIR}/${frameworks_dir}/SDL.framework) -execute_process(COMMAND cp -pPR ${SDLIMAGE_LIBRARY} ${CMAKE_BINARY_DIR}/${frameworks_dir}/SDL_image.framework) -execute_process(COMMAND cp -pPR ${SDLNET_LIBRARY} ${CMAKE_BINARY_DIR}/${frameworks_dir}/SDL_net.framework) -execute_process(COMMAND cp -pPR ${SDLTTF_LIBRARY} ${CMAKE_BINARY_DIR}/${frameworks_dir}/SDL_ttf.framework) -execute_process(COMMAND cp -pPR ${SDLMIXER_LIBRARY} ${CMAKE_BINARY_DIR}/${frameworks_dir}/SDL_mixer.framework) -execute_process(COMMAND cp -pPR ${OGG_LIBRARY} ${CMAKE_BINARY_DIR}/${frameworks_dir}/Ogg.framework) -execute_process(COMMAND cp -pPR ${VORBIS_LIBRARY} ${CMAKE_BINARY_DIR}/${frameworks_dir}/Vorbis.framework) + execute_process(COMMAND cp -pPR ${sdl_dir} ${CMAKE_BINARY_DIR}/${frameworks_dir}/SDL.framework) + execute_process(COMMAND cp -pPR ${SDLIMAGE_LIBRARY} ${CMAKE_BINARY_DIR}/${frameworks_dir}/SDL_image.framework) + execute_process(COMMAND cp -pPR ${SDLNET_LIBRARY} ${CMAKE_BINARY_DIR}/${frameworks_dir}/SDL_net.framework) + execute_process(COMMAND cp -pPR ${SDLTTF_LIBRARY} ${CMAKE_BINARY_DIR}/${frameworks_dir}/SDL_ttf.framework) + execute_process(COMMAND cp -pPR ${SDLMIXER_LIBRARY} ${CMAKE_BINARY_DIR}/${frameworks_dir}/SDL_mixer.framework) + execute_process(COMMAND cp -pPR ${OGG_LIBRARY} ${CMAKE_BINARY_DIR}/${frameworks_dir}/Ogg.framework) + execute_process(COMMAND cp -pPR ${VORBIS_LIBRARY} ${CMAKE_BINARY_DIR}/${frameworks_dir}/Vorbis.framework) -if(${SPARKLE_FOUND}) - execute_process(COMMAND cp -pPR ${SPARKLE_LIBRARY} ${CMAKE_BINARY_DIR}/${frameworks_dir}/Sparkle.framework) + if(${SPARKLE_FOUND}) + execute_process(COMMAND cp -pPR ${SPARKLE_LIBRARY} ${CMAKE_BINARY_DIR}/${frameworks_dir}/Sparkle.framework) + endif() + message(STATUS "Bundle frameworks added") +else() + message(STATUS "Bundle frameworks already present; skipping...") endif() -