Start to hook up code generation with CMake builds

Automatically generate material, sound, and level data.

Generated code is not currently linked.
This commit is contained in:
Matt Penny 2024-09-26 23:06:10 -04:00
parent 51e7e001a5
commit 6a14db3a16
4 changed files with 15 additions and 12 deletions

View file

@ -185,7 +185,7 @@ function(_add_extract_frame_command INPUT_FILE OUTPUT_FILE SECONDS)
COMMAND
${IMAGEMAGICK_CONVERT} ${OUTPUT_FILE} -crop 491x369+265+202 -resize 160x120 ${OUTPUT_FILE}
COMMENT
"Converting $<PATH:RELATIVE_PATH,${INPUT_FILE},${PROJECT_SOURCE_DIR}>"
"Extracting frame from $<PATH:RELATIVE_PATH,${INPUT_FILE},${PROJECT_SOURCE_DIR}>"
VERBATIM
)
endfunction()
@ -455,8 +455,7 @@ foreach(MATERIAL ${MATERIALS})
_add_material_generate_command(${MATERIAL} GENERATED_MATERIALS)
endforeach()
# TODO: proper dependencies from consumers
add_custom_target(
all_materials
materials
DEPENDS ${GENERATED_MATERIALS}
)

View file

@ -29,7 +29,7 @@ function(_add_extract_video_audio_command INPUT_FILE OUTPUT_FILE)
COMMAND
${FFMPEG} -i ${INPUT_FILE} -vn -loglevel error -y ${OUTPUT_FILE}
COMMENT
"Converting $<PATH:RELATIVE_PATH,${INPUT_FILE},${PROJECT_SOURCE_DIR}>"
"Extracting audio from $<PATH:RELATIVE_PATH,${INPUT_FILE},${PROJECT_SOURCE_DIR}>"
VERBATIM
)
endfunction()
@ -327,7 +327,6 @@ endforeach()
######################
function(_add_sound_convert_command INPUT_FILE OUTPUT_LIST)
# TODO: change output to PAK_MODIFIED_SOUND_DIR once makefile is no longer in use
cmake_path(
REPLACE_EXTENSION INPUT_FILE
".aifc"
@ -434,17 +433,14 @@ add_custom_command(
VERBATIM
)
# TODO: proper dependencies from consumers
add_custom_target(
sound_data_tables
sound_tables
DEPENDS
# Sound data
${SOUND_TABLE_SOUNDS}
${SOUND_TABLE_TBL}
)
add_custom_target(
sound_lookup_tables
DEPENDS
# Lookup tables
${CLIPS_H}
${LANGUAGES_H}
${LANGUAGES_C}

View file

@ -158,7 +158,6 @@ add_custom_command(
VERBATIM
)
# TODO: remove
add_custom_target(
level_list
DEPENDS ${LEVEL_LIST}

View file

@ -6,6 +6,15 @@ target_include_directories(portal PRIVATE
"${CMAKE_CURRENT_SOURCE_DIR}"
)
# Generated code
add_dependencies(portal
materials
sound_tables
# TODO: rework when including chambers in compilation
level_list
)
###############
## Game code ##
###############