# Subsystem Library Targets # Defines the 5 core static libraries # Utility library add_library(util STATIC ${UTIL_SOURCES}) add_dependencies(util generate_demo_assets generate_test_assets) target_include_directories(util PUBLIC ${CORE_INCLUDES}) # Procedural generation library add_library(procedural STATIC ${PROCEDURAL_SOURCES}) target_include_directories(procedural PUBLIC ${CORE_INCLUDES}) # Audio synthesis and processing library add_library(audio STATIC ${AUDIO_SOURCES}) add_dependencies(audio generate_demo_assets) target_include_directories(audio PUBLIC ${CORE_INCLUDES}) # 3D rendering library add_library(3d STATIC ${3D_SOURCES}) add_dependencies(3d generate_demo_assets) target_include_directories(3d PUBLIC ${CORE_INCLUDES}) # GPU effects library add_library(gpu STATIC ${GPU_SOURCES}) add_dependencies(gpu generate_demo_assets) target_include_directories(gpu PUBLIC ${CORE_INCLUDES}) # Note: Static libraries do not strictly need to link dependencies, # but if they did, PRIVATE would propagate to the executable. # We will link them in the executable to be explicit and avoid order issues.