# This file is part of the TrinityCore Project. See AUTHORS file for Copyright information # # 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. CollectSourceFiles( ${CMAKE_CURRENT_SOURCE_DIR} PRIVATE_SOURCES # Exclude ${CMAKE_CURRENT_SOURCE_DIR}/Debugging/Windows ${CMAKE_CURRENT_SOURCE_DIR}/Platform ${CMAKE_CURRENT_SOURCE_DIR}/PrecompiledHeaders ${CMAKE_CURRENT_SOURCE_DIR}/network) if(WIN32) CollectSourceFiles( ${CMAKE_CURRENT_SOURCE_DIR}/Debugging/Windows WINDOWS_DEBUGGING_SOURCES) list(APPEND PRIVATE_SOURCES ${WINDOWS_DEBUGGING_SOURCES}) CollectSourceFiles( ${CMAKE_CURRENT_SOURCE_DIR}/Platform/Windows WINDOWS_PLATFORM_SOURCES) list(APPEND PRIVATE_SOURCES ${WINDOWS_PLATFORM_SOURCES}) unset(WINDOWS_DEBUGGING_SOURCES) unset(WINDOWS_PLATFORM_SOURCES) endif() if(USE_COREPCH) set(PRIVATE_PCH_HEADER PrecompiledHeaders/commonPCH.h) endif(USE_COREPCH) GroupSources(${CMAKE_CURRENT_SOURCE_DIR}) add_library(common ${PRIVATE_SOURCES} ) CollectIncludeDirectories( ${CMAKE_CURRENT_SOURCE_DIR} PUBLIC_INCLUDES # Exclude ${CMAKE_CURRENT_SOURCE_DIR}/PrecompiledHeaders ${CMAKE_CURRENT_SOURCE_DIR}/network) target_include_directories(common PUBLIC # Provide the binary dir for all child targets ${CMAKE_BINARY_DIR} ${PUBLIC_INCLUDES} PRIVATE ${CMAKE_CURRENT_BINARY_DIR}) target_link_libraries(common PRIVATE trinity-core-interface PUBLIC argon2 boost fmt g3dlib Detour sfmt utf8cpp openssl valgrind threads jemalloc openssl_ed25519 short_alloc) set_target_properties(common PROPERTIES COMPILE_WARNING_AS_ERROR ${WITH_WARNINGS_AS_ERRORS} DEFINE_SYMBOL TRINITY_API_EXPORT_COMMON FOLDER "server") add_dependencies(common revision_data.h) if(BUILD_SHARED_LIBS) if(UNIX) install(TARGETS common LIBRARY DESTINATION lib) elseif(WIN32) install(TARGETS common RUNTIME DESTINATION "${CMAKE_INSTALL_PREFIX}") endif() endif() # Generate precompiled header if(USE_COREPCH) add_cxx_pch(common ${PRIVATE_PCH_HEADER}) endif() unset(PRIVATE_SOURCES) unset(PRIVATE_PCH_HEADER) unset(PUBLIC_INCLUDES) add_subdirectory(network)