Skip to content

Commit c3d3c8a

Browse files
committed
d3d9 skyrim
1 parent 545cea5 commit c3d3c8a

2 files changed

Lines changed: 86 additions & 0 deletions

File tree

src/CMakeLists.txt

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -230,6 +230,48 @@ if(CMAKE_SIZEOF_VOID_P EQUAL 4)
230230
target_compile_options(framework_d3d9 PRIVATE /utf-8 /FS)
231231
endif()
232232

233+
# --- Skyrim Framework ---
234+
add_library(framework_skyrim STATIC
235+
${SHARED_SOURCES}
236+
d3d9/framework.cpp
237+
d3d9/d3d9_proxy.cpp
238+
d3d9/d3d9_proxy_d3d9.cpp
239+
d3d9/d3d9_proxy_device.cpp
240+
d3d9/d3d9_proxy_surface.cpp
241+
d3d9/d3d9_proxy_swapchain.cpp
242+
d3d9/dx_overlay.cpp
243+
${PROJECT_SOURCE_DIR}/external/imgui/backends/imgui_impl_dx9.cpp
244+
)
245+
246+
set_target_properties(framework_skyrim PROPERTIES OUTPUT_NAME "framework_skyrim")
247+
248+
target_compile_definitions(framework_skyrim PRIVATE
249+
FRAMEWORK_EXPORTS
250+
GamePlug_INTERNAL_LOGGER
251+
)
252+
target_include_directories(framework_skyrim PUBLIC
253+
${PROJECT_SOURCE_DIR}/include
254+
${PROJECT_SOURCE_DIR}/src/d3d9
255+
${PROJECT_SOURCE_DIR}/src/shared
256+
${PROJECT_SOURCE_DIR}/external/spdlog/include
257+
${PROJECT_SOURCE_DIR}/external/imgui
258+
${PROJECT_SOURCE_DIR}/external/imgui/backends
259+
${PROJECT_SOURCE_DIR}/external/minhook/include
260+
)
261+
target_compile_definitions(framework_skyrim PUBLIC
262+
"IMGUI_USER_CONFIG=\"GAMEPLUG_imgui_config.h\""
263+
)
264+
target_link_libraries(framework_skyrim PUBLIC
265+
minhook
266+
d3d9
267+
d3dcompiler
268+
dxguid
269+
)
270+
271+
if(MSVC)
272+
target_compile_options(framework_skyrim PRIVATE /utf-8 /FS)
273+
endif()
274+
233275
add_subdirectory(d3d9)
234276
endif()
235277

src/d3d9/CMakeLists.txt

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,3 +54,47 @@ if(BIN_OUTPUT_DIR)
5454
COMMENT "Copying D3D9 proxy to d3d9/dinput8.dll"
5555
)
5656
endif()
57+
58+
# --- Skyrim Specific Target ---
59+
add_library(dinput8_skyrim SHARED
60+
d3d9.cpp
61+
d3d9.def
62+
)
63+
64+
target_include_directories(dinput8_skyrim PRIVATE
65+
${PROJECT_SOURCE_DIR}/include
66+
${PROJECT_SOURCE_DIR}/src/d3d9
67+
${PROJECT_SOURCE_DIR}/src/shared
68+
${PROJECT_SOURCE_DIR}/external/imgui
69+
${PROJECT_SOURCE_DIR}/external/imgui/backends
70+
)
71+
72+
if(MSVC)
73+
target_compile_options(dinput8_skyrim PRIVATE /utf-8 /FS)
74+
endif()
75+
76+
target_link_libraries(dinput8_skyrim PRIVATE
77+
shlwapi
78+
framework_skyrim
79+
minhook
80+
d3d9
81+
d3dcompiler
82+
dxguid
83+
)
84+
85+
set_target_properties(dinput8_skyrim PROPERTIES
86+
PREFIX ""
87+
SUFFIX ".dll"
88+
OUTPUT_NAME "dinput8"
89+
)
90+
91+
# Deployment for Skyrim
92+
if(BIN_OUTPUT_DIR)
93+
add_custom_command(TARGET dinput8_skyrim POST_BUILD
94+
COMMAND ${CMAKE_COMMAND} -E make_directory "${BIN_OUTPUT_DIR}/d3d9_skyrim"
95+
COMMAND ${CMAKE_COMMAND} -E copy_if_different
96+
"$<TARGET_FILE:dinput8_skyrim>"
97+
"${BIN_OUTPUT_DIR}/d3d9_skyrim/dinput8.dll"
98+
COMMENT "Copying Skyrim D3D9 proxy to d3d9_skyrim/dinput8.dll"
99+
)
100+
endif()

0 commit comments

Comments
 (0)