aboutsummaryrefslogtreecommitdiff
path: root/utils/midiplay/CMakeLists.txt
diff options
context:
space:
mode:
Diffstat (limited to 'utils/midiplay/CMakeLists.txt')
-rw-r--r--utils/midiplay/CMakeLists.txt33
1 files changed, 30 insertions, 3 deletions
diff --git a/utils/midiplay/CMakeLists.txt b/utils/midiplay/CMakeLists.txt
index 59f77fe..98f888a 100644
--- a/utils/midiplay/CMakeLists.txt
+++ b/utils/midiplay/CMakeLists.txt
@@ -1,13 +1,39 @@
-add_executable(adlmidiplay
+
+if(NOT ADLMIDI_DOS AND NOT MIDIPLAY_WAVE_ONLY)
+ if(NOT WIN32)
+ libADLMIDI_find_SDL2()
+ set(USE_SDL2_AUDIO 1)
+ else()
+ endif()
+endif()
+
+set(ADLMIDI_PLAY_SRC
adlmidiplay.cpp
wave_writer.c
)
-if(NOT ADLMIDI_DOS AND NOT MIDIPLAY_WAVE_ONLY)
- libADLMIDI_find_SDL2()
+if(USE_SDL2_AUDIO)
+ list(APPEND ADLMIDI_PLAY_SRC
+ audio_sdl.c
+ )
+endif()
+
+if(WIN32 AND NOT USE_SDL2_AUDIO)
+ list(APPEND ADLMIDI_PLAY_SRC
+ audio_winmm.c
+ )
+endif()
+
+add_executable(adlmidiplay ${ADLMIDI_PLAY_SRC})
+
+if(USE_SDL2_AUDIO)
target_link_libraries(adlmidiplay PRIVATE ADLMIDI_SDL2)
+elseif(WIN32)
+ target_link_libraries(adlmidiplay PRIVATE winmm)
endif()
+set_nopie(adlmidiplay)
+
if(MIDIPLAY_WAVE_ONLY)
target_compile_definitions(adlmidiplay PUBLIC OUTPUT_WAVE_ONLY)
message("Demo tool will only output WAVE file, no playing support.")
@@ -41,3 +67,4 @@ endif()
install(TARGETS adlmidiplay
RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}")
+