diff options
-rw-r--r-- | src/server/scripts/CMakeLists.txt | 67 |
1 files changed, 19 insertions, 48 deletions
diff --git a/src/server/scripts/CMakeLists.txt b/src/server/scripts/CMakeLists.txt index 2d23cfced29..021a53a2a5e 100644 --- a/src/server/scripts/CMakeLists.txt +++ b/src/server/scripts/CMakeLists.txt @@ -27,8 +27,8 @@ elseif(SCRIPTS MATCHES "static") else() set(SCRIPTS_DEFAULT_LINKAGE "disabled") endif() -# Sets SCRIPTS_USE_WHITELIST to indicate that we are using a whitelist, -# also sets SCRIPTS_WHITELIST to indicate the whitelisted projects. +# Sets SCRIPTS_USE_WHITELIST +# Sets SCRIPTS_WHITELIST if (SCRIPTS MATCHES "minimal") set(SCRIPTS_USE_WHITELIST ON) # Whitelist which is used when minimal is selected @@ -39,7 +39,6 @@ endif() # variables set above foreach(SCRIPT_MODULE ${SCRIPT_MODULE_LIST}) ScriptModuleNameToVariable(${SCRIPT_MODULE} SCRIPT_MODULE_VARIABLE) - # "default" is selected for the project if (${SCRIPT_MODULE_VARIABLE} STREQUAL "default") if(SCRIPTS_USE_WHITELIST) list(FIND SCRIPTS_WHITELIST "${SCRIPT_MODULE}" INDEX) @@ -52,22 +51,18 @@ foreach(SCRIPT_MODULE ${SCRIPT_MODULE_LIST}) set(${SCRIPT_MODULE_VARIABLE} ${SCRIPTS_DEFAULT_LINKAGE}) endif() endif() - - # Build the visible graph + # Build the Graph values if (${SCRIPT_MODULE_VARIABLE} MATCHES "dynamic") - # "dynamic" is selected for the project GetProjectNameOfScriptModule(${SCRIPT_MODULE} SCRIPT_MODULE_PROJECT_NAME) GetNativeSharedLibraryName(${SCRIPT_MODULE_PROJECT_NAME} SCRIPT_PROJECT_LIBRARY) list(APPEND GRAPH_KEYS ${SCRIPT_MODULE_PROJECT_NAME}) set(GRAPH_VALUE_DISPLAY_${SCRIPT_MODULE_PROJECT_NAME} ${SCRIPT_PROJECT_LIBRARY}) list(APPEND GRAPH_VALUE_CONTAINS_MODULES_${SCRIPT_MODULE_PROJECT_NAME} ${SCRIPT_MODULE}) elseif(${SCRIPT_MODULE_VARIABLE} MATCHES "static") - # "static" is selected for the project list(APPEND GRAPH_KEYS worldserver) set(GRAPH_VALUE_DISPLAY_worldserver worldserver) list(APPEND GRAPH_VALUE_CONTAINS_MODULES_worldserver ${SCRIPT_MODULE}) else() - # otherwise mark the project as disabled list(APPEND GRAPH_KEYS disabled) set(GRAPH_VALUE_DISPLAY_disabled disabled) list(APPEND GRAPH_VALUE_CONTAINS_MODULES_disabled ${SCRIPT_MODULE}) @@ -135,57 +130,35 @@ endfunction() # Generates the actual script projects # Fills the STATIC_SCRIPT_MODULES and DYNAMIC_SCRIPT_MODULE_PROJECTS variables -# which contain the names which scripts are linked statically/dynamically. +# which contain the names which scripts are linked statically/dynamically and +# adds the sources of the static modules to the PRIVATE_SOURCES variable. foreach(SCRIPT_MODULE ${SCRIPT_MODULE_LIST}) GetPathToScriptModule(${SCRIPT_MODULE} SCRIPT_MODULE_PATH) ScriptModuleNameToVariable(${SCRIPT_MODULE} SCRIPT_MODULE_VARIABLE) - # Uninstall disabled modules if ((${SCRIPT_MODULE_VARIABLE} STREQUAL "disabled") OR (${SCRIPT_MODULE_VARIABLE} STREQUAL "static")) + # Uninstall disabled modules GetProjectNameOfScriptModule(${SCRIPT_MODULE} SCRIPT_MODULE_PROJECT_NAME) GetNativeSharedLibraryName(${SCRIPT_MODULE_PROJECT_NAME} SCRIPT_MODULE_OUTPUT_NAME) list(APPEND DISABLED_SCRIPT_MODULE_PROJECTS ${INSTALL_OFFSET}/${SCRIPT_MODULE_OUTPUT_NAME}) - endif() - - if (${SCRIPT_MODULE_VARIABLE} STREQUAL "static") - # Add the module name to STATIC_SCRIPT_MODULES - list(APPEND STATIC_SCRIPT_MODULES ${SCRIPT_MODULE}) - - GetProjectNameOfScriptModule(${SCRIPT_MODULE} SCRIPT_MODULE_PROJECT_NAME) - - # Add the project name to STATIC_SCRIPT_MODULE_PROJECTS - list(APPEND STATIC_SCRIPT_MODULE_PROJECTS ${SCRIPT_MODULE_PROJECT_NAME}) - - unset(SCRIPT_MODULE_PRIVATE_SOURCES) - # Add the module content to the whole static module - CollectSourceFiles(${SCRIPT_MODULE_PATH} SCRIPT_MODULE_PRIVATE_SOURCES) - - add_library(${SCRIPT_MODULE_PROJECT_NAME} STATIC - ${PRIVATE_PCH_SOURCE} - ${SCRIPT_MODULE_PRIVATE_SOURCES}) - target_link_libraries(${SCRIPT_MODULE_PROJECT_NAME} - PUBLIC - game-interface) - set_target_properties(${SCRIPT_MODULE_PROJECT_NAME} - PROPERTIES - FOLDER - "scripts") - + if (${SCRIPT_MODULE_VARIABLE} STREQUAL "static") + # 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) + 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}) - + ConfigureScriptLoader(${SCRIPT_MODULE} SCRIPT_MODULE_PRIVATE_SCRIPTLOADER ON ${SCRIPT_MODULE}) GetProjectNameOfScriptModule(${SCRIPT_MODULE} SCRIPT_MODULE_PROJECT_NAME) - - # Add the project name to DYNAMIC_SCRIPT_MODULES + # Add the module name to DYNAMIC_SCRIPT_MODULES list(APPEND DYNAMIC_SCRIPT_MODULE_PROJECTS ${SCRIPT_MODULE_PROJECT_NAME}) - # Create the dynamic script module project + # Create the script module project add_library(${SCRIPT_MODULE_PROJECT_NAME} SHARED ${PRIVATE_PCH_SOURCE} ${SCRIPT_MODULE_PRIVATE_SOURCES} @@ -215,8 +188,6 @@ foreach(SCRIPT_MODULE ${SCRIPT_MODULE_LIST}) RUNTIME_OUTPUT_DIRECTORY_MINSIZEREL ${CMAKE_BINARY_DIR}/bin/MinSizeRel/scripts) endif() endif() - elseif(${SCRIPT_MODULE_VARIABLE} STREQUAL "disabled") - # We do nothing else() message(FATAL_ERROR "Unknown value \"${${SCRIPT_MODULE_VARIABLE}}\"!") endif() @@ -227,14 +198,14 @@ set(WORLDSERVER_DYNAMIC_SCRIPT_MODULES_DEPENDENCIES ${DYNAMIC_SCRIPT_MODULE_PROJ ConfigureScriptLoader("static" SCRIPT_MODULE_PRIVATE_SCRIPTLOADER OFF ${STATIC_SCRIPT_MODULES}) -# This is the project which links all static script projects in add_library(scripts STATIC ScriptLoader.h - ${SCRIPT_MODULE_PRIVATE_SCRIPTLOADER}) + ${PRIVATE_PCH_SOURCE} + ${SCRIPT_MODULE_PRIVATE_SCRIPTLOADER} + ${PRIVATE_SOURCES}) target_link_libraries(scripts PUBLIC - ${STATIC_SCRIPT_MODULE_PROJECTS} game-interface) target_include_directories(scripts @@ -248,7 +219,7 @@ set_target_properties(scripts # Generate precompiled header if (USE_SCRIPTPCH) - list(APPEND ALL_SCRIPT_PROJECTS ${STATIC_SCRIPT_MODULE_PROJECTS} ${DYNAMIC_SCRIPT_MODULE_PROJECTS}) + list(APPEND ALL_SCRIPT_PROJECTS scripts ${DYNAMIC_SCRIPT_MODULE_PROJECTS}) add_cxx_pch("${ALL_SCRIPT_PROJECTS}" ${PRIVATE_PCH_HEADER} ${PRIVATE_PCH_SOURCE}) endif() |