diff --git a/src/win32/CMakeLists.txt b/src/win32/CMakeLists.txt
index 94c198299add6162c63a69324207ba048d73cf01..39b01588b28c622a65f40ea63f9b2e541df220ec 100644
--- a/src/win32/CMakeLists.txt
+++ b/src/win32/CMakeLists.txt
@@ -1,11 +1,18 @@
-add_executable(${SRB2_WIN_EXE_NAME} EXCLUDE_FROM_ALL
-	${SRB2_CORE_SOURCES}
-	${SRB2_CORE_HEADERS}
-	${SRB2_LUA_SOURCES}
-	${SRB2_LUA_HEADERS}
-	${SRB2_BLUA_SOURCES}
-	${SRB2_BLUA_HEADERS})
-
-target_compile_definitions(${SRB2_WIN_EXE_NAME} PRIVATE
+file(GLOB SRB2_WIN_SOURCES *.c *.h *.rc)
+
+if(${SRB2_CONFIG_HWRENDER})
+	set(SRB2_WIN_SOURCES ${SRB2_WIN_SOURCES} ${SRB2_HWRENDER_SOURCES} ${SRB2_HWRENDER_HEADERS})
+	set(SRB2_WIN_SOURCES ${SRB2_WIN_SOURCES} ${SRB2_R_OPENGL_SOURCES} ${SRB2_R_OPENGL_HEADERS})
+endif()
+
+add_executable(SRB2DD EXCLUDE_FROM_ALL WIN32
+	${SRB2_WIN_SOURCES}
+)
+
+target_compile_definitions(SRB2DD PRIVATE
 	-D_WINDOWS
-)
\ No newline at end of file
+)
+
+set_target_properties(SRB2DD PROPERTIES OUTPUT_NAME ${SRB2_WIN_EXE_NAME})
+
+target_link_libraries(SRB2DD PRIVATE SRB2Core)