# SPDX-License-Identifier: GPL-3.0-or-later
cmake_minimum_required(VERSION 3.16)
project(wolf2009_source_audio_bank LANGUAGES C CXX)
set(core "${CMAKE_CURRENT_SOURCE_DIR}/../../src/wolf2009")
add_library(source_audio_bank STATIC "${core}/SourceAudioBank.cpp" "${core}/Archive.cpp")
target_compile_features(source_audio_bank PUBLIC cxx_std_11)
target_include_directories(source_audio_bank PUBLIC "${core}")
set(WOLF2009_MINIZ_SOURCE_DIR "" CACHE PATH "Optional existing pinned miniz directory")
if(WOLF2009_MINIZ_SOURCE_DIR)
    add_library(audio_bank_compression STATIC "${WOLF2009_MINIZ_SOURCE_DIR}/miniz.c")
    target_include_directories(audio_bank_compression PUBLIC "${WOLF2009_MINIZ_SOURCE_DIR}")
    target_compile_definitions(source_audio_bank PUBLIC WOLF2009_USE_MINIZ)
    target_link_libraries(source_audio_bank PUBLIC audio_bank_compression)
else()
    find_package(ZLIB REQUIRED)
    target_link_libraries(source_audio_bank PUBLIC ZLIB::ZLIB)
endif()
add_executable(wolf2009-source-audio-bank SourceAudioBankTest.cpp)
target_link_libraries(wolf2009-source-audio-bank PRIVATE source_audio_bank)
enable_testing()
add_test(NAME source_audio_bank_synthetic COMMAND wolf2009-source-audio-bank --self-test)
set(WOLF2009_ORIGINAL_AUDIO_BANK "" CACHE FILEPATH "Optional owner-supplied original scripted_voice_kc1_trn_vo_english.spk")
if(WOLF2009_ORIGINAL_AUDIO_BANK)
    add_test(NAME source_audio_bank_original COMMAND wolf2009-source-audio-bank --original "${WOLF2009_ORIGINAL_AUDIO_BANK}")
endif()
add_executable(wolf2009-scripted-voice-bank ScriptedVoiceBankTest.cpp "${core}/ScriptedVoiceBank.cpp")
target_compile_features(wolf2009-scripted-voice-bank PRIVATE cxx_std_11)
target_include_directories(wolf2009-scripted-voice-bank PRIVATE "${core}")
add_test(NAME scripted_voice_bank_readiness COMMAND wolf2009-scripted-voice-bank)
