diff options
author | Giacomo Pozzoni <giacomopoz@gmail.com> | 2020-05-31 12:17:26 +0000 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-05-31 14:17:26 +0200 |
commit | 8c09b6e58b0e4f33b7a8e376a28709e693cf2914 (patch) | |
tree | 2c4f1c0fea9adfe230e58a61fbc1cb0d168c3512 /dep | |
parent | 0eb9b5bfe65961fb2062e71f33e3e0d8931159bb (diff) |
Cherry-pick some cmake commits (#24720)
* Build system: Support new in cmake 3.17 Ninja Multi-Config generator
(cherry picked from commit 369b618d4f160816818681ed7e41063e2d9ba5b5)
* Build system: Fixed PCH with MSVC & Ninja generator
(cherry picked from commit d669f46b6d5190dabc686a35656e8b03f5ec325b)
* Core: Fix clang 10 warnings
(cherry picked from commit 7272508cb4b51ec5591b6f0e542ea29091db7546)
# Conflicts:
# src/common/Utilities/Util.h
# src/server/bnetserver/REST/LoginRESTService.cpp
# src/server/game/Entities/Object/Position.h
# src/server/game/Entities/Player/Player.cpp
# src/server/game/Guilds/GuildFinderMgr.h
# src/server/game/Movement/Spline/MoveSplineFlag.h
# src/server/shared/Dynamic/LinkedList.h
* Build system: Set -Wno-deprecated-copy only for clang 10
(cherry picked from commit 7fdeb259ba398d5d9343a5dcd1a89562dfcbe981)
* Core/Misc: GCC build and warning fixes
(cherry picked from commit 4d69cc1c567180b408ddbadb9edf26859cf4c006)
# Conflicts:
# src/common/Utilities/Util.cpp
# src/server/database/Database/MySQLConnection.cpp
# src/server/game/Battlefield/Zones/BattlefieldTB.cpp
# src/server/game/DataStores/M2Stores.cpp
# src/server/game/DungeonFinding/LFGMgr.cpp
# src/server/game/DungeonFinding/LFGPlayerData.cpp
# src/server/game/Entities/GameObject/GameObject.cpp
# src/server/game/Entities/Item/Item.cpp
# src/server/game/Entities/Object/Updates/UpdateFields.h
# src/server/game/Entities/Player/Player.cpp
# src/server/game/Entities/Player/RestMgr.cpp
# src/server/game/Entities/Unit/Unit.cpp
# src/server/game/Handlers/PetHandler.cpp
# src/server/game/Server/Packets/GuildPackets.h
# src/server/game/Spells/Auras/SpellAuraEffects.cpp
# src/server/game/Spells/Auras/SpellAuras.cpp
# src/server/game/Spells/Spell.cpp
# src/server/game/Spells/SpellInfo.cpp
# src/server/game/Spells/SpellMgr.cpp
# src/server/scripts/Argus/AntorusTheBurningThrone/boss_garothi_worldbreaker.cpp
# src/server/scripts/Kalimdor/HallsOfOrigination/instance_halls_of_origination.cpp
# src/server/scripts/Northrend/IcecrownCitadel/instance_icecrown_citadel.cpp
# src/server/scripts/Northrend/Ulduar/Ulduar/boss_mimiron.cpp
# src/server/scripts/Northrend/zone_sholazar_basin.cpp
# src/server/scripts/Outland/BlackTemple/instance_black_temple.cpp
# src/server/scripts/Outland/GruulsLair/instance_gruuls_lair.cpp
# src/server/scripts/Outland/HellfireCitadel/BloodFurnace/instance_blood_furnace.cpp
# src/server/scripts/Outland/HellfireCitadel/ShatteredHalls/shattered_halls.cpp
# src/tools/vmap4_extractor/gameobject_extract.cpp
# src/tools/vmap4_extractor/model.cpp
# src/tools/vmap4_extractor/vec3d.h
* Build system: Print found git version when warning about it being too old
(cherry picked from commit 1ae72db201189877c1b863fac140eb4b0a45c5bb)
* Build system: Removed hard requirement on BOOST_ROOT being set as environment variable, it can now be also passed as command line argument to cmake and fix compile warning with boost 1.73
(cherry picked from commit 161944b7643c62f9e7705c64e42d42e5d07f1959)
# Conflicts:
# dep/boost/CMakeLists.txt
* Remove some code that was already removed from 335 and then cherry-picked into master
Co-authored-by: Shauren <shauren.trinity@gmail.com>
Diffstat (limited to 'dep')
-rw-r--r-- | dep/boost/CMakeLists.txt | 7 | ||||
-rw-r--r-- | dep/cotire/CMake/cotire.cmake | 17 |
2 files changed, 17 insertions, 7 deletions
diff --git a/dep/boost/CMakeLists.txt b/dep/boost/CMakeLists.txt index 3e573ca20f1..08c41f4351c 100644 --- a/dep/boost/CMakeLists.txt +++ b/dep/boost/CMakeLists.txt @@ -9,7 +9,7 @@ # implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. if(WIN32) - set(BOOST_DEBUG ON) + set(BOOST_DEBUG ON) if(DEFINED ENV{BOOST_ROOT}) set(BOOST_ROOT $ENV{BOOST_ROOT}) if(CMAKE_CXX_COMPILER_VERSION VERSION_LESS 19.0) @@ -29,7 +29,7 @@ if(WIN32) endif() endif() endif() - else() + elseif(NOT DEFINED Boost_DIR AND NOT DEFINED BOOST_ROOT AND NOT DEFINED BOOSTROOT) message(FATAL_ERROR "No BOOST_ROOT environment variable could be found! Please make sure it is set and the points to your Boost installation.") endif() @@ -85,7 +85,8 @@ target_compile_definitions(boost -DBOOST_SERIALIZATION_NO_LIB -DBOOST_CONFIG_SUPPRESS_OUTDATED_MESSAGE -DBOOST_ASIO_NO_DEPRECATED - -DBOOST_SYSTEM_USE_UTF8) + -DBOOST_SYSTEM_USE_UTF8 + -DBOOST_BIND_NO_PLACEHOLDERS) if (NOT boost_filesystem_copy_links_without_NO_SCOPED_ENUM) target_compile_definitions(boost diff --git a/dep/cotire/CMake/cotire.cmake b/dep/cotire/CMake/cotire.cmake index e2025e86575..4d383e18828 100644 --- a/dep/cotire/CMake/cotire.cmake +++ b/dep/cotire/CMake/cotire.cmake @@ -2259,12 +2259,19 @@ function (cotire_generate_target_script _language _configurations _target _targe set (${_targetConfigScriptVar} "${_targetCotireConfigScript}" PARENT_SCOPE) endfunction() -function (cotire_setup_pch_file_compilation _language _target _targetScript _prefixFile _pchFile _hostFile) +function (cotire_setup_pch_file_compilation _language _target _targetScript _prefixFile _pchFile _prefixFileWasGenerated _hostFile) set (_sourceFiles ${ARGN}) if (CMAKE_${_language}_COMPILER_ID MATCHES "MSVC|Intel") # for Visual Studio and Intel, we attach the precompiled header compilation to the host file # the remaining files include the precompiled header, see cotire_setup_pch_file_inclusion if (_sourceFiles) + # unlike MSBuild, Ninja does not automatically create the directory for /Fp file + # so we have to do it ourselves to avoid C1083 + if (${CMAKE_GENERATOR} STREQUAL "Ninja Multi-Config") + cotire_get_intermediate_dir(_baseDir) + add_custom_command (OUTPUT "${_baseDir}/.mkdir" COMMAND ${CMAKE_COMMAND} -E touch "${_baseDir}/.mkdir") + set_property (SOURCE ${_hostFile} APPEND PROPERTY OBJECT_DEPENDS "${_baseDir}/.mkdir") + endif() set (_flags "") cotire_add_pch_compilation_flags( "${_language}" "${CMAKE_${_language}_COMPILER_ID}" "${CMAKE_${_language}_COMPILER_VERSION}" @@ -2272,7 +2279,9 @@ function (cotire_setup_pch_file_compilation _language _target _targetScript _pre set_property (SOURCE ${_hostFile} APPEND_STRING PROPERTY COMPILE_FLAGS " ${_flags} ") set_property (SOURCE ${_hostFile} APPEND PROPERTY OBJECT_OUTPUTS "${_pchFile}") # make object file generated from host file depend on prefix header - set_property (SOURCE ${_hostFile} APPEND PROPERTY OBJECT_DEPENDS "${_prefixFile}") + if (_prefixFileWasGenerated) + set_property (SOURCE ${_hostFile} APPEND PROPERTY OBJECT_DEPENDS "${_prefixFile}") + endif() # mark host file as cotired to prevent it from being used in another cotired target set_property (SOURCE ${_hostFile} PROPERTY COTIRE_TARGET "${_target}") endif() @@ -2355,7 +2364,7 @@ function (cotire_setup_prefix_file_inclusion _language _target _prefixFile _pref if (_prefixFileWasGenerated) # make object files generated from source files depend on prefix header set_property (SOURCE ${_sourceFiles} APPEND PROPERTY OBJECT_DEPENDS "${_prefixFile}") - endif() + endif() endfunction() function (cotire_get_first_set_property_value _propertyValueVar _type _object) @@ -2899,7 +2908,7 @@ function (cotire_process_target_language _language _configurations _target _whol if (_pchFile) # first file in _sourceFiles is passed as the host file cotire_setup_pch_file_compilation( - ${_language} ${_target} "${_targetConfigScript}" "${_prefixFile}" "${_pchFile}" ${_sourceFiles}) + ${_language} ${_target} "${_targetConfigScript}" "${_prefixFile}" "${_pchFile}" ${_prefixFileWasGenerated} ${_sourceFiles}) cotire_setup_pch_file_inclusion( ${_language} ${_target} ${_wholeTarget} "${_prefixFile}" "${_pchFile}" ${_sourceFiles}) endif() |