diff --git a/source/Enderal DLL/CMakeLists.txt b/source/Enderal DLL/CMakeLists.txt index b93173993..819f3e74f 100644 --- a/source/Enderal DLL/CMakeLists.txt +++ b/source/Enderal DLL/CMakeLists.txt @@ -1,3 +1,4 @@ +option(ENABLE_VCPKG OFF) cmake_minimum_required(VERSION 3.21) message("Using toolchain file ${CMAKE_TOOLCHAIN_FILE}.") @@ -5,57 +6,121 @@ message("Using toolchain file ${CMAKE_TOOLCHAIN_FILE}.") ## Define project ######################################################################################################################## project( - EnderalSE - VERSION 2.1.3 - DESCRIPTION "Enderal SE DLL" - LANGUAGES CXX) + EnderalSE + VERSION 2.1.4 + 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) + ${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 + 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}) + 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 -) +include(FetchContent) + +# DirectXMath +FetchContent_Declare( + DirectXMath + URL "https://github.com/microsoft/DirectXMath/archive/refs/tags/apr2025.tar.gz" + OVERRIDE_FIND_PACKAGE + DOWNLOAD_EXTRACT_TIMESTAMP 1 + EXCLUDE_FROM_ALL + SYSTEM +) +FetchContent_MakeAvailable(DirectXMath) +add_library("Microsoft::DirectXMath" ALIAS "DirectXMath") + +# DirectXTK +FetchContent_Declare( + DirectXTK + URL "https://github.com/microsoft/DirectXTK/archive/refs/tags/jul2025.tar.gz" + DOWNLOAD_EXTRACT_TIMESTAMP 1 + OVERRIDE_FIND_PACKAGE + EXCLUDE_FROM_ALL + SYSTEM +) +FetchContent_MakeAvailable(DirectXTK) +add_library("Microsoft::DirectXTK" ALIAS "DirectXTK") + +# simpleini +FetchContent_Declare( + simpleini + URL "https://github.com/brofield/simpleini/archive/refs/tags/v4.22.tar.gz" + DOWNLOAD_EXTRACT_TIMESTAMP 1 +) +FetchContent_MakeAvailable(simpleini) +INCLUDE_DIRECTORIES(${simpleini_SOURCE_DIR}) + +# rapidcsv +set(RAPIDCSV_INCLUDE_DIRS ${rapidcsv_SOURCE_DIR}/src) +FetchContent_Declare( + rapidcsv + URL "https://github.com/d99kris/rapidcsv/archive/refs/tags/v8.87.tar.gz" + DOWNLOAD_EXTRACT_TIMESTAMP 1 + OVERRIDE_FIND_PACKAGE +) +FetchContent_MakeAvailable(rapidcsv) +set(RAPIDCSV_INCLUDE_DIRS ${rapidcsv_SOURCE_DIR}/src) + +# spdlog +set(SPDLOG_INSTALL ON CACHE INTERNAL "Install SPDLOG for CommonLibSSE") +set(SPDLOG_USE_STD_FORMAT ON CACHE INTERNAL "Use std::format in SPDLOG, not fmt") +FetchContent_Declare( + spdlog + URL "https://github.com/gabime/spdlog/archive/refs/tags/v1.15.3.tar.gz" + DOWNLOAD_EXTRACT_TIMESTAMP 1 + OVERRIDE_FIND_PACKAGE +) +FetchContent_MakeAvailable(spdlog) + +# xbyak +FetchContent_Declare( + xbyak + URL "https://github.com/herumi/xbyak/archive/v7.28.tar.gz" + DOWNLOAD_EXTRACT_TIMESTAMP 1 +) +FetchContent_MakeAvailable(xbyak) + +# CommonLibSSE +set(SKSE_SUPPORT_XBYAK ON CACHE BOOL " " FORCE) 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) +message(STATUS "Fetching CommonLibSSE-NG (5e5417e3585c9434295e919bdda27737244e9c5a)...") +FetchContent_Declare( + CommonLibSSE + GIT_REPOSITORY https://github.com/eddoursul/CommonLibVR.git + GIT_TAG 5e5417e3585c9434295e919bdda27737244e9c5a +) +FetchContent_MakeAvailable(CommonLibSSE) -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) @@ -64,37 +129,36 @@ 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_link_libraries(CommonLibSSE PUBLIC + DirectXTK + xbyak +) -target_include_directories(${PROJECT_NAME} - PRIVATE - $ - $ - $ - ${SIMPLEINI_INCLUDE_DIRS} +target_link_libraries(${PROJECT_NAME} PUBLIC + CommonLibSSE::CommonLibSSE + spdlog Version.lib + xbyak ) target_include_directories(${PROJECT_NAME} - PUBLIC - $) - -find_package(spdlog CONFIG REQUIRED) - -target_link_libraries( - "${PROJECT_NAME}" - PUBLIC - spdlog::spdlog - Version.lib + PRIVATE + $ + $ + $ ) +target_include_directories(${PROJECT_NAME} + PUBLIC + $ +) + target_precompile_headers(${PROJECT_NAME} - PRIVATE - src/PCH.h) - -install(TARGETS ${PROJECT_NAME} - DESTINATION "${CMAKE_INSTALL_LIBDIR}") + PRIVATE + src/PCH.h +) +install(TARGETS ${PROJECT_NAME} DESTINATION "${CMAKE_INSTALL_LIBDIR}") ######################################################################################################################## diff --git a/source/Enderal DLL/vcpkg-configuration.json b/source/Enderal DLL/vcpkg-configuration.json deleted file mode 100644 index 3aba60b3d..000000000 --- a/source/Enderal DLL/vcpkg-configuration.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "default-registry": { - "kind": "git", - "repository": "https://github.com/microsoft/vcpkg.git", - "baseline": "cacf5994341f27e9a14a7b8724b0634b138ecb30" - } -} diff --git a/source/Enderal DLL/vcpkg.json b/source/Enderal DLL/vcpkg.json deleted file mode 100644 index 73f9fad3c..000000000 --- a/source/Enderal DLL/vcpkg.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "$schema": "https://raw.githubusercontent.com/microsoft/vcpkg/master/scripts/vcpkg.schema.json", - "name": "enderal-se", - "version-string": "2.1.3", - "port-version": 0, - "description": "Enderal SE Helper", - "homepage": "https://mod.pub/enderal-se/38-enderal-se", - "license": "LGPL-3.0", - "features": { - "plugin": { - "description": "Enderal SE functions and potion replacer.", - "dependencies": [ - "simpleini", - "spdlog", - "directxtk", - "rapidcsv", - "xbyak" - ] - } - }, - "default-features": [ - "plugin" - ] -}