Let CMake handle fetching of libsmacker and miniaudio when DOWNLOAD_DEPENDENCIES is enabled (#67)

This commit is contained in:
Anders Jenbo 2025-05-09 23:34:52 +02:00 committed by GitHub
parent 436936c384
commit e92805e863
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -1,9 +1,20 @@
set(CMAKE_C_CLANG_TIDY)
if(DOWNLOAD_DEPENDENCIES)
include(FetchContent)
FetchContent_Declare(
miniaudio
URL https://github.com/mackron/miniaudio/archive/refs/tags/0.11.22.tar.gz
URL_MD5 4944268151ad037f148b089237566d05
)
FetchContent_MakeAvailable(miniaudio)
else()
add_library(miniaudio STATIC
miniaudio/extras/miniaudio_split/miniaudio.c
)
target_include_directories(miniaudio PUBLIC "${CMAKE_CURRENT_SOURCE_DIR}/miniaudio/extras/miniaudio_split")
endif()
set_property(TARGET miniaudio PROPERTY ARCHIVE_OUTPUT_NAME "miniaudio$<$<CONFIG:Debug>:d>")
# Disable most features since we don't need them.
target_compile_definitions(miniaudio PUBLIC
@ -19,8 +30,20 @@ target_compile_definitions(miniaudio PUBLIC
MA_NO_THREADING
)
if(DOWNLOAD_DEPENDENCIES)
include(FetchContent)
FetchContent_Declare(
libsmacker
URL https://github.com/foxtacles/libsmacker/archive/b3d4e97e0c95d5259d858495a5addd2d93bce5f4.tar.gz
URL_MD5 7f822319c489ec1a8e41c9f1e2629195
)
FetchContent_MakeAvailable(libsmacker)
else()
set(libsmacker_SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/libsmacker")
endif()
add_library(libsmacker STATIC
libsmacker/smacker.c
${libsmacker_SOURCE_DIR}/smacker.c
)
set_property(TARGET libsmacker PROPERTY ARCHIVE_OUTPUT_NAME "libsmacker$<$<CONFIG:Debug>:d>")
target_include_directories(libsmacker PUBLIC "${CMAKE_CURRENT_SOURCE_DIR}/libsmacker")
target_include_directories(libsmacker PUBLIC ${libsmacker_SOURCE_DIR})