diff options
29 files changed, 621 insertions, 636 deletions
diff --git a/cmake/macros/AutoCollect.cmake b/cmake/macros/AutoCollect.cmake index 6b91517bc0d..e6fb6a5562d 100644 --- a/cmake/macros/AutoCollect.cmake +++ b/cmake/macros/AutoCollect.cmake @@ -8,39 +8,47 @@ # WITHOUT ANY WARRANTY, to the extent permitted by law; without even the # implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. -# Collects all source files into the given variable, -# which is useful to include all sources in subdirectories. -# Ignores full qualified directories listed in the variadic arguments. +# Adds all found source files to a given target # # Use it like: -# CollectSourceFiles( +# CollectAndAddSourceFiles( +# common # ${CMAKE_CURRENT_SOURCE_DIR} -# COMMON_PRIVATE_SOURCES -# # Exclude +# EXCLUDE # ${CMAKE_CURRENT_SOURCE_DIR}/PrecompiledHeaders # ${CMAKE_CURRENT_SOURCE_DIR}/Platform) # -function(CollectSourceFiles current_dir variable) - list(FIND ARGN "${current_dir}" IS_EXCLUDED) +function(CollectAndAddSourceFiles target_name current_dir) + cmake_parse_arguments(PARSE_ARGV 2 arg "" "BASE_DIR" "EXCLUDE") + if(NOT arg_BASE_DIR) + set(arg_BASE_DIR "${current_dir}") + endif() + list(FIND arg_EXCLUDE "${current_dir}" IS_EXCLUDED) if(IS_EXCLUDED EQUAL -1) - file(GLOB COLLECTED_SOURCES + cmake_path(RELATIVE_PATH current_dir BASE_DIRECTORY "${arg_BASE_DIR}" OUTPUT_VARIABLE fileset_name) + # normalize file set name + string(REGEX REPLACE "[./\\]" "_" fileset_name "${fileset_name}") + + file(GLOB private_source_files ${current_dir}/*.c ${current_dir}/*.cc - ${current_dir}/*.cpp + ${current_dir}/*.cpp) + + file(GLOB public_header_files ${current_dir}/*.inl - ${current_dir}/*.def ${current_dir}/*.h ${current_dir}/*.hh ${current_dir}/*.hpp) - list(APPEND ${variable} ${COLLECTED_SOURCES}) + + target_sources(${target_name} PRIVATE ${private_source_files}) + target_sources(${target_name} PUBLIC FILE_SET "headers_${fileset_name}" TYPE HEADERS BASE_DIRS ${current_dir} FILES ${public_header_files}) file(GLOB SUB_DIRECTORIES ${current_dir}/*) foreach(SUB_DIRECTORY ${SUB_DIRECTORIES}) if(IS_DIRECTORY ${SUB_DIRECTORY}) - CollectSourceFiles("${SUB_DIRECTORY}" "${variable}" "${ARGN}") + CollectAndAddSourceFiles("${target_name}" "${SUB_DIRECTORY}" BASE_DIR ${arg_BASE_DIR} EXCLUDE ${arg_EXCLUDE}) endif() endforeach() - set(${variable} ${${variable}} PARENT_SCOPE) endif() endfunction() @@ -52,20 +60,21 @@ endfunction() # CollectIncludeDirectories( # ${CMAKE_CURRENT_SOURCE_DIR} # COMMON_PUBLIC_INCLUDES -# # Exclude +# EXCLUDE # ${CMAKE_CURRENT_SOURCE_DIR}/PrecompiledHeaders # ${CMAKE_CURRENT_SOURCE_DIR}/Platform) # -function(CollectIncludeDirectories current_dir variable) - list(FIND ARGN "${current_dir}" IS_EXCLUDED) +function(CollectIncludeDirectories current_dir sources_variable) + cmake_parse_arguments(PARSE_ARGV 2 arg "" "" "EXCLUDE") + list(FIND arg_EXCLUDE "${current_dir}" IS_EXCLUDED) if(IS_EXCLUDED EQUAL -1) - list(APPEND ${variable} ${current_dir}) + list(APPEND ${sources_variable} ${current_dir}) file(GLOB SUB_DIRECTORIES ${current_dir}/*) foreach(SUB_DIRECTORY ${SUB_DIRECTORIES}) if(IS_DIRECTORY ${SUB_DIRECTORY}) - CollectIncludeDirectories("${SUB_DIRECTORY}" "${variable}" "${ARGN}") + CollectIncludeDirectories("${SUB_DIRECTORY}" "${sources_variable}" EXCLUDE ${arg_EXCLUDE}) endif() endforeach() - set(${variable} ${${variable}} PARENT_SCOPE) + set(${sources_variable} ${${sources_variable}} PARENT_SCOPE) endif() endfunction() diff --git a/dep/CascLib/CMakeLists.txt b/dep/CascLib/CMakeLists.txt index b1a1e90b5e6..76910f3563c 100644 --- a/dep/CascLib/CMakeLists.txt +++ b/dep/CascLib/CMakeLists.txt @@ -1,23 +1,7 @@ -set(HEADER_FILES - src/CascCommon.h - src/CascLib.h - src/CascPort.h - src/common/Array.h - src/common/Common.h - src/common/Csv.h - src/common/Directory.h - src/common/FileStream.h - src/common/FileTree.h - src/common/ListFile.h - src/common/Map.h - src/common/Mime.h - src/common/Path.h - src/common/RootHandler.h - src/common/Sockets.h - src/jenkins/lookup.h -) +add_library(casc STATIC) -set(SRC_FILES +target_sources(casc + PRIVATE src/common/Common.cpp src/common/Directory.cpp src/common/Csv.cpp @@ -48,18 +32,36 @@ set(SRC_FILES src/CascRootFile_Text.cpp src/CascRootFile_TVFS.cpp src/CascRootFile_OW.cpp - src/CascRootFile_WoW.cpp -) - -add_library(casc STATIC ${SRC_FILES} ${HEADER_FILES}) + src/CascRootFile_WoW.cpp) -target_include_directories(casc - PUBLIC - ${CMAKE_CURRENT_SOURCE_DIR}/src - PRIVATE - ${CMAKE_SOURCE_DIR}/dep) +target_sources(casc + PUBLIC + FILE_SET HEADERS + BASE_DIRS src + FILES + src/CascLib.h + PRIVATE + FILE_SET casc_private_headers + TYPE HEADERS + BASE_DIRS src + FILES + src/CascCommon.h + src/CascPort.h + src/common/Array.h + src/common/Common.h + src/common/Csv.h + src/common/Directory.h + src/common/FileStream.h + src/common/FileTree.h + src/common/ListFile.h + src/common/Map.h + src/common/Mime.h + src/common/Path.h + src/common/RootHandler.h + src/common/Sockets.h + src/jenkins/lookup.h) -target_compile_definitions(casc PUBLIC __SYS_ZLIB CASCLIB_NO_AUTO_LINK_LIBRARY CASCLIB_NODEBUG) +target_compile_definitions(casc PUBLIC CASC_USE_SYSTEM_ZLIB CASCLIB_NO_AUTO_LINK_LIBRARY CASCLIB_NODEBUG) target_link_libraries(casc PRIVATE diff --git a/dep/SFMT/CMakeLists.txt b/dep/SFMT/CMakeLists.txt index 700118e9b5f..e68462ef830 100644 --- a/dep/SFMT/CMakeLists.txt +++ b/dep/SFMT/CMakeLists.txt @@ -9,31 +9,37 @@ # WITHOUT ANY WARRANTY, to the extent permitted by law; without even the # implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. -set(SFMT_SOURCES - SFMT.c - SFMT.h - SFMT-alti.h - SFMT-common.h - SFMT-neon.h - SFMT-params.h - SFMT-params607.h - SFMT-params1279.h - SFMT-params2281.h - SFMT-params4253.h - SFMT-params11213.h - SFMT-params19937.h - SFMT-params44497.h - SFMT-params86243.h - SFMT-params132049.h - SFMT-params216091.h - SFMT-sse2.h - SFMT-sse2-msc.h) +add_library(sfmt STATIC) -add_library(sfmt STATIC ${SFMT_SOURCES}) +target_sources(sfmt + PRIVATE + SFMT.c) -target_include_directories(sfmt - INTERFACE - ${CMAKE_CURRENT_SOURCE_DIR}) +target_sources(sfmt + PUBLIC + FILE_SET HEADERS + FILES + SFMT.h + SFMT-params.h + SFMT-params607.h + SFMT-params1279.h + SFMT-params2281.h + SFMT-params4253.h + SFMT-params11213.h + SFMT-params19937.h + SFMT-params44497.h + SFMT-params86243.h + SFMT-params132049.h + SFMT-params216091.h + PRIVATE + FILE_SET sfmt_private_headers + TYPE HEADERS + FILES + SFMT-alti.h + SFMT-common.h + SFMT-neon.h + SFMT-sse2.h + SFMT-sse2-msc.h) # using the standard Mersenne exponent 19937 target_compile_definitions(sfmt PUBLIC SFMT_MEXP=19937) diff --git a/dep/argon2/CMakeLists.txt b/dep/argon2/CMakeLists.txt index 7b9a993e2a2..a3ee9f88fd1 100644 --- a/dep/argon2/CMakeLists.txt +++ b/dep/argon2/CMakeLists.txt @@ -8,18 +8,36 @@ # WITHOUT ANY WARRANTY, to the extent permitted by law; without even the # implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. -file(GLOB_RECURSE sources *.c) +add_library(argon2 STATIC) + +target_sources(argon2 + PRIVATE + argon2/argon2.c + argon2/core.c + argon2/encoding.c + argon2/thread.c + argon2/blake2/blake2b.c) if(TRINITY_SYSTEM_PROCESSOR MATCHES "x86|amd64") - list(REMOVE_ITEM sources - ${CMAKE_CURRENT_SOURCE_DIR}/argon2/ref.c) + target_sources(argon2 PRIVATE argon2/opt.c) else() - list(REMOVE_ITEM sources - ${CMAKE_CURRENT_SOURCE_DIR}/argon2/opt.c) + target_sources(argon2 PRIVATE argon2/ref.c) endif() -add_library(argon2 STATIC - ${sources}) +target_sources(argon2 + PUBLIC + FILE_SET HEADERS + FILES + argon2/argon2.h + PRIVATE + FILE_SET argon2_private_headers + TYPE HEADERS + FILES + argon2/core.h + argon2/encoding.h + argon2/thread.h + argon2/blake2/blake2.h + argon2/blake2/blake2-impl.h) target_compile_definitions(argon2 PRIVATE @@ -27,10 +45,6 @@ target_compile_definitions(argon2 set_target_properties(argon2 PROPERTIES LINKER_LANGUAGE CXX) -target_include_directories(argon2 - PUBLIC - ${CMAKE_CURRENT_SOURCE_DIR}) - target_link_libraries(argon2 PRIVATE trinity-dependency-interface) diff --git a/dep/efsw/CMakeLists.txt b/dep/efsw/CMakeLists.txt index 555f1b303a0..aba29c55905 100644 --- a/dep/efsw/CMakeLists.txt +++ b/dep/efsw/CMakeLists.txt @@ -1,79 +1,116 @@ if (BUILD_SHARED_LIBS) - set(EFSW_CPP_SOURCE - src/efsw/Atomic.hpp - src/efsw/base.hpp - src/efsw/Debug.cpp - src/efsw/Debug.hpp - src/efsw/DirectorySnapshot.cpp - src/efsw/DirectorySnapshot.hpp - src/efsw/DirectorySnapshotDiff.cpp - src/efsw/DirectorySnapshotDiff.hpp - src/efsw/DirWatcherGeneric.cpp - src/efsw/DirWatcherGeneric.hpp - src/efsw/FileInfo.cpp - src/efsw/FileInfo.hpp - src/efsw/FileSystem.cpp - src/efsw/FileSystem.hpp - src/efsw/FileWatcher.cpp - src/efsw/FileWatcherCWrapper.cpp - src/efsw/FileWatcherGeneric.cpp - src/efsw/FileWatcherGeneric.hpp - src/efsw/FileWatcherImpl.cpp - src/efsw/FileWatcherImpl.hpp - src/efsw/Lock.hpp - src/efsw/Log.cpp - src/efsw/Mutex.hpp - src/efsw/sophist.h - src/efsw/String.cpp - src/efsw/String.hpp - src/efsw/System.cpp - src/efsw/System.hpp - src/efsw/Thread.hpp - src/efsw/Utf.hpp - src/efsw/Watcher.cpp - src/efsw/Watcher.hpp - src/efsw/WatcherGeneric.cpp - src/efsw/WatcherGeneric.hpp - src/efsw/platform/platformimpl.hpp - ) + add_library(efsw STATIC) - if (WIN32) - list (APPEND EFSW_CPP_SOURCE - src/efsw/platform/win/FileSystemImpl.cpp - src/efsw/platform/win/FileSystemImpl.hpp - src/efsw/platform/win/SystemImpl.cpp - src/efsw/platform/win/SystemImpl.hpp) - else () - list (APPEND EFSW_CPP_SOURCE - src/efsw/platform/posix/FileSystemImpl.cpp - src/efsw/platform/posix/FileSystemImpl.hpp - src/efsw/platform/posix/SystemImpl.cpp - src/efsw/platform/posix/SystemImpl.hpp) + if(WIN32) + set(efsw_platform_dir "win") + else() + set(efsw_platform_dir "posix") endif() + target_sources(efsw + PRIVATE + src/efsw/Debug.cpp + src/efsw/DirectorySnapshot.cpp + src/efsw/DirectorySnapshotDiff.cpp + src/efsw/DirWatcherGeneric.cpp + src/efsw/FileInfo.cpp + src/efsw/FileSystem.cpp + src/efsw/FileWatcher.cpp + src/efsw/FileWatcherCWrapper.cpp + src/efsw/FileWatcherGeneric.cpp + src/efsw/FileWatcherImpl.cpp + src/efsw/Log.cpp + src/efsw/String.cpp + src/efsw/System.cpp + src/efsw/Watcher.cpp + src/efsw/WatcherGeneric.cpp + src/efsw/platform/${efsw_platform_dir}/FileSystemImpl.cpp + src/efsw/platform/${efsw_platform_dir}/SystemImpl.cpp) + + target_sources(efsw + PUBLIC + FILE_SET HEADERS + BASE_DIRS include + FILES + include/efsw/efsw.h + include/efsw/efsw.hpp) + + target_sources(efsw + PRIVATE + FILE_SET efsw_private_headers + TYPE HEADERS + BASE_DIRS src + FILES + src/efsw/Atomic.hpp + src/efsw/base.hpp + src/efsw/Debug.hpp + src/efsw/DirectorySnapshot.hpp + src/efsw/DirectorySnapshotDiff.hpp + src/efsw/DirWatcherGeneric.hpp + src/efsw/FileInfo.hpp + src/efsw/FileSystem.hpp + src/efsw/FileWatcherGeneric.hpp + src/efsw/FileWatcherImpl.hpp + src/efsw/Lock.hpp + src/efsw/Mutex.hpp + src/efsw/sophist.h + src/efsw/String.hpp + src/efsw/System.hpp + src/efsw/Thread.hpp + src/efsw/Utf.hpp + src/efsw/Watcher.hpp + src/efsw/WatcherGeneric.hpp + src/efsw/platform/platformimpl.hpp + src/efsw/platform/${efsw_platform_dir}/FileSystemImpl.hpp + src/efsw/platform/${efsw_platform_dir}/SystemImpl.hpp) + if (APPLE) - list (APPEND EFSW_CPP_SOURCE - src/efsw/FileWatcherFSEvents.cpp - src/efsw/FileWatcherFSEvents.hpp - src/efsw/FileWatcherKqueue.cpp - src/efsw/FileWatcherKqueue.hpp - src/efsw/WatcherFSEvents.cpp - src/efsw/WatcherFSEvents.hpp - src/efsw/WatcherKqueue.cpp - src/efsw/WatcherKqueue.hpp) - set(OPTIONAL_LINK_LIBRARIES "-framework CoreFoundation" "-framework CoreServices") + target_sources(efsw + PRIVATE + src/efsw/FileWatcherFSEvents.cpp + src/efsw/FileWatcherKqueue.cpp + src/efsw/WatcherFSEvents.cpp + src/efsw/WatcherKqueue.cpp) + target_sources(efsw + PRIVATE + FILE_SET efsw_private_headers + TYPE HEADERS + BASE_DIRS src + FILES + src/efsw/FileWatcherFSEvents.hpp + src/efsw/FileWatcherKqueue.hpp + src/efsw/WatcherFSEvents.hpp + src/efsw/WatcherKqueue.hpp) + target_link_libraries(efsw + PRIVATE + $<LINK_LIBRARY:FRAMEWORK,CoreFoundation> + $<LINK_LIBRARY:FRAMEWORK,CoreServices>) elseif (WIN32) - list (APPEND EFSW_CPP_SOURCE - src/efsw/FileWatcherWin32.cpp - src/efsw/FileWatcherWin32.hpp - src/efsw/WatcherWin32.cpp - src/efsw/WatcherWin32.hpp) + target_sources(efsw + PRIVATE + src/efsw/FileWatcherWin32.cpp + src/efsw/WatcherWin32.cpp) + target_sources(efsw + PRIVATE + FILE_SET efsw_private_headers + TYPE HEADERS + BASE_DIRS src + FILES + src/efsw/FileWatcherWin32.hpp + src/efsw/WatcherWin32.hpp) elseif (${CMAKE_SYSTEM_NAME} MATCHES "Linux") - list (APPEND EFSW_CPP_SOURCE - src/efsw/FileWatcherInotify.cpp - src/efsw/FileWatcherInotify.hpp - src/efsw/WatcherInotify.cpp - src/efsw/WatcherInotify.hpp) + target_sources(efsw + PRIVATE + src/efsw/FileWatcherInotify.cpp + src/efsw/WatcherInotify.cpp) + target_sources(efsw + PRIVATE + FILE_SET efsw_private_headers + TYPE HEADERS + BASE_DIRS src + FILES + src/efsw/FileWatcherInotify.hpp + src/efsw/WatcherInotify.hpp) find_path(EFSW_INOTIFY_H NAMES sys/inotify.h @@ -83,34 +120,30 @@ if (BUILD_SHARED_LIBS) list (APPEND EFSW_CPP_SOURCE src/efsw/inotify-nosys.h ) - set(OPTIONAL_COMPILE_DEFINITIONS "-DEFSW_INOTIFY_NOSYS") + target_compile_definitions(efsw + PRIVATE + EFSW_INOTIFY_NOSYS) endif() elseif (${CMAKE_SYSTEM_NAME} MATCHES "FreeBSD") - list (APPEND EFSW_CPP_SOURCE - src/efsw/FileWatcherKqueue.cpp - src/efsw/FileWatcherKqueue.hpp - src/efsw/WatcherKqueue.cpp - src/efsw/WatcherKqueue.hpp) + target_sources(efsw + PRIVATE + src/efsw/FileWatcherKqueue.cpp + src/efsw/WatcherKqueue.cpp) + target_sources(efsw + PRIVATE + FILE_SET efsw_private_headers + TYPE HEADERS + BASE_DIRS src + FILES + src/efsw/FileWatcherKqueue.hpp + src/efsw/WatcherKqueue.hpp) endif() - add_library(efsw STATIC ${EFSW_CPP_SOURCE}) - - target_include_directories(efsw - PUBLIC - ${CMAKE_CURRENT_SOURCE_DIR}/include - PRIVATE - ${CMAKE_CURRENT_SOURCE_DIR}/src) - - target_compile_definitions(efsw - PRIVATE - ${OPTIONAL_COMPILE_DEFINITIONS}) - target_link_libraries(efsw PRIVATE trinity-dependency-interface PUBLIC - threads - ${OPTIONAL_LINK_LIBRARIES}) + threads) set_target_properties(efsw PROPERTIES diff --git a/dep/fmt/CMakeLists.txt b/dep/fmt/CMakeLists.txt index edd263c2331..2568d7fefc7 100644 --- a/dep/fmt/CMakeLists.txt +++ b/dep/fmt/CMakeLists.txt @@ -8,31 +8,32 @@ # WITHOUT ANY WARRANTY, to the extent permitted by law; without even the # implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. -set(FMT_HEADERS - include/fmt/args.h - include/fmt/base.h - include/fmt/chrono.h - include/fmt/color.h - include/fmt/compile.h - include/fmt/core.h - include/fmt/format.h - include/fmt/format-inl.h - include/fmt/os.h - include/fmt/ostream.h - include/fmt/printf.h - include/fmt/ranges.h - include/fmt/std.h - include/fmt/xchar.h) +add_library(fmt STATIC) -set(FMT_SOURCES - src/format.cc - src/os.cc) - -add_library(fmt STATIC ${FMT_SOURCES} ${FMT_HEADERS}) - -target_include_directories(fmt +target_sources(fmt PUBLIC - ${CMAKE_CURRENT_SOURCE_DIR}/include) + FILE_SET HEADERS + BASE_DIRS include + FILES + include/fmt/args.h + include/fmt/base.h + include/fmt/chrono.h + include/fmt/color.h + include/fmt/compile.h + include/fmt/core.h + include/fmt/format.h + include/fmt/format-inl.h + include/fmt/os.h + include/fmt/ostream.h + include/fmt/printf.h + include/fmt/ranges.h + include/fmt/std.h + include/fmt/xchar.h) + +target_sources(fmt + PRIVATE + src/format.cc + src/os.cc) target_link_libraries(fmt PRIVATE diff --git a/dep/g3dlite/CMakeLists.txt b/dep/g3dlite/CMakeLists.txt index 2397bd8d05b..7116b512f39 100644 --- a/dep/g3dlite/CMakeLists.txt +++ b/dep/g3dlite/CMakeLists.txt @@ -8,57 +8,71 @@ # WITHOUT ANY WARRANTY, to the extent permitted by law; without even the # implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. -set(g3dlib_STAT_SRCS - source/AABox.cpp - source/Any.cpp - source/AnyTableReader.cpp - source/BinaryFormat.cpp - source/BinaryInput.cpp - source/BinaryOutput.cpp - source/Box.cpp - source/Capsule.cpp - source/CollisionDetection.cpp - source/CoordinateFrame.cpp - source/Crypto.cpp - source/Cylinder.cpp - source/debugAssert.cpp - source/FileSystem.cpp - source/fileutils.cpp - source/format.cpp - source/g3dfnmatch.cpp - source/g3dmath.cpp - source/GThread.cpp - source/Line.cpp - source/LineSegment.cpp - source/Log.cpp - source/Matrix3.cpp - source/Matrix4.cpp - source/MemoryManager.cpp - source/PhysicsFrame.cpp - source/Plane.cpp - source/prompt.cpp - source/Quat.cpp - source/Random.cpp - source/Ray.cpp - source/RegistryUtil.cpp - source/Sphere.cpp - source/stringutils.cpp - source/System.cpp - source/TextInput.cpp - source/TextOutput.cpp - source/Triangle.cpp - source/uint128.cpp - source/UprightFrame.cpp - source/Vector2.cpp - source/Vector3.cpp - source/Vector4.cpp -) +add_library(g3dlib STATIC) -add_library(g3dlib STATIC ${g3dlib_STAT_SRCS}) +target_sources(g3dlib + PRIVATE + source/AABox.cpp + source/Any.cpp + source/AnyTableReader.cpp + source/BinaryFormat.cpp + source/BinaryInput.cpp + source/BinaryOutput.cpp + source/Box.cpp + source/Capsule.cpp + source/CollisionDetection.cpp + source/CoordinateFrame.cpp + source/Crypto.cpp + source/Cylinder.cpp + source/debugAssert.cpp + source/FileSystem.cpp + source/fileutils.cpp + source/format.cpp + source/g3dfnmatch.cpp + source/g3dmath.cpp + source/GThread.cpp + source/Line.cpp + source/LineSegment.cpp + source/Log.cpp + source/Matrix3.cpp + source/Matrix4.cpp + source/MemoryManager.cpp + source/PhysicsFrame.cpp + source/Plane.cpp + source/prompt.cpp + source/Quat.cpp + source/Random.cpp + source/Ray.cpp + source/RegistryUtil.cpp + source/Sphere.cpp + source/stringutils.cpp + source/System.cpp + source/TextInput.cpp + source/TextOutput.cpp + source/Triangle.cpp + source/uint128.cpp + source/UprightFrame.cpp + source/Vector2.cpp + source/Vector3.cpp + source/Vector4.cpp) -target_include_directories(g3dlib +target_sources(g3dlib PUBLIC - ${CMAKE_CURRENT_SOURCE_DIR}/include) + FILE_SET HEADERS + BASE_DIRS include + FILES + include/G3D/AABox.h + include/G3D/BoundsTrait.h + include/G3D/Box.h + include/G3D/CoordinateFrame.h + include/G3D/g3dmath.h + include/G3D/Matrix3.h + include/G3D/Matrix4.h + include/G3D/Plane.h + include/G3D/Quat.h + include/G3D/Ray.h + include/G3D/Vector3.h + include/G3D/Vector4.h) if((CMAKE_SYSTEM_NAME MATCHES "Linux" AND NOT NOJEM) OR TSAN) target_compile_definitions(g3dlib diff --git a/dep/gsoap/CMakeLists.txt b/dep/gsoap/CMakeLists.txt index 77fb50d1e87..6a50b6b68c4 100644 --- a/dep/gsoap/CMakeLists.txt +++ b/dep/gsoap/CMakeLists.txt @@ -8,15 +8,23 @@ # WITHOUT ANY WARRANTY, to the extent permitted by law; without even the # implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. -file(GLOB sources *.cpp *.c *.h) +add_library(gsoap STATIC) -add_library(gsoap STATIC ${sources}) - -set_target_properties(gsoap PROPERTIES LINKER_LANGUAGE CXX) +target_sources(gsoap + PRIVATE + soapC.cpp + soapServer.cpp + stdsoap2.cpp) -target_include_directories(gsoap +target_sources(gsoap PUBLIC - ${CMAKE_CURRENT_SOURCE_DIR}) + FILE_SET HEADERS + FILES + soapH.h + soapStub.h + stdsoap2.h) + +set_target_properties(gsoap PROPERTIES LINKER_LANGUAGE CXX) target_compile_definitions(gsoap PUBLIC diff --git a/dep/openssl_ed25519/CMakeLists.txt b/dep/openssl_ed25519/CMakeLists.txt index 946aaaf7f3b..3e1be229b70 100644 --- a/dep/openssl_ed25519/CMakeLists.txt +++ b/dep/openssl_ed25519/CMakeLists.txt @@ -8,25 +8,29 @@ # WITHOUT ANY WARRANTY, to the extent permitted by law; without even the # implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. -file(GLOB RECURSE sources *.cpp *.c *.h) +add_library(openssl_ed25519 SHARED) -add_library(openssl_ed25519 - SHARED - curve25519.c - ed25519/ed25519.h - ec_lcl.h - internal/refcount.h) - -set_target_properties(openssl_ed25519 PROPERTIES LINKER_LANGUAGE CXX) +target_sources(openssl_ed25519 + PRIVATE + curve25519.c) -target_include_directories(openssl_ed25519 +target_sources(openssl_ed25519 PUBLIC - ${CMAKE_CURRENT_SOURCE_DIR}) + FILE_SET HEADERS + FILES + ed25519/ed25519.h + PRIVATE + FILE_SET openssl_ed25519_private_headers + TYPE HEADERS + FILES + ec_lcl.h + internal/refcount.h) + +set_target_properties(openssl_ed25519 PROPERTIES LINKER_LANGUAGE CXX) target_compile_definitions(openssl_ed25519 PRIVATE - OPENSSL_ED25519_EXPORT -) + OPENSSL_ED25519_EXPORT) target_link_libraries(openssl_ed25519 PRIVATE diff --git a/dep/protobuf/CMakeLists.txt b/dep/protobuf/CMakeLists.txt index cce1181568a..2bd3a01f1f0 100644 --- a/dep/protobuf/CMakeLists.txt +++ b/dep/protobuf/CMakeLists.txt @@ -8,61 +8,98 @@ # WITHOUT ANY WARRANTY, to the extent permitted by law; without even the # implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. -set(protobuf_STAT_SRCS - src/google/protobuf/compiler/importer.cc - src/google/protobuf/compiler/parser.cc - src/google/protobuf/descriptor.cc - src/google/protobuf/descriptor.pb.cc - src/google/protobuf/descriptor_database.cc - src/google/protobuf/dynamic_message.cc - src/google/protobuf/extension_set.cc - src/google/protobuf/extension_set_heavy.cc - src/google/protobuf/generated_message_reflection.cc - src/google/protobuf/generated_message_util.cc - src/google/protobuf/io/coded_stream.cc - src/google/protobuf/io/gzip_stream.cc - src/google/protobuf/io/printer.cc - src/google/protobuf/io/strtod.cc - src/google/protobuf/io/tokenizer.cc - src/google/protobuf/io/zero_copy_stream.cc - src/google/protobuf/io/zero_copy_stream_impl.cc - src/google/protobuf/io/zero_copy_stream_impl_lite.cc - src/google/protobuf/message.cc - src/google/protobuf/message_lite.cc - src/google/protobuf/reflection_ops.cc - src/google/protobuf/repeated_field.cc - src/google/protobuf/service.cc - src/google/protobuf/stubs/common.cc - src/google/protobuf/stubs/once.cc - src/google/protobuf/stubs/stringprintf.cc - src/google/protobuf/stubs/structurally_valid.cc - src/google/protobuf/stubs/strutil.cc - src/google/protobuf/stubs/substitute.cc - src/google/protobuf/text_format.cc - src/google/protobuf/unknown_field_set.cc - src/google/protobuf/wire_format.cc - src/google/protobuf/wire_format_lite.cc -) +add_library(protobuf) -if (MSVC) - set(protobuf_STAT_SRCS - ${protobuf_STAT_SRCS} - src/google/protobuf/stubs/atomicops_internals_x86_msvc.cc - ) -else() - set(protobuf_STAT_SRCS - ${protobuf_STAT_SRCS} +target_sources(protobuf + PRIVATE + src/google/protobuf/compiler/importer.cc + src/google/protobuf/compiler/parser.cc + src/google/protobuf/descriptor.cc + src/google/protobuf/descriptor.pb.cc + src/google/protobuf/descriptor_database.cc + src/google/protobuf/dynamic_message.cc + src/google/protobuf/extension_set.cc + src/google/protobuf/extension_set_heavy.cc + src/google/protobuf/generated_message_reflection.cc + src/google/protobuf/generated_message_util.cc + src/google/protobuf/io/coded_stream.cc + src/google/protobuf/io/gzip_stream.cc + src/google/protobuf/io/printer.cc + src/google/protobuf/io/strtod.cc + src/google/protobuf/io/tokenizer.cc + src/google/protobuf/io/zero_copy_stream.cc + src/google/protobuf/io/zero_copy_stream_impl.cc + src/google/protobuf/io/zero_copy_stream_impl_lite.cc + src/google/protobuf/message.cc + src/google/protobuf/message_lite.cc + src/google/protobuf/reflection_ops.cc + src/google/protobuf/repeated_field.cc + src/google/protobuf/service.cc src/google/protobuf/stubs/atomicops_internals_x86_gcc.cc - ) -endif() - -add_library(protobuf ${protobuf_STAT_SRCS}) + src/google/protobuf/stubs/atomicops_internals_x86_msvc.cc + src/google/protobuf/stubs/common.cc + src/google/protobuf/stubs/once.cc + src/google/protobuf/stubs/stringprintf.cc + src/google/protobuf/stubs/structurally_valid.cc + src/google/protobuf/stubs/strutil.cc + src/google/protobuf/stubs/substitute.cc + src/google/protobuf/text_format.cc + src/google/protobuf/unknown_field_set.cc + src/google/protobuf/wire_format.cc + src/google/protobuf/wire_format_lite.cc) -target_include_directories(protobuf +target_sources(protobuf PUBLIC - ${CMAKE_CURRENT_SOURCE_DIR}/src + FILE_SET HEADERS + BASE_DIRS src + FILES + src/google/protobuf/compiler/importer.h + src/google/protobuf/compiler/parser.h + src/google/protobuf/descriptor_database.h + src/google/protobuf/descriptor.h + src/google/protobuf/descriptor.pb.h + src/google/protobuf/dynamic_message.h + src/google/protobuf/extension_set.h + src/google/protobuf/generated_enum_reflection.h + src/google/protobuf/generated_message_reflection.h + src/google/protobuf/generated_message_util.h + src/google/protobuf/io/coded_stream.h + src/google/protobuf/io/coded_stream_inl.h + src/google/protobuf/io/gzip_stream.h + src/google/protobuf/io/printer.h + src/google/protobuf/io/strtod.h + src/google/protobuf/io/tokenizer.h + src/google/protobuf/io/zero_copy_stream.h + src/google/protobuf/io/zero_copy_stream_impl.h + src/google/protobuf/io/zero_copy_stream_impl_lite.h + src/google/protobuf/message.h + src/google/protobuf/message_lite.h + src/google/protobuf/reflection_ops.h + src/google/protobuf/repeated_field.h + src/google/protobuf/service.h + src/google/protobuf/stubs/atomicops.h + src/google/protobuf/stubs/common.h + src/google/protobuf/stubs/hash.h + src/google/protobuf/stubs/map_util.h + src/google/protobuf/stubs/once.h + src/google/protobuf/stubs/platform_macros.h + src/google/protobuf/stubs/stl_util.h + src/google/protobuf/stubs/stringprintf.h + src/google/protobuf/stubs/strutil.h + src/google/protobuf/stubs/substitute.h + src/google/protobuf/stubs/template_util.h + src/google/protobuf/stubs/type_traits.h + src/google/protobuf/text_format.h + src/google/protobuf/unknown_field_set.h + src/google/protobuf/wire_format.h + src/google/protobuf/wire_format_lite.h + src/google/protobuf/wire_format_lite_inl.h PRIVATE - ${CMAKE_CURRENT_SOURCE_DIR}/tc_custom) + FILE_SET protobuf_private_headers + TYPE HEADERS + BASE_DIRS tc_custom + FILES + tc_custom/config.h) target_link_libraries(protobuf PRIVATE diff --git a/dep/recastnavigation/Detour/CMakeLists.txt b/dep/recastnavigation/Detour/CMakeLists.txt index 4ea573681f7..7e0fabb41af 100644 --- a/dep/recastnavigation/Detour/CMakeLists.txt +++ b/dep/recastnavigation/Detour/CMakeLists.txt @@ -8,27 +8,36 @@ # WITHOUT ANY WARRANTY, to the extent permitted by law; without even the # implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. -set(Detour_STAT_SRCS +add_library(Detour STATIC) + +target_sources(Detour + PRIVATE Source/DetourAlloc.cpp Source/DetourAssert.cpp Source/DetourCommon.cpp Source/DetourNavMesh.cpp Source/DetourNavMeshBuilder.cpp Source/DetourNavMeshQuery.cpp - Source/DetourNode.cpp -) + Source/DetourNode.cpp) -add_library(Detour STATIC ${Detour_STAT_SRCS}) - -target_include_directories(Detour +target_sources(Detour PUBLIC - ${CMAKE_CURRENT_SOURCE_DIR}/Include) + FILE_SET HEADERS + BASE_DIRS Include + FILES + Include/DetourAlloc.h + Include/DetourAssert.h + Include/DetourCommon.h + Include/DetourMath.h + Include/DetourNavMeshBuilder.h + Include/DetourNavMesh.h + Include/DetourNavMeshQuery.h + Include/DetourNode.h + Include/DetourStatus.h) target_link_libraries(Detour PRIVATE - trinity-dependency-interface - PUBLIC - zlib) + trinity-dependency-interface) set_target_properties(Detour PROPERTIES diff --git a/dep/recastnavigation/Recast/CMakeLists.txt b/dep/recastnavigation/Recast/CMakeLists.txt index 0346d74001e..fec6666c5dc 100644 --- a/dep/recastnavigation/Recast/CMakeLists.txt +++ b/dep/recastnavigation/Recast/CMakeLists.txt @@ -8,10 +8,13 @@ # WITHOUT ANY WARRANTY, to the extent permitted by law; without even the # implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. -set(Recast_STAT_SRCS +add_library(Recast STATIC) + +target_sources(Recast + PRIVATE Source/Recast.cpp Source/RecastAlloc.cpp - Source/RecastAssert.cpp + Source/RecastAssert.cpp Source/RecastArea.cpp Source/RecastContour.cpp Source/RecastFilter.cpp @@ -19,20 +22,20 @@ set(Recast_STAT_SRCS Source/RecastMesh.cpp Source/RecastMeshDetail.cpp Source/RecastRasterization.cpp - Source/RecastRegion.cpp -) + Source/RecastRegion.cpp) -add_library(Recast STATIC ${Recast_STAT_SRCS}) - -target_include_directories(Recast +target_sources(Recast PUBLIC - ${CMAKE_CURRENT_SOURCE_DIR}/Include) + FILE_SET HEADERS + BASE_DIRS Include + FILES + Include/RecastAlloc.h + Include/RecastAssert.h + Include/Recast.h) target_link_libraries(Recast PRIVATE - trinity-dependency-interface - PUBLIC - zlib) + trinity-dependency-interface) set_target_properties(Recast PROPERTIES diff --git a/dep/zlib/CMakeLists.txt b/dep/zlib/CMakeLists.txt index 6b2af4c987a..93d569e1a09 100644 --- a/dep/zlib/CMakeLists.txt +++ b/dep/zlib/CMakeLists.txt @@ -22,39 +22,43 @@ if(UNIX) "${ZLIB_INCLUDE_DIRS}") else() # Use the bundled source on windows - SET(zlib_STAT_SRCS - adler32.c - compress.c - crc32.c - crc32.h - deflate.c - deflate.h - gzguts.h - infback.c - inffast.c - inffast.h - inffixed.h - inflate.c - inflate.h - inftrees.c - inftrees.h - trees.c - trees.h - uncompr.c - zconf.h - zlib.h - zutil.c - zutil.h - ) + add_library(zlib STATIC) - add_library(zlib STATIC - ${zlib_STAT_SRCS}) - - set_target_properties(zlib PROPERTIES LINKER_LANGUAGE CXX) + target_sources(zlib + PRIVATE + adler32.c + compress.c + crc32.c + deflate.c + infback.c + inffast.c + inflate.c + inftrees.c + trees.c + uncompr.c + zutil.c) - target_include_directories(zlib + target_sources(zlib PUBLIC - ${CMAKE_CURRENT_SOURCE_DIR}) + FILE_SET HEADERS + FILES + zlib.h + PRIVATE + FILE_SET zlib_private_headers + TYPE HEADERS + FILES + crc32.h + deflate.h + gzguts.h + inffast.h + inffixed.h + inflate.h + inftrees.h + trees.h + zconf.h + zutil.h) + + set_target_properties(zlib PROPERTIES LINKER_LANGUAGE CXX) target_link_libraries(zlib PRIVATE diff --git a/src/common/CMakeLists.txt b/src/common/CMakeLists.txt index 4aef665cc6f..326a8883e4c 100644 --- a/src/common/CMakeLists.txt +++ b/src/common/CMakeLists.txt @@ -8,10 +8,14 @@ # WITHOUT ANY WARRANTY, to the extent permitted by law; without even the # implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. -CollectSourceFiles( +GroupSources(${CMAKE_CURRENT_SOURCE_DIR}) + +add_library(common) + +CollectAndAddSourceFiles( + common ${CMAKE_CURRENT_SOURCE_DIR} - PRIVATE_SOURCES - # Exclude + EXCLUDE ${CMAKE_CURRENT_SOURCE_DIR}/Debugging/Windows ${CMAKE_CURRENT_SOURCE_DIR}/Platform ${CMAKE_CURRENT_SOURCE_DIR}/PrecompiledHeaders @@ -19,43 +23,20 @@ CollectSourceFiles( ${CMAKE_CURRENT_SOURCE_DIR}/network) if(WIN32) - CollectSourceFiles( + CollectAndAddSourceFiles( + common ${CMAKE_CURRENT_SOURCE_DIR}/Debugging/Windows - WINDOWS_DEBUGGING_SOURCES) - list(APPEND PRIVATE_SOURCES - ${WINDOWS_DEBUGGING_SOURCES}) - CollectSourceFiles( + BASE_DIR ${CMAKE_CURRENT_SOURCE_DIR}) + CollectAndAddSourceFiles( + common ${CMAKE_CURRENT_SOURCE_DIR}/Platform/Windows - WINDOWS_PLATFORM_SOURCES) - list(APPEND PRIVATE_SOURCES - ${WINDOWS_PLATFORM_SOURCES}) - unset(WINDOWS_DEBUGGING_SOURCES) - unset(WINDOWS_PLATFORM_SOURCES) + BASE_DIR ${CMAKE_CURRENT_SOURCE_DIR}) endif() -if(USE_COREPCH) - set(PRIVATE_PCH_HEADER PrecompiledHeaders/commonPCH.h) -endif(USE_COREPCH) - -GroupSources(${CMAKE_CURRENT_SOURCE_DIR}) - -add_library(common - ${PRIVATE_SOURCES} -) - -CollectIncludeDirectories( - ${CMAKE_CURRENT_SOURCE_DIR} - PUBLIC_INCLUDES - # Exclude - ${CMAKE_CURRENT_SOURCE_DIR}/PrecompiledHeaders - ${CMAKE_CURRENT_SOURCE_DIR}/mmaps_common - ${CMAKE_CURRENT_SOURCE_DIR}/network) - target_include_directories(common PUBLIC # Provide the binary dir for all child targets ${CMAKE_BINARY_DIR} - ${PUBLIC_INCLUDES} PRIVATE ${CMAKE_CURRENT_BINARY_DIR}) @@ -98,12 +79,8 @@ endif() # Generate precompiled header if(USE_COREPCH) - add_cxx_pch(common ${PRIVATE_PCH_HEADER}) + add_cxx_pch(common PrecompiledHeaders/commonPCH.h) endif() -unset(PRIVATE_SOURCES) -unset(PRIVATE_PCH_HEADER) -unset(PUBLIC_INCLUDES) - add_subdirectory(mmaps_common) add_subdirectory(network) diff --git a/src/common/mmaps_common/CMakeLists.txt b/src/common/mmaps_common/CMakeLists.txt index 2a65e8d5963..a6a27095a39 100644 --- a/src/common/mmaps_common/CMakeLists.txt +++ b/src/common/mmaps_common/CMakeLists.txt @@ -8,18 +8,13 @@ # WITHOUT ANY WARRANTY, to the extent permitted by law; without even the # implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. -CollectSourceFiles( - ${CMAKE_CURRENT_SOURCE_DIR} - PRIVATE_SOURCES) - GroupSources(${CMAKE_CURRENT_SOURCE_DIR}) -CollectIncludeDirectories( - ${CMAKE_CURRENT_SOURCE_DIR} - PUBLIC_INCLUDES -) +add_library(mmaps_common) -add_library(mmaps_common ${PRIVATE_SOURCES}) +CollectAndAddSourceFiles( + mmaps_common + ${CMAKE_CURRENT_SOURCE_DIR}) target_link_libraries(mmaps_common PRIVATE @@ -29,10 +24,6 @@ target_link_libraries(mmaps_common Recast Detour) -target_include_directories(mmaps_common - PUBLIC - ${PUBLIC_INCLUDES}) - set_target_properties(mmaps_common PROPERTIES COMPILE_WARNING_AS_ERROR ${WITH_WARNINGS_AS_ERRORS} diff --git a/src/common/network/CMakeLists.txt b/src/common/network/CMakeLists.txt index d1e900680d4..9f30b3c841c 100644 --- a/src/common/network/CMakeLists.txt +++ b/src/common/network/CMakeLists.txt @@ -8,22 +8,17 @@ # WITHOUT ANY WARRANTY, to the extent permitted by law; without even the # implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. -CollectSourceFiles( - ${CMAKE_CURRENT_SOURCE_DIR} - PRIVATE_SOURCES) - GroupSources(${CMAKE_CURRENT_SOURCE_DIR}) -add_library(network - ${PRIVATE_SOURCES}) +add_library(network) -CollectIncludeDirectories( +CollectAndAddSourceFiles( + network ${CMAKE_CURRENT_SOURCE_DIR} - PUBLIC_INCLUDES) + EXCLUDE + ${CMAKE_CURRENT_SOURCE_DIR}/PrecompiledHeaders) target_include_directories(network - PUBLIC - ${PUBLIC_INCLUDES} PRIVATE ${CMAKE_CURRENT_BINARY_DIR}) diff --git a/src/server/bnetserver/CMakeLists.txt b/src/server/bnetserver/CMakeLists.txt index efe4c61fe74..1eaa80a3cd2 100644 --- a/src/server/bnetserver/CMakeLists.txt +++ b/src/server/bnetserver/CMakeLists.txt @@ -10,29 +10,21 @@ ########### bnetserver ############### -CollectSourceFiles( +GroupSources(${CMAKE_CURRENT_SOURCE_DIR}) + +add_executable(bnetserver) + +CollectAndAddSourceFiles( + bnetserver ${CMAKE_CURRENT_SOURCE_DIR} - PRIVATE_SOURCES - # Exclude + EXCLUDE ${CMAKE_CURRENT_SOURCE_DIR}/PrecompiledHeaders) if (WIN32) if (MSVC) - list(APPEND PRIVATE_SOURCES bnetserver.rc) + target_sources(bnetserver PRIVATE bnetserver.rc) endif() -endif() - -if (USE_COREPCH) - set(PRIVATE_PCH_HEADER PrecompiledHeaders/bnetPCH.h) -endif() - -GroupSources(${CMAKE_CURRENT_SOURCE_DIR}) - -add_executable(bnetserver - ${PRIVATE_SOURCES} -) - -if (NOT WIN32) +else() target_compile_definitions(bnetserver PRIVATE _TRINITY_BNET_CONFIG="${CONF_DIR}/bnetserver.conf" _TRINITY_BNET_CONFIG_DIR="${CONF_DIR}/bnetserver.conf.d" @@ -45,15 +37,7 @@ target_link_libraries(bnetserver PUBLIC shared) -CollectIncludeDirectories( - ${CMAKE_CURRENT_SOURCE_DIR} - PUBLIC_INCLUDES - # Exclude - ${CMAKE_CURRENT_SOURCE_DIR}/PrecompiledHeaders) - target_include_directories(bnetserver - PUBLIC - ${PUBLIC_INCLUDES} PRIVATE ${CMAKE_CURRENT_BINARY_DIR}) @@ -92,5 +76,5 @@ endif() # Generate precompiled header if (USE_COREPCH) - add_cxx_pch(bnetserver ${PRIVATE_PCH_HEADER}) + add_cxx_pch(bnetserver PrecompiledHeaders/bnetPCH.h) endif() diff --git a/src/server/database/CMakeLists.txt b/src/server/database/CMakeLists.txt index 9b9dc97ca2c..0513064236b 100644 --- a/src/server/database/CMakeLists.txt +++ b/src/server/database/CMakeLists.txt @@ -8,31 +8,17 @@ # WITHOUT ANY WARRANTY, to the extent permitted by law; without even the # implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. -CollectSourceFiles( - ${CMAKE_CURRENT_SOURCE_DIR} - PRIVATE_SOURCES - # Exclude - ${CMAKE_CURRENT_SOURCE_DIR}/PrecompiledHeaders) - -if(USE_COREPCH) - set(PRIVATE_PCH_HEADER PrecompiledHeaders/databasePCH.h) -endif() - GroupSources(${CMAKE_CURRENT_SOURCE_DIR}) -add_library(database - ${PRIVATE_SOURCES} -) +add_library(database) -CollectIncludeDirectories( +CollectAndAddSourceFiles( + database ${CMAKE_CURRENT_SOURCE_DIR} - PUBLIC_INCLUDES - # Exclude + EXCLUDE ${CMAKE_CURRENT_SOURCE_DIR}/PrecompiledHeaders) target_include_directories(database - PUBLIC - ${PUBLIC_INCLUDES} PRIVATE ${CMAKE_CURRENT_BINARY_DIR}) @@ -63,5 +49,5 @@ endif() # Generate precompiled header if(USE_COREPCH) - add_cxx_pch(database ${PRIVATE_PCH_HEADER}) + add_cxx_pch(database PrecompiledHeaders/databasePCH.h) endif() diff --git a/src/server/game/CMakeLists.txt b/src/server/game/CMakeLists.txt index 8ebf8075eeb..ab35bd74d94 100644 --- a/src/server/game/CMakeLists.txt +++ b/src/server/game/CMakeLists.txt @@ -8,22 +8,12 @@ # WITHOUT ANY WARRANTY, to the extent permitted by law; without even the # implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. -CollectSourceFiles( - ${CMAKE_CURRENT_SOURCE_DIR} - PRIVATE_SOURCES - # Exclude - ${CMAKE_CURRENT_SOURCE_DIR}/PrecompiledHeaders) - -if(USE_COREPCH) - set(PRIVATE_PCH_HEADER PrecompiledHeaders/gamePCH.h) -endif() - GroupSources(${CMAKE_CURRENT_SOURCE_DIR}) CollectIncludeDirectories( ${CMAKE_CURRENT_SOURCE_DIR} PUBLIC_INCLUDES - # Exclude + EXCLUDE ${CMAKE_CURRENT_SOURCE_DIR}/PrecompiledHeaders) # Provide an interface target for the game project to allow @@ -39,8 +29,13 @@ target_link_libraries(game-interface shared mmaps_common) -add_library(game - ${PRIVATE_SOURCES}) +add_library(game) + +CollectAndAddSourceFiles( + game + ${CMAKE_CURRENT_SOURCE_DIR} + EXCLUDE + ${CMAKE_CURRENT_SOURCE_DIR}/PrecompiledHeaders) target_include_directories(game PRIVATE @@ -73,5 +68,5 @@ endif() # Generate precompiled header if(USE_COREPCH) - add_cxx_pch(game ${PRIVATE_PCH_HEADER}) + add_cxx_pch(game PrecompiledHeaders/gamePCH.h) endif() diff --git a/src/server/proto/CMakeLists.txt b/src/server/proto/CMakeLists.txt index 517b34f448e..c308f5009f6 100644 --- a/src/server/proto/CMakeLists.txt +++ b/src/server/proto/CMakeLists.txt @@ -8,33 +8,17 @@ # WITHOUT ANY WARRANTY, to the extent permitted by law; without even the # implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. -CollectSourceFiles( - ${CMAKE_CURRENT_SOURCE_DIR} - PRIVATE_SOURCES - # Exclude - ${CMAKE_CURRENT_SOURCE_DIR}/PrecompiledHeaders) - -if (USE_COREPCH) - set(PRIVATE_PCH_HEADER PrecompiledHeaders/protoPCH.h) -endif() - GroupSources(${CMAKE_CURRENT_SOURCE_DIR}) -add_library(proto - ${PRIVATE_SOURCES} -) +add_library(proto) -CollectIncludeDirectories( +CollectAndAddSourceFiles( + proto ${CMAKE_CURRENT_SOURCE_DIR} - PUBLIC_INCLUDES - # Exclude - ${CMAKE_CURRENT_SOURCE_DIR}/PrecompiledHeaders - ${CMAKE_CURRENT_SOURCE_DIR}/Client/api - ${CMAKE_CURRENT_SOURCE_DIR}/Client/global_extensions) + EXCLUDE + ${CMAKE_CURRENT_SOURCE_DIR}/PrecompiledHeaders) target_include_directories(proto - PUBLIC - ${PUBLIC_INCLUDES} PRIVATE ${CMAKE_CURRENT_BINARY_DIR}) @@ -66,5 +50,5 @@ endif() # Generate precompiled header if (USE_COREPCH) - add_cxx_pch(proto ${PRIVATE_PCH_HEADER}) + add_cxx_pch(proto PrecompiledHeaders/protoPCH.h) endif() diff --git a/src/server/scripts/CMakeLists.txt b/src/server/scripts/CMakeLists.txt index fb4ba169b4c..06eb5060341 100644 --- a/src/server/scripts/CMakeLists.txt +++ b/src/server/scripts/CMakeLists.txt @@ -88,13 +88,10 @@ foreach(GRAPH_KEY ${GRAPH_KEYS}) message(" |") endforeach() -# Base sources which are used by every script project -if(USE_SCRIPTPCH) - set(PRIVATE_PCH_HEADER ScriptPCH.h) -endif() - GroupSources(${CMAKE_CURRENT_SOURCE_DIR}) +add_library(scripts STATIC) + # Configures the scriptloader with the given name and stores the output in the LOADER_OUT variable. # It is possible to expose multiple subdirectories from the same scriptloader through passing # it to the variable arguments @@ -145,32 +142,28 @@ foreach(SCRIPT_MODULE ${SCRIPT_MODULE_LIST}) # Add the module name to STATIC_SCRIPT_MODULES list(APPEND STATIC_SCRIPT_MODULES ${SCRIPT_MODULE}) # Add the module content to the whole static module - CollectSourceFiles(${SCRIPT_MODULE_PATH} PRIVATE_SOURCES) + CollectAndAddSourceFiles(scripts ${SCRIPT_MODULE_PATH}) endif() elseif(${SCRIPT_MODULE_VARIABLE} STREQUAL "dynamic") # Generate an own dynamic module which is loadable on runtime - # Add the module content to the whole static module - unset(SCRIPT_MODULE_PRIVATE_SOURCES) - CollectSourceFiles(${SCRIPT_MODULE_PATH} SCRIPT_MODULE_PRIVATE_SOURCES) # Configure the scriptloader ConfigureScriptLoader(${SCRIPT_MODULE} SCRIPT_MODULE_PRIVATE_SCRIPTLOADER ON ${SCRIPT_MODULE}) GetProjectNameOfScriptModule(${SCRIPT_MODULE} SCRIPT_MODULE_PROJECT_NAME) # Add the module name to DYNAMIC_SCRIPT_MODULES list(APPEND DYNAMIC_SCRIPT_MODULE_PROJECTS ${SCRIPT_MODULE_PROJECT_NAME}) # Create the script module project - add_library(${SCRIPT_MODULE_PROJECT_NAME} SHARED - ${SCRIPT_MODULE_PRIVATE_SOURCES} - ${SCRIPT_MODULE_PRIVATE_SCRIPTLOADER}) + add_library(${SCRIPT_MODULE_PROJECT_NAME} SHARED) + CollectAndAddSourceFiles(${SCRIPT_MODULE_PROJECT_NAME} ${SCRIPT_MODULE_PATH}) + target_sources(${SCRIPT_MODULE_PROJECT_NAME} + PUBLIC + FILE_SET HEADERS FILES ScriptLoader.h) + target_link_libraries(${SCRIPT_MODULE_PROJECT_NAME} PRIVATE trinity-core-interface PUBLIC game) - target_include_directories(${SCRIPT_MODULE_PROJECT_NAME} - PUBLIC - ${CMAKE_CURRENT_SOURCE_DIR}) - set_target_properties(${SCRIPT_MODULE_PROJECT_NAME} PROPERTIES COMPILE_WARNING_AS_ERROR ${WITH_WARNINGS_AS_ERRORS} @@ -203,10 +196,13 @@ set(WORLDSERVER_DYNAMIC_SCRIPT_MODULES_DEPENDENCIES ${DYNAMIC_SCRIPT_MODULE_PROJ ConfigureScriptLoader("static" SCRIPT_MODULE_PRIVATE_SCRIPTLOADER OFF ${STATIC_SCRIPT_MODULES}) -add_library(scripts STATIC - ScriptLoader.h - ${SCRIPT_MODULE_PRIVATE_SCRIPTLOADER} - ${PRIVATE_SOURCES}) +target_sources(scripts + PRIVATE + ${SCRIPT_MODULE_PRIVATE_SCRIPTLOADER}) + +target_sources(scripts + PUBLIC + FILE_SET HEADERS FILES ScriptLoader.h) target_link_libraries(scripts PRIVATE @@ -214,10 +210,6 @@ target_link_libraries(scripts PUBLIC game-interface) -target_include_directories(scripts - PUBLIC - ${CMAKE_CURRENT_SOURCE_DIR}) - set_target_properties(scripts PROPERTIES COMPILE_WARNING_AS_ERROR ${WITH_WARNINGS_AS_ERRORS} @@ -225,7 +217,7 @@ set_target_properties(scripts # Generate precompiled header if(USE_SCRIPTPCH) - add_cxx_pch("scripts" ${PRIVATE_PCH_HEADER} ${DYNAMIC_SCRIPT_MODULE_PROJECTS}) + add_cxx_pch("scripts" ScriptPCH.h ${DYNAMIC_SCRIPT_MODULE_PROJECTS}) reuse_cxx_pch("${DYNAMIC_SCRIPT_MODULE_PROJECTS}" scripts) endif() diff --git a/src/server/shared/CMakeLists.txt b/src/server/shared/CMakeLists.txt index cac46028064..37f12cfeb93 100644 --- a/src/server/shared/CMakeLists.txt +++ b/src/server/shared/CMakeLists.txt @@ -8,31 +8,17 @@ # WITHOUT ANY WARRANTY, to the extent permitted by law; without even the # implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. -CollectSourceFiles( - ${CMAKE_CURRENT_SOURCE_DIR} - PRIVATE_SOURCES - # Exclude - ${CMAKE_CURRENT_SOURCE_DIR}/PrecompiledHeaders) - -if(USE_COREPCH) - set(PRIVATE_PCH_HEADER PrecompiledHeaders/sharedPCH.h) -endif() - GroupSources(${CMAKE_CURRENT_SOURCE_DIR}) -add_library(shared - ${PRIVATE_SOURCES} -) +add_library(shared) -CollectIncludeDirectories( +CollectAndAddSourceFiles( + shared ${CMAKE_CURRENT_SOURCE_DIR} - PUBLIC_INCLUDES - # Exclude + EXCLUDE ${CMAKE_CURRENT_SOURCE_DIR}/PrecompiledHeaders) target_include_directories(shared - PUBLIC - ${PUBLIC_INCLUDES} PRIVATE ${CMAKE_CURRENT_BINARY_DIR}) @@ -66,5 +52,5 @@ endif() # Generate precompiled header if(USE_COREPCH) - add_cxx_pch(shared ${PRIVATE_PCH_HEADER}) + add_cxx_pch(shared PrecompiledHeaders/sharedPCH.h) endif() diff --git a/src/server/worldserver/CMakeLists.txt b/src/server/worldserver/CMakeLists.txt index bc0ed4e3656..55d300f2df3 100644 --- a/src/server/worldserver/CMakeLists.txt +++ b/src/server/worldserver/CMakeLists.txt @@ -8,29 +8,23 @@ # WITHOUT ANY WARRANTY, to the extent permitted by law; without even the # implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. -CollectSourceFiles( - ${CMAKE_CURRENT_SOURCE_DIR} - PRIVATE_SOURCES - # Exclude - ${CMAKE_CURRENT_SOURCE_DIR}/PrecompiledHeaders) - -if(WIN32) - if(MSVC) - list(APPEND PRIVATE_SOURCES worldserver.rc) - endif() -endif() - -if(USE_COREPCH) - set(PRIVATE_PCH_HEADER PrecompiledHeaders/worldPCH.h) -endif() - GroupSources(${CMAKE_CURRENT_SOURCE_DIR}) add_executable(worldserver ${PRIVATE_SOURCES} ) -if(NOT WIN32) +CollectAndAddSourceFiles( + worldserver + ${CMAKE_CURRENT_SOURCE_DIR} + EXCLUDE + ${CMAKE_CURRENT_SOURCE_DIR}/PrecompiledHeaders) + +if(WIN32) + if(MSVC) + target_sources(worldserver PRIVATE worldserver.rc) + endif() +else() target_compile_definitions(worldserver PRIVATE _TRINITY_CORE_CONFIG="${CONF_DIR}/worldserver.conf" _TRINITY_CORE_CONFIG_DIR="${CONF_DIR}/worldserver.conf.d" @@ -46,15 +40,7 @@ target_link_libraries(worldserver readline gsoap) -CollectIncludeDirectories( - ${CMAKE_CURRENT_SOURCE_DIR} - PUBLIC_INCLUDES - # Exclude - ${CMAKE_CURRENT_SOURCE_DIR}/PrecompiledHeaders) - target_include_directories(worldserver - PUBLIC - ${PUBLIC_INCLUDES} PRIVATE ${CMAKE_CURRENT_BINARY_DIR}) @@ -90,5 +76,5 @@ endif() # Generate precompiled header if(USE_COREPCH) - add_cxx_pch(worldserver ${PRIVATE_PCH_HEADER}) + add_cxx_pch(worldserver PrecompiledHeaders/worldPCH.h) endif() diff --git a/src/tools/extractor_common/CMakeLists.txt b/src/tools/extractor_common/CMakeLists.txt index cded754666d..490baa86714 100644 --- a/src/tools/extractor_common/CMakeLists.txt +++ b/src/tools/extractor_common/CMakeLists.txt @@ -8,11 +8,11 @@ # WITHOUT ANY WARRANTY, to the extent permitted by law; without even the # implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. -CollectSourceFiles( - ${CMAKE_CURRENT_SOURCE_DIR} - PRIVATE_SOURCES) +add_library(extractor_common STATIC) -add_library(extractor_common STATIC ${PRIVATE_SOURCES}) +CollectAndAddSourceFiles( + extractor_common + ${CMAKE_CURRENT_SOURCE_DIR}) target_link_libraries(extractor_common PRIVATE @@ -22,10 +22,6 @@ target_link_libraries(extractor_common common network) -target_include_directories(extractor_common - PUBLIC - ${CMAKE_CURRENT_SOURCE_DIR}) - set_target_properties(extractor_common PROPERTIES COMPILE_WARNING_AS_ERROR ${WITH_WARNINGS_AS_ERRORS} diff --git a/src/tools/map_extractor/CMakeLists.txt b/src/tools/map_extractor/CMakeLists.txt index 25f981063cc..af215c9995f 100644 --- a/src/tools/map_extractor/CMakeLists.txt +++ b/src/tools/map_extractor/CMakeLists.txt @@ -8,18 +8,11 @@ # WITHOUT ANY WARRANTY, to the extent permitted by law; without even the # implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. -CollectSourceFiles( - ${CMAKE_CURRENT_SOURCE_DIR} - PRIVATE_SOURCES) +add_executable(mapextractor) -add_executable(mapextractor - ${PRIVATE_SOURCES} -) - -target_include_directories(mapextractor - PUBLIC - ${CMAKE_SOURCE_DIR} - ${CMAKE_CURRENT_SOURCE_DIR}/loadlib) +CollectAndAddSourceFiles( + mapextractor + ${CMAKE_CURRENT_SOURCE_DIR}) target_link_libraries(mapextractor PRIVATE @@ -27,13 +20,7 @@ target_link_libraries(mapextractor PUBLIC extractor_common) -CollectIncludeDirectories( - ${CMAKE_CURRENT_SOURCE_DIR} - PUBLIC_INCLUDES) - target_include_directories(mapextractor - PUBLIC - ${PUBLIC_INCLUDES} PRIVATE ${CMAKE_CURRENT_BINARY_DIR}) diff --git a/src/tools/mmaps_generator/CMakeLists.txt b/src/tools/mmaps_generator/CMakeLists.txt index 10c26c81f69..92474f59dd7 100644 --- a/src/tools/mmaps_generator/CMakeLists.txt +++ b/src/tools/mmaps_generator/CMakeLists.txt @@ -8,11 +8,11 @@ # WITHOUT ANY WARRANTY, to the extent permitted by law; without even the # implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. -CollectSourceFiles( - ${CMAKE_CURRENT_SOURCE_DIR} - PRIVATE_SOURCES) +add_executable(mmaps_generator) -add_executable(mmaps_generator ${PRIVATE_SOURCES}) +CollectAndAddSourceFiles( + mmaps_generator + ${CMAKE_CURRENT_SOURCE_DIR}) target_link_libraries(mmaps_generator PRIVATE @@ -20,13 +20,7 @@ target_link_libraries(mmaps_generator extractor_common mmaps_common) -CollectIncludeDirectories( - ${CMAKE_CURRENT_SOURCE_DIR} - PUBLIC_INCLUDES) - target_include_directories(mmaps_generator - PUBLIC - ${PUBLIC_INCLUDES} PRIVATE ${CMAKE_CURRENT_BINARY_DIR}) diff --git a/src/tools/vmap4_assembler/CMakeLists.txt b/src/tools/vmap4_assembler/CMakeLists.txt index 53ee1de0b8d..8f790e3a673 100644 --- a/src/tools/vmap4_assembler/CMakeLists.txt +++ b/src/tools/vmap4_assembler/CMakeLists.txt @@ -8,12 +8,11 @@ # WITHOUT ANY WARRANTY, to the extent permitted by law; without even the # implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. -set(PRIVATE_SOURCES - TileAssembler.cpp - TileAssembler.h - VMapAssembler.cpp) +add_executable(vmap4assembler) -add_executable(vmap4assembler ${PRIVATE_SOURCES}) +CollectAndAddSourceFiles( + vmap4assembler + ${CMAKE_CURRENT_SOURCE_DIR}) target_link_libraries(vmap4assembler PRIVATE diff --git a/src/tools/vmap4_extractor/CMakeLists.txt b/src/tools/vmap4_extractor/CMakeLists.txt index c53e39fe423..2892c598ee6 100644 --- a/src/tools/vmap4_extractor/CMakeLists.txt +++ b/src/tools/vmap4_extractor/CMakeLists.txt @@ -8,11 +8,13 @@ # WITHOUT ANY WARRANTY, to the extent permitted by law; without even the # implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. -CollectSourceFiles( - ${CMAKE_CURRENT_SOURCE_DIR} - PRIVATE_SOURCES) +add_executable(vmap4extractor) -add_executable(vmap4extractor ${PRIVATE_SOURCES}) +CollectAndAddSourceFiles( + vmap4extractor + ${CMAKE_CURRENT_SOURCE_DIR} + EXCLUDE + ${CMAKE_CURRENT_SOURCE_DIR}/PrecompiledHeaders) target_link_libraries(vmap4extractor PRIVATE @@ -20,13 +22,7 @@ target_link_libraries(vmap4extractor PUBLIC extractor_common) -CollectIncludeDirectories( - ${CMAKE_CURRENT_SOURCE_DIR} - PUBLIC_INCLUDES) - target_include_directories(vmap4extractor - PUBLIC - ${PUBLIC_INCLUDES} PRIVATE ${CMAKE_CURRENT_BINARY_DIR}) diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index a55b7a06523..9aaca9622ed 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -8,14 +8,13 @@ # WITHOUT ANY WARRANTY, to the extent permitted by law; without even the # implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. -CollectSourceFiles( - ${CMAKE_CURRENT_SOURCE_DIR} - TEST_SOURCES -) - GroupSources(${CMAKE_CURRENT_SOURCE_DIR}) -add_executable(tests ${TEST_SOURCES}) +add_executable(tests) + +CollectAndAddSourceFiles( + tests + ${CMAKE_CURRENT_SOURCE_DIR}) target_link_libraries(tests PRIVATE @@ -23,13 +22,7 @@ target_link_libraries(tests game Catch2::Catch2) -CollectIncludeDirectories( - ${CMAKE_CURRENT_SOURCE_DIR} - TEST_INCLUDES) - target_include_directories(tests - PUBLIC - ${TEST_INCLUDES} PRIVATE ${CMAKE_CURRENT_BINARY_DIR}) |
