From ad0683315aaf21a6451b3c53488c3624ae6610ec Mon Sep 17 00:00:00 2001 From: Shauren Date: Sat, 21 Feb 2026 15:08:51 +0100 Subject: [PATCH] =?UTF-8?q?Build:=20Remove=20scripts=20include=20directori?= =?UTF-8?q?es=20from=20worldserver=20compilation=20command=20line,=20allow?= =?UTF-8?q?ing=20compilation=20to=20happen=20in=20directories=20with=20lon?= =?UTF-8?q?ger=20path=20before=20encountering=20msbuild=20error=20MSB6002:?= =?UTF-8?q?=20The=20command-line=20for=20the=20=E2=80=9CRC=E2=80=9D=20task?= =?UTF-8?q?=20is=20too=20long?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cmake/macros/AutoCollect.cmake | 12 ++++++++---- src/server/scripts/CMakeLists.txt | 4 ++-- 2 files changed, 10 insertions(+), 6 deletions(-) diff --git a/cmake/macros/AutoCollect.cmake b/cmake/macros/AutoCollect.cmake index e6fb6a5562..51af5177aa 100644 --- a/cmake/macros/AutoCollect.cmake +++ b/cmake/macros/AutoCollect.cmake @@ -16,13 +16,17 @@ # ${CMAKE_CURRENT_SOURCE_DIR} # EXCLUDE # ${CMAKE_CURRENT_SOURCE_DIR}/PrecompiledHeaders -# ${CMAKE_CURRENT_SOURCE_DIR}/Platform) +# ${CMAKE_CURRENT_SOURCE_DIR}/Platform +# HEADER_VISIBILITY PRIVATE) # default is PUBLIC, this controls whether other targets that have this target as dependency will be able to access its headers # function(CollectAndAddSourceFiles target_name current_dir) - cmake_parse_arguments(PARSE_ARGV 2 arg "" "BASE_DIR" "EXCLUDE") + cmake_parse_arguments(PARSE_ARGV 2 arg "" "BASE_DIR;HEADER_VISIBILITY" "EXCLUDE") if(NOT arg_BASE_DIR) set(arg_BASE_DIR "${current_dir}") endif() + if(NOT arg_HEADER_VISIBILITY) + set(arg_HEADER_VISIBILITY "PUBLIC") + endif() list(FIND arg_EXCLUDE "${current_dir}" IS_EXCLUDED) if(IS_EXCLUDED EQUAL -1) cmake_path(RELATIVE_PATH current_dir BASE_DIRECTORY "${arg_BASE_DIR}" OUTPUT_VARIABLE fileset_name) @@ -41,12 +45,12 @@ function(CollectAndAddSourceFiles target_name current_dir) ${current_dir}/*.hpp) 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}) + target_sources(${target_name} ${arg_HEADER_VISIBILITY} 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}) - CollectAndAddSourceFiles("${target_name}" "${SUB_DIRECTORY}" BASE_DIR ${arg_BASE_DIR} EXCLUDE ${arg_EXCLUDE}) + CollectAndAddSourceFiles("${target_name}" "${SUB_DIRECTORY}" BASE_DIR ${arg_BASE_DIR} HEADER_VISIBILITY ${arg_HEADER_VISIBILITY} EXCLUDE ${arg_EXCLUDE}) endif() endforeach() endif() diff --git a/src/server/scripts/CMakeLists.txt b/src/server/scripts/CMakeLists.txt index 40d08e8cfb..3356fd9402 100644 --- a/src/server/scripts/CMakeLists.txt +++ b/src/server/scripts/CMakeLists.txt @@ -142,7 +142,7 @@ 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 - CollectAndAddSourceFiles(scripts ${SCRIPT_MODULE_PATH}) + CollectAndAddSourceFiles(scripts ${SCRIPT_MODULE_PATH} HEADER_VISIBILITY PRIVATE) endif() elseif(${SCRIPT_MODULE_VARIABLE} STREQUAL "dynamic") # Generate an own dynamic module which is loadable on runtime @@ -153,7 +153,7 @@ foreach(SCRIPT_MODULE ${SCRIPT_MODULE_LIST}) list(APPEND DYNAMIC_SCRIPT_MODULE_PROJECTS ${SCRIPT_MODULE_PROJECT_NAME}) # Create the script module project add_library(${SCRIPT_MODULE_PROJECT_NAME} SHARED) - CollectAndAddSourceFiles(${SCRIPT_MODULE_PROJECT_NAME} ${SCRIPT_MODULE_PATH}) + CollectAndAddSourceFiles(${SCRIPT_MODULE_PROJECT_NAME} ${SCRIPT_MODULE_PATH} HEADER_VISIBILITY PRIVATE) target_sources(${SCRIPT_MODULE_PROJECT_NAME} PUBLIC FILE_SET HEADERS FILES ScriptLoader.h