ladybird/Meta/CMake/flac_spec_tests.cmake
Jelle Raaijmakers 85fd2e281b LibMedia: Absorb LibAudio
LibMedia will be responsible for both audio and video decoding.
2024-09-12 10:01:19 +02:00

26 lines
1.1 KiB
CMake

include(utils)
if(INCLUDE_FLAC_SPEC_TESTS)
if (CMAKE_PROJECT_NAME STREQUAL "SerenityOS")
set(SOURCE_DIR "${SerenityOS_SOURCE_DIR}")
else()
set(SOURCE_DIR "${SERENITY_PROJECT_ROOT}")
endif()
set(FLAC_SPEC_TEST_GZ_URL https://github.com/ietf-wg-cellar/flac-test-files/archive/refs/heads/main.tar.gz)
set(FLAC_TEST_PATH ${CMAKE_BINARY_DIR}/Tests/LibMedia/FLAC CACHE PATH "Location of FLAC tests")
set(FLAC_SPEC_TEST_GZ_PATH ${FLAC_TEST_PATH}/flac-spec-testsuite.tar.gz)
set(FLAC_SPEC_TEST_PATH ${FLAC_TEST_PATH}/SpecTests)
if(NOT EXISTS ${FLAC_SPEC_TEST_GZ_PATH})
message(STATUS "Downloading the IETF CELLAR FLAC testsuite...")
download_file(${FLAC_SPEC_TEST_GZ_URL} ${FLAC_SPEC_TEST_GZ_PATH})
endif()
if(EXISTS ${FLAC_SPEC_TEST_GZ_PATH} AND NOT EXISTS ${FLAC_SPEC_TEST_PATH})
extract_path(${FLAC_TEST_PATH} ${FLAC_SPEC_TEST_GZ_PATH} "flac-test-files-main/subset/*.flac" ${FLAC_SPEC_TEST_PATH})
file(RENAME "${FLAC_TEST_PATH}/flac-test-files-main/subset" ${FLAC_SPEC_TEST_PATH})
file(REMOVE "${FLAC_TEST_PATH}/flac-test-files-main")
endif()
endif()