From af786beba6e195dea9ca02ae47315945c8f9b1c8 Mon Sep 17 00:00:00 2001 From: JP Cimalando Date: Thu, 24 Jan 2019 09:28:17 +0100 Subject: fix the SDL2 library search This allows to handle two variants of SDL2 find modules, which are incompatible: - the first kind of module sets the SDL2_* variables - the other kind exports the library target SDL2::SDL2 --- CMakeLists.txt | 14 ++++++++++++++ utils/adlmidi-2/CMakeLists.txt | 6 ++---- utils/midiplay/CMakeLists.txt | 6 ++---- 3 files changed, 18 insertions(+), 8 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 4355b75..7cffbda 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -233,6 +233,20 @@ else() add_library(ADLMIDI ALIAS ADLMIDI_static) endif() +function(libADLMIDI_find_SDL2) + if(NOT TARGET ADLMIDI_SDL2) + find_package(SDL2 REQUIRED) + add_library(ADLMIDI_SDL2 INTERFACE) + if(TARGET SDL2::SDL2) + target_link_libraries(ADLMIDI_SDL2 INTERFACE SDL2::SDL2) + else() + string(STRIP ${SDL2_LIBRARIES} SDL2_LIBRARIES) + target_include_directories(ADLMIDI_SDL2 INTERFACE ${SDL2_INCLUDE_DIRS}) + target_link_libraries(ADLMIDI_SDL2 INTERFACE ${SDL2_LIBRARIES}) + endif() + endif() +endfunction() + if(WITH_OLD_UTILS) # Old utility to dump AdLib bank files add_subdirectory(utils/dumpbank) diff --git a/utils/adlmidi-2/CMakeLists.txt b/utils/adlmidi-2/CMakeLists.txt index a6aa9ce..8390a95 100644 --- a/utils/adlmidi-2/CMakeLists.txt +++ b/utils/adlmidi-2/CMakeLists.txt @@ -25,10 +25,8 @@ add_executable(adlmidi2 ${adlmidi2_src}) target_link_libraries(adlmidi2 PRIVATE ADLMIDI) if(NOT WIN32 AND NOT ADLMIDI_DOS) - find_package(SDL2 REQUIRED) - string(STRIP ${SDL2_LIBRARIES} SDL2_LIBRARIES) - target_include_directories(adlmidi2 PRIVATE ${SDL2_INCLUDE_DIRS}) - target_link_libraries(adlmidi2 PRIVATE ${SDL2_LIBRARIES}) + libADLMIDI_find_SDL2() + target_link_libraries(adlmidi2 PRIVATE ADLMIDI_SDL2) endif() if(ADLMIDI2_HAS_PUZZLE_GAME) diff --git a/utils/midiplay/CMakeLists.txt b/utils/midiplay/CMakeLists.txt index 9857c4c..59f77fe 100644 --- a/utils/midiplay/CMakeLists.txt +++ b/utils/midiplay/CMakeLists.txt @@ -4,10 +4,8 @@ add_executable(adlmidiplay ) if(NOT ADLMIDI_DOS AND NOT MIDIPLAY_WAVE_ONLY) - find_package(SDL2 REQUIRED) - string(STRIP ${SDL2_LIBRARIES} SDL2_LIBRARIES) - target_include_directories(adlmidiplay PRIVATE ${SDL2_INCLUDE_DIRS}) - target_link_libraries(adlmidiplay PRIVATE ${SDL2_LIBRARIES}) + libADLMIDI_find_SDL2() + target_link_libraries(adlmidiplay PRIVATE ADLMIDI_SDL2) endif() if(MIDIPLAY_WAVE_ONLY) -- cgit v1.2.3