Files
azerothcore-wotlk-pbot/src/server/scripts/CMakeLists.txt

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()