11add_library (d3d8lib INTERFACE )
2- target_link_libraries (d3d8lib INTERFACE d3d8 d3dx8 dinput8 dxguid)
32
4- if (MSVC AND CMAKE_CXX_COMPILER_VERSION VERSION_GREATER "12.0.8804" )
5- target_link_libraries (d3d8lib INTERFACE legacy_stdio_definitions)
6- target_link_options (d3d8lib INTERFACE /SAFESEH:NO )
7- else ()
8- # ddraw.h header is part of current windows SDK, so can't include it in modern builds
9- target_include_directories (d3d8lib INTERFACE ${CMAKE_CURRENT_SOURCE_DIR} /extra)
3+ # Common libraries for all compilers
4+ target_link_libraries (d3d8lib INTERFACE d3d8 dinput8 dxguid)
5+
6+ # MSVC-specific configuration
7+ if (MSVC )
8+ # Use bundled MSVC-compiled .lib files
9+ target_link_libraries (d3d8lib INTERFACE d3dx8)
10+ target_link_directories (d3d8lib BEFORE INTERFACE ${CMAKE_CURRENT_SOURCE_DIR} )
11+ target_link_options (d3d8lib INTERFACE /NODEFAULTLIB:libci.lib)
12+
13+ if (CMAKE_CXX_COMPILER_VERSION VERSION_GREATER "12.0.8804" )
14+ target_link_libraries (d3d8lib INTERFACE legacy_stdio_definitions)
15+ target_link_options (d3d8lib INTERFACE /SAFESEH:NO )
16+ endif ()
1017endif ()
1118
12- target_compile_definitions (d3d8lib INTERFACE -DBUILD_WITH_D3D8)
19+ # MinGW-specific configuration
20+ if (MINGW)
21+ # MinGW-w64 DirectX 8 support varies by architecture:
22+ # i686 (32-bit): libd3d8.a + libd3dx8d.a (debug only, no release version)
23+ # x86_64 (64-bit): libd3d8thk.a only (no libd3dx8 libraries at all)
24+ target_link_libraries (d3d8lib INTERFACE d3dx8d)
25+ # ddraw.h header is part of current windows SDK, so can't include it in modern builds
26+ target_include_directories (d3d8lib INTERFACE ${CMAKE_CURRENT_SOURCE_DIR} /extra)
27+ endif ()
1328
14- target_link_directories (d3d8lib BEFORE INTERFACE ${CMAKE_CURRENT_SOURCE_DIR} )
15- target_include_directories (d3d8lib INTERFACE ${CMAKE_CURRENT_SOURCE_DIR} )
16- target_link_options (d3d8lib INTERFACE /NODEFAULTLIB:libci.lib)
29+ target_compile_definitions (d3d8lib INTERFACE -DBUILD_WITH_D3D8)
30+ target_include_directories (d3d8lib INTERFACE ${CMAKE_CURRENT_SOURCE_DIR} )
0 commit comments