# # Copyright (C) 2016+ AzerothCore , released under GNU AGPL v3 license: https://github.com/azerothcore/azerothcore-wotlk/blob/master/LICENSE-AGPL3 # Copyright (C) 2021+ WarheadCore # # # Use it like: # CopyDefaultConfig(worldserver) # function(CopyDefaultConfig servertype) if(WIN32) if("${CMAKE_MAKE_PROGRAM}" MATCHES "MSBuild") add_custom_command(TARGET ${servertype} POST_BUILD COMMAND ${CMAKE_COMMAND} -E make_directory "${CMAKE_BINARY_DIR}/bin/$(ConfigurationName)/configs") add_custom_command(TARGET ${servertype} POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy "${CMAKE_CURRENT_SOURCE_DIR}/${servertype}.conf.dist" "${CMAKE_BINARY_DIR}/bin/$(ConfigurationName)/configs") elseif(MINGW) add_custom_command(TARGET ${servertype} POST_BUILD COMMAND ${CMAKE_COMMAND} -E make_directory "${CMAKE_BINARY_DIR}/bin/configs") add_custom_command(TARGET ${servertype} POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy "${CMAKE_CURRENT_SOURCE_DIR}/${servertype}.conf.dist ${CMAKE_BINARY_DIR}/bin/configs") endif() endif() if(UNIX) install(FILES "${servertype}.conf.dist" DESTINATION "${CONF_DIR}") elseif(WIN32) install(FILES "${servertype}.conf.dist" DESTINATION "${CMAKE_INSTALL_PREFIX}/configs") endif() endfunction() # # Use it like: # CopyModuleConfig("warhead.conf.dist") # function(CopyModuleConfig configDir) set(postPath "configs/modules") if(WIN32) if("${CMAKE_MAKE_PROGRAM}" MATCHES "MSBuild") add_custom_command(TARGET worldserver POST_BUILD COMMAND ${CMAKE_COMMAND} -E make_directory "${CMAKE_BINARY_DIR}/bin/$(ConfigurationName)/${postPath}") add_custom_command(TARGET worldserver POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy "${configDir}" "${CMAKE_BINARY_DIR}/bin/$(ConfigurationName)/${postPath}") elseif(MINGW) add_custom_command(TARGET worldserver POST_BUILD COMMAND ${CMAKE_COMMAND} -E make_directory "${CMAKE_BINARY_DIR}/bin/${postPath}") add_custom_command(TARGET worldserver POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy "${configDir} ${CMAKE_BINARY_DIR}/bin/${postPath}") endif() endif() if(UNIX) install(FILES "${configDir}" DESTINATION "${CONF_DIR}/modules") elseif(WIN32) install(FILES "${configDir}" DESTINATION "${CMAKE_INSTALL_PREFIX}/${postPath}") endif() unset(postPath) endfunction() # Stores the absolut path of the given config module in the variable function(GetPathToModuleConfig module variable) set(${variable} "${CMAKE_SOURCE_DIR}/modules/${module}/conf" PARENT_SCOPE) endfunction() # Creates a list of all configs modules # and stores it in the given variable. function(CollectModulesConfig) file(GLOB LOCALE_MODULE_LIST RELATIVE ${CMAKE_SOURCE_DIR}/modules ${CMAKE_SOURCE_DIR}/modules/*) message(STATUS "* Modules config list:") foreach(CONFIG_MODULE ${LOCALE_MODULE_LIST}) GetPathToModuleConfig(${CONFIG_MODULE} MODULE_CONFIG_PATH) file(GLOB MODULE_CONFIG_LIST RELATIVE ${MODULE_CONFIG_PATH} ${MODULE_CONFIG_PATH}/*.conf.dist) foreach(configFileName ${MODULE_CONFIG_LIST}) CopyModuleConfig("${MODULE_CONFIG_PATH}/${configFileName}") set(CONFIG_LIST ${CONFIG_LIST}${configFileName},) message(STATUS " |- ${configFileName}") endforeach() endforeach() message("") add_definitions(-DCONFIG_FILE_LIST=$<1:"${CONFIG_LIST}">) endfunction()