From 33316999060dda030c3c6a43a68d84020928ce70 Mon Sep 17 00:00:00 2001 From: Shauren Date: Wed, 12 Nov 2025 22:53:54 +0100 Subject: Build: Modernize include directory management using target_sources(FILE_SET) --- src/server/scripts/CMakeLists.txt | 42 ++++++++++++++++----------------------- 1 file changed, 17 insertions(+), 25 deletions(-) (limited to 'src/server/scripts') 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() -- cgit v1.2.3