From 4bef525bf3511b486bf2cdf82d72db634290918e Mon Sep 17 00:00:00 2001 From: filux Date: Sun, 27 Sep 2015 19:46:35 +0200 Subject: [PATCH] removed not required CURL module, renamed several cmake-build options for be more easy sortable by name --- CMakeLists.txt | 130 +++++-------- mk/cmake/Modules/CurlGetConfig.cmake | 50 +++++ mk/cmake/Modules/FindCURL.cmake | 71 ------- mk/cmake/Modules/FindFTGL.cmake | 8 +- mk/cmake/Modules/FindFontConfig.cmake | 8 +- mk/cmake/Modules/FindFriBiDi.cmake | 4 +- mk/cmake/Modules/FindGLEW.cmake | 8 +- mk/cmake/Modules/FindGoogleBreakpad.cmake | 2 +- mk/cmake/Modules/FindIrcclient.cmake | 7 +- mk/cmake/Modules/FindLUA.cmake | 16 +- mk/cmake/Modules/FindMiniupnpc.cmake | 7 +- mk/cmake/Modules/FindOGG.cmake | 16 +- mk/cmake/Modules/FindXercesC.cmake | 12 +- mk/cmake/Modules/ReqVersAndStaticConf.cmake | 76 ++++++++ mk/linux/build-mg.sh | 12 +- mk/macosx/build-mg.sh | 2 +- source/g3d_viewer/CMakeLists.txt | 18 +- source/glest_game/CMakeLists.txt | 68 ++++--- source/glest_map_editor/CMakeLists.txt | 18 +- source/shared_lib/CMakeLists.txt | 197 +++++++++----------- source/tests/CMakeLists.txt | 34 ++-- 21 files changed, 358 insertions(+), 406 deletions(-) create mode 100644 mk/cmake/Modules/CurlGetConfig.cmake delete mode 100644 mk/cmake/Modules/FindCURL.cmake create mode 100644 mk/cmake/Modules/ReqVersAndStaticConf.cmake diff --git a/CMakeLists.txt b/CMakeLists.txt index d85d63d5..6b7ec49c 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -14,6 +14,10 @@ IF(NOT CMAKE_BUILD_TYPE) ENDIF() SET_PROPERTY(CACHE CMAKE_BUILD_TYPE PROPERTY STRINGS None Debug Release RelWithDebInfo MinSizeRel) +IF(CMAKE_VERSION VERSION_GREATER "3.0") + cmake_policy(SET CMP0054 NEW) +ENDIF() + # add additional CMake modules MESSAGE(STATUS "CMAKE_SOURCE_DIR = ${CMAKE_SOURCE_DIR}") list(APPEND CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/mk/cmake/Modules) @@ -31,9 +35,14 @@ OPTION(BUILD_MEGAGLEST_MODEL_VIEWER "Build model viewer" ON) OPTION(BUILD_MEGAGLEST_MAP_EDITOR "Build map editor" ON) OPTION(BUILD_MEGAGLEST "Build MegaGlest" ON) OPTION(BUILD_MEGAGLEST_TESTS "Build MegaGlest Unit Tests" OFF) -OPTION(WITH_VLC "Use libVLC to play videos" ON) -OPTION(SINGLE_INSTALL_DIRECTORY "Use single install directory for everything. It is useful for example for MacOS cpack bundles." OFF) +OPTION(WANT_SINGLE_INSTALL_DIRECTORY "Use single install directory for everything. It is useful for example for MacOS cpack bundles." OFF) OPTION(WANT_STATIC_LIBS "Builds as many static libs as possible." OFF) +OPTION(WANT_USE_VLC "Use libVLC to play videos." ON) +OPTION(WANT_USE_OpenSSL "Use libOpenSSL during CURL linking." ON) +OPTION(WANT_USE_FriBiDi "Enable libFriBIDi support." ON) +OPTION(WANT_USE_GoogleBreakpad "Enable GoogleBreakpad support." ON) +OPTION(WANT_USE_STREFLOP "Use the library streflop." ON) +OPTION(WANT_USE_XercesC "Enable libXercesC support." OFF) FIND_PROGRAM(HELP2MAN "help2man") @@ -46,6 +55,7 @@ endif() MARK_AS_ADVANCED(HELP2MAN XVFB_RUN) include(${CMAKE_SOURCE_DIR}/mk/cmake/Modules/SpecialMacros.cmake) +include(${CMAKE_SOURCE_DIR}/mk/cmake/Modules/ReqVersAndStaticConf.cmake) SET(PKG_NAME "megaglest") # read version @@ -99,9 +109,6 @@ IF(CMAKE_COMPILER_IS_GNUCXX OR MINGW) MESSAGE(STATUS "Detected MINGW Compiler...") ENDIF() - # Default compiler flags - #SET(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -s") ## Strip binary - # Common generic GNU type compiler options that work with all generic GCC compatible compilers ADD_DEFINITIONS("-Wuninitialized -Wsign-compare -Wunused-function -Wunused-variable -Wreturn-type -fno-strict-aliasing") @@ -132,34 +139,30 @@ IF(CMAKE_COMPILER_IS_GNUCXX OR MINGW) #SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall") - #MESSAGE(STATUS "*TEST: Checking for max SSE LEVEL [${MAX_SSE_LEVEL_DESIRED}]") + #MESSAGE(STATUS "*TEST: Checking for max SSE LEVEL [${FORCE_MAX_SSE_LEVEL}]") - IF(NOT STREFLOP_SOFTWRAPPER_FORCE) - SET(STREFLOP_SOFTWRAPPER_FORCE "0" CACHE STRING "Set the streflop library to be forced to use the software emulator") + OPTION(FORCE_STREFLOP_SOFTWRAPPER "Set the streflop library to be forced to use the software emulator" OFF) + IF(NOT FORCE_MAX_SSE_LEVEL AND NOT FORCE_STREFLOP_SOFTWRAPPER) + SET(FORCE_MAX_SSE_LEVEL "1" CACHE STRING "Set the max SSE level to use if supported (0-3)") ENDIF() - IF(NOT MAX_SSE_LEVEL_DESIRED AND NOT STREFLOP_SOFTWRAPPER_FORCE) - SET(MAX_SSE_LEVEL_DESIRED "1" CACHE STRING "Set the max SSE level to use if supported (0-3)") - ENDIF() - - IF(NOT STREFLOP_SOFTWRAPPER_FORCE) - MESSAGE(STATUS "*NOTE: Checking for max SSE LEVEL [${MAX_SSE_LEVEL_DESIRED}]") - special_check_for_sse( ${MAX_SSE_LEVEL_DESIRED} ) + IF(NOT FORCE_STREFLOP_SOFTWRAPPER) + MESSAGE(STATUS "*NOTE: Checking for max SSE LEVEL [${FORCE_MAX_SSE_LEVEL}]") + special_check_for_sse( ${FORCE_MAX_SSE_LEVEL} ) ENDIF() - OPTION(WANT_STREFLOP "use the library streflop" ON) - IF(WANT_STREFLOP) + IF(WANT_USE_STREFLOP) ADD_DEFINITIONS("-DUSE_STREFLOP -DSTREFLOP_RANDOM_GEN_SIZE=32 -DLIBM_COMPILING_FLT32 -DN_SPECIALIZED=32") - IF(HAS_SSE_EXTENSIONS AND NOT ${MAX_SSE_LEVEL_DESIRED} MATCHES "0" AND NOT STREFLOP_SOFTWRAPPER_FORCE) + IF(HAS_SSE_EXTENSIONS AND NOT ${FORCE_MAX_SSE_LEVEL} MATCHES "0" AND NOT FORCE_STREFLOP_SOFTWRAPPER) ADD_DEFINITIONS("-DSTREFLOP_SSE") MESSAGE(STATUS "*NOTE: using SSE for STREFLOP.") ELSE() - IF(NOT STREFLOP_SOFTWRAPPER_FORCE) + IF(NOT FORCE_STREFLOP_SOFTWRAPPER) special_check_for_x87() ENDIF() - IF(HAS_X87_SUPPORT AND NOT STREFLOP_SOFTWRAPPER_FORCE) + IF(HAS_X87_SUPPORT AND NOT FORCE_STREFLOP_SOFTWRAPPER) ADD_DEFINITIONS("-DSTREFLOP_X87") MESSAGE(STATUS "*NOTE: using X87 for STREFLOP.") ELSE() @@ -257,45 +260,33 @@ IF(CMAKE_COMPILER_IS_GNUCXX OR MINGW) IF(CMAKE_INSTALL_PREFIX STREQUAL "") MESSAGE(STATUS "*NOTE: NOT USING a Custom Data Install Path...") ELSE() - IF(SINGLE_INSTALL_DIRECTORY AND NOT MEGAGLEST_SINGLE_DIRECTORY_INSTALL_PATH) + IF(WANT_SINGLE_INSTALL_DIRECTORY AND NOT MEGAGLEST_SINGLE_DIRECTORY_INSTALL_PATH) SET(MEGAGLEST_SINGLE_DIRECTORY_INSTALL_PATH "megaglest-game/" CACHE STRING "The single directory installation path for game (this is appended to the CMAKE_INSTALL_PREFIX)") ENDIF() - IF(NOT MEGAGLEST_BIN_INSTALL_PATH) - IF(NOT SINGLE_INSTALL_DIRECTORY) - SET(MEGAGLEST_BIN_INSTALL_PATH "bin/" CACHE STRING "The installation path for binaries (this is appended to the CMAKE_INSTALL_PREFIX)") - ELSE() - SET(MEGAGLEST_BIN_INSTALL_PATH "${MEGAGLEST_SINGLE_DIRECTORY_INSTALL_PATH}") - ENDIF() + IF(NOT MEGAGLEST_BIN_INSTALL_PATH AND NOT WANT_SINGLE_INSTALL_DIRECTORY) + SET(MEGAGLEST_BIN_INSTALL_PATH "bin/" CACHE STRING "The installation path for binaries (this is appended to the CMAKE_INSTALL_PREFIX)") ENDIF() - IF(NOT MEGAGLEST_DATA_INSTALL_PATH) - IF(NOT SINGLE_INSTALL_DIRECTORY) - SET(MEGAGLEST_DATA_INSTALL_PATH "share/megaglest/" CACHE STRING "The installation path for data files (this is appended to the CMAKE_INSTALL_PREFIX)") - ELSE() - SET(MEGAGLEST_DATA_INSTALL_PATH "${MEGAGLEST_SINGLE_DIRECTORY_INSTALL_PATH}") - ENDIF() + IF(NOT MEGAGLEST_DATA_INSTALL_PATH AND NOT WANT_SINGLE_INSTALL_DIRECTORY) + SET(MEGAGLEST_DATA_INSTALL_PATH "share/megaglest/" CACHE STRING "The installation path for data files (this is appended to the CMAKE_INSTALL_PREFIX)") ENDIF() - IF(NOT MEGAGLEST_DESKTOP_INSTALL_PATH) - IF(NOT SINGLE_INSTALL_DIRECTORY) - SET(MEGAGLEST_DESKTOP_INSTALL_PATH "share/applications/" CACHE STRING "The installation path for desktop files (this is appended to the CMAKE_INSTALL_PREFIX)") - ELSE() - SET(MEGAGLEST_DESKTOP_INSTALL_PATH "${MEGAGLEST_SINGLE_DIRECTORY_INSTALL_PATH}") - ENDIF() + IF(NOT MEGAGLEST_DESKTOP_INSTALL_PATH AND NOT WANT_SINGLE_INSTALL_DIRECTORY) + SET(MEGAGLEST_DESKTOP_INSTALL_PATH "share/applications/" CACHE STRING "The installation path for desktop files (this is appended to the CMAKE_INSTALL_PREFIX)") ENDIF() - IF(NOT MEGAGLEST_ICON_INSTALL_PATH) - IF(NOT SINGLE_INSTALL_DIRECTORY) - SET(MEGAGLEST_ICON_INSTALL_PATH "share/pixmaps/" CACHE STRING "The installation path for icon files (this is appended to the CMAKE_INSTALL_PREFIX)") - ELSE() - SET(MEGAGLEST_ICON_INSTALL_PATH "${MEGAGLEST_SINGLE_DIRECTORY_INSTALL_PATH}") - ENDIF() + IF(NOT MEGAGLEST_ICON_INSTALL_PATH AND NOT WANT_SINGLE_INSTALL_DIRECTORY) + SET(MEGAGLEST_ICON_INSTALL_PATH "share/pixmaps/" CACHE STRING "The installation path for icon files (this is appended to the CMAKE_INSTALL_PREFIX)") ENDIF() - IF(NOT MEGAGLEST_MANPAGE_INSTALL_PATH AND NOT SINGLE_INSTALL_DIRECTORY) - IF(NOT SINGLE_INSTALL_DIRECTORY) - SET(MEGAGLEST_MANPAGE_INSTALL_PATH "share/man/man6/" CACHE STRING "The installation path for manpage files (this is appended to the CMAKE_INSTALL_PREFIX)") - ELSE() - SET(MEGAGLEST_MANPAGE_INSTALL_PATH "${MEGAGLEST_SINGLE_DIRECTORY_INSTALL_PATH}") - ENDIF() + IF(NOT MEGAGLEST_MANPAGE_INSTALL_PATH AND NOT WANT_SINGLE_INSTALL_DIRECTORY) + SET(MEGAGLEST_MANPAGE_INSTALL_PATH "share/man/man6/" CACHE STRING "The installation path for manpage files (this is appended to the CMAKE_INSTALL_PREFIX)") ENDIF() - IF(NOT CUSTOM_DATA_INSTALL_PATH AND NOT SINGLE_INSTALL_DIRECTORY) + IF(WANT_SINGLE_INSTALL_DIRECTORY) + FOREACH(MG_PATH BIN DATA DESKTOP ICON) + IF(NOT MEGAGLEST_${MG_PATH}_INSTALL_PATH) + SET(MEGAGLEST_${MG_PATH}_INSTALL_PATH "${MEGAGLEST_SINGLE_DIRECTORY_INSTALL_PATH}") + ENDIF() + ENDFOREACH() + ENDIF() + + IF(NOT CUSTOM_DATA_INSTALL_PATH AND NOT WANT_SINGLE_INSTALL_DIRECTORY) SET(CUSTOM_DATA_INSTALL_PATH "${CMAKE_INSTALL_PREFIX}/${MEGAGLEST_DATA_INSTALL_PATH}" CACHE STRING "The FULL installation path for data files (this is build automatically by combining CMAKE_INSTALL_PREFIX and MEGAGLEST_DATA_INSTALL_PATH)") SET(CUSTOM_DATA_INSTALL_PATH_VALUE "-DCUSTOM_DATA_INSTALL_PATH=${CUSTOM_DATA_INSTALL_PATH}") ENDIF() @@ -305,45 +296,21 @@ IF(CMAKE_COMPILER_IS_GNUCXX OR MINGW) MESSAGE(STATUS "*NOTE: Custom Data Install Path is [${CUSTOM_DATA_INSTALL_PATH}]") ENDIF() + string(TOUPPER "${CMAKE_BUILD_TYPE}" MG_BUILD_TYPE) IF(HAS_GIT STREQUAL "TRUE") - SET(CMAKE_CXX_FLAGS_NONE "${CMAKE_CXX_FLAGS_NONE} ${GIT_VERSION_CMD}") - SET(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} ${GIT_VERSION_CMD}") - SET(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} ${GIT_VERSION_CMD}") - SET(CMAKE_CXX_FLAGS_RELWITHDEBINFO "${CMAKE_CXX_FLAGS_RELWITHDEBINFO} ${GIT_VERSION_CMD}") - SET(CMAKE_CXX_FLAGS_MINSIZEREL "${CMAKE_CXX_FLAGS_MINSIZEREL} ${GIT_VERSION_CMD}") + SET(CMAKE_CXX_FLAGS_${MG_BUILD_TYPE} "${CMAKE_CXX_FLAGS_${MG_BUILD_TYPE}} ${GIT_VERSION_CMD}") ENDIF() - SET(CMAKE_CXX_FLAGS_NONE "${CMAKE_CXX_FLAGS_NONE} ${CUSTOM_DATA_INSTALL_PATH_VALUE}") - SET(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} ${CUSTOM_DATA_INSTALL_PATH_VALUE}") - SET(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} ${CUSTOM_DATA_INSTALL_PATH_VALUE}") - SET(CMAKE_CXX_FLAGS_RELWITHDEBINFO "${CMAKE_CXX_FLAGS_RELWITHDEBINFO} ${CUSTOM_DATA_INSTALL_PATH_VALUE}") - SET(CMAKE_CXX_FLAGS_MINSIZEREL "${CMAKE_CXX_FLAGS_MINSIZEREL} ${CUSTOM_DATA_INSTALL_PATH_VALUE}") + SET(CMAKE_CXX_FLAGS_${MG_BUILD_TYPE} "${CMAKE_CXX_FLAGS_${MG_BUILD_TYPE}} ${CUSTOM_DATA_INSTALL_PATH_VALUE}") # We do some funky character escaping to get the right stuff written out to # the final Makefile so we get the GIT Global Revsion # - string(REPLACE "'" "\"" CMAKE_CXX_FLAGS_NONE "${CMAKE_CXX_FLAGS_NONE}") - string(REPLACE "'" "\"" CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG}") - string(REPLACE "'" "\"" CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE}") - string(REPLACE "'" "\"" CMAKE_CXX_FLAGS_RELWITHDEBINFO "${CMAKE_CXX_FLAGS_RELWITHDEBINFO}") - string(REPLACE "'" "\"" CMAKE_CXX_FLAGS_MINSIZEREL "${CMAKE_CXX_FLAGS_MINSIZEREL}") + string(REPLACE "'" "\"" CMAKE_CXX_FLAGS_${MG_BUILD_TYPE} "${CMAKE_CXX_FLAGS_${MG_BUILD_TYPE}}") - IF( CMAKE_BUILD_TYPE STREQUAL None ) - message(STATUS "CMAKE_CXX_FLAGS_NONE: ${CMAKE_CXX_FLAGS_NONE}") - ELSEIF( CMAKE_BUILD_TYPE STREQUAL Debug ) - message(STATUS "CMAKE_CXX_FLAGS_DEBUG: ${CMAKE_CXX_FLAGS_DEBUG}") - ELSEIF( CMAKE_BUILD_TYPE STREQUAL Release ) - message(STATUS "CMAKE_CXX_FLAGS_RELEASE: ${CMAKE_CXX_FLAGS_RELEASE}") - ELSEIF( CMAKE_BUILD_TYPE STREQUAL RelWithDebInfo ) - message(STATUS "CMAKE_CXX_FLAGS_RELWITHDEBINFO: ${CMAKE_CXX_FLAGS_RELWITHDEBINFO}") - ELSEIF( CMAKE_BUILD_TYPE STREQUAL MinSizeRel ) - message(STATUS "CMAKE_CXX_FLAGS_MINSIZEREL: ${CMAKE_CXX_FLAGS_MINSIZEREL}") - - ENDIF() + message(STATUS "CMAKE_CXX_FLAGS_${MG_BUILD_TYPE}: ${CMAKE_CXX_FLAGS_${MG_BUILD_TYPE}}") # Win32 specific Compiler Flags IF(WIN32) ADD_DEFINITIONS("-D_WINDOWS -D_WIN32 -D_STDCALL_SUPPORTED -D_M_IX86 -DXML_LIBRARY -D_LIB -DCURL_STATICLIB") - ELSE() - ADD_DEFINITIONS("-DCURL_STATICLIB") ENDIF() ENDIF() @@ -515,3 +482,4 @@ MARK_AS_ADVANCED(${SDL_VERSION_NAME}_INCLUDE_DIR) MARK_AS_ADVANCED(${SDL_VERSION_NAME}_LIBRARY) MARK_AS_ADVANCED(wxWidgets_CONFIG_EXECUTABLE) MARK_AS_ADVANCED(wxWidgets_wxrc_EXECUTABLE) +MARK_AS_ADVANCED(wxWidgets_USE_DEBUG) diff --git a/mk/cmake/Modules/CurlGetConfig.cmake b/mk/cmake/Modules/CurlGetConfig.cmake new file mode 100644 index 00000000..5db182ec --- /dev/null +++ b/mk/cmake/Modules/CurlGetConfig.cmake @@ -0,0 +1,50 @@ +# +# Curl Get Config +# +# IF we are using a system that supports curl-config use it. +# + +IF(CURL_FOUND) + IF(UNIX AND NOT APPLE) + FIND_PROGRAM( CMAKE_CURL_CONFIG curl-config) + MARK_AS_ADVANCED(CMAKE_CURL_CONFIG) + + IF(CMAKE_CURL_CONFIG) + IF(STATIC_CURL) + # run the curl-config program to get --static-libs + EXEC_PROGRAM(sh + ARGS "${CMAKE_CURL_CONFIG} --static-libs" + OUTPUT_VARIABLE CURL_STATIC_LIBS + RETURN_VALUE RET) + + MESSAGE(STATUS "CURL RET = ${RET} libs: [${CURL_STATIC_LIBS}]") + ELSE() + SET(RET 1) + ENDIF() + + IF(RET EQUAL 0 AND CURL_STATIC_LIBS) + MESSAGE(STATUS "#2 CURL RET = ${RET}, using CURL static libs") + SET(CURL_LIBRARIES "-Bstatic ${CURL_STATIC_LIBS}") + ELSE() + EXEC_PROGRAM(sh + ARGS "${CMAKE_CURL_CONFIG} --libs" + OUTPUT_VARIABLE CURL_DYNAMIC_LIBS + RETURN_VALUE RET2) + + IF(RET2 EQUAL 0 AND CURL_DYNAMIC_LIBS) + MESSAGE(STATUS "#2 CURL RET = ${RET2}, using CURL dynamic libs: ${CURL_DYNAMIC_LIBS}") + SET(CURL_LIBRARIES "${CURL_DYNAMIC_LIBS}") + ELSE() + MESSAGE(STATUS "#3 CURL RET = ${RET2}, using CURL libs found by cmake: ${CURL_LIBRARIES}") + ENDIF() + ENDIF() + ENDIF() + ENDIF() + IF( "${CURL_VERSION_STRING}" VERSION_LESS "${CURL_MIN_VERSION_MG}") + MESSAGE(STATUS "(please visit http://curl.haxx.se/libcurl/ to find a newer version)") + MESSAGE(FATAL_ERROR " CURL version = [${CURL_VERSION_STRING}] we require AT LEAST [7.16.4]") + ENDIF() +ELSE() + SET(CURL_LIBRARIES) + SET(CURL_INCLUDE_DIRS) +ENDIF() diff --git a/mk/cmake/Modules/FindCURL.cmake b/mk/cmake/Modules/FindCURL.cmake deleted file mode 100644 index c324f9ba..00000000 --- a/mk/cmake/Modules/FindCURL.cmake +++ /dev/null @@ -1,71 +0,0 @@ -# - Find curl -# Find the native CURL headers and libraries. -# -# CURL_INCLUDE_DIRS - where to find curl/curl.h, etc. -# CURL_LIBRARIES - List of libraries when using curl. -# CURL_FOUND - True if curl found. - -# Look for the header file. -FIND_PATH(CURL_INCLUDE_DIR NAMES curl/curl.h - PATHS /usr/local/include/ - /usr/include/ - /opt/local/include/) -MARK_AS_ADVANCED(CURL_INCLUDE_DIR) - -# Look for the library. -FIND_LIBRARY(CURL_LIBRARY NAMES curl curl-gnutls - PATHS /usr/local/lib/ - /usr/lib/ - /opt/local/lib/) -MARK_AS_ADVANCED(CURL_LIBRARY) - -# handle the QUIETLY and REQUIRED arguments and set CURL_FOUND to TRUE if -# all listed variables are TRUE -INCLUDE(FindPackageHandleStandardArgs) -FIND_PACKAGE_HANDLE_STANDARD_ARGS(CURL DEFAULT_MSG CURL_LIBRARY CURL_INCLUDE_DIR) - -IF(CURL_FOUND) - SET(CURL_LIBRARIES ${CURL_LIBRARY}) - SET(CURL_INCLUDE_DIRS ${CURL_INCLUDE_DIR}) - - # IF we are using a system that supports curl-config use it - # and force using static libs - IF(UNIX AND NOT APPLE) - FIND_PROGRAM( CMAKE_CURL_CONFIG curl-config) - MARK_AS_ADVANCED(CMAKE_CURL_CONFIG) - - IF(CMAKE_CURL_CONFIG) - OPTION(WANT_STATIC_LIBS "builds as many static libs as possible" OFF) - OPTION(FORCE_CURL_DYNAMIC_LIBS "force the use of dynamic libs for CURL" OFF) - MESSAGE(STATUS "Force Curl dynamic: ${FORCE_CURL_DYNAMIC_LIBS}") - - IF(WANT_STATIC_LIBS AND NOT FORCE_CURL_DYNAMIC_LIBS) - # run the curl-config program to get --static-libs - EXEC_PROGRAM(sh - ARGS "${CMAKE_CURL_CONFIG} --static-libs" - OUTPUT_VARIABLE CURL_STATIC_LIBS - RETURN_VALUE RET) - - MESSAGE(STATUS "CURL RET = ${RET} libs: [${CURL_STATIC_LIBS}]") - ELSE() - SET(RET 1) - ENDIF() - - IF(RET EQUAL 0 AND CURL_STATIC_LIBS) - MESSAGE(STATUS "#2 CURL RET = ${RET}, using CURL static libs") - SET(CURL_LIBRARIES "-Bstatic ${CURL_STATIC_LIBS}") - ELSE() - EXEC_PROGRAM(sh - ARGS "${CMAKE_CURL_CONFIG} --libs" - OUTPUT_VARIABLE CURL_STATIC_LIBS - RETURN_VALUE RET) - - MESSAGE(STATUS "#2 CURL RET = ${RET}, using CURL dynamic libs: ${CURL_STATIC_LIBS}") - SET(CURL_LIBRARIES "${CURL_STATIC_LIBS}") - ENDIF() - ENDIF() - ENDIF() -ELSE(CURL_FOUND) - SET(CURL_LIBRARIES) - SET(CURL_INCLUDE_DIRS) -ENDIF(CURL_FOUND) diff --git a/mk/cmake/Modules/FindFTGL.cmake b/mk/cmake/Modules/FindFTGL.cmake index 2d525af2..e2078cc1 100644 --- a/mk/cmake/Modules/FindFTGL.cmake +++ b/mk/cmake/Modules/FindFTGL.cmake @@ -10,10 +10,6 @@ # # -IF(WANT_STATIC_LIBS) - OPTION(FTGL_STATIC "Set to ON to link your project with static library (instead of DLL)." ON) -ENDIF() - #message(STATUS "!!!!!!!!!!!!!!!!!!!!!!!!!!!!! #1 Searching for FTGL lib in custom path: [${FTGL_LIBRARY_PATH}]") IF (FTGL_LIBRARY AND FTGL_INCLUDE_DIR) @@ -29,9 +25,9 @@ ELSE (FTGL_LIBRARY AND FTGL_INCLUDE_DIR) PATHS /usr/local/include /usr/include) - IF (FTGL_STATIC AND NOT FTGL_LIBRARY) + IF (STATIC_FTGL AND NOT FTGL_LIBRARY) FIND_LIBRARY(FTGL_LIBRARY - NAMES libftgl.a ftgl libftgl libftgl.dll + NAMES libftgl.a ftgl.a ftgl libftgl libftgl.dll PATHS /usr/local/lib /usr/lib ${FTGL_LIBRARY_PATH}) diff --git a/mk/cmake/Modules/FindFontConfig.cmake b/mk/cmake/Modules/FindFontConfig.cmake index 312975fa..db05f717 100644 --- a/mk/cmake/Modules/FindFontConfig.cmake +++ b/mk/cmake/Modules/FindFontConfig.cmake @@ -5,17 +5,13 @@ # FONTCONFIG_LIBRARIES - List of libraries when using FONTCONFIG. # FONTCONFIG_FOUND - True if FONTCONFIG found. -IF(WANT_STATIC_LIBS) - OPTION(FONTCONFIG_STATIC "Set to ON to link your project with static library (instead of DLL)." ON) -ENDIF() - # Look for the header file. FIND_PATH( FONTCONFIG_INCLUDE_DIR NAMES fontconfig/fontconfig.h DOC "Path in which the file fontconfig/fontconfig.h is located." ) MARK_AS_ADVANCED(FONTCONFIG_INCLUDE_DIR) -IF(FONTCONFIG_STATIC) - FIND_LIBRARY( FONTCONFIG_LIBRARY NAMES libfontconfig.a fontconfig +IF(STATIC_FONTCONFIG) + FIND_LIBRARY( FONTCONFIG_LIBRARY NAMES libfontconfig.a fontconfig.a fontconfig DOC "Path to fontconfig library." ) ELSE() FIND_LIBRARY( FONTCONFIG_LIBRARY NAMES fontconfig diff --git a/mk/cmake/Modules/FindFriBiDi.cmake b/mk/cmake/Modules/FindFriBiDi.cmake index 6fca93fd..2ea91778 100644 --- a/mk/cmake/Modules/FindFriBiDi.cmake +++ b/mk/cmake/Modules/FindFriBiDi.cmake @@ -28,8 +28,8 @@ set(FRIBIDI_INCLUDE_DIR ${xFRIBIDI_INCLUDE_DIR}) SET(FRIBIDI_NAMES ${FRIBIDI_NAMES} fribidi libfribidi) -IF(WANT_STATIC_LIBS) - SET(FRIBIDI_NAMES fribidi.a libfribidi.a ${FRIBIDI_NAMES}) +IF(STATIC_FriBiDi) + SET(FRIBIDI_NAMES libfribidi.a fribidi.a ${FRIBIDI_NAMES}) ENDIF() #MESSAGE(STATUS "** Searching for library names: [${FRIBIDI_NAMES}] ...") diff --git a/mk/cmake/Modules/FindGLEW.cmake b/mk/cmake/Modules/FindGLEW.cmake index 5b2821b9..06731923 100644 --- a/mk/cmake/Modules/FindGLEW.cmake +++ b/mk/cmake/Modules/FindGLEW.cmake @@ -35,15 +35,11 @@ # (To distribute this file outside of CMake, substitute the full # License text for the above reference.) -IF(WANT_STATIC_LIBS) - OPTION(GLEW_STATIC "Set to ON to link your project with static library (instead of DLL)." ON) -ENDIF() - find_path(GLEW_INCLUDE_DIR GL/glew.h) SET(GLEW_NAMES ${GLEW_NAMES} GLEW glew32 glew glew32s) -IF(GLEW_STATIC) - SET(GLEW_NAMES libGLEW.a libglew32.a libglew.a libglew32s.a ${GLEW_NAMES}) +IF(STATIC_GLEW) + SET(GLEW_NAMES libGLEW.a libglew32.a libglew.a libglew32s.a GLEW.a glew32.a glew.a glew32s.a ${GLEW_NAMES}) ENDIF() find_library(GLEW_LIBRARY NAMES ${GLEW_NAMES} PATH_SUFFIXES lib64) diff --git a/mk/cmake/Modules/FindGoogleBreakpad.cmake b/mk/cmake/Modules/FindGoogleBreakpad.cmake index 7431a8ba..89f5a9ec 100644 --- a/mk/cmake/Modules/FindGoogleBreakpad.cmake +++ b/mk/cmake/Modules/FindGoogleBreakpad.cmake @@ -132,4 +132,4 @@ IF(BREAKPAD_FOUND) #SET(BREAKPAD_FOUND FALSE) ENDIF(BREAKPAD_DUMPSYMS_EXE) ENDIF(BREAKPAD_FOUND) - +MARK_AS_ADVANCED(BREAKPAD_INCLUDE_DIR) diff --git a/mk/cmake/Modules/FindIrcclient.cmake b/mk/cmake/Modules/FindIrcclient.cmake index 3c41f969..13bdb544 100644 --- a/mk/cmake/Modules/FindIrcclient.cmake +++ b/mk/cmake/Modules/FindIrcclient.cmake @@ -41,11 +41,8 @@ FIND_PATH(IRCCLIENT_INCLUDE_DIR libircclient.h SET(IRCCLIENT_FIND_LIBRARIES ircclient) -OPTION(FORCE_IRCCLIENT_DYNAMIC_LIBS "force the use of dynamic libs for IRCCLIENT" OFF) -MESSAGE(STATUS "Force IRCCLient dynamic: ${FORCE_IRCCLIENT_DYNAMIC_LIBS}") - -IF(WANT_STATIC_LIBS AND NOT FORCE_IRCCLIENT_DYNAMIC_LIBS) - SET(IRCCLIENT_FIND_LIBRARIES libircclient.a ircclient.a) +IF(STATIC_Ircclient) + SET(IRCCLIENT_FIND_LIBRARIES libircclient.a ircclient.a libircclient ircclient) ELSE() SET(IRCCLIENT_FIND_LIBRARIES libircclient ircclient) ENDIF() diff --git a/mk/cmake/Modules/FindLUA.cmake b/mk/cmake/Modules/FindLUA.cmake index 22906a5f..11b8d273 100644 --- a/mk/cmake/Modules/FindLUA.cmake +++ b/mk/cmake/Modules/FindLUA.cmake @@ -51,11 +51,12 @@ unset(_lua_include_subdirs) unset(_lua_library_names) -IF(WANT_STATIC_LIBS) - OPTION(LUA_STATIC "Set to ON to link your project with static library (instead of DLL)." ON) -ENDIF() IF("${FORCE_LUA_VERSION}" STREQUAL "OFF") - SET(LUA_VERSIONS5 "${ALL_LUA_VERSIONS_IN_ORDER}") + IF(DEFINED ALL_LUA_VERSIONS_IN_ORDER) + SET(LUA_VERSIONS5 "${ALL_LUA_VERSIONS_IN_ORDER}") + ELSE() + SET(LUA_VERSIONS5 5.3 5.2 5.1 5.0) + ENDIF() ELSE() SET(LUA_VERSIONS5 "${FORCE_LUA_VERSION}") ENDIF() @@ -91,12 +92,15 @@ function(set_lua_version_vars) include/lua${CMAKE_MATCH_1}.${CMAKE_MATCH_2} include/lua-${CMAKE_MATCH_1}.${CMAKE_MATCH_2} ) - IF(LUA_STATIC) + IF(STATIC_LUA) list(APPEND _lua_library_names liblua${CMAKE_MATCH_1}${CMAKE_MATCH_2}.a liblua${CMAKE_MATCH_1}.${CMAKE_MATCH_2}.a liblua-${CMAKE_MATCH_1}.${CMAKE_MATCH_2}.a - ) + lua${CMAKE_MATCH_1}${CMAKE_MATCH_2}.a + lua${CMAKE_MATCH_1}.${CMAKE_MATCH_2}.a + lua-${CMAKE_MATCH_1}.${CMAKE_MATCH_2}.a + ) ENDIF() list(APPEND _lua_library_names lua${CMAKE_MATCH_1}${CMAKE_MATCH_2} diff --git a/mk/cmake/Modules/FindMiniupnpc.cmake b/mk/cmake/Modules/FindMiniupnpc.cmake index f220c073..8ffa66e7 100644 --- a/mk/cmake/Modules/FindMiniupnpc.cmake +++ b/mk/cmake/Modules/FindMiniupnpc.cmake @@ -48,11 +48,10 @@ FIND_PATH(MINIUPNP_INCLUDE_DIR miniupnpc.h #message(STATUS "Finding miniupnpc.h result: ${MINIUPNP_INCLUDE_DIR}") #find_library(MINIUPNP_LIBRARY miniupnpc) +set(MINIUPNPC_LIBRARY_NAMES ${MINIUPNPC_LIBRARY_DYNAMIC_NAME} libminiupnpc miniupnpc) -IF(WANT_STATIC_LIBS) - set(MINIUPNPC_LIBRARY_NAMES ${MINIUPNPC_LIBRARY_STATIC_NAME} libminiupnpc.a) -ELSE() - set(MINIUPNPC_LIBRARY_NAMES ${MINIUPNPC_LIBRARY_DYNAMIC_NAME} libminiupnpc.so miniupnpc) +IF(STATIC_Miniupnpc) + set(MINIUPNPC_LIBRARY_NAMES ${MINIUPNPC_LIBRARY_STATIC_NAME} libminiupnpc.a miniupnpc.a ${MINIUPNPC_LIBRARY_NAMES}) ENDIF() FIND_LIBRARY(MINIUPNP_LIBRARY NAMES ${MINIUPNPC_LIBRARY_NAMES}) diff --git a/mk/cmake/Modules/FindOGG.cmake b/mk/cmake/Modules/FindOGG.cmake index 657f956b..7e2628ad 100644 --- a/mk/cmake/Modules/FindOGG.cmake +++ b/mk/cmake/Modules/FindOGG.cmake @@ -6,10 +6,6 @@ # VORBIS_FILE_LIBRARY # -IF(WANT_STATIC_LIBS) - OPTION(OGG_STATIC "Set to ON to link your project with static library (instead of DLL)." ON) -ENDIF() - # check for cache to avoid littering log IF(OGG_INCLUDE_DIR AND OGG_LIBRARY AND VORBIS_LIBRARY) SET(OGG_BE_QUIET TRUE) @@ -17,14 +13,14 @@ ENDIF() FIND_PATH(OGG_INCLUDE_DIR ogg/ogg.h) -IF (OGG_STATIC AND NOT OGG_LIBRARY) - FIND_LIBRARY(OGG_LIBRARY NAMES libogg.a ogg) +IF (STATIC_OGG AND NOT OGG_LIBRARY) + FIND_LIBRARY(OGG_LIBRARY NAMES libogg.a ogg.a ogg) ELSE() FIND_LIBRARY(OGG_LIBRARY NAMES ogg) ENDIF() -IF (OGG_STATIC AND NOT VORBIS_LIBRARY) - FIND_LIBRARY(VORBIS_LIBRARY NAMES libvorbis.a vorbis) +IF (STATIC_OGG AND NOT VORBIS_LIBRARY) + FIND_LIBRARY(VORBIS_LIBRARY NAMES libvorbis.a vorbis.a vorbis) ELSE() FIND_LIBRARY(VORBIS_LIBRARY NAMES vorbis) ENDIF() @@ -33,8 +29,8 @@ ENDIF() #IF(NOT APPLE) # comment above is full of lies -IF (OGG_STATIC AND NOT VORBIS_FILE_LIBRARY) - FIND_LIBRARY(VORBIS_FILE_LIBRARY NAMES libvorbisfile.a vorbisfile) +IF (STATIC_OGG AND NOT VORBIS_FILE_LIBRARY) + FIND_LIBRARY(VORBIS_FILE_LIBRARY NAMES libvorbisfile.a vorbisfile.a vorbisfile) ELSE() FIND_LIBRARY(VORBIS_FILE_LIBRARY NAMES vorbisfile) ENDIF() diff --git a/mk/cmake/Modules/FindXercesC.cmake b/mk/cmake/Modules/FindXercesC.cmake index 60febbc5..933525f9 100644 --- a/mk/cmake/Modules/FindXercesC.cmake +++ b/mk/cmake/Modules/FindXercesC.cmake @@ -46,16 +46,12 @@ IF (XERCESC_INCLUDE AND XERCESC_LIBRARY) #MESSAGE(STATUS "Found cached Xerces-C lib [${XERCESC_LIBRARY}]") ENDIF (XERCESC_INCLUDE AND XERCESC_LIBRARY) -IF(WANT_STATIC_LIBS) - OPTION(XERCESC_STATIC "Set to ON to link your project with static library (instead of DLL)." ON) -ENDIF() - -IF (NOT ${XERCESC_WAS_STATIC} STREQUAL ${XERCESC_STATIC}) +IF (NOT ${XERCESC_WAS_STATIC} STREQUAL ${STATIC_XercesC}) UNSET(XERCESC_LIBRARY CACHE) UNSET(XERCESC_LIBRARY_DEBUG CACHE) -ENDIF (NOT ${XERCESC_WAS_STATIC} STREQUAL ${XERCESC_STATIC}) +ENDIF (NOT ${XERCESC_WAS_STATIC} STREQUAL ${STATIC_XercesC}) -SET(XERCESC_WAS_STATIC ${XERCESC_STATIC} CACHE INTERNAL "" ) +SET(XERCESC_WAS_STATIC ${STATIC_XercesC} CACHE INTERNAL "" ) IF (XERCESC_INCLUDE_DIR) SET(XERCESC_INCLUDE ${XERCESC_INCLUDE_DIR}) @@ -73,7 +69,7 @@ ENDIF() #MESSAGE(STATUS "Current Xerces-C lib [${XERCESC_LIBRARY}] XERCESC_INCLUDE [${XERCESC_INCLUDE}") -IF (XERCESC_STATIC AND NOT XERCESC_LIBRARY) +IF (STATIC_XercesC AND NOT XERCESC_LIBRARY) MESSAGE(STATUS "Looking for static Xerces-C lib...") FIND_LIBRARY(XERCESC_LIBRARY NAMES xerces-c_static_3 libxerces-c.a libxerces-c_3.a libxerces-c2_8_0.a libxerces-c_2.a libXerces.a PATHS diff --git a/mk/cmake/Modules/ReqVersAndStaticConf.cmake b/mk/cmake/Modules/ReqVersAndStaticConf.cmake new file mode 100644 index 00000000..ae730264 --- /dev/null +++ b/mk/cmake/Modules/ReqVersAndStaticConf.cmake @@ -0,0 +1,76 @@ +# +# Required Versions And Static Config +# +# Things related with "Static build" and optional versioning. +# +# By assumption in general all should be done in the way that the default dynamic +# compilation should work even without this file. +# + +IF(WANT_STATIC_LIBS) + IF(BUILD_MEGAGLEST_MODEL_VIEWER OR BUILD_MEGAGLEST_MAP_EDITOR OR BUILD_MEGAGLEST) + # shared lib + FOREACH(STATIC_LIB + OpenSSL + CURL + XercesC + LUA + JPEG + PNG + FontConfig + FTGL + GLEW + FriBiDi + Miniupnpc + Ircclient) + LIST(APPEND LIST_OF_STATIC_LIBS_MG "${STATIC_LIB}") + ENDFOREACH() + ENDIF() + IF(BUILD_MEGAGLEST) + # only libs not used by shared lib + FOREACH(STATIC_LIB + OGG) + LIST(APPEND LIST_OF_STATIC_LIBS_MG "${STATIC_LIB}") + ENDFOREACH() + ENDIF() + FOREACH(STATIC_LIB ${LIST_OF_STATIC_LIBS_MG}) + IF(DEFINED WANT_USE_${STATIC_LIB} AND NOT WANT_USE_${STATIC_LIB}) + IF(DEFINED STATIC_${STATIC_LIB}) + UNSET(STATIC_${STATIC_LIB} CACHE) + ENDIF() + ELSE() + OPTION("STATIC_${STATIC_LIB}" "Set to ON to link your project with static library (instead of DLL)." ON) + ENDIF() + ENDFOREACH() +ENDIF() + +IF(STATIC_OpenSSL) + SET(OPENSSL_USE_STATIC_LIBS ON) +ENDIF() + +IF(STATIC_CURL AND UNIX) + ADD_DEFINITIONS("-DCURL_STATICLIB") +ENDIF() +SET(CURL_MIN_VERSION_MG "7.16.4") + +IF(NOT DEFINED FORCE_LUA_VERSION) + SET(FORCE_LUA_VERSION "OFF" CACHE STRING "Try to force some specific lua version (for example older). On the list may be also not existing versions yet for future use." FORCE) +ENDIF() +SET_PROPERTY(CACHE FORCE_LUA_VERSION PROPERTY STRINGS OFF 5.5 5.4 5.3 5.2 5.1 5.0) +SET(ALL_LUA_VERSIONS_IN_ORDER 5.3 5.2 5.1 5.4 5.5 5.0) + +IF(STATIC_JPEG) + SET(JPEG_NAMES jpeg.a libjpeg.a ${JPEG_NAMES}) +ENDIF() + +IF(STATIC_PNG) + list(APPEND PNG_NAMES png.a libpng.a) + set(_PNG_VERSION_SUFFIXES 17 16 15 14 12 18 19 20 21 22) + foreach(v IN LISTS _PNG_VERSION_SUFFIXES) + list(APPEND PNG_NAMES png${v}.a libpng${v}.a) + list(APPEND PNG_NAMES_DEBUG png${v}d.a libpng${v}d.a) + endforeach() + unset(_PNG_VERSION_SUFFIXES) +ENDIF() + +SET(VLC_MIN_VERSION_MG "1.1.0") diff --git a/mk/linux/build-mg.sh b/mk/linux/build-mg.sh index 505f5edc..020e54be 100755 --- a/mk/linux/build-mg.sh +++ b/mk/linux/build-mg.sh @@ -138,14 +138,14 @@ detect_system echo 'We have detected the following system:' echo ' [ '"$distribution"' ] [ '"$release"' ] [ '"$codename"' ] [ '"$architecture"' ]' -EXTRA_CMAKE_OPTIONS="${EXTRA_CMAKE_OPTIONS} -DFONTCONFIG_STATIC=OFF" +EXTRA_CMAKE_OPTIONS="${EXTRA_CMAKE_OPTIONS} -DSTATIC_FONTCONFIG=OFF" case $distribution in Debian) case $release in 6.*|7.*) ;; *) echo 'Turning ON dynamic FTGL, LUA, JPEG, PNG ... and forcing use the embedded IRCCLIENT' - EXTRA_CMAKE_OPTIONS="${EXTRA_CMAKE_OPTIONS} -DFTGL_STATIC=OFF -DLUA_STATIC=OFF -DJPEG_STATIC=OFF -DPNG_STATIC=OFF -DOGG_STATIC=OFF -DFORCE_USE_EMBEDDED_IRCCLIENT=ON" + EXTRA_CMAKE_OPTIONS="${EXTRA_CMAKE_OPTIONS} -DSTATIC_FTGL=OFF -DSTATIC_LUA=OFF -DSTATIC_JPEG=OFF -DSTATIC_PNG=OFF -DSTATIC_OGG=OFF -DFORCE_USE_EMBEDDED_Ircclient=ON" ;; esac ;; @@ -155,7 +155,7 @@ case $distribution in 10.*|11.*|12.*|13.*|14.*) ;; *) echo 'Turning ON dynamic FTGL, LUA, JPEG, PNG ... and forcing use the embedded IRCCLIENT' - EXTRA_CMAKE_OPTIONS="${EXTRA_CMAKE_OPTIONS} -DFTGL_STATIC=OFF -DLUA_STATIC=OFF -DJPEG_STATIC=OFF -DPNG_STATIC=OFF -DOGG_STATIC=OFF -DFORCE_USE_EMBEDDED_IRCCLIENT=ON" + EXTRA_CMAKE_OPTIONS="${EXTRA_CMAKE_OPTIONS} -DSTATIC_FTGL=OFF -DSTATIC_LUA=OFF -DSTATIC_JPEG=OFF -DSTATIC_PNG=OFF -DSTATIC_OGG=OFF -DFORCE_USE_EMBEDDED_Ircclient=ON" ;; esac ;; @@ -165,7 +165,7 @@ case $distribution in 13|13.*|14|15|16|17|17.*) ;; *) echo 'Turning ON dynamic FTGL, LUA, JPEG, PNG ... and forcing use the embedded IRCCLIENT' - EXTRA_CMAKE_OPTIONS="${EXTRA_CMAKE_OPTIONS} -DFTGL_STATIC=OFF -DLUA_STATIC=OFF -DJPEG_STATIC=OFF -DPNG_STATIC=OFF -DOGG_STATIC=OFF -DFORCE_USE_EMBEDDED_IRCCLIENT=ON" + EXTRA_CMAKE_OPTIONS="${EXTRA_CMAKE_OPTIONS} -DSTATIC_FTGL=OFF -DSTATIC_LUA=OFF -DSTATIC_JPEG=OFF -DSTATIC_PNG=OFF -DSTATIC_OGG=OFF -DFORCE_USE_EMBEDDED_Ircclient=ON" ;; esac ;; @@ -174,7 +174,7 @@ case $distribution in case $release in *) echo 'Turning ON dynamic CURL ...' - EXTRA_CMAKE_OPTIONS="${EXTRA_CMAKE_OPTIONS} -DFORCE_CURL_DYNAMIC_LIBS=ON" + EXTRA_CMAKE_OPTIONS="${EXTRA_CMAKE_OPTIONS} -DSTATIC_CURL=OFF" ;; esac ;; @@ -183,7 +183,7 @@ case $distribution in case $release in *) echo 'Turning ON dynamic CURL ...' - EXTRA_CMAKE_OPTIONS="${EXTRA_CMAKE_OPTIONS} -DFORCE_CURL_DYNAMIC_LIBS=ON" + EXTRA_CMAKE_OPTIONS="${EXTRA_CMAKE_OPTIONS} -DSTATIC_CURL=OFF" ;; esac ;; diff --git a/mk/macosx/build-mg.sh b/mk/macosx/build-mg.sh index f702ab09..ee7e8501 100755 --- a/mk/macosx/build-mg.sh +++ b/mk/macosx/build-mg.sh @@ -137,7 +137,7 @@ echo 'We have detected the following system:' echo " [ $distribution ] [ $release ] [ $architecture ] [ $xcode_ver ]" case $release in *) echo 'Turning ON dynamic PNG ...' - EXTRA_CMAKE_OPTIONS="${EXTRA_CMAKE_OPTIONS} -DPNG_STATIC=OFF";; + EXTRA_CMAKE_OPTIONS="${EXTRA_CMAKE_OPTIONS} -DSTATIC_PNG=OFF";; esac case $xcode_ver in # en.wikipedia.org/wiki/Xcode, Version, OS X SDK(s) <- lowest, but not less than 10.4 diff --git a/source/g3d_viewer/CMakeLists.txt b/source/g3d_viewer/CMakeLists.txt index 9dbed197..8f199f6b 100644 --- a/source/g3d_viewer/CMakeLists.txt +++ b/source/g3d_viewer/CMakeLists.txt @@ -32,8 +32,7 @@ IF(BUILD_MEGAGLEST_MODEL_VIEWER) ENDIF() IF(NOT WIN32) - - IF(WANT_XERCES) + IF(WANT_USE_XercesC) FIND_PACKAGE(XercesC REQUIRED) INCLUDE_DIRECTORIES(${XERCESC_INCLUDE}) SET(EXTERNAL_LIBS ${EXTERNAL_LIBS} ${XERCESC_LIBRARY}) @@ -102,7 +101,7 @@ IF(BUILD_MEGAGLEST_MODEL_VIEWER) ${GLEST_MAIN_INCLUDE_ROOT}global ${GLEST_MAIN_INCLUDE_ROOT}sound) - IF(WANT_STREFLOP) + IF(WANT_USE_STREFLOP) SET(GLEST_LIB_INCLUDE_DIRS ${GLEST_LIB_INCLUDE_DIRS} ${GLEST_LIB_INCLUDE_ROOT}streflop) @@ -112,10 +111,8 @@ IF(BUILD_MEGAGLEST_MODEL_VIEWER) IF(WIN32) INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/source/shared_lib/include/platform/win32) - INCLUDE_DIRECTORIES( ${GLEST_LIB_INCLUDE_ROOT}platform/${SDL_VERSION_SNAME} ) - ELSE() - INCLUDE_DIRECTORIES( ${GLEST_LIB_INCLUDE_ROOT}platform/${SDL_VERSION_SNAME} ) ENDIF() + INCLUDE_DIRECTORIES( ${GLEST_LIB_INCLUDE_ROOT}platform/${SDL_VERSION_SNAME} ) SET(MG_SOURCE_FILES "../glest_game/graphics/particle_type.cpp" "../glest_game/graphics/unit_particle_type.cpp" "../glest_game/global/config.cpp") @@ -154,15 +151,11 @@ IF(BUILD_MEGAGLEST_MODEL_VIEWER) ADD_EXECUTABLE(${TARGET_NAME} ${MG_SOURCE_FILES} ${MG_INCLUDE_FILES}) - IF(WANT_STREFLOP) + IF(WANT_USE_STREFLOP) TARGET_LINK_LIBRARIES(${TARGET_NAME} streflop) ENDIF() - IF(WIN32) - TARGET_LINK_LIBRARIES(${TARGET_NAME} libmegaglest) - ELSE() - TARGET_LINK_LIBRARIES(${TARGET_NAME} libmegaglest) - ENDIF() + TARGET_LINK_LIBRARIES(${TARGET_NAME} libmegaglest) TARGET_LINK_LIBRARIES(${TARGET_NAME} ${EXTERNAL_LIBS}) IF(EXISTS ${HELP2MAN}) @@ -219,6 +212,5 @@ IF(BUILD_MEGAGLEST_MODEL_VIEWER) DESTINATION ${MEGAGLEST_ICON_INSTALL_PATH}) ENDIF() ENDIF() - ENDIF() ENDIF() diff --git a/source/glest_game/CMakeLists.txt b/source/glest_game/CMakeLists.txt index b9687c08..0b64aa96 100644 --- a/source/glest_game/CMakeLists.txt +++ b/source/glest_game/CMakeLists.txt @@ -41,7 +41,7 @@ IF(BUILD_MEGAGLEST) SET(EXTERNAL_LIBS ${EXTERNAL_LIBS} ${OPENGL_LIBRARY}) ENDIF() - IF(WANT_XERCES) + IF(WANT_USE_XercesC) FIND_PACKAGE(XercesC REQUIRED) INCLUDE_DIRECTORIES(${XERCESC_INCLUDE}) IF(UNIX) @@ -59,7 +59,7 @@ IF(BUILD_MEGAGLEST) INCLUDE_DIRECTORIES(${OGG_INCLUDE_DIR}) IF(UNIX) SET(EXTERNAL_LIBS ${EXTERNAL_LIBS} ${VORBIS_FILE_LIBRARY}) - IF(OGG_STATIC) + IF(STATIC_OGG) SET(EXTERNAL_LIBS ${EXTERNAL_LIBS} ${OGG_LIBRARY} ${VORBIS_LIBRARY} ${OGG_LIBRARY}) ENDIF() ENDIF() @@ -76,26 +76,23 @@ IF(BUILD_MEGAGLEST) SET(EXTERNAL_LIBS ${EXTERNAL_LIBS} ${JPEG_LIBRARY}) ENDIF() - IF(WANT_STATIC_LIBS) - SET(PNG_NAMES libpng.a ${PNG_NAMES}) - ENDIF() FIND_PACKAGE(PNG REQUIRED) INCLUDE_DIRECTORIES(${PNG_INCLUDE_DIR}) IF(UNIX) SET(EXTERNAL_LIBS ${EXTERNAL_LIBS} ${PNG_LIBRARY}) ENDIF() - IF(WANT_STATIC_LIBS) - OPTION(OPENSSL_USE_STATIC_LIBS "Set to ON to link your project with static library (instead of DLL)." ON) - ENDIF() - FIND_PACKAGE(OpenSSL) - IF(OPENSSL_FOUND) - INCLUDE_DIRECTORIES(${OPENSSL_INCLUDE_DIR}) - ELSE() - MESSAGE(STATUS "**NOTE: OpenSSL is usually not required.") + IF(WANT_USE_OpenSSL) + FIND_PACKAGE(OpenSSL) + IF(OPENSSL_FOUND) + INCLUDE_DIRECTORIES(${OPENSSL_INCLUDE_DIR}) + ELSE() + MESSAGE(STATUS "**NOTE: OpenSSL is usually not required.") + ENDIF() ENDIF() FIND_PACKAGE(CURL REQUIRED) + INCLUDE(${CMAKE_SOURCE_DIR}/mk/cmake/Modules/CurlGetConfig.cmake) INCLUDE_DIRECTORIES(${CURL_INCLUDE_DIRS}) IF(UNIX) IF(NOT OPENSSL_FOUND) @@ -113,7 +110,11 @@ IF(BUILD_MEGAGLEST) SET(EXTERNAL_LIBS ${EXTERNAL_LIBS} ${GLEW_LIBRARIES}) ENDIF() - #SET(LIBVLC_MIN_VERSION "2.0.1") + IF(VLC_MIN_VERSION_MG) + SET(LIBVLC_MIN_VERSION "${VLC_MIN_VERSION_MG}") + ELSE() + SET(LIBVLC_MIN_VERSION "1.1.0") + ENDIF() FIND_PACKAGE(LIBVLC) IF(LIBVLC_FOUND AND NOT LIBVLC_VERSION STRLESS "${LIBVLC_MIN_VERSION}") @@ -169,7 +170,7 @@ IF(BUILD_MEGAGLEST) ${GLEST_LIB_INCLUDE_ROOT}lua ${GLEST_LIB_INCLUDE_ROOT}map) - IF(WANT_STREFLOP) + IF(WANT_USE_STREFLOP) SET(GLEST_LIB_INCLUDE_DIRS ${GLEST_LIB_INCLUDE_DIRS} ${GLEST_LIB_INCLUDE_ROOT}streflop @@ -202,7 +203,7 @@ IF(BUILD_MEGAGLEST) FILE(GLOB SRC_FILES_FROM_THIS_DIR ${SRC_DIR_TO_GLOB}/*.c) SET(MG_SOURCE_FILES ${MG_SOURCE_FILES} ${SRC_FILES_FROM_THIS_DIR}) FILE(GLOB INCLUDE_FILES_FROM_THIS_DIR ${SRC_DIR_TO_GLOB}/*.h) - SET(MG_INCLUDE_FILES ${MG_INCLUDE_FILES} ${INCLUDE_FILES_FROM_THIS_DIR}) + SET(MG_INCLUDE_FILES ${MG_INCLUDE_FILES} ${INCLUDE_FILES_FROM_THIS_DIR}) IF(APPLE) FILE(GLOB SRC_FILES_FROM_THIS_DIR ${SRC_DIR_TO_GLOB}/*.mm) @@ -210,7 +211,7 @@ IF(BUILD_MEGAGLEST) SET(MG_SOURCE_FILES ${MG_SOURCE_FILES} ${SRC_FILES_FROM_THIS_DIR}) FILE(GLOB SRC_FILES_FROM_THIS_DIR ${SRC_DIR_TO_GLOB}/*.m) #MESSAGE(STATUS "SRC_FILES_FROM_THIS_DIR: ${SRC_FILES_FROM_THIS_DIR}") - SET(MG_SOURCE_FILES ${MG_SOURCE_FILES} ${SRC_FILES_FROM_THIS_DIR}) + SET(MG_SOURCE_FILES ${MG_SOURCE_FILES} ${SRC_FILES_FROM_THIS_DIR}) ENDIF(APPLE) ENDFOREACH(DIR) @@ -224,12 +225,7 @@ IF(BUILD_MEGAGLEST) ENDIF() IF(WIN32) - SET(CMAKE_CXX_FLAGS_NONE "${CMAKE_CXX_FLAGS_NONE} -Wl,-subsystem,console -mconsole") - SET(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -Wl,-subsystem,console -mconsole") - SET(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -Wl,-subsystem,console -mconsole") - SET(CMAKE_CXX_FLAGS_RELWITHDEBINFO "${CMAKE_CXX_FLAGS_RELWITHDEBINFO} -Wl,-subsystem,console -mconsole") - SET(CMAKE_CXX_FLAGS_MINSIZEREL "${CMAKE_CXX_FLAGS_MINSIZEREL} -Wl,-subsystem,console -mconsole") - + SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wl,-subsystem,console -mconsole") ENDIF() IF(WANT_DEV_OUTPATH) @@ -243,26 +239,28 @@ IF(BUILD_MEGAGLEST) ADD_EXECUTABLE(${TARGET_NAME} ${MG_SOURCE_FILES} ${MG_INCLUDE_FILES}) SET(MG_STREFLOP "") - IF(WANT_STREFLOP) + IF(WANT_USE_STREFLOP) SET(MG_STREFLOP "streflop") ENDIF() - find_package( GoogleBreakpad ) - if(BREAKPAD_EXCEPTION_HANDLER_FOUND AND BREAKPAD_EXCEPTION_HANDLER_LIBRARIES) - add_definitions(-DHAVE_GOOGLE_BREAKPAD) + if(WANT_USE_GoogleBreakpad) + find_package( GoogleBreakpad ) + if(BREAKPAD_EXCEPTION_HANDLER_FOUND AND BREAKPAD_EXCEPTION_HANDLER_LIBRARIES) + add_definitions(-DHAVE_GOOGLE_BREAKPAD) - include_directories( ${BREAKPAD_EXCEPTION_HANDLER_INCLUDE_DIR} ) - SET(EXTERNAL_LIBS ${EXTERNAL_LIBS} ${BREAKPAD_EXCEPTION_HANDLER_LIBRARIES}) + include_directories( ${BREAKPAD_EXCEPTION_HANDLER_INCLUDE_DIR} ) + SET(EXTERNAL_LIBS ${EXTERNAL_LIBS} ${BREAKPAD_EXCEPTION_HANDLER_LIBRARIES}) - else() - message(STATUS "** WARNING: Could not find GoogleBreakpad. Disabling GoogleBreakpad support.") + else() + message(STATUS "** WARNING: Could not find GoogleBreakpad. Disabling GoogleBreakpad support.") + endif() endif() IF(WIN32) TARGET_LINK_LIBRARIES(${TARGET_NAME} stdc++ gcc odbc32 wsock32 winspool winmm shell32 comctl32 ctl3d32 advapi32 wsock32 opengl32 glu32 ole32 oleaut32 uuid mingw32 ddraw dsound dxguid ws2_32 iphlpapi wsock32 libogg libvorbis libvorbisfile zlib jpeg libpng xerces-c2_8_0 OpenAL32 libcurl winmm gdi32 opengl32 glu32 ${SDL_VERSION_NAME} ${SDL_VERSION_NAME}main lua5.1 ${MG_STREFLOP} libmegaglest stdc++ moldname mingwex msvcrt user32 kernel32) ENDIF() IF(NOT WIN32) - IF(WANT_STREFLOP) + IF(WANT_USE_STREFLOP) TARGET_LINK_LIBRARIES(${TARGET_NAME} ${MG_STREFLOP}) ENDIF() TARGET_LINK_LIBRARIES(${TARGET_NAME} libmegaglest) @@ -326,12 +324,12 @@ IF(BUILD_MEGAGLEST) INSTALL(FILES "${PROJECT_SOURCE_DIR}/mk/macosx/glest.ini" DESTINATION ${MEGAGLEST_DATA_INSTALL_PATH}) - IF(SINGLE_INSTALL_DIRECTORY AND EXISTS "${PROJECT_SOURCE_DIR}/mk/macosx/p7zip/") + IF(WANT_SINGLE_INSTALL_DIRECTORY AND EXISTS "${PROJECT_SOURCE_DIR}/mk/macosx/p7zip/") INSTALL(DIRECTORY "${PROJECT_SOURCE_DIR}/mk/macosx/p7zip" DESTINATION ${MEGAGLEST_DATA_INSTALL_PATH}) ENDIF() - IF(SINGLE_INSTALL_DIRECTORY AND EXISTS "${PROJECT_SOURCE_DIR}/mk/macosx/lib/") + IF(WANT_SINGLE_INSTALL_DIRECTORY AND EXISTS "${PROJECT_SOURCE_DIR}/mk/macosx/lib/") INSTALL(DIRECTORY "${PROJECT_SOURCE_DIR}/mk/macosx/lib/" DESTINATION "${MEGAGLEST_DATA_INSTALL_PATH}/../../Frameworks/") @@ -362,7 +360,7 @@ IF(BUILD_MEGAGLEST) "${PROJECT_SOURCE_DIR}/mk/linux/megaglest.xpm" DESTINATION ${MEGAGLEST_ICON_INSTALL_PATH}) ELSEIF(UNIX AND APPLE) - IF(NOT SINGLE_INSTALL_DIRECTORY) + IF(NOT WANT_SINGLE_INSTALL_DIRECTORY) INSTALL(FILES "${PROJECT_SOURCE_DIR}/mk/macosx/bundle_resources/MegaGlest.icns" DESTINATION ${MEGAGLEST_ICON_INSTALL_PATH}) diff --git a/source/glest_map_editor/CMakeLists.txt b/source/glest_map_editor/CMakeLists.txt index 6180ff7a..c345719d 100644 --- a/source/glest_map_editor/CMakeLists.txt +++ b/source/glest_map_editor/CMakeLists.txt @@ -85,7 +85,7 @@ IF(BUILD_MEGAGLEST_MAP_EDITOR) ${GLEST_LIB_INCLUDE_ROOT}xml/rapidxml ${GLEST_MAIN_INCLUDE_ROOT}global) - IF(WANT_STREFLOP) + IF(WANT_USE_STREFLOP) SET(GLEST_LIB_INCLUDE_DIRS ${GLEST_LIB_INCLUDE_DIRS} ${GLEST_LIB_INCLUDE_ROOT}streflop) @@ -95,11 +95,8 @@ IF(BUILD_MEGAGLEST_MAP_EDITOR) IF(WIN32) INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/source/shared_lib/include/platform/win32) - INCLUDE_DIRECTORIES( ${GLEST_LIB_INCLUDE_ROOT}platform/${SDL_VERSION_SNAME} ) - ELSE() - INCLUDE_DIRECTORIES( ${GLEST_LIB_INCLUDE_ROOT}platform/${SDL_VERSION_SNAME} ) ENDIF() - + INCLUDE_DIRECTORIES( ${GLEST_LIB_INCLUDE_ROOT}platform/${SDL_VERSION_SNAME} ) SET(MG_SOURCE_FILES "../glest_game/global/config.cpp") @@ -139,7 +136,7 @@ IF(BUILD_MEGAGLEST_MAP_EDITOR) ADD_EXECUTABLE(${TARGET_NAME} ${MG_SOURCE_FILES} ${MG_INCLUDE_FILES}) SET(MG_STREFLOP "") - IF(WANT_STREFLOP) + IF(WANT_USE_STREFLOP) SET(MG_STREFLOP "streflop") ENDIF() @@ -147,15 +144,11 @@ IF(BUILD_MEGAGLEST_MAP_EDITOR) TARGET_LINK_LIBRARIES(${TARGET_NAME} stdc++ gcc odbc32 wsock32 winspool winmm shell32 comctl32 ctl3d32 advapi32 wsock32 opengl32 glu32 ole32 oleaut32 uuid mingw32 ddraw dsound dxguid ws2_32 iphlpapi wsock32 libogg libvorbis libvorbisfile zlib jpeg libpng xerces-c2_8_0 OpenAL32 libcurl winmm gdi32 opengl32 glu32 ${SDL_VERSION_NAME} ${SDL_VERSION_NAME}main lua5.1 ${MG_STREFLOP} libmegaglest stdc++ moldname mingwex msvcrt user32 kernel32) ENDIF() - IF(WANT_STREFLOP) + IF(WANT_USE_STREFLOP) TARGET_LINK_LIBRARIES(${TARGET_NAME} ${MG_STREFLOP}) ENDIF() - IF(WIN32) - TARGET_LINK_LIBRARIES(${TARGET_NAME} libmegaglest) - ELSE() - TARGET_LINK_LIBRARIES(${TARGET_NAME} libmegaglest) - ENDIF() + TARGET_LINK_LIBRARIES(${TARGET_NAME} libmegaglest) TARGET_LINK_LIBRARIES(${TARGET_NAME} ${EXTERNAL_LIBS}) IF(EXISTS ${HELP2MAN}) @@ -176,7 +169,6 @@ IF(BUILD_MEGAGLEST_MAP_EDITOR) ENDIF() ENDIF() - # Requires an install prefix for the items below to work IF(NOT CMAKE_INSTALL_PREFIX STREQUAL "") # Installation of the program diff --git a/source/shared_lib/CMakeLists.txt b/source/shared_lib/CMakeLists.txt index 18747bc3..658a3186 100644 --- a/source/shared_lib/CMakeLists.txt +++ b/source/shared_lib/CMakeLists.txt @@ -2,7 +2,7 @@ # streflop # IMPORTANT: should come BEFORE finding packages -IF(WANT_STREFLOP) +IF(WANT_USE_STREFLOP) ADD_SUBDIRECTORY(sources/streflop) ENDIF() @@ -17,14 +17,6 @@ IF(BUILD_MEGAGLEST_MODEL_VIEWER OR BUILD_MEGAGLEST_MAP_EDITOR OR BUILD_MEGAGLEST INCLUDE (CheckIncludeFiles) - #Game options - option(ENABLE_FRIBIDI "Enable FriBIDi support" ON) - IF(NOT FORCE_LUA_VERSION) - SET(FORCE_LUA_VERSION "OFF" CACHE STRING "Try to force some specific lua version (for example older). On the list may be also not existing versions yet for future use." FORCE) - ENDIF() - SET_PROPERTY(CACHE FORCE_LUA_VERSION PROPERTY STRINGS OFF 5.5 5.4 5.3 5.2 5.1 5.0) - SET(ALL_LUA_VERSIONS_IN_ORDER 5.3 5.2 5.1 5.4 5.5 5.0) - IF(WIN32) SET(CMAKE_LIBRARY_PATH ${CMAKE_LIBRARY_PATH} ${PROJECT_SOURCE_DIR}/source/win32_deps/lib @@ -53,17 +45,17 @@ IF(BUILD_MEGAGLEST_MODEL_VIEWER OR BUILD_MEGAGLEST_MAP_EDITOR OR BUILD_MEGAGLEST INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/source/shared_lib/include/platform/win32) ENDIF() - IF(WANT_STATIC_LIBS) - OPTION(OPENSSL_USE_STATIC_LIBS "Set to ON to link your project with static library (instead of DLL)." ON) - ENDIF() - FIND_PACKAGE(OpenSSL) - IF(OPENSSL_FOUND) - INCLUDE_DIRECTORIES(${OPENSSL_INCLUDE_DIR}) - ELSE() - MESSAGE(STATUS "**NOTE: OpenSSL is usually not required.") + IF(WANT_USE_OpenSSL) + FIND_PACKAGE(OpenSSL) + IF(OPENSSL_FOUND) + INCLUDE_DIRECTORIES(${OPENSSL_INCLUDE_DIR}) + ELSE() + MESSAGE(STATUS "**NOTE: OpenSSL is usually not required.") + ENDIF() ENDIF() FIND_PACKAGE(CURL REQUIRED) + INCLUDE(${CMAKE_SOURCE_DIR}/mk/cmake/Modules/CurlGetConfig.cmake) INCLUDE_DIRECTORIES(${CURL_INCLUDE_DIRS}) IF(UNIX) IF(NOT OPENSSL_FOUND) @@ -93,7 +85,7 @@ IF(BUILD_MEGAGLEST_MODEL_VIEWER OR BUILD_MEGAGLEST_MAP_EDITOR OR BUILD_MEGAGLEST SET(EXTERNAL_LIBS ${EXTERNAL_LIBS} ${X11_LIBRARIES}) ENDIF() - IF(WANT_XERCES) + IF(WANT_USE_XercesC) FIND_PACKAGE(XercesC REQUIRED) INCLUDE_DIRECTORIES(${XERCESC_INCLUDE_DIR}) IF(UNIX) @@ -113,35 +105,20 @@ IF(BUILD_MEGAGLEST_MODEL_VIEWER OR BUILD_MEGAGLEST_MAP_EDITOR OR BUILD_MEGAGLEST SET(EXTERNAL_LIBS ${EXTERNAL_LIBS} ${LUA_LIBRARIES} ${CMAKE_DL_LIBS}) ENDIF() - IF(WANT_STATIC_LIBS) - OPTION(JPEG_STATIC "Set to ON to link your project with static library (instead of DLL)." ON) - OPTION(PNG_STATIC "Set to ON to link your project with static library (instead of DLL)." ON) - ENDIF() - IF(JPEG_STATIC) - SET(JPEG_NAMES libjpeg.a ${JPEG_NAMES}) - ELSE() - SET(JPEG_NAMES libjpeg ${JPEG_NAMES}) - ENDIF() - FIND_PACKAGE(JPEG REQUIRED) INCLUDE_DIRECTORIES(${JPEG_INCLUDE_DIR}) IF(UNIX) SET(EXTERNAL_LIBS ${EXTERNAL_LIBS} ${JPEG_LIBRARY}) ENDIF() - - IF(PNG_STATIC) - SET(PNG_NAMES libpng.a ${PNG_NAMES}) - ELSE() - SET(PNG_NAMES libpng ${PNG_NAMES}) - ENDIF() + FIND_PACKAGE(PNG REQUIRED) INCLUDE_DIRECTORIES(${PNG_INCLUDE_DIR}) IF(UNIX) SET(EXTERNAL_LIBS ${EXTERNAL_LIBS} ${PNG_LIBRARY}) ENDIF() - OPTION(WANT_FONTCONFIG "use the library fontconfig" ON) - IF(WANT_FONTCONFIG) + OPTION(WANT_USE_FontConfig "use the library fontconfig" ON) + IF(WANT_USE_FontConfig) FIND_PACKAGE(FontConfig) IF(FONTCONFIG_FOUND) MESSAGE(STATUS "**NOTE: FontConfig support was detected and enabled.") @@ -153,46 +130,34 @@ IF(BUILD_MEGAGLEST_MODEL_VIEWER OR BUILD_MEGAGLEST_MAP_EDITOR OR BUILD_MEGAGLEST ENDIF(FONTCONFIG_FOUND) ENDIF() - OPTION(USE_FTGL "Use FTGL for on-screen fonts (found on your system)" ON) - if(USE_FTGL) - ADD_DEFINITIONS(-DUSE_FTGL) - - find_package( Freetype REQUIRED) - include_directories( ${FREETYPE_INCLUDE_DIRS} ) - - endif(USE_FTGL) - + OPTION(WANT_USE_FTGL "Use libFTGL for on-screen fonts (found on your system)" ON) + find_package( Freetype REQUIRED) + include_directories( ${FREETYPE_INCLUDE_DIRS} ) FIND_PACKAGE(FTGL) - - - IF(USE_FTGL) + IF(WANT_USE_FTGL) if (FTGL_FOUND) MESSAGE(STATUS "**NOTE: FTGL font support was detected and enabled.") - else() - MESSAGE(STATUS - "**NOTE: Warning! FTGL has been enabled but not detected. Your compilation will probably break. Turn off FTGL support by setting USE_FTGL to false, or visit http://ftgl.wiki.sourceforge.net/ for help on installing FTGL.") - endif() - - ADD_DEFINITIONS(-DUSE_FTGL) - - #set(FTGL_INCUDE_DIR ${FTGL_INCLUDE_DIR} ${CMAKE_INCLUDE_PATH} ${OPENGL_INCLUDE_DIR}) - #set(FTGL_LINK_DIRS ${FTGL_LIBRARY_DIRS} ) - #set(FTGL_LINK_TARGETS ftgl freetype) - - INCLUDE_DIRECTORIES(${FTGL_INCLUDE_DIR}) - SET(EXTERNAL_LIBS ${EXTERNAL_LIBS} ${FTGL_LIBRARY}) + ADD_DEFINITIONS(-DUSE_FTGL) + INCLUDE_DIRECTORIES(${FTGL_INCLUDE_DIR}) + IF(UNIX) + SET(EXTERNAL_LIBS ${EXTERNAL_LIBS} ${FTGL_LIBRARY}) + ENDIF() + else() + MESSAGE("**NOTE: Warning! FTGL has been enabled but not detected. Your compilation will probably break. Turn off FTGL support by setting WANT_USE_FTGL to false, or visit http://ftgl.wiki.sourceforge.net/ for help on installing FTGL.") + endif() ELSE() IF(FTGL_FOUND) - MESSAGE(STATUS "**NOTE: Warning: FTGL font support was detected but NOT enabled. You can enable it by setting USE_FTGL=true") + MESSAGE(STATUS "**NOTE: Warning: FTGL font support was detected but NOT enabled. You can enable it by setting WANT_USE_FTGL=true") ELSE() MESSAGE(STATUS "**NOTE: Warning: FTGL font support was not detected. Visit http://ftgl.wiki.sourceforge.net/ for help on installing FTGL.") ENDIF() - - ENDIF(USE_FTGL) + ENDIF() - FIND_PACKAGE(Freetype REQUIRED) - INCLUDE_DIRECTORIES(${FREETYPE_INCLUDE_PATH}) + IF(NOT FREETYPE_FOUND) + FIND_PACKAGE(Freetype REQUIRED) + INCLUDE_DIRECTORIES(${FREETYPE_INCLUDE_DIRS}) + ENDIF() IF(UNIX) SET(EXTERNAL_LIBS ${EXTERNAL_LIBS} ${FREETYPE_LIBRARY}) ENDIF() @@ -203,12 +168,15 @@ IF(BUILD_MEGAGLEST_MODEL_VIEWER OR BUILD_MEGAGLEST_MAP_EDITOR OR BUILD_MEGAGLEST SET(EXTERNAL_LIBS ${EXTERNAL_LIBS} ${GLEW_LIBRARIES}) ENDIF() - SET(LIBVLC_MIN_VERSION "1.1.0") + IF(VLC_MIN_VERSION_MG) + SET(LIBVLC_MIN_VERSION "${VLC_MIN_VERSION_MG}") + ELSE() + SET(LIBVLC_MIN_VERSION "1.1.0") + ENDIF() FIND_PACKAGE(LIBVLC) + MESSAGE(STATUS "LIBVLC version: ${LIBVLC_VERSION} WANT_USE_VLC macro: ${WANT_USE_VLC}") - MESSAGE(STATUS "LIBVLC version: ${LIBVLC_VERSION} WITH_VLC macro: ${WITH_VLC}") - - IF(LIBVLC_FOUND AND WITH_VLC AND NOT LIBVLC_VERSION STRLESS "${LIBVLC_MIN_VERSION}") + IF(LIBVLC_FOUND AND WANT_USE_VLC AND NOT LIBVLC_VERSION STRLESS "${LIBVLC_MIN_VERSION}") MESSAGE(STATUS "**NOTE: LIBVLC found so videos are supported.") INCLUDE_DIRECTORIES(${LIBVLC_INCLUDE_DIR}) IF(UNIX) @@ -224,35 +192,38 @@ IF(BUILD_MEGAGLEST_MODEL_VIEWER OR BUILD_MEGAGLEST_MAP_EDITOR OR BUILD_MEGAGLEST ELSE() MESSAGE(STATUS "**WARNING: LIBVLC NOT found so videos are NOT supported.") - - IF(WITH_VLC) + + IF(WANT_USE_VLC) MESSAGE(STATUS "**WARNING: LIBVLC NOT found so videos are NOT supported.") ELSE() MESSAGE(STATUS "LIBVLC disabled so videos are NOT supported.") ENDIF() ENDIF() + if(WANT_USE_FriBiDi) + find_package( FriBiDi ) + if(FRIBIDI_FOUND) + add_definitions(-DHAVE_FRIBIDI) - find_package( FriBiDi ) - if(ENABLE_FRIBIDI AND FRIBIDI_LIBRARIES) - add_definitions(-DHAVE_FRIBIDI) + include_directories( ${FRIBIDI_INCLUDE_DIR} ) + SET(EXTERNAL_LIBS ${EXTERNAL_LIBS} ${FRIBIDI_LIBRARIES}) - include_directories( ${FRIBIDI_INCLUDE_DIR} ) - SET(EXTERNAL_LIBS ${EXTERNAL_LIBS} ${FRIBIDI_LIBRARIES}) - - elseif(ENABLE_FRIBIDI AND NOT FRIBIDI_LIBRARIES) - message("Could not find FriBiDi. Disabling FriBiDi support.") + else() + message("Could not find FriBiDi. Disabling FriBiDi support.") + endif() endif() - find_package( GoogleBreakpad ) - if(BREAKPAD_EXCEPTION_HANDLER_FOUND AND BREAKPAD_EXCEPTION_HANDLER_LIBRARIES) - add_definitions(-DHAVE_GOOGLE_BREAKPAD) + if(WANT_USE_GoogleBreakpad) + find_package( GoogleBreakpad ) + if(BREAKPAD_EXCEPTION_HANDLER_FOUND AND BREAKPAD_EXCEPTION_HANDLER_LIBRARIES) + add_definitions(-DHAVE_GOOGLE_BREAKPAD) - #include_directories( ${BREAKPAD_EXCEPTION_HANDLER_INCLUDE_DIR} ) - #SET(EXTERNAL_LIBS ${EXTERNAL_LIBS} ${BREAKPAD_EXCEPTION_HANDLER_LIBRARIES}) + #include_directories( ${BREAKPAD_EXCEPTION_HANDLER_INCLUDE_DIR} ) + #SET(EXTERNAL_LIBS ${EXTERNAL_LIBS} ${BREAKPAD_EXCEPTION_HANDLER_LIBRARIES}) - else() - message(STATUS "** WARNING: Could not find GoogleBreakpad. Disabling GoogleBreakpad support.") + else() + message(STATUS "** WARNING: Could not find GoogleBreakpad. Disabling GoogleBreakpad support.") + endif() endif() ######################################################################################### @@ -272,7 +243,7 @@ IF(BUILD_MEGAGLEST_MODEL_VIEWER OR BUILD_MEGAGLEST_MAP_EDITOR OR BUILD_MEGAGLEST util xml) - IF(WANT_STREFLOP) + IF(WANT_USE_STREFLOP) SET(DIRS_WITH_SRC ${DIRS_WITH_SRC} streflop @@ -283,11 +254,18 @@ IF(BUILD_MEGAGLEST_MODEL_VIEWER OR BUILD_MEGAGLEST_MAP_EDITOR OR BUILD_MEGAGLEST #IF(NOT WANT_STATIC_LIBS) #MESSAGE(STATUS "*** Searching for miniupnpc since WANT_STATIC_LIBS is off ...") #MESSAGE(STATUS "*** Searching for miniupnpc ...") - FIND_PACKAGE(Miniupnpc) - #ENDIF() + + OPTION(FORCE_USE_EMBEDDED_Miniupnpc "Use embedded to source code version of miniupnpc" OFF) + IF(NOT FORCE_USE_EMBEDDED_Miniupnpc) + FIND_PACKAGE(Miniupnpc) + ENDIF() if(NOT MINIUPNP_FOUND) - MESSAGE(STATUS "*** Using EMBEDDED miniupnpc since dev system does not have it... MINIUPNP_FOUND [${MINIUPNP_FOUND}]") + if(NOT FORCE_USE_EMBEDDED_Miniupnpc) + MESSAGE(STATUS "*** Using EMBEDDED miniupnpc since dev system does not have it... MINIUPNP_FOUND [${MINIUPNP_FOUND}]") + else() + MESSAGE(STATUS "*** Using EMBEDDED miniupnpc because it was forced by option 'FORCE_USE_EMBEDDED_Miniupnpc'") + endif() if (NOT WIN32) add_definitions (-DMINIUPNPC_SET_SOCKET_TIMEOUT) @@ -346,21 +324,21 @@ IF(BUILD_MEGAGLEST_MODEL_VIEWER OR BUILD_MEGAGLEST_MAP_EDITOR OR BUILD_MEGAGLEST INCLUDE_DIRECTORIES( ${MG_INCLUDES_ROOT}xml/rapidxml ) INCLUDE_DIRECTORIES("sources/") - option(DISABLE_IRCCLIENT "Disable libircclient support" OFF) - option(FORCE_USE_EMBEDDED_IRCCLIENT "Use embedded to source code version of ircclient" OFF) + OPTION(WANT_USE_Ircclient "Enable libircclient support" ON) + OPTION(FORCE_USE_EMBEDDED_Ircclient "Use embedded to source code version of ircclient" OFF) - IF(NOT DISABLE_IRCCLIENT) + IF(WANT_USE_Ircclient) #IF(NOT WANT_STATIC_LIBS) - IF(NOT FORCE_USE_EMBEDDED_IRCCLIENT) + IF(NOT FORCE_USE_EMBEDDED_Ircclient) MESSAGE(STATUS "*** Searching for libircclient since WANT_STATIC_LIBS is: ${WANT_STATIC_LIBS} ...") FIND_PACKAGE(Ircclient) ENDIF() - if(NOT IRCCLIENT_FOUND OR FORCE_USE_EMBEDDED_IRCCLIENT) - if(NOT FORCE_USE_EMBEDDED_IRCCLIENT) + if(NOT IRCCLIENT_FOUND OR FORCE_USE_EMBEDDED_Ircclient) + if(NOT FORCE_USE_EMBEDDED_Ircclient) MESSAGE(STATUS "*** Using EMBEDDED libircclient since this system does not have it... IRCCLIENT_FOUND [${IRCCLIENT_FOUND}]") else() - MESSAGE(STATUS "*** Using EMBEDDED libircclient because it was forced by option 'FORCE_USE_EMBEDDED_IRCCLIENT'") + MESSAGE(STATUS "*** Using EMBEDDED libircclient because it was forced by option 'FORCE_USE_EMBEDDED_Ircclient'") endif() SET(MG_SOURCE_FILES ${MG_SOURCE_FILES} ${PROJECT_SOURCE_DIR}/source/shared_lib/sources/libircclient/src/libircclient.c) INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/source/shared_lib/include/libircclient/include) @@ -476,28 +454,23 @@ IF(BUILD_MEGAGLEST_MODEL_VIEWER OR BUILD_MEGAGLEST_MAP_EDITOR OR BUILD_MEGAGLEST MESSAGE(STATUS "EXTERNAL_LIBS = [${EXTERNAL_LIBS}]") - OPTION(BUILD_MEGAGLEST_UPNP_DEBUG "Build MegaGlest with UPNP DEBUG enabled" OFF) - IF(BUILD_MEGAGLEST_UPNP_DEBUG) + OPTION(MINIUPNP_DEBUG_BUILD "Build MegaGlest with UPNP DEBUG enabled" OFF) + MARK_AS_ADVANCED(MINIUPNP_DEBUG_BUILD) + IF(MINIUPNP_DEBUG_BUILD) MESSAGE(STATUS "Will try to build MegaGlest shared library with DEBUG info for UPNP") ADD_DEFINITIONS("-DDEBUG") ENDIF() IF(WIN32) TARGET_LINK_LIBRARIES(${TARGET_NAME} stdc++ gcc odbc32 wsock32 winspool winmm shell32 comctl32 ctl3d32 advapi32 wsock32 opengl32 glu32 ole32 oleaut32 uuid mingw32 ddraw dsound dxguid ws2_32 iphlpapi wsock32 libogg libvorbis libvorbisfile zlib jpeg libpng xerces-c2_8_0 OpenAL32 libcurl winmm gdi32 opengl32 glu32 ${SDL_VERSION_NAME} ${SDL_VERSION_NAME}main lua5.1 stdc++ moldname mingwex msvcrt user32 kernel32) - - IF(WANT_STREFLOP) - TARGET_LINK_LIBRARIES(${TARGET_NAME} streflop) - ENDIF() - TARGET_LINK_LIBRARIES(${TARGET_NAME} ${EXTERNAL_LIBS}) - ELSE() - IF(WANT_STREFLOP) - TARGET_LINK_LIBRARIES(${TARGET_NAME} streflop) - ENDIF() - TARGET_LINK_LIBRARIES(${TARGET_NAME} ${EXTERNAL_LIBS}) - ENDIF() - #IF(BUILD_MEGAGLEST_UPNP_DEBUG) + IF(WANT_USE_STREFLOP) + TARGET_LINK_LIBRARIES(${TARGET_NAME} streflop) + ENDIF() + TARGET_LINK_LIBRARIES(${TARGET_NAME} ${EXTERNAL_LIBS}) + + #IF(MINIUPNP_DEBUG_BUILD) # REMOVE_DEFINITIONS("-DDEBUG") #ENDIF() diff --git a/source/tests/CMakeLists.txt b/source/tests/CMakeLists.txt index 270efac5..daabec25 100644 --- a/source/tests/CMakeLists.txt +++ b/source/tests/CMakeLists.txt @@ -21,15 +21,16 @@ IF(BUILD_MEGAGLEST_TESTS) SET(EXTERNAL_LIBS ${EXTERNAL_LIBS} ${${SDL_VERSION_NAME}_LIBRARY}) ENDIF() - find_package( FriBiDi ) - if(ENABLE_FRIBIDI AND FRIBIDI_LIBRARIES) - add_definitions(-DHAVE_FRIBIDI) + if(WANT_USE_FriBiDi) + find_package( FriBiDi ) + if(FRIBIDI_FOUND) + add_definitions(-DHAVE_FRIBIDI) - include_directories( ${FRIBIDI_INCLUDE_DIR} ) - SET(EXTERNAL_LIBS ${EXTERNAL_LIBS} ${FRIBIDI_LIBRARIES}) - - elseif(ENABLE_FRIBIDI AND NOT FRIBIDI_LIBRARIES) - message("Could not find FriBiDi. Disabling FriBiDi support.") + include_directories( ${FRIBIDI_INCLUDE_DIR} ) + SET(EXTERNAL_LIBS ${EXTERNAL_LIBS} ${FRIBIDI_LIBRARIES}) + else() + message("Could not find FriBiDi. Disabling FriBiDi support.") + endif() endif() ######################################################################################### @@ -70,7 +71,7 @@ IF(BUILD_MEGAGLEST_TESTS) ${PROJECT_SOURCE_DIR}/source/glest_game/types ) - IF(WANT_STREFLOP) + IF(WANT_USE_STREFLOP) SET(GLEST_LIB_INCLUDE_DIRS ${GLEST_LIB_INCLUDE_DIRS} ${GLEST_LIB_INCLUDE_ROOT}streflop @@ -139,16 +140,9 @@ IF(BUILD_MEGAGLEST_TESTS) SET_SOURCE_FILES_PROPERTIES(${MG_INCLUDE_FILES} PROPERTIES HEADER_FILE_ONLY 1) - OPTION(WANT_DEV_OUTPATH "use developer friendly output paths" OFF) - IF(WANT_DEV_OUTPATH) - IF(UNIX AND NOT APPLE) - SET(EXECUTABLE_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/mk/linux/) - ELSEIF(UNIX AND APPLE) - SET(EXECUTABLE_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/mk/macosx/) - ELSE() - SET(EXECUTABLE_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/data/glest_game/) - ENDIF() - ENDIF() + IF(WANT_DEV_OUTPATH) + SET(EXECUTABLE_OUTPUT_PATH "${MEGAGLEST_FRIENDLY_OUTPUT_PATH}") + ENDIF() MESSAGE(STATUS "EXTERNAL_LIBS = [${EXTERNAL_LIBS}]") @@ -159,7 +153,7 @@ IF(BUILD_MEGAGLEST_TESTS) ADD_EXECUTABLE(${TARGET_NAME} ${MG_SOURCE_FILES} ${MG_INCLUDE_FILES}) IF(NOT WIN32) - IF(WANT_STREFLOP) + IF(WANT_USE_STREFLOP) TARGET_LINK_LIBRARIES(${TARGET_NAME} ${MG_STREFLOP}) ENDIF() TARGET_LINK_LIBRARIES(${TARGET_NAME} libmegaglest)