103 lines
3.0 KiB
CMake
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")
|