diff options
author | Shauren <shauren.trinity@gmail.com> | 2016-04-05 17:55:32 +0200 |
---|---|---|
committer | Shauren <shauren.trinity@gmail.com> | 2016-04-05 22:43:41 +0200 |
commit | 4a3a178d7fe9d2d7e8fde2fe915cf5cec5223502 (patch) | |
tree | 4d75c3393ff1707ec5a2793590f2496be8373a22 | |
parent | 792299bbd544a44911e463383be567d7738412a5 (diff) |
Buildsystem: Initial changes to support building with vs clang toolset
-rw-r--r-- | CMakeLists.txt | 6 | ||||
-rw-r--r-- | cmake/compiler/msvc/settings.cmake | 6 | ||||
-rw-r--r-- | cmake/macros/FindPCHSupport.cmake | 2 | ||||
-rw-r--r-- | cmake/platform/win/settings.cmake | 21 | ||||
-rw-r--r-- | dep/CMakeLists.txt | 4 | ||||
-rw-r--r-- | src/common/CMakeLists.txt | 2 | ||||
-rw-r--r-- | src/server/bnetserver/CMakeLists.txt | 2 | ||||
-rw-r--r-- | src/server/database/CMakeLists.txt | 2 | ||||
-rw-r--r-- | src/server/game/CMakeLists.txt | 2 | ||||
-rw-r--r-- | src/server/proto/CMakeLists.txt | 6 | ||||
-rw-r--r-- | src/server/scripts/CMakeLists.txt | 2 | ||||
-rw-r--r-- | src/server/shared/CMakeLists.txt | 2 | ||||
-rw-r--r-- | src/server/worldserver/CMakeLists.txt | 2 |
13 files changed, 30 insertions, 29 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt index dda8f242feb..01d785ca855 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -18,7 +18,11 @@ project(TrinityCore) cmake_policy(SET CMP0005 OLD) if(POLICY CMP0043) cmake_policy(SET CMP0043 OLD) # Disable 'Ignore COMPILE_DEFINITIONS_<Config> properties' -endif(POLICY CMP0043) +endif() + +if(POLICY CMP0054) + cmake_policy(SET CMP0054 NEW) # Only interpret if() arguments as variables or keywords when unquoted - prevents intepreting if (SOME_STRING_VARIABLE MATCHES "MSVC") as if (SOME_STRING_VARIABLE MATCHES "1") +endif() # add this options before PROJECT keyword set(CMAKE_DISABLE_SOURCE_CHANGES ON) diff --git a/cmake/compiler/msvc/settings.cmake b/cmake/compiler/msvc/settings.cmake index 86470f327c5..dd5b9a0b28b 100644 --- a/cmake/compiler/msvc/settings.cmake +++ b/cmake/compiler/msvc/settings.cmake @@ -31,7 +31,11 @@ else() endif() # Set build-directive (used in core to tell which buildtype we used) -add_definitions(-D_BUILD_DIRECTIVE=\\"$(ConfigurationName)\\") +if(CMAKE_MAKE_PROGRAM MATCHES "nmake") + add_definitions(-D_BUILD_DIRECTIVE=\\"${CMAKE_BUILD_TYPE}\\") +else() + add_definitions(-D_BUILD_DIRECTIVE=\\"$(ConfigurationName)\\") +endif() # multithreaded compiling on VS set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /MP") diff --git a/cmake/macros/FindPCHSupport.cmake b/cmake/macros/FindPCHSupport.cmake index 6edc8e92890..9cc39a13b04 100644 --- a/cmake/macros/FindPCHSupport.cmake +++ b/cmake/macros/FindPCHSupport.cmake @@ -143,7 +143,7 @@ FUNCTION(ADD_CXX_PCH_XCODE TARGET_NAME_LIST PCH_HEADER PCH_SOURCE) ENDFUNCTION(ADD_CXX_PCH_XCODE) FUNCTION(ADD_CXX_PCH TARGET_NAME_LIST PCH_HEADER PCH_SOURCE) - IF (MSVC) + IF (CMAKE_CXX_COMPILER_ID MATCHES "MSVC") ADD_CXX_PCH_MSVC("${TARGET_NAME_LIST}" ${PCH_HEADER} ${PCH_SOURCE}) ELSEIF ("${CMAKE_GENERATOR}" MATCHES "Xcode") ADD_CXX_PCH_XCODE("${TARGET_NAME_LIST}" ${PCH_HEADER} ${PCH_SOURCE}) diff --git a/cmake/platform/win/settings.cmake b/cmake/platform/win/settings.cmake index da66daf0832..0c1a103304a 100644 --- a/cmake/platform/win/settings.cmake +++ b/cmake/platform/win/settings.cmake @@ -1,20 +1,9 @@ -# check the CMake preload parameters (commented out by default) +add_definitions(-D_WIN32_WINNT=0x0601) -# overload CMAKE_INSTALL_PREFIX if not being set properly -#if( WIN32 ) -# if( NOT CYGWIN ) -# if( NOT CMAKE_INSTALL_PREFIX ) -# set(CMAKE_INSTALL_PREFIX "${CMAKE_BINARY_DIR}/bin") -# endif() -# endif() -#endif() - -if (WIN32) - add_definitions(-D_WIN32_WINNT=0x0601) -endif() - -if ( MSVC ) +if (CMAKE_CXX_COMPILER_ID STREQUAL "MSVC") include(${CMAKE_SOURCE_DIR}/cmake/compiler/msvc/settings.cmake) -elseif ( MINGW ) +elseif (CMAKE_CXX_PLATFORM_ID MATCHES "MinGW") include(${CMAKE_SOURCE_DIR}/cmake/compiler/mingw/settings.cmake) +elseif (CMAKE_CXX_COMPILER_ID STREQUAL "Clang") + include(${CMAKE_SOURCE_DIR}/cmake/compiler/clang/settings.cmake) endif() diff --git a/dep/CMakeLists.txt b/dep/CMakeLists.txt index f99e97960bc..e402eb849a5 100644 --- a/dep/CMakeLists.txt +++ b/dep/CMakeLists.txt @@ -8,7 +8,9 @@ # WITHOUT ANY WARRANTY, to the extent permitted by law; without even the # implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. -if( MSVC ) +if(CMAKE_CXX_COMPILER_ID STREQUAL "MSVC") + string(REGEX REPLACE "/W[0-4] " "" CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}") + string(REGEX REPLACE "/W[0-4] " "" CMAKE_C_FLAGS "${CMAKE_C_FLAGS}") add_definitions(/W0) else() add_definitions(-w) diff --git a/src/common/CMakeLists.txt b/src/common/CMakeLists.txt index 4250df6d1f1..436620e2900 100644 --- a/src/common/CMakeLists.txt +++ b/src/common/CMakeLists.txt @@ -33,8 +33,8 @@ GroupSources(${CMAKE_CURRENT_SOURCE_DIR}) add_definitions(-DTRINITY_API_EXPORT_COMMON) add_library(common - ${PRIVATE_SOURCES} ${PRIVATE_PCH_SOURCE} + ${PRIVATE_SOURCES} ) # Do NOT add any extra include directory here, as we don't want the common diff --git a/src/server/bnetserver/CMakeLists.txt b/src/server/bnetserver/CMakeLists.txt index c6e8808b69a..50267343dbe 100644 --- a/src/server/bnetserver/CMakeLists.txt +++ b/src/server/bnetserver/CMakeLists.txt @@ -31,8 +31,8 @@ endif() GroupSources(${CMAKE_CURRENT_SOURCE_DIR}) add_executable(bnetserver - ${PRIVATE_SOURCES} ${PRIVATE_PCH_SOURCE} + ${PRIVATE_SOURCES} ) if (NOT WIN32) diff --git a/src/server/database/CMakeLists.txt b/src/server/database/CMakeLists.txt index 06772cd5309..236586075ee 100644 --- a/src/server/database/CMakeLists.txt +++ b/src/server/database/CMakeLists.txt @@ -22,8 +22,8 @@ endif() GroupSources(${CMAKE_CURRENT_SOURCE_DIR}) add_library(database - ${PRIVATE_SOURCES} ${PRIVATE_PCH_SOURCE} + ${PRIVATE_SOURCES} ) # Do NOT add any extra include directory unless it does not create unneeded extra dependencies, diff --git a/src/server/game/CMakeLists.txt b/src/server/game/CMakeLists.txt index df0d2b7cc2a..60e86093f89 100644 --- a/src/server/game/CMakeLists.txt +++ b/src/server/game/CMakeLists.txt @@ -24,8 +24,8 @@ GroupSources(${CMAKE_CURRENT_SOURCE_DIR}) add_definitions(-DTRINITY_API_EXPORT_GAME) add_library(game - ${PRIVATE_SOURCES} ${PRIVATE_PCH_SOURCE} + ${PRIVATE_SOURCES} ) CollectIncludeDirectories( diff --git a/src/server/proto/CMakeLists.txt b/src/server/proto/CMakeLists.txt index fd20378084f..20235735b17 100644 --- a/src/server/proto/CMakeLists.txt +++ b/src/server/proto/CMakeLists.txt @@ -8,7 +8,9 @@ # WITHOUT ANY WARRANTY, to the extent permitted by law; without even the # implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. -if (MSVC) +if (CMAKE_CXX_COMPILER_ID STREQUAL "MSVC") + string(REGEX REPLACE "/W[0-4] " "" CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}") + string(REGEX REPLACE "/W[0-4] " "" CMAKE_C_FLAGS "${CMAKE_C_FLAGS}") add_definitions(/W0) else() add_definitions(-w) @@ -30,8 +32,8 @@ GroupSources(${CMAKE_CURRENT_SOURCE_DIR}) add_definitions(-DTRINITY_API_EXPORT_SHARED) add_library(proto STATIC - ${PRIVATE_SOURCES} ${PRIVATE_PCH_SOURCE} + ${PRIVATE_SOURCES} ) CollectIncludeDirectories( diff --git a/src/server/scripts/CMakeLists.txt b/src/server/scripts/CMakeLists.txt index c5b6aed89b9..71e991b0c91 100644 --- a/src/server/scripts/CMakeLists.txt +++ b/src/server/scripts/CMakeLists.txt @@ -52,8 +52,8 @@ endif () GroupSources(${CMAKE_CURRENT_SOURCE_DIR}) add_library(scripts STATIC - ${PRIVATE_SOURCES} ${PRIVATE_PCH_SOURCE} + ${PRIVATE_SOURCES} ) target_include_directories(scripts diff --git a/src/server/shared/CMakeLists.txt b/src/server/shared/CMakeLists.txt index 6b7ce7b5a1a..4cc02fc108e 100644 --- a/src/server/shared/CMakeLists.txt +++ b/src/server/shared/CMakeLists.txt @@ -24,8 +24,8 @@ GroupSources(${CMAKE_CURRENT_SOURCE_DIR}) add_definitions(-DTRINITY_API_EXPORT_SHARED) add_library(shared - ${PRIVATE_SOURCES} ${PRIVATE_PCH_SOURCE} + ${PRIVATE_SOURCES} ) CollectIncludeDirectories( diff --git a/src/server/worldserver/CMakeLists.txt b/src/server/worldserver/CMakeLists.txt index 66555f99915..561271f7d38 100644 --- a/src/server/worldserver/CMakeLists.txt +++ b/src/server/worldserver/CMakeLists.txt @@ -29,8 +29,8 @@ endif() GroupSources(${CMAKE_CURRENT_SOURCE_DIR}) add_executable(worldserver - ${PRIVATE_SOURCES} ${PRIVATE_PCH_SOURCE} + ${PRIVATE_SOURCES} ) if( NOT WIN32 ) |