mirror of
https://github.com/TrinityCore/TrinityCore.git
synced 2026-01-16 07:30:42 +01:00
Buildsystem: Initial changes to support building with vs clang toolset
(cherry picked from commit 4a3a178d7f)
This commit is contained in:
@@ -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)
|
||||
|
||||
@@ -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")
|
||||
|
||||
@@ -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})
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -31,8 +31,8 @@ endif()
|
||||
GroupSources(${CMAKE_CURRENT_SOURCE_DIR})
|
||||
|
||||
add_executable(authserver
|
||||
${PRIVATE_SOURCES}
|
||||
${PRIVATE_PCH_SOURCE}
|
||||
${PRIVATE_SOURCES}
|
||||
)
|
||||
|
||||
if( NOT WIN32 )
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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(
|
||||
|
||||
@@ -51,8 +51,8 @@ endif ()
|
||||
GroupSources(${CMAKE_CURRENT_SOURCE_DIR})
|
||||
|
||||
add_library(scripts STATIC
|
||||
${PRIVATE_SOURCES}
|
||||
${PRIVATE_PCH_SOURCE}
|
||||
${PRIVATE_SOURCES}
|
||||
)
|
||||
|
||||
target_include_directories(scripts
|
||||
|
||||
@@ -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(
|
||||
|
||||
@@ -29,8 +29,8 @@ endif()
|
||||
GroupSources(${CMAKE_CURRENT_SOURCE_DIR})
|
||||
|
||||
add_executable(worldserver
|
||||
${PRIVATE_SOURCES}
|
||||
${PRIVATE_PCH_SOURCE}
|
||||
${PRIVATE_SOURCES}
|
||||
)
|
||||
|
||||
if( NOT WIN32 )
|
||||
|
||||
Reference in New Issue
Block a user