diff --git a/3rdParty/SDL_audiolib/CMakeLists.txt b/3rdParty/SDL_audiolib/CMakeLists.txt index 8c5bc1227..b17a80695 100644 --- a/3rdParty/SDL_audiolib/CMakeLists.txt +++ b/3rdParty/SDL_audiolib/CMakeLists.txt @@ -34,3 +34,5 @@ FetchContent_Declare(SDL_audiolib URL https://github.com/realnc/SDL_audiolib/archive/1a69135313c79817b38a3a99826d4ac28d627fdf.tar.gz URL_HASH MD5=0bb189ccf8d26e01d10a97a24d298d2a) FetchContent_MakeAvailableExcludeFromAll(SDL_audiolib) + +add_library(SDL_audiolib::SDL_audiolib ALIAS SDL_audiolib) diff --git a/CMake/Dependencies.cmake b/CMake/Dependencies.cmake index e591174b5..a76847068 100644 --- a/CMake/Dependencies.cmake +++ b/CMake/Dependencies.cmake @@ -118,7 +118,16 @@ else() endif() if(NOT NOSOUND) - dependency_options("SDL_audiolib" DEVILUTIONX_SYSTEM_SDL_AUDIOLIB OFF DEVILUTIONX_STATIC_SDL_AUDIOLIB) + if(NOT DEFINED DEVILUTIONX_SYSTEM_SDL_AUDIOLIB) + find_package(SDL_audiolib QUIET) + if(SDL_audiolib_FOUND) + message("-- Found SDL_audiolib") + else() + message("-- Suitable system SDL_audiolib package not found, will use SDL_audiolib from source") + set(DEVILUTIONX_SYSTEM_SDL_AUDIOLIB OFF) + endif() + endif() + dependency_options("SDL_audiolib" DEVILUTIONX_SYSTEM_SDL_AUDIOLIB ON DEVILUTIONX_STATIC_SDL_AUDIOLIB) if(DEVILUTIONX_SYSTEM_SDL_AUDIOLIB) find_package(SDL_audiolib REQUIRED) else() diff --git a/CMake/finders/FindSDL_audiolib.cmake b/CMake/finders/FindSDL_audiolib.cmake new file mode 100644 index 000000000..1c9629e31 --- /dev/null +++ b/CMake/finders/FindSDL_audiolib.cmake @@ -0,0 +1,26 @@ +find_package(PkgConfig) +pkg_check_modules(PC_SDL_audiolib QUIET SDL_audiolib) + +find_path(SDL_audiolib_INCLUDE_DIR aulib.h + HINTS ${PC_SDL_audiolib_INCLUDEDIR} ${PC_SDL_audiolib_INCLUDE_DIRS}) + +find_library(SDL_audiolib_LIBRARY + NAMES SDL_audiolib libSDL_audiolib + HINTS ${PC_SDL_audiolib_LIBDIR} ${PC_SDL_audiolib_LIBRARY_DIRS}) + +include(FindPackageHandleStandardArgs) +find_package_handle_standard_args(SDL_audiolib DEFAULT_MSG + SDL_audiolib_INCLUDE_DIR SDL_audiolib_LIBRARY) + +if(SDL_audiolib_FOUND AND NOT TARGET SDL_audiolib::SDL_audiolib) + add_library(SDL_audiolib::SDL_audiolib UNKNOWN IMPORTED) + set_target_properties(SDL_audiolib::SDL_audiolib PROPERTIES + IMPORTED_LOCATION ${SDL_audiolib_LIBRARY} + INTERFACE_INCLUDE_DIRECTORIES ${SDL_audiolib_INCLUDE_DIR}) +endif() + +if(SDL_audiolib_FOUND) + mark_as_advanced(SDL_audiolib_INCLUDE_DIR SDL_audiolib_LIBRARY) + set(SDL_audiolib_LIBRARIES ${SDL_audiolib_LIBRARY}) + set(SDL_audiolib_INCLUDE_DIRS ${SDL_audiolib_INCLUDE_DIR}) +endif()