cmake_minimum_required(VERSION 3.21) message("Using toolchain file ${CMAKE_TOOLCHAIN_FILE}.") ######################################################################################################################## ## Define project ######################################################################################################################## project( EnderalSE VERSION 2.1.2 DESCRIPTION "Enderal SE DLL" LANGUAGES CXX) set(CMAKE_CXX_STANDARD 23) set(CMAKE_CXX_STANDARD_REQUIRED ON) set(CMAKE_INTERPROCEDURAL_OPTIMIZATION ON) configure_file( ${CMAKE_CURRENT_SOURCE_DIR}/cmake/version.rc.in ${CMAKE_CURRENT_BINARY_DIR}/version.rc @ONLY) #include(GNUInstallDirs) find_path(SIMPLEINI_INCLUDE_DIRS "ConvertUTF.c") file( GLOB_RECURSE sources ${CMAKE_CURRENT_SOURCE_DIR}/src/*.cpp ${CMAKE_CURRENT_BINARY_DIR}/version.rc ) source_group( TREE ${CMAKE_CURRENT_SOURCE_DIR} FILES ${headers} ${sources}) ######################################################################################################################## ## Configure target DLL ######################################################################################################################## include(FetchContent) FetchContent_Declare( CommonLibNG GIT_REPOSITORY https://github.com/alandtse/CommonLibVR.git GIT_TAG 5e5417e3585c9434295e919bdda27737244e9c5a ) set(ENABLE_SKYRIM_SE ON CACHE BOOL " " FORCE) set(ENABLE_SKYRIM_AE ON CACHE BOOL " " FORCE) set(ENABLE_SKYRIM_VR ON CACHE BOOL " " FORCE) set(BUILD_TESTS OFF CACHE BOOL " " FORCE) FetchContent_MakeAvailable(CommonLibNG) # Use a local copy instead #add_subdirectory("d:/Git/CommonLibVR/" ${CMAKE_BINARY_DIR}/_deps/clib-build) #find_package(CommonLibSSE CONFIG REQUIRED) get_target_property(COMMONLIB_SRC_DIR CommonLibSSE SOURCE_DIR) include(${COMMONLIB_SRC_DIR}/cmake/CommonLibSSE.cmake) add_commonlibsse_plugin(${PROJECT_NAME} SOURCES ${headers} ${sources}) add_library("${PROJECT_NAME}::${PROJECT_NAME}" ALIAS "${PROJECT_NAME}") target_link_libraries(${PROJECT_NAME} PUBLIC CommonLibSSE::CommonLibSSE) target_include_directories(${PROJECT_NAME} PRIVATE $ $ $ ${SIMPLEINI_INCLUDE_DIRS} ) target_include_directories(${PROJECT_NAME} PUBLIC $) find_package(spdlog CONFIG REQUIRED) target_link_libraries( "${PROJECT_NAME}" PUBLIC spdlog::spdlog Version.lib ) target_precompile_headers(${PROJECT_NAME} PRIVATE src/PCH.h) install(TARGETS ${PROJECT_NAME} DESTINATION "${CMAKE_INSTALL_LIBDIR}") ######################################################################################################################## ## Automatic plugin deployment ######################################################################################################################## add_custom_command(TARGET ${PROJECT_NAME} POST_BUILD COMMAND ${CMAKE_COMMAND} -E make_directory "${CMAKE_CURRENT_SOURCE_DIR}/../../SKSE/Plugins/") add_custom_command(TARGET ${PROJECT_NAME} POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy $ "${CMAKE_CURRENT_SOURCE_DIR}/../../SKSE/Plugins/")