Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- cmake_minimum_required(VERSION 2.6)
- ##
- ## Project name
- ##
- PROJECT(ja2smp)
- ##
- ## basic directories
- ##
- set(SMP_SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR})
- set(SMP_BINARY_DIR ${CMAKE_CURRENT_BINARY_DIR})
- # ==================================================================================================
- # Dependencies | defines variables : SMP_DEFINITIONS, SMP_INCLUDE_DIRS, SMP_LIBRARY_DIRS, SMP_LIBRARIES
- include( ExternalLibraries.cmake )
- #if(NOT LIBRARY_OUTPUT_PATH)
- set(LIBRARY_OUTPUT_PATH ${SMP_BINARY_DIR}/lib)
- #endif()
- #if(NOT EXECUTABLE_OUTPUT_PATH)
- set(EXECUTABLE_OUTPUT_PATH ${SMP_BINARY_DIR}/bin)
- #endif()
- option(SMP_CMAKE_DEBUG "Debug cmake file" OFF)
- mark_as_advanced(SMP_CMAKE_DEBUG)
- set(SMP_DEFINITIONS ${SMP_DEFINITIONS} -DJA2)
- # ==================================================================================================
- # Language
- ## supported languages
- set(SMP_LANGUAGES "Dutch" "English" "French" "German" "Italian" "Polish" "Russian" "Russian Gold")
- # ask user to select a language from a list
- set(SMP_LANGUAGE "English" CACHE STRING "Select language")
- set_property(CACHE SMP_LANGUAGE PROPERTY STRINGS ${SMP_LANGUAGES})
- ## < language , #define > map
- set(SMP_LANGUAGE_DEFINES
- "Dutch" "DUTCH"
- "English" "ENGLISH"
- "French" "FRENCH"
- "German" "GERMAN"
- "Italian" "ITALIAN"
- "Polish" "POLISH"
- "Russian" "RUSSIAN"
- "Russian Gold" "RUSSIAN_GOLD"
- )
- ## set language
- set(_next_define false)
- set(_current_language "")
- foreach(lang ${SMP_LANGUAGE_DEFINES})
- if(_next_define)
- set(_def "-D${lang}")
- message("language : " ${_current_language} ", " ${_def})
- add_definitions( ${_def} )
- break()
- endif()
- string(COMPARE EQUAL ${SMP_LANGUAGE} ${lang} _selected_language)
- if(_selected_language)
- set(_next_define true)
- set(_current_language ${lang})
- endif()
- endforeach()
- # --------------------------------------------------------------------------------------------------
- ## MSVC compatibility settings
- if(MSVC)
- set(SMP_DEFINITIONS ${SMP_DEFINITIONS} -D_CRT_SECURE_NO_WARNINGS)
- endif()
- ## SMP options
- option(JA2_BETA_VERSION "Build BETA version" OFF)
- option(SMP_BUILD_EDITOR "Build editor" OFF)
- if(SMP_BUILD_EDITOR)
- set(SMP_DEFINITIONS ${SMP_DEFINITIONS}
- -DJA2EDITOR
- -DJA2BETAVERSION
- -DSGP_DEBUG
- )
- endif()
- ## define base SMP source directories
- set(SMP_SGP_SOURCE_DIR ${SMP_SOURCE_DIR}/sgp)
- set(SMP_BUILD_SOURCE_DIR ${SMP_SOURCE_DIR}/Build)
- ## define SMP include directories
- set( SMP_INCLUDE_DIRS ${SMP_INCLUDE_DIRS}
- ${SMP_SGP_SOURCE_DIR}
- ${SMP_SGP_SOURCE_DIR}/mod_manager
- ${SMP_SGP_SOURCE_DIR}/utils
- ${SMP_SGP_SOURCE_DIR}/xml
- ${SMP_BUILD_SOURCE_DIR}
- )
- ## setup subdirectories of Build
- set(SMP_BUILD_DIRS
- "Editor" "Laptop" "Strategic" "Tactical" "TacticalAI" "TileEngine" "Utils"
- )
- ## add "Build" directories to the include directory list
- foreach( dir ${SMP_BUILD_DIRS} )
- set( SMP_INCLUDE_DIRS ${SMP_INCLUDE_DIRS} ${SMP_BUILD_SOURCE_DIR}/${dir} )
- endforeach()
- include_directories( ${SMP_INCLUDE_DIRS} )
- ## setup definitions
- add_definitions( ${SMP_DEFINITIONS} )
- ## setup libraries
- link_directories( ${SMP_LIBRARY_DIRS} ${LIBRARY_OUTPUT_PATH})
- ## fix MinGW linker error
- if(MINGW)
- option(SMP_MINGW_AUTO_IMPORT "Activate automatic import of libary symbols" OFF)
- if(SMP_MINGW_AUTO_IMPORT)
- set(CMAKE_EXE_LINKER_FLAGS ${CMAKE_EXE_LINKER_FLAGS} "-enable-auto-import")
- endif()
- endif()
- ## fix MSVC debug compiler flags
- if(MSVC)
- string (REPLACE "/D_DEBUG" "/D_DEBUG /DSGP_DEBUG" CMAKE_CXX_FLAGS_DEBUG ${CMAKE_CXX_FLAGS_DEBUG} )
- if(JA2_BETA_VERSION)
- string (REPLACE "/D_DEBUG" "/D_DEBUG /DSGP_DEBUG /DJA2BETAVERSION" CMAKE_CXX_FLAGS_DEBUG ${CMAKE_CXX_FLAGS_DEBUG} )
- endif()
- else()
- set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -DSGP_DEBUG")
- if(JA2_BETA_VERSION)
- set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -DSGP_DEBUG -DJA2BETAVERSION")
- endif()
- endif()
- ## go into subdirectories
- add_subdirectory(${SMP_SGP_SOURCE_DIR})
- add_subdirectory(${SMP_BUILD_SOURCE_DIR})
Advertisement
Add Comment
Please, Sign In to add comment