From 8749ddc3da9574c2406a7dfd2fd6a4639148beef Mon Sep 17 00:00:00 2001 From: Wohlstand Date: Mon, 23 Sep 2019 12:33:43 +0300 Subject: Set "-no-pie" to all executables built by GCC Otherwise, this happens: https://stackoverflow.com/questions/46551213/gcc-7-2-compiles-shared-library-instead-of-executable --- utils/midiplay/CMakeLists.txt | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'utils/midiplay/CMakeLists.txt') diff --git a/utils/midiplay/CMakeLists.txt b/utils/midiplay/CMakeLists.txt index 59f77fe..14766b6 100644 --- a/utils/midiplay/CMakeLists.txt +++ b/utils/midiplay/CMakeLists.txt @@ -3,6 +3,10 @@ add_executable(adlmidiplay wave_writer.c ) +if(CMAKE_COMPILER_IS_GNUCC OR CMAKE_COMPILER_IS_GNUCXX) + set_property(TARGET adlmidiplay APPEND_STRING PROPERTY LINK_FLAGS " -no-pie") +endif() + if(NOT ADLMIDI_DOS AND NOT MIDIPLAY_WAVE_ONLY) libADLMIDI_find_SDL2() target_link_libraries(adlmidiplay PRIVATE ADLMIDI_SDL2) @@ -41,3 +45,4 @@ endif() install(TARGETS adlmidiplay RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}") + -- cgit v1.2.3 From 22248f90dd83413e91c8d4b66e652ef1a7954b60 Mon Sep 17 00:00:00 2001 From: Wohlstand Date: Mon, 23 Sep 2019 12:51:19 +0300 Subject: Don't call "-no-pie" when it's unavailable --- utils/midiplay/CMakeLists.txt | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) (limited to 'utils/midiplay/CMakeLists.txt') diff --git a/utils/midiplay/CMakeLists.txt b/utils/midiplay/CMakeLists.txt index 14766b6..c60450f 100644 --- a/utils/midiplay/CMakeLists.txt +++ b/utils/midiplay/CMakeLists.txt @@ -3,9 +3,7 @@ add_executable(adlmidiplay wave_writer.c ) -if(CMAKE_COMPILER_IS_GNUCC OR CMAKE_COMPILER_IS_GNUCXX) - set_property(TARGET adlmidiplay APPEND_STRING PROPERTY LINK_FLAGS " -no-pie") -endif() +set_nopie(adlmidiplay) if(NOT ADLMIDI_DOS AND NOT MIDIPLAY_WAVE_ONLY) libADLMIDI_find_SDL2() -- cgit v1.2.3 From 7ff1f8b9522d132c9248a68cc5df15e841523ea6 Mon Sep 17 00:00:00 2001 From: Wohlstand Date: Mon, 23 Sep 2019 17:55:22 +0300 Subject: MidiPlay: Move Audio Output into separate module --- utils/midiplay/CMakeLists.txt | 32 ++++++++++++++++++++++++++++---- 1 file changed, 28 insertions(+), 4 deletions(-) (limited to 'utils/midiplay/CMakeLists.txt') diff --git a/utils/midiplay/CMakeLists.txt b/utils/midiplay/CMakeLists.txt index c60450f..98f888a 100644 --- a/utils/midiplay/CMakeLists.txt +++ b/utils/midiplay/CMakeLists.txt @@ -1,15 +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 ) -set_nopie(adlmidiplay) +if(USE_SDL2_AUDIO) + list(APPEND ADLMIDI_PLAY_SRC + audio_sdl.c + ) +endif() -if(NOT ADLMIDI_DOS AND NOT MIDIPLAY_WAVE_ONLY) - libADLMIDI_find_SDL2() +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.") -- cgit v1.2.3