summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--CMakeLists.txt21
-rwxr-xr-xscripts/gen_assets.sh11
-rw-r--r--src/main.cc2
-rw-r--r--src/tests/test_assets.cc4
-rw-r--r--src/util/asset_manager.cc2
-rw-r--r--tools/asset_packer.cc2
6 files changed, 25 insertions, 17 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 42c2ec0..ffa29ad 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -134,11 +134,11 @@ endif()
# Configure Timeline Generation
set(DEMO_SEQ_PATH ${CMAKE_CURRENT_SOURCE_DIR}/assets/demo.seq)
-set(GENERATED_TIMELINE_CC ${CMAKE_CURRENT_BINARY_DIR}/src/timeline.cc)
+set(GENERATED_TIMELINE_CC ${CMAKE_CURRENT_BINARY_DIR}/src/generated/timeline.cc)
add_custom_command(
OUTPUT ${GENERATED_TIMELINE_CC}
- COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_CURRENT_BINARY_DIR}/src
+ COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_CURRENT_BINARY_DIR}/src/generated
COMMAND ${SEQ_COMPILER_CMD} ${DEMO_SEQ_PATH} ${GENERATED_TIMELINE_CC}
DEPENDS ${SEQ_COMPILER_DEPENDS} ${DEMO_SEQ_PATH}
COMMENT "Compiling demo sequence..."
@@ -150,12 +150,12 @@ add_custom_target(generate_timeline ALL
# Configure DEMO asset generation
set(DEMO_ASSETS_TXT_PATH ${CMAKE_CURRENT_SOURCE_DIR}/assets/final/demo_assets.txt)
-set(GENERATED_DEMO_ASSETS_H ${CMAKE_CURRENT_BINARY_DIR}/src/assets.h)
-set(GENERATED_DEMO_ASSETS_DATA_CC ${CMAKE_CURRENT_BINARY_DIR}/src/assets_data.cc)
+set(GENERATED_DEMO_ASSETS_H ${CMAKE_CURRENT_BINARY_DIR}/src/generated/assets.h)
+set(GENERATED_DEMO_ASSETS_DATA_CC ${CMAKE_CURRENT_BINARY_DIR}/src/generated/assets_data.cc)
add_custom_command(
OUTPUT ${GENERATED_DEMO_ASSETS_H} ${GENERATED_DEMO_ASSETS_DATA_CC}
- COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_CURRENT_BINARY_DIR}/src
+ COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_CURRENT_BINARY_DIR}/src/generated
COMMAND ${ASSET_PACKER_CMD} ${DEMO_ASSETS_TXT_PATH} ${GENERATED_DEMO_ASSETS_H} ${GENERATED_DEMO_ASSETS_DATA_CC}
DEPENDS ${ASSET_PACKER_DEPENDS} ${DEMO_ASSETS_TXT_PATH}
COMMENT "Generating demo assets.h and assets_data.cc"
@@ -167,12 +167,12 @@ add_custom_target(generate_demo_assets ALL
# Configure TEST asset generation
set(TEST_ASSETS_TXT_PATH ${CMAKE_CURRENT_SOURCE_DIR}/assets/final/test_assets_list.txt)
-set(GENERATED_TEST_ASSETS_H ${CMAKE_CURRENT_BINARY_DIR}/src/test_assets.h)
-set(GENERATED_TEST_ASSETS_DATA_CC ${CMAKE_CURRENT_BINARY_DIR}/src/test_assets_data.cc)
+set(GENERATED_TEST_ASSETS_H ${CMAKE_CURRENT_BINARY_DIR}/src/generated/test_assets.h)
+set(GENERATED_TEST_ASSETS_DATA_CC ${CMAKE_CURRENT_BINARY_DIR}/src/generated/test_assets_data.cc)
add_custom_command(
OUTPUT ${GENERATED_TEST_ASSETS_H} ${GENERATED_TEST_ASSETS_DATA_CC}
- COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_CURRENT_BINARY_DIR}/src
+ COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_CURRENT_BINARY_DIR}/src/generated
COMMAND ${ASSET_PACKER_CMD} ${TEST_ASSETS_TXT_PATH} ${GENERATED_TEST_ASSETS_H} ${GENERATED_TEST_ASSETS_DATA_CC}
DEPENDS ${ASSET_PACKER_DEPENDS} ${TEST_ASSETS_TXT_PATH}
COMMENT "Generating test assets.h and assets_data.cc"
@@ -203,7 +203,7 @@ add_executable(demo64k
add_dependencies(demo64k generate_demo_assets generate_timeline)
target_link_libraries(demo64k PRIVATE ${DEMO_LIBS})
-target_include_directories(demo64k PRIVATE ${CMAKE_CURRENT_BINARY_DIR}/src)
+target_include_directories(demo64k PRIVATE ${CMAKE_CURRENT_BINARY_DIR}/src src)
if (DEMO_SIZE_OPT)
if (MSVC)
@@ -285,7 +285,7 @@ if(DEMO_BUILD_TESTS)
src/platform.cc
third_party/glfw3webgpu/glfw3webgpu.c # Link glfw3webgpu source
)
- target_include_directories(test_sequence PRIVATE src ${WGPU_ROOT_INCLUDE_DIR} ${WGPU_ROOT_INCLUDE_DIR}/webgpu-headers)
+ target_include_directories(test_sequence PRIVATE src ${WGPU_ROOT_INCLUDE_DIR} ${WGPU_ROOT_INCLUDE_DIR}/webgpu-headers ${CMAKE_CURRENT_BINARY_DIR}/src)
target_link_libraries(test_sequence PRIVATE ${DEMO_LIBS} ${WGPU_LIBRARY} glfw)
add_dependencies(test_sequence generate_timeline)
add_test(NAME SequenceSystemTest COMMAND test_sequence)
@@ -310,6 +310,7 @@ if(DEMO_BUILD_TOOLS OR DEMO_BUILD_TESTS)
third_party
${WGPU_INCLUDE_DIR}
third_party/glfw3webgpu
+ ${CMAKE_CURRENT_BINARY_DIR}/src
)
target_compile_definitions(spectool PRIVATE DEMO_BUILD_TOOLS)
target_link_libraries(spectool PRIVATE ${DEMO_LIBS})
diff --git a/scripts/gen_assets.sh b/scripts/gen_assets.sh
index d0658a3..1e799f2 100755
--- a/scripts/gen_assets.sh
+++ b/scripts/gen_assets.sh
@@ -11,8 +11,15 @@ cmake --build build
./build/spectool analyze ./assets/wav/hh/hammock\ hh.wav ./assets/final/hihat1.spec
# Pack assets into source tree (as requested by Task 9)
+
+mkdir -p src/generated
+
# For demo assets:
-./build/asset_packer ./assets/final/demo_assets.txt ./src/assets.h ./src/assets_data.cc
+
+./build/asset_packer ./assets/final/demo_assets.txt ./src/generated/assets.h ./src/generated/assets_data.cc
+
+
# For test assets:
-./build/asset_packer ./assets/final/test_assets_list.txt ./src/test_assets.h ./src/test_assets_data.cc \ No newline at end of file
+
+./build/asset_packer ./assets/final/test_assets_list.txt ./src/generated/test_assets.h ./src/generated/test_assets_data.cc
diff --git a/src/main.cc b/src/main.cc
index aa24152..c0f6770 100644
--- a/src/main.cc
+++ b/src/main.cc
@@ -2,7 +2,7 @@
// It serves as the application entry point.
// Orchestrates platform initialization, main loop, and subsystem coordination.
-#include "assets.h" // Include generated asset header
+#include "generated/assets.h" // Include generated asset header
#include "audio/audio.h"
#include "audio/gen.h"
#include "audio/synth.h"
diff --git a/src/tests/test_assets.cc b/src/tests/test_assets.cc
index e782453..ff1cae2 100644
--- a/src/tests/test_assets.cc
+++ b/src/tests/test_assets.cc
@@ -3,9 +3,9 @@
// Verifies data integrity and size reporting.
#ifdef USE_TEST_ASSETS
-#include "test_assets.h"
+#include "generated/test_assets.h"
#else
-#include "assets.h"
+#include "generated/assets.h"
#endif
#include <assert.h>
diff --git a/src/util/asset_manager.cc b/src/util/asset_manager.cc
index 1aa2ef6..33b697b 100644
--- a/src/util/asset_manager.cc
+++ b/src/util/asset_manager.cc
@@ -3,7 +3,7 @@
// Uses an array lookup for O(1) access to embedded data.
#include "util/asset_manager.h"
-#include "assets.h"
+#include "generated/assets.h"
// These are defined in the generated assets_data.cc
extern const AssetRecord g_assets[];
diff --git a/tools/asset_packer.cc b/tools/asset_packer.cc
index 24bdd26..6e939cf 100644
--- a/tools/asset_packer.cc
+++ b/tools/asset_packer.cc
@@ -52,7 +52,7 @@ int main(int argc, char *argv[]) {
assets_data_cc_file
<< "// This file is auto-generated by asset_packer.cc. Do not edit.\n\n";
assets_data_cc_file << "#include \"util/asset_manager.h\"\n";
- assets_data_cc_file << "#include \"assets.h\"\n\n";
+ assets_data_cc_file << "#include \"generated/assets.h\"\n\n";
std::string line;
int asset_id_counter = 0;