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 )
3+ if (MSVC )
4+ # Use bundled MSVC-compiled .lib files
5+ target_link_libraries (d3d8lib INTERFACE d3d8 d3dx8 dinput8 dxguid)
6+ target_link_directories (d3d8lib BEFORE INTERFACE ${CMAKE_CURRENT_SOURCE_DIR} )
7+ target_link_options (d3d8lib INTERFACE /NODEFAULTLIB:libci.lib)
8+
9+ if (CMAKE_CXX_COMPILER_VERSION VERSION_GREATER "12.0.8804" )
10+ target_link_libraries (d3d8lib INTERFACE legacy_stdio_definitions)
11+ target_link_options (d3d8lib INTERFACE /SAFESEH:NO )
12+ endif ()
13+ elseif (MINGW)
14+ # MinGW-w64 DirectX 8 support varies by architecture:
15+ # i686 (32-bit): libd3d8.a + libd3dx8d.a (debug only, no release version)
16+ # x86_64 (64-bit): libd3d8thk.a only (no libd3dx8 libraries at all)
17+ target_link_libraries (d3d8lib INTERFACE d3d8 d3dx8d dinput8 dxguid)
18+ # ddraw.h header is part of current windows SDK, so can't include it in modern builds
19+ target_include_directories (d3d8lib INTERFACE ${CMAKE_CURRENT_SOURCE_DIR} /extra)
720else ()
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)
21+ # Other compilers - use system libraries
22+ target_link_libraries (d3d8lib INTERFACE d3d8 d3dx8 dinput8 dxguid)
23+ target_include_directories (d3d8lib INTERFACE ${CMAKE_CURRENT_SOURCE_DIR} /extra)
1024endif ()
1125
1226target_compile_definitions (d3d8lib INTERFACE -DBUILD_WITH_D3D8)
13-
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)
27+ target_include_directories (d3d8lib INTERFACE ${CMAKE_CURRENT_SOURCE_DIR} )
0 commit comments