mirror of
https://github.com/mod-playerbots/azerothcore-wotlk.git
synced 2025-11-29 17:38:24 +08:00
120 lines
2.9 KiB
CMake
120 lines
2.9 KiB
CMake
# Copyright (C)
|
|
#
|
|
# This file is free software; as a special exception the author gives
|
|
# unlimited permission to copy and/or distribute it, with or without
|
|
# modifications, as long as this notice is preserved.
|
|
#
|
|
# This program is distributed in the hope that it will be useful, but
|
|
# WITHOUT ANY WARRANTY, to the extent permitted by law; without even the
|
|
# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
|
|
|
# Enable precompiled headers when using the GCC compiler.
|
|
|
|
CU_RUN_HOOK(BEFORE_SCRIPTS_LIBRARY)
|
|
|
|
CU_SET_PATH("AC_SCRIPTS_DIR" "${CMAKE_CURRENT_LIST_DIR}")
|
|
|
|
message(STATUS "SCRIPT PREPARATIONS")
|
|
|
|
include(Spells/CMakeLists.txt)
|
|
include(Commands/CMakeLists.txt)
|
|
|
|
set(scripts_STAT_SRCS
|
|
${scripts_STAT_SRCS}
|
|
ScriptLoader.cpp
|
|
ScriptLoader.h
|
|
${BUILDDIR}/GenLoader.cpp
|
|
../game/AI/ScriptedAI/ScriptedEscortAI.cpp
|
|
../game/AI/ScriptedAI/ScriptedCreature.cpp
|
|
../game/AI/ScriptedAI/ScriptedFollowerAI.cpp
|
|
)
|
|
|
|
AC_ADD_SCRIPT_LOADER("Spell" "ScriptLoader.h")
|
|
AC_ADD_SCRIPT_LOADER("SC_Smart" "ScriptLoader.h")
|
|
AC_ADD_SCRIPT_LOADER("Command" "ScriptLoader.h")
|
|
|
|
CU_SET_PATH("CMAKE_AC_MODULE_DIR" "${CMAKE_CURRENT_LIST_DIR}")
|
|
|
|
if(SCRIPTS)
|
|
include(World/CMakeLists.txt)
|
|
include(OutdoorPvP/CMakeLists.txt)
|
|
include(EasternKingdoms/CMakeLists.txt)
|
|
include(Kalimdor/CMakeLists.txt)
|
|
include(Outland/CMakeLists.txt)
|
|
include(Northrend/CMakeLists.txt)
|
|
include(Events/CMakeLists.txt)
|
|
include(Pet/CMakeLists.txt)
|
|
endif()
|
|
|
|
if(EXISTS "${AC_SCRIPTS_DIR}/Custom/CMakeLists.txt")
|
|
include(Custom/CMakeLists.txt)
|
|
endif()
|
|
|
|
CU_GET_GLOBAL("AC_ADD_SCRIPTS_LIST")
|
|
CU_GET_GLOBAL("AC_ADD_SCRIPTS_INCLUDE")
|
|
CU_GET_GLOBAL("AC_SCRIPTS_SOURCES")
|
|
|
|
set(scripts_STAT_SRCS
|
|
${scripts_STAT_SRCS}
|
|
${AC_SCRIPTS_SOURCES}
|
|
)
|
|
|
|
set("AC_SCRIPTS_INCLUDES" "")
|
|
|
|
FOREACH (include ${AC_ADD_SCRIPTS_INCLUDE})
|
|
set("AC_SCRIPTS_INCLUDES" "#include \"${include}\"\n${AC_SCRIPTS_INCLUDES}")
|
|
ENDFOREACH()
|
|
|
|
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/GenLoader.cpp.cmake ${BUILDDIR}/GenLoader.cpp)
|
|
|
|
message(STATUS "SCRIPT PREPARATION COMPLETE")
|
|
message("")
|
|
|
|
if (USE_SCRIPTPCH)
|
|
set(PRIVATE_PCH_HEADER PrecompiledHeaders/ScriptPCH.h)
|
|
endif ()
|
|
|
|
# Group sources
|
|
GroupSources(${CMAKE_CURRENT_SOURCE_DIR})
|
|
|
|
add_library(scripts-interface INTERFACE)
|
|
|
|
CollectIncludeDirectories(
|
|
${CMAKE_CURRENT_SOURCE_DIR}
|
|
PUBLIC_INCLUDES
|
|
# Exclude
|
|
${CMAKE_CURRENT_SOURCE_DIR}/PrecompiledHeaders)
|
|
|
|
target_include_directories(scripts-interface
|
|
INTERFACE
|
|
${PUBLIC_INCLUDES})
|
|
|
|
target_link_libraries(scripts-interface
|
|
INTERFACE
|
|
shared)
|
|
|
|
add_library(scripts STATIC
|
|
${scripts_STAT_SRCS}
|
|
)
|
|
|
|
target_include_directories(scripts
|
|
PRIVATE
|
|
${CMAKE_CURRENT_BINARY_DIR})
|
|
|
|
target_link_libraries(scripts
|
|
PRIVATE
|
|
scripts-interface
|
|
game-interface)
|
|
|
|
set_target_properties(scripts
|
|
PROPERTIES
|
|
FOLDER
|
|
"server")
|
|
|
|
add_dependencies(scripts revision.h)
|
|
|
|
# Generate precompiled header
|
|
if (USE_SCRIPTPCH)
|
|
add_cxx_pch(scripts ${PRIVATE_PCH_HEADER})
|
|
endif()
|