# 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}") if (USE_SCRIPTPCH) set(scripts_STAT_PCH_HDR PrecompiledHeaders/ScriptPCH.h) set(scripts_STAT_PCH_SRC PrecompiledHeaders/ScriptPCH.cpp) endif () 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("") include_directories( ${scripts_INCLUDE_DIRS} ${CMAKE_BINARY_DIR} ${CMAKE_SOURCE_DIR}/deps/recastnavigation/Detour/Include ${CMAKE_SOURCE_DIR}/deps/recastnavigation/Recast/Include ${CMAKE_SOURCE_DIR}/deps/g3dlite/include ${CMAKE_SOURCE_DIR}/deps/SFMT ${CMAKE_SOURCE_DIR}/deps/zlib ${CMAKE_SOURCE_DIR}/src/common ${CMAKE_SOURCE_DIR}/src/common/Configuration ${CMAKE_SOURCE_DIR}/src/common/Cryptography ${CMAKE_SOURCE_DIR}/src/common/Database ${CMAKE_SOURCE_DIR}/src/common/DataStores ${CMAKE_SOURCE_DIR}/src/common/Debugging ${CMAKE_SOURCE_DIR}/src/common/Dynamic/LinkedReference ${CMAKE_SOURCE_DIR}/src/common/Dynamic ${CMAKE_SOURCE_DIR}/src/common/Logging ${CMAKE_SOURCE_DIR}/src/common/Packets ${CMAKE_SOURCE_DIR}/src/common/Threading ${CMAKE_SOURCE_DIR}/src/common/Utilities ${CMAKE_SOURCE_DIR}/src/common/Collision/ ${CMAKE_SOURCE_DIR}/src/common/Collision/Management ${CMAKE_SOURCE_DIR}/src/common/Collision/Models ${CMAKE_SOURCE_DIR}/src/common ${CMAKE_SOURCE_DIR}/src/common/Database ${CMAKE_SOURCE_DIR}/src/server/game/Addons ${CMAKE_SOURCE_DIR}/src/server/game/Accounts ${CMAKE_SOURCE_DIR}/src/server/game/Achievements ${CMAKE_SOURCE_DIR}/src/server/game/AI ${CMAKE_SOURCE_DIR}/src/server/game/AI/CoreAI ${CMAKE_SOURCE_DIR}/src/server/game/AI/ScriptedAI ${CMAKE_SOURCE_DIR}/src/server/game/AI/SmartScripts ${CMAKE_SOURCE_DIR}/src/server/game/AuctionHouse ${CMAKE_SOURCE_DIR}/src/server/game/Battlefield ${CMAKE_SOURCE_DIR}/src/server/game/Battlefield/Zones ${CMAKE_SOURCE_DIR}/src/server/game/Battlegrounds ${CMAKE_SOURCE_DIR}/src/server/game/Battlegrounds/Zones ${CMAKE_SOURCE_DIR}/src/server/game/Calendar ${CMAKE_SOURCE_DIR}/src/server/game/Chat ${CMAKE_SOURCE_DIR}/src/server/game/Chat/Channels ${CMAKE_SOURCE_DIR}/src/server/game/Conditions ${CMAKE_SOURCE_DIR}/src/common/Configuration ${CMAKE_SOURCE_DIR}/src/server/game/Combat ${CMAKE_SOURCE_DIR}/src/server/game/DataStores ${CMAKE_SOURCE_DIR}/src/server/game/DungeonFinding ${CMAKE_SOURCE_DIR}/src/server/game/Entities/Corpse ${CMAKE_SOURCE_DIR}/src/server/game/Entities/Creature ${CMAKE_SOURCE_DIR}/src/server/game/Entities/DynamicObject ${CMAKE_SOURCE_DIR}/src/server/game/Entities/Item ${CMAKE_SOURCE_DIR}/src/server/game/Entities/Item/Container ${CMAKE_SOURCE_DIR}/src/server/game/Entities/GameObject ${CMAKE_SOURCE_DIR}/src/server/game/Entities/Object ${CMAKE_SOURCE_DIR}/src/server/game/Entities/Object/Updates ${CMAKE_SOURCE_DIR}/src/server/game/Entities/Pet ${CMAKE_SOURCE_DIR}/src/server/game/Entities/Player ${CMAKE_SOURCE_DIR}/src/server/game/Entities/Totem ${CMAKE_SOURCE_DIR}/src/server/game/Entities/Transport ${CMAKE_SOURCE_DIR}/src/server/game/Entities/Unit ${CMAKE_SOURCE_DIR}/src/server/game/Entities/Vehicle ${CMAKE_SOURCE_DIR}/src/server/game/Events ${CMAKE_SOURCE_DIR}/src/server/game/Globals ${CMAKE_SOURCE_DIR}/src/server/game/Grids ${CMAKE_SOURCE_DIR}/src/server/game/Grids/Cells ${CMAKE_SOURCE_DIR}/src/server/game/Grids/Notifiers ${CMAKE_SOURCE_DIR}/src/server/game/Groups ${CMAKE_SOURCE_DIR}/src/server/game/Guilds ${CMAKE_SOURCE_DIR}/src/server/game/Handlers ${CMAKE_SOURCE_DIR}/src/server/game/Instances ${CMAKE_SOURCE_DIR}/src/server/game/LookingForGroup ${CMAKE_SOURCE_DIR}/src/server/game/Loot ${CMAKE_SOURCE_DIR}/src/server/game/Mails ${CMAKE_SOURCE_DIR}/src/server/game/Miscellaneous ${CMAKE_SOURCE_DIR}/src/server/game/Maps ${CMAKE_SOURCE_DIR}/src/server/game/Movement ${CMAKE_SOURCE_DIR}/src/server/game/Movement/MovementGenerators ${CMAKE_SOURCE_DIR}/src/server/game/Movement/Spline ${CMAKE_SOURCE_DIR}/src/server/game/Movement/Waypoints ${CMAKE_SOURCE_DIR}/src/server/game/Opcodes ${CMAKE_SOURCE_DIR}/src/server/game/OutdoorPvP ${CMAKE_SOURCE_DIR}/src/server/game/Petitions ${CMAKE_SOURCE_DIR}/src/server/game/Pools ${CMAKE_SOURCE_DIR}/src/server/game/PrecompiledHeaders ${CMAKE_SOURCE_DIR}/src/server/game/Quests ${CMAKE_SOURCE_DIR}/src/server/game/Reputation ${CMAKE_SOURCE_DIR}/src/server/game/Scripting ${CMAKE_SOURCE_DIR}/src/server/game/Server ${CMAKE_SOURCE_DIR}/src/server/game/Server/Protocol ${CMAKE_SOURCE_DIR}/src/server/game/Skills ${CMAKE_SOURCE_DIR}/src/server/game/Spells ${CMAKE_SOURCE_DIR}/src/server/game/Spells/Auras ${CMAKE_SOURCE_DIR}/src/server/game/Texts ${CMAKE_SOURCE_DIR}/src/server/game/Tickets ${CMAKE_SOURCE_DIR}/src/server/game/Tools ${CMAKE_SOURCE_DIR}/src/server/game/Warden ${CMAKE_SOURCE_DIR}/src/server/game/Warden/Modules ${CMAKE_SOURCE_DIR}/src/server/game/Weather ${CMAKE_SOURCE_DIR}/src/server/game/World ${CMAKE_SOURCE_DIR}/src/server/game/ArenaSpectator ${CMAKE_SOURCE_DIR}/src/server/game/Misc ${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_SOURCE_DIR}/PrecompiledHeaders ${ACE_INCLUDE_DIR} ${MYSQL_INCLUDE_DIR} ) add_library(scripts STATIC ${scripts_STAT_SRCS} ${scripts_STAT_PCH_SRC} ) add_dependencies(scripts revision.h) # Generate precompiled header if (USE_SCRIPTPCH) add_cxx_pch(scripts ${scripts_STAT_PCH_HDR} ${scripts_STAT_PCH_SRC}) endif()