0.22.3 - New build system
This commit is contained in:
parent
1885e3588b
commit
5a6f485753
@ -18,50 +18,28 @@
|
|||||||
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||||
# SOFTWARE.
|
# SOFTWARE.
|
||||||
#
|
#
|
||||||
# ADD_CXX_PCH
|
# ADD_CXX_PCH(TARGET_NAME PRECOMPILED_HEADER PRECOMPILED_SOURCE)
|
||||||
#
|
#
|
||||||
# Sets a precompiled header for a given target
|
# Sets a precompiled header for a given target
|
||||||
# Args:
|
#
|
||||||
# TARGET_NAME - Name of the target. Only valid after add_library or add_executable
|
# TARGET_NAME - Name of the target. Only valid after add_library or add_executable
|
||||||
# PRECOMPILED_HEADER - Header file to precompile
|
# PRECOMPILED_HEADER - Header file to precompile
|
||||||
# PRECOMPILED_SOURCE - MSVC specific source to do the actual precompilation. Ignored on other platforms
|
# PRECOMPILED_SOURCE - MSVC specific source to do the actual precompilation. Ignored on other platforms
|
||||||
|
#
|
||||||
|
|
||||||
function(ADD_CXX_PCH TARGET_NAME PRECOMPILED_HEADER PRECOMPILED_SOURCE)
|
function(ADD_CXX_PCH TARGET_NAME PRECOMPILED_HEADER PRECOMPILED_SOURCE)
|
||||||
|
|
||||||
get_filename_component(PRECOMPILED_HEADER_NAME ${PRECOMPILED_HEADER} NAME)
|
get_filename_component(PRECOMPILED_HEADER_NAME ${PRECOMPILED_HEADER} NAME)
|
||||||
|
|
||||||
if(MSVC)
|
if(MSVC)
|
||||||
get_filename_component(PRECOMPILED_HEADER_PATH ${PRECOMPILED_HEADER} DIRECTORY)
|
target_compile_options(${TARGET_NAME}
|
||||||
target_include_directories(${TARGET_NAME} PRIVATE ${PRECOMPILED_HEADER_PATH}) # fixes occasional IntelliSense glitches
|
PRIVATE
|
||||||
|
/FI${PRECOMPILED_HEADER_NAME}
|
||||||
get_filename_component(PRECOMPILED_HEADER_WE ${PRECOMPILED_HEADER} NAME_WE)
|
/Yu${PRECOMPILED_HEADER_NAME}
|
||||||
set(PRECOMPILED_BINARY "$(IntDir)/${PRECOMPILED_HEADER_WE}.pch")
|
)
|
||||||
|
SET_SOURCE_FILES_PROPERTIES(${PRECOMPILED_SOURCE}
|
||||||
get_target_property(SOURCE_FILES ${TARGET_NAME} SOURCES)
|
|
||||||
set(SOURCE_FILE_FOUND FALSE)
|
|
||||||
foreach(SOURCE_FILE ${SOURCE_FILES})
|
|
||||||
if(SOURCE_FILE MATCHES \\.\(cc|cxx|cpp\)$)
|
|
||||||
if(${PRECOMPILED_SOURCE} MATCHES ${SOURCE_FILE})
|
|
||||||
# Set source file to generate header
|
|
||||||
set_source_files_properties(
|
|
||||||
${SOURCE_FILE}
|
|
||||||
PROPERTIES
|
PROPERTIES
|
||||||
COMPILE_FLAGS "/Yc\"${PRECOMPILED_HEADER_NAME}\" /Fp\"${PRECOMPILED_BINARY}\""
|
COMPILE_FLAGS /Yc${PRECOMPILED_HEADER_NAME}
|
||||||
OBJECT_OUTPUTS "${PRECOMPILED_BINARY}")
|
)
|
||||||
set(SOURCE_FILE_FOUND TRUE)
|
|
||||||
else()
|
|
||||||
# Set and automatically include precompiled header
|
|
||||||
set_source_files_properties(
|
|
||||||
${SOURCE_FILE}
|
|
||||||
PROPERTIES
|
|
||||||
COMPILE_FLAGS "/Yu\"${PRECOMPILED_HEADER_NAME}\" /Fp\"${PRECOMPILED_BINARY}\" /FI\"${PRECOMPILED_HEADER_NAME}\""
|
|
||||||
OBJECT_DEPENDS "${PRECOMPILED_BINARY}")
|
|
||||||
endif()
|
|
||||||
endif()
|
|
||||||
endforeach()
|
|
||||||
if(NOT SOURCE_FILE_FOUND)
|
|
||||||
message(FATAL_ERROR "A source file for ${PRECOMPILED_HEADER} was not found. Required for MSVC builds.")
|
|
||||||
endif(NOT SOURCE_FILE_FOUND)
|
|
||||||
elseif(CMAKE_GENERATOR STREQUAL Xcode)
|
elseif(CMAKE_GENERATOR STREQUAL Xcode)
|
||||||
set_target_properties(
|
set_target_properties(
|
||||||
${TARGET_NAME}
|
${TARGET_NAME}
|
||||||
@ -92,7 +70,9 @@ function(ADD_CXX_PCH TARGET_NAME PRECOMPILED_HEADER PRECOMPILED_SOURCE)
|
|||||||
set(_compile_definitions "$<$<BOOL:${_compile_definitions}>:-D$<JOIN:${_compile_definitions},\n-D>\n>")
|
set(_compile_definitions "$<$<BOOL:${_compile_definitions}>:-D$<JOIN:${_compile_definitions},\n-D>\n>")
|
||||||
set(_compile_flags "$<$<BOOL:${_compile_flags}>:$<JOIN:${_compile_flags},\n>\n>")
|
set(_compile_flags "$<$<BOOL:${_compile_flags}>:$<JOIN:${_compile_flags},\n>\n>")
|
||||||
set(_compile_options "$<$<BOOL:${_compile_options}>:$<JOIN:${_compile_options},\n>\n>")
|
set(_compile_options "$<$<BOOL:${_compile_options}>:$<JOIN:${_compile_options},\n>\n>")
|
||||||
file(GENERATE OUTPUT "${PCH_FLAGS_FILE}" CONTENT "${_compile_definitions}${_include_directories}${_compile_flags}${_compile_options}\n")
|
|
||||||
|
file(GENERATE OUTPUT ${PCH_FLAGS_FILE} CONTENT "${_compile_definitions}${_include_directories}${_compile_flags}${_compile_options}\n")
|
||||||
|
file(GENERATE OUTPUT ${OUTPUT_DIR}/${PRECOMPILED_HEADER_NAME} CONTENT "")
|
||||||
|
|
||||||
# Gather global compiler options, definitions, etc.
|
# Gather global compiler options, definitions, etc.
|
||||||
string(TOUPPER "CMAKE_CXX_FLAGS_${CMAKE_BUILD_TYPE}" CXX_FLAGS)
|
string(TOUPPER "CMAKE_CXX_FLAGS_${CMAKE_BUILD_TYPE}" CXX_FLAGS)
|
||||||
@ -110,14 +90,10 @@ function(ADD_CXX_PCH TARGET_NAME PRECOMPILED_HEADER PRECOMPILED_SOURCE)
|
|||||||
add_custom_target(${TARGET_NAME}_${SFX} DEPENDS ${OUTPUT_NAME})
|
add_custom_target(${TARGET_NAME}_${SFX} DEPENDS ${OUTPUT_NAME})
|
||||||
add_dependencies(${TARGET_NAME} ${TARGET_NAME}_${SFX})
|
add_dependencies(${TARGET_NAME} ${TARGET_NAME}_${SFX})
|
||||||
|
|
||||||
get_target_property(SOURCE_FILES ${TARGET_NAME} SOURCES)
|
target_compile_options(${TARGET_NAME}
|
||||||
|
PRIVATE
|
||||||
foreach(SOURCE_FILE ${SOURCE_FILES})
|
-include ${OUTPUT_DIR}/${PRECOMPILED_HEADER_NAME}
|
||||||
if(SOURCE_FILE MATCHES \\.\(cc|cxx|cpp\)$)
|
-Winvalid-pch
|
||||||
set_source_files_properties(${SOURCE_FILE} PROPERTIES
|
|
||||||
COMPILE_FLAGS "-include ${OUTPUT_DIR}/${PRECOMPILED_HEADER_NAME} -Winvalid-pch"
|
|
||||||
)
|
)
|
||||||
endif()
|
endif()
|
||||||
endforeach()
|
|
||||||
endif()
|
|
||||||
endfunction()
|
endfunction()
|
||||||
|
@ -93,10 +93,20 @@ if ("${CMAKE_CXX_COMPILER_ID}" MATCHES "MSVC")
|
|||||||
/wd4127
|
/wd4127
|
||||||
/wd4100
|
/wd4100
|
||||||
/wd4389
|
/wd4389
|
||||||
|
/wd4189
|
||||||
|
/wd4701
|
||||||
|
/wd4706
|
||||||
|
/wd4703
|
||||||
|
/wd4702
|
||||||
|
/wd4302
|
||||||
|
/wd4305
|
||||||
|
/wd4018
|
||||||
|
/wd4840
|
||||||
|
/wd4101
|
||||||
)
|
)
|
||||||
endif ()
|
endif ()
|
||||||
|
|
||||||
# GCC and Clang compiler options
|
# GCC compiler options
|
||||||
if ("${CMAKE_CXX_COMPILER_ID}" MATCHES "GNU")
|
if ("${CMAKE_CXX_COMPILER_ID}" MATCHES "GNU")
|
||||||
set(DEFAULT_COMPILE_OPTS ${DEFAULT_COMPILE_OPTS}
|
set(DEFAULT_COMPILE_OPTS ${DEFAULT_COMPILE_OPTS}
|
||||||
$<$<EQUAL:${PLATFORM},32>:
|
$<$<EQUAL:${PLATFORM},32>:
|
||||||
@ -119,6 +129,7 @@ if ("${CMAKE_CXX_COMPILER_ID}" MATCHES "GNU")
|
|||||||
)
|
)
|
||||||
endif ()
|
endif ()
|
||||||
|
|
||||||
|
#Clang compiler options
|
||||||
if("${CMAKE_CXX_COMPILER_ID}" MATCHES "Clang")
|
if("${CMAKE_CXX_COMPILER_ID}" MATCHES "Clang")
|
||||||
set(DEFAULT_COMPILE_OPTS ${DEFAULT_COMPILE_OPTS}
|
set(DEFAULT_COMPILE_OPTS ${DEFAULT_COMPILE_OPTS}
|
||||||
$<$<CONFIG:Release>:
|
$<$<CONFIG:Release>:
|
||||||
|
2
dep
2
dep
@ -1 +1 @@
|
|||||||
Subproject commit ab9e244cf77a325a05dea816cd287763b418bf23
|
Subproject commit 26edd0e965f55a43ab42e314c28452a087828e2c
|
@ -277,7 +277,6 @@ target_link_libraries(game
|
|||||||
|
|
||||||
# Generate precompiled header
|
# Generate precompiled header
|
||||||
if(PCH)
|
if(PCH)
|
||||||
add_dependencies(vmap2 game)
|
|
||||||
ADD_CXX_PCH(game ${CMAKE_CURRENT_SOURCE_DIR}/pchdef.h ${CMAKE_CURRENT_SOURCE_DIR}/pchdef.cpp)
|
ADD_CXX_PCH(game ${CMAKE_CURRENT_SOURCE_DIR}/pchdef.h ${CMAKE_CURRENT_SOURCE_DIR}/pchdef.cpp)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
@ -26,6 +26,7 @@
|
|||||||
#define GAME_PCH_H
|
#define GAME_PCH_H
|
||||||
|
|
||||||
#include "Common.h"
|
#include "Common.h"
|
||||||
|
#include "Map.h"
|
||||||
#include "Log.h"
|
#include "Log.h"
|
||||||
#include "ObjectMgr.h"
|
#include "ObjectMgr.h"
|
||||||
#include "WorldPacket.h"
|
#include "WorldPacket.h"
|
||||||
|
@ -32,6 +32,7 @@
|
|||||||
#include <string>
|
#include <string>
|
||||||
#include <vector>
|
#include <vector>
|
||||||
#include <algorithm>
|
#include <algorithm>
|
||||||
|
#include <cctype>
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief
|
* @brief
|
||||||
@ -555,7 +556,7 @@ inline bool isEastAsianString(const std::wstring &wstr, bool numericOrSpace)
|
|||||||
*/
|
*/
|
||||||
inline void strToUpper(std::string& str)
|
inline void strToUpper(std::string& str)
|
||||||
{
|
{
|
||||||
std::transform(str.begin(), str.end(), str.begin(), [](unsigned char c) { return std::toupper(c); });
|
std::transform(str.begin(), str.end(), str.begin(), [](unsigned char c) { return toupper(c); });
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -565,7 +566,7 @@ inline void strToUpper(std::string& str)
|
|||||||
*/
|
*/
|
||||||
inline void strToLower(std::string& str)
|
inline void strToLower(std::string& str)
|
||||||
{
|
{
|
||||||
std::transform(str.begin(), str.end(), str.begin(), [](unsigned char c) { return std::tolower(c); });
|
std::transform(str.begin(), str.end(), str.begin(), [](unsigned char c) { return tolower(c); });
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
Loading…
x
Reference in New Issue
Block a user