ocarina/tests/Music/CMakeLists.txt

103 lines
3.0 KiB
CMake

find_program(FFMPEG_EXECUTABLE ffmpeg)
if ("${FFMPEG_EXECUTABLE}" STREQUAL "FFMPEG_EXECUTABLE-NOTFOUND")
message(FATAL_ERROR "ffmpeg not found!")
else()
message(STATUS "Found ffmpeg: ${FFMPEG_EXECUTABLE}")
endif()
add_custom_target(generate)
add_dependencies(tests generate)
set(loglevel quiet)
if (CONFIG_TESTING_VERBOSE)
set(loglevel warning)
endif()
set(FFMPEG_ARGS -hide_banner -nostdin -f s16le -i /dev/zero -codec libvorbis -loglevel ${loglevel})
function(gen_track num len title)
set(track "${ALBUM}/${num} - ${title}.ogg")
add_custom_command(TARGET generate PRE_BUILD COMMAND
${FFMPEG_EXECUTABLE} ${FFMPEG_ARGS} -t ${len}
-metadata TITLE=${title}
-metadata ARTIST=${ARTIST}
-metadata ALBUM=${ALBUM}
-metadata GENRE=${GENRE}
-metadata DATE=${YEAR}
-metadata TRACKNUMBER=${num}
"${track}" || true VERBATIM)
endfunction()
#
# Generate Hyrule Symphony album
#
add_custom_command(TARGET generate PRE_BUILD COMMAND mkdir -p Hyrule\ Symphony/)
set(ARTIST "Koji Kondo")
set(ALBUM "Hyrule Symphony")
set(YEAR 1998)
set(GENRE "Game")
gen_track(01 243 "Title Theme")
gen_track(02 130 "Kokiri Forest")
gen_track(03 227 "Hyrule Field")
gen_track(04 130 "Hyrule Castle")
gen_track(05 206 "Lon Lon Ranch")
gen_track(06 186 "Kakariko Village")
gen_track(07 178 "Death Mountain")
gen_track(08 221 "Zora's Domain")
gen_track(09 273 "Gerudo Valley")
gen_track(10 66 "Ganondorf")
gen_track(11 185 "Princess Zelda")
gen_track(12 232 "Ocarina Medley")
gen_track(13 288 "The Legend of Zelda Medley")
#
# Generate Ocarina of Time album
#
add_custom_command(TARGET generate PRE_BUILD COMMAND mkdir -p Ocarina\ of\ Time/)
set(ALBUM "Ocarina of Time")
set(YEAR 1998)
set(GENRE "Video Game")
gen_track(01 170 "Title Theme")
gen_track(02 80 "Deku Tree")
gen_track(03 46 "Fairy Flying")
gen_track(04 71 "House")
gen_track(05 112 "Kokiri Forest")
gen_track(06 133 "Shop")
gen_track(07 134 "Battle")
gen_track(08 164 "Inside the Deku Tree")
gen_track(09 153 "Boss Battle")
gen_track(10 327 "Hyrule Field Main Theme")
gen_track(11 103 "Market")
gen_track(12 90 "Hyrule Castle Courtyard")
gen_track(13 62 "Ocarina Songs")
gen_track(14 101 "Ocarina of Time")
gen_track(15 271 "LonLon Ranch")
gen_track(16 204 "Kakariko Village")
gen_track(17 75 "Lost Woods")
gen_track(18 171 "Zora's Domain")
gen_track(19 72 "Great Fairy's Fountain")
gen_track(20 159 "Temple of Time")
gen_track(21 124 "Chamber of the Sages")
gen_track(22 98 "Horse Race")
gen_track(23 193 "Kakariko Village Orchestra")
gen_track(24 99 "Windmill Hut")
gen_track(25 172 "Gerudo Valley")
gen_track(26 147 "Ganondorf Battle")
gen_track(27 191 "Last Battle")
gen_track(28 34 "Zelda's Ocarina")
gen_track(29 433 "Staff Credits Theme")
gen_track(30 18 "Minuet of Forest")
gen_track(31 24 "Bolero of Fire")
gen_track(32 24 "Serenade of Water")
gen_track(33 25 "Nocturne of Shadow")
gen_track(34 23 "Prelude of Light")
gen_track(35 27 "Requiem of Spirit")
#
# Generate an invalid track
#
file(WRITE invalid_track "abcdefghijklmnopqrstuvwxyz")