mirror of
https://github.com/johndoe6345789/metabuilder.git
synced 2026-04-24 13:54:57 +00:00
Fix CW→CCW winding bug on polygon/mesh faces (types 1,3) that caused backface culling to discard half the geometry. Decompose the monolithic bsp.load step (1028 lines) into atomic workflow steps chainable via JSON connections — each step only runs when connected: - bsp.load: open pk3, read + validate BSP, store raw data in context - bsp.lightmap_atlas: build lightmap atlas, upload to GPU - bsp.parse_spawn: parse entity lump for spawn point - bsp.build_geometry: build face geometry with CW→CCW winding fix - bsp.extract_textures: load textures from pk3 with mipmaps - bsp.upload_geometry: upload merged VB/IB to GPU - bsp.build_collision: create Bullet physics convex hull collision Shared BSP structs extracted to bsp_types.hpp. Workflow JSON updated to chain: load → lightmap → geometry → textures → upload → collision → spawn. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
395 lines
22 KiB
CMake
395 lines
22 KiB
CMake
|
|
cmake_minimum_required(VERSION 3.24)
|
|
option(BUILD_SDL3_APP "Build the SDL3 GPU demo" ON)
|
|
option(ENABLE_CLANG_TIDY "Automatically run clang-tidy on every target" OFF)
|
|
set(SDL_VERSION "SDL3" CACHE STRING "SDL version to use")
|
|
set_property(CACHE SDL_VERSION PROPERTY STRINGS SDL3 sdl)
|
|
|
|
|
|
project(SDL3App LANGUAGES CXX)
|
|
|
|
# Build type configuration
|
|
if(NOT CMAKE_CONFIGURATION_TYPES AND NOT CMAKE_BUILD_TYPE)
|
|
set(CMAKE_BUILD_TYPE "Release" CACHE STRING "Build type" FORCE)
|
|
endif()
|
|
|
|
# C++ standard
|
|
set(CMAKE_CXX_STANDARD 20)
|
|
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
|
set(CMAKE_CXX_EXTENSIONS OFF)
|
|
|
|
# Warning flags - enforce no macros culture
|
|
if(CMAKE_CXX_COMPILER_ID MATCHES "Clang")
|
|
add_compile_options(
|
|
-Wmacro-redefined
|
|
-Wreserved-id-macro
|
|
)
|
|
elseif(CMAKE_CXX_COMPILER_ID MATCHES "GNU")
|
|
add_compile_options(
|
|
-Wbuiltin-macro-redefined
|
|
)
|
|
endif()
|
|
if(MSVC)
|
|
add_compile_options(/we4005) # macro redefinition
|
|
endif()
|
|
|
|
# Conan toolchain
|
|
if(EXISTS "${CMAKE_BINARY_DIR}/conan_toolchain.cmake")
|
|
include("${CMAKE_BINARY_DIR}/conan_toolchain.cmake")
|
|
endif()
|
|
|
|
# Ninja generator fixes
|
|
if(CMAKE_GENERATOR MATCHES "Ninja" OR CMAKE_GENERATOR MATCHES "Ninja Multi-Config")
|
|
if(DEFINED CMAKE_GENERATOR_PLATFORM)
|
|
set(CMAKE_GENERATOR_PLATFORM "" CACHE STRING "" FORCE)
|
|
endif()
|
|
if(DEFINED CMAKE_GENERATOR_TOOLSET)
|
|
set(CMAKE_GENERATOR_TOOLSET "" CACHE STRING "" FORCE)
|
|
endif()
|
|
endif()
|
|
|
|
# Windows Chocolatey paths
|
|
list(APPEND CMAKE_PROGRAM_PATH "C:/ProgramData/chocolatey/bin")
|
|
|
|
# Clang-tidy support
|
|
if(ENABLE_CLANG_TIDY)
|
|
find_program(CLANG_TIDY_EXE NAMES clang-tidy clang-tidy.exe HINTS "C:/Program Files/LLVM/bin" "C:/ProgramData/chocolatey/bin")
|
|
if(CLANG_TIDY_EXE)
|
|
if(WIN32)
|
|
set(CLANG_TIDY_WRAPPER "${CMAKE_CURRENT_BINARY_DIR}/clang_tidy_wrapper.bat")
|
|
file(WRITE ${CLANG_TIDY_WRAPPER}
|
|
"@echo off\nsetlocal\nset \"CLANG_TIDY_EXE=${CLANG_TIDY_EXE}\"\necho [clang-tidy] starting %*\n\"%CLANG_TIDY_EXE%\" %*\nset RET=%ERRORLEVEL%\necho [clang-tidy] finished (exit %RET%)\nexit /b %RET%\n"
|
|
)
|
|
else()
|
|
set(CLANG_TIDY_WRAPPER "${CMAKE_CURRENT_BINARY_DIR}/clang_tidy_wrapper.sh")
|
|
file(WRITE ${CLANG_TIDY_WRAPPER}
|
|
"#!/bin/sh\necho \"[clang-tidy] starting $@\"\n\"${CLANG_TIDY_EXE}\" \"$@\"\nret=$?\necho \"[clang-tidy] finished (exit $ret)\"\nexit $ret\n"
|
|
)
|
|
execute_process(COMMAND ${CMAKE_COMMAND} -E chmod +x ${CLANG_TIDY_WRAPPER})
|
|
endif()
|
|
set_property(DIRECTORY APPEND PROPERTY ADDITIONAL_MAKE_CLEAN_FILES ${CLANG_TIDY_WRAPPER})
|
|
set(CMAKE_CXX_CLANG_TIDY "${CLANG_TIDY_WRAPPER}")
|
|
else()
|
|
message(WARNING "clang-tidy requested but not found")
|
|
endif()
|
|
endif()
|
|
|
|
# SDL selection
|
|
|
|
|
|
if(SDL_VERSION STREQUAL "SDL3")
|
|
find_package(SDL3 CONFIG REQUIRED)
|
|
set(SDL_TARGET SDL3::SDL3)
|
|
elseif(SDL_VERSION STREQUAL "sdl")
|
|
find_package(SDL CONFIG REQUIRED)
|
|
set(SDL_TARGET SDL::SDL)
|
|
else()
|
|
message(FATAL_ERROR "Invalid SDL_VERSION: ${SDL_VERSION}")
|
|
endif()
|
|
|
|
|
|
# Find all required packages
|
|
|
|
find_package(RapidJSON CONFIG REQUIRED)
|
|
|
|
find_package(nlohmann_json CONFIG REQUIRED)
|
|
|
|
find_package(Bullet CONFIG REQUIRED)
|
|
|
|
find_package(glm CONFIG REQUIRED)
|
|
|
|
find_package(stb CONFIG REQUIRED)
|
|
|
|
find_package(EnTT CONFIG REQUIRED)
|
|
|
|
find_package(assimp CONFIG REQUIRED)
|
|
|
|
find_package(libzip CONFIG REQUIRED)
|
|
|
|
|
|
# Build render stack library group
|
|
set(SDL3CPP_RENDER_STACK_LIBS EnTT::EnTT)
|
|
|
|
# Freetype library group
|
|
set(SDL3CPP_FREETYPE_LIBS)
|
|
if(TARGET Freetype::Freetype)
|
|
list(APPEND SDL3CPP_FREETYPE_LIBS Freetype::Freetype)
|
|
elseif(TARGET freetype::freetype)
|
|
list(APPEND SDL3CPP_FREETYPE_LIBS freetype::freetype)
|
|
endif()
|
|
|
|
# libzip library group
|
|
set(SDL3CPP_ZIP_LIBS)
|
|
if(TARGET libzip::zip)
|
|
list(APPEND SDL3CPP_ZIP_LIBS libzip::zip)
|
|
elseif(TARGET libzip::libzip)
|
|
list(APPEND SDL3CPP_ZIP_LIBS libzip::libzip)
|
|
endif()
|
|
|
|
# stb library group
|
|
set(SDL3CPP_STB_LIBS)
|
|
if(TARGET stb::stb_image)
|
|
list(APPEND SDL3CPP_STB_LIBS stb::stb_image)
|
|
elseif(TARGET stb::stb)
|
|
list(APPEND SDL3CPP_STB_LIBS stb::stb)
|
|
elseif(TARGET stb)
|
|
list(APPEND SDL3CPP_STB_LIBS stb)
|
|
endif()
|
|
|
|
# ============================================================================
|
|
# SOURCE FILE GROUPINGS
|
|
# ============================================================================
|
|
# Auto-discover source files from key directories using file(GLOB)
|
|
|
|
# JSON config service sources
|
|
file(GLOB JSON_CONFIG_SOURCES src/config/json_config*.cpp)
|
|
|
|
# Workflow service sources (all workflow steps in main workflow directory)
|
|
file(GLOB WORKFLOW_SOURCES src/services/impl/workflow/*.cpp)
|
|
# Remove problematic files with missing dependencies or incomplete implementations
|
|
list(REMOVE_ITEM WORKFLOW_SOURCES
|
|
"${CMAKE_CURRENT_SOURCE_DIR}/tests/"
|
|
"${CMAKE_CURRENT_SOURCE_DIR}/src/services/impl/config/"
|
|
"${CMAKE_CURRENT_SOURCE_DIR}/src/services/impl/workflow/workflow_config_load_step.cpp"
|
|
"${CMAKE_CURRENT_SOURCE_DIR}/src/services/impl/workflow/workflow_config_migration_step.cpp"
|
|
"${CMAKE_CURRENT_SOURCE_DIR}/src/services/impl/workflow/workflow_config_schema_step.cpp"
|
|
"${CMAKE_CURRENT_SOURCE_DIR}/src/services/impl/workflow/workflow_config_version_step.cpp"
|
|
"${CMAKE_CURRENT_SOURCE_DIR}/src/services/impl/workflow/workflow_config_pipeline.cpp"
|
|
"${CMAKE_CURRENT_SOURCE_DIR}/src/services/impl/workflow/graphics/workflow_graphics_shader_load_step.cpp"
|
|
"${CMAKE_CURRENT_SOURCE_DIR}/src/services/impl/workflow/rendering/workflow_render_cube_grid_step.cpp"
|
|
)
|
|
|
|
# Frame-specific workflow steps
|
|
file(GLOB FRAME_WORKFLOW_SOURCES src/services/impl/workflow/frame/*.cpp)
|
|
# Apply same exclusions to frame sources
|
|
list(REMOVE_ITEM FRAME_WORKFLOW_SOURCES
|
|
)
|
|
|
|
# Generic workflow steps (atomic, reusable steps)
|
|
file(GLOB GENERIC_WORKFLOW_SOURCES src/services/impl/workflow/generic_steps/*.cpp)
|
|
|
|
# ============================================================================
|
|
# EXECUTABLE TARGETS
|
|
# ============================================================================
|
|
if(BUILD_SDL3_APP)
|
|
add_executable(sdl3_app
|
|
src/main.cpp
|
|
src/services/impl/diagnostics/logger_service.cpp
|
|
src/services/impl/workflow/workflow_executor.cpp
|
|
src/services/impl/workflow/workflow_step_registry.cpp
|
|
src/services/impl/workflow/workflow_exit_step.cpp
|
|
src/services/impl/workflow/workflow_parameter_reader.cpp
|
|
src/services/impl/workflow/workflow_step_io_resolver.cpp
|
|
src/services/impl/workflow/workflow_step_parameter_resolver.cpp
|
|
src/services/impl/workflow/workflow_registrar.cpp
|
|
src/services/impl/workflow/workflow_sdl_init_step.cpp
|
|
src/services/impl/workflow/workflow_sdl_window_create_step.cpp
|
|
src/services/impl/workflow/workflow_app_init_step.cpp
|
|
src/services/impl/workflow/workflow_load_workflow_step.cpp
|
|
src/services/impl/workflow/workflow_definition_parser.cpp
|
|
src/services/impl/workflow/workflow_definition_parser_nodes.cpp
|
|
src/services/impl/workflow/workflow_definition_parser_variables.cpp
|
|
src/services/impl/workflow/workflow_connection_resolver.cpp
|
|
src/services/impl/workflow/workflow_execute_step.cpp
|
|
src/stb_image.cpp
|
|
src/services/impl/workflow/workflow_generic_steps/workflow_array_append_step.cpp
|
|
src/services/impl/workflow/workflow_generic_steps/workflow_array_create_step.cpp
|
|
src/services/impl/workflow/workflow_generic_steps/workflow_audio_pause_step.cpp
|
|
src/services/impl/workflow/workflow_generic_steps/workflow_audio_play_step.cpp
|
|
src/services/impl/workflow/workflow_generic_steps/workflow_audio_resume_step.cpp
|
|
src/services/impl/workflow/workflow_generic_steps/workflow_audio_seek_step.cpp
|
|
src/services/impl/workflow/workflow_generic_steps/workflow_audio_set_looping_step.cpp
|
|
src/services/impl/workflow/workflow_generic_steps/workflow_audio_set_volume_step.cpp
|
|
src/services/impl/workflow/workflow_generic_steps/workflow_audio_stop_step.cpp
|
|
src/services/impl/workflow/workflow_generic_steps/workflow_bool_and_step.cpp
|
|
src/services/impl/workflow/workflow_generic_steps/workflow_bool_not_step.cpp
|
|
src/services/impl/workflow/workflow_generic_steps/workflow_bool_or_step.cpp
|
|
src/services/impl/workflow/workflow_generic_steps/workflow_camera_build_view_state_step.cpp
|
|
src/services/impl/workflow/workflow_generic_steps/workflow_camera_fps_update_step.cpp
|
|
src/services/impl/workflow/workflow_generic_steps/workflow_camera_look_at_step.cpp
|
|
src/services/impl/workflow/workflow_generic_steps/workflow_camera_set_fov_step.cpp
|
|
src/services/impl/workflow/workflow_generic_steps/workflow_camera_set_pose_step.cpp
|
|
src/services/impl/workflow/workflow_generic_steps/workflow_camera_setup_step.cpp
|
|
src/services/impl/workflow/workflow_generic_steps/workflow_camera_teleport_step.cpp
|
|
src/services/impl/workflow/workflow_generic_steps/workflow_compare_eq_step.cpp
|
|
src/services/impl/workflow/workflow_generic_steps/workflow_compare_gt_step.cpp
|
|
src/services/impl/workflow/workflow_generic_steps/workflow_compare_gte_step.cpp
|
|
src/services/impl/workflow/workflow_generic_steps/workflow_compare_lt_step.cpp
|
|
src/services/impl/workflow/workflow_generic_steps/workflow_compare_lte_step.cpp
|
|
src/services/impl/workflow/workflow_generic_steps/workflow_compare_ne_step.cpp
|
|
src/services/impl/workflow/workflow_generic_steps/workflow_control_for_each_step.cpp
|
|
src/services/impl/workflow/workflow_generic_steps/workflow_control_if_else_step.cpp
|
|
src/services/impl/workflow/workflow_generic_steps/workflow_control_switch_step.cpp
|
|
src/services/impl/workflow/workflow_generic_steps/workflow_control_while_step.cpp
|
|
src/services/impl/workflow/workflow_generic_steps/workflow_debug_log_step.cpp
|
|
src/services/impl/workflow/workflow_generic_steps/workflow_debug_metrics_step.cpp
|
|
src/services/impl/workflow/workflow_generic_steps/workflow_input_gamepad_axis_step.cpp
|
|
src/services/impl/workflow/workflow_generic_steps/workflow_input_gamepad_button_pressed_step.cpp
|
|
src/services/impl/workflow/workflow_generic_steps/workflow_input_key_pressed_step.cpp
|
|
src/services/impl/workflow/workflow_generic_steps/workflow_input_mouse_button_pressed_step.cpp
|
|
src/services/impl/workflow/workflow_generic_steps/workflow_input_mouse_grab_step.cpp
|
|
src/services/impl/workflow/workflow_generic_steps/workflow_input_mouse_position_step.cpp
|
|
src/services/impl/workflow/workflow_generic_steps/workflow_input_poll_step.cpp
|
|
src/services/impl/workflow/workflow_generic_steps/workflow_list_append_step.cpp
|
|
src/services/impl/workflow/workflow_generic_steps/workflow_list_concat_step.cpp
|
|
src/services/impl/workflow/workflow_generic_steps/workflow_list_count_step.cpp
|
|
src/services/impl/workflow/workflow_generic_steps/workflow_list_filter_equals_step.cpp
|
|
src/services/impl/workflow/workflow_generic_steps/workflow_list_filter_gt_step.cpp
|
|
src/services/impl/workflow/workflow_generic_steps/workflow_list_literal_step.cpp
|
|
src/services/impl/workflow/workflow_generic_steps/workflow_list_map_add_step.cpp
|
|
src/services/impl/workflow/workflow_generic_steps/workflow_list_map_mul_step.cpp
|
|
src/services/impl/workflow/workflow_generic_steps/workflow_list_reduce_max_step.cpp
|
|
src/services/impl/workflow/workflow_generic_steps/workflow_list_reduce_min_step.cpp
|
|
src/services/impl/workflow/workflow_generic_steps/workflow_list_reduce_sum_step.cpp
|
|
src/services/impl/workflow/workflow_generic_steps/workflow_model_despawn_step.cpp
|
|
src/services/impl/workflow/workflow_generic_steps/workflow_model_set_transform_step.cpp
|
|
src/services/impl/workflow/workflow_generic_steps/workflow_number_abs_step.cpp
|
|
src/services/impl/workflow/workflow_generic_steps/workflow_number_add_step.cpp
|
|
src/services/impl/workflow/workflow_generic_steps/workflow_number_clamp_step.cpp
|
|
src/services/impl/workflow/workflow_generic_steps/workflow_number_div_step.cpp
|
|
src/services/impl/workflow/workflow_generic_steps/workflow_number_max_step.cpp
|
|
src/services/impl/workflow/workflow_generic_steps/workflow_number_min_step.cpp
|
|
src/services/impl/workflow/workflow_generic_steps/workflow_number_mul_step.cpp
|
|
src/services/impl/workflow/workflow_generic_steps/workflow_number_round_step.cpp
|
|
src/services/impl/workflow/workflow_generic_steps/workflow_number_sub_step.cpp
|
|
src/services/impl/workflow/workflow_generic_steps/workflow_particle_emit_step.cpp
|
|
src/services/impl/workflow/workflow_generic_steps/workflow_particle_update_step.cpp
|
|
src/services/impl/workflow/workflow_generic_steps/workflow_physics_body_add_step.cpp
|
|
src/services/impl/workflow/workflow_generic_steps/workflow_physics_fps_move_step.cpp
|
|
src/services/impl/workflow/workflow_generic_steps/workflow_physics_step_step.cpp
|
|
src/services/impl/workflow/workflow_generic_steps/workflow_physics_sync_transforms_step.cpp
|
|
src/services/impl/workflow/workflow_generic_steps/workflow_physics_world_create_step.cpp
|
|
src/services/impl/workflow/workflow_generic_steps/workflow_string_concat_step.cpp
|
|
src/services/impl/workflow/workflow_generic_steps/workflow_string_contains_step.cpp
|
|
src/services/impl/workflow/workflow_generic_steps/workflow_string_equals_step.cpp
|
|
src/services/impl/workflow/workflow_generic_steps/workflow_string_format_step.cpp
|
|
src/services/impl/workflow/workflow_generic_steps/workflow_string_join_step.cpp
|
|
src/services/impl/workflow/workflow_generic_steps/workflow_string_lower_step.cpp
|
|
src/services/impl/workflow/workflow_generic_steps/workflow_string_replace_step.cpp
|
|
src/services/impl/workflow/workflow_generic_steps/workflow_string_split_step.cpp
|
|
src/services/impl/workflow/workflow_generic_steps/workflow_string_trim_step.cpp
|
|
src/services/impl/workflow/workflow_generic_steps/workflow_string_upper_step.cpp
|
|
src/services/impl/workflow/workflow_generic_steps/workflow_try_catch_step.cpp
|
|
src/services/impl/workflow/workflow_generic_steps/workflow_value_assert_exists_step.cpp
|
|
src/services/impl/workflow/workflow_generic_steps/workflow_value_assert_type_step.cpp
|
|
src/services/impl/workflow/workflow_generic_steps/workflow_value_clear_step.cpp
|
|
src/services/impl/workflow/workflow_generic_steps/workflow_value_copy_step.cpp
|
|
src/services/impl/workflow/workflow_generic_steps/workflow_value_default_step.cpp
|
|
src/services/impl/workflow/workflow_generic_steps/workflow_value_literal_step.cpp
|
|
src/services/impl/workflow/workflow_generic_steps/workflow_variable_get_step.cpp
|
|
src/services/impl/workflow/workflow_generic_steps/workflow_variable_set_step.cpp
|
|
src/services/impl/workflow/workflow_generic_steps/workflow_vfx_destroy_step.cpp
|
|
src/services/impl/workflow/workflow_generic_steps/workflow_vfx_spawn_step.cpp
|
|
src/services/impl/workflow/geometry/workflow_geometry_create_cube_step.cpp
|
|
src/services/impl/workflow/geometry/workflow_geometry_create_plane_step.cpp
|
|
src/services/impl/workflow/geometry/workflow_geometry_cube_generate_step.cpp
|
|
src/services/impl/workflow/rendering/workflow_bsp_load_step.cpp
|
|
src/services/impl/workflow/rendering/workflow_bsp_lightmap_atlas_step.cpp
|
|
src/services/impl/workflow/rendering/workflow_bsp_parse_spawn_step.cpp
|
|
src/services/impl/workflow/rendering/workflow_bsp_build_geometry_step.cpp
|
|
src/services/impl/workflow/rendering/workflow_bsp_extract_textures_step.cpp
|
|
src/services/impl/workflow/rendering/workflow_bsp_upload_geometry_step.cpp
|
|
src/services/impl/workflow/rendering/workflow_bsp_build_collision_step.cpp
|
|
src/services/impl/workflow/rendering/workflow_draw_map_step.cpp
|
|
src/services/impl/workflow/rendering/workflow_draw_textured_box_step.cpp
|
|
src/services/impl/workflow/rendering/workflow_draw_textured_step.cpp
|
|
src/services/impl/workflow/rendering/workflow_draw_viewmodel_step.cpp
|
|
src/services/impl/workflow/rendering/workflow_frame_begin_gpu_step.cpp
|
|
src/services/impl/workflow/rendering/workflow_frame_begin_offscreen_step.cpp
|
|
src/services/impl/workflow/rendering/workflow_frame_draw_bodies_step.cpp
|
|
src/services/impl/workflow/rendering/workflow_frame_end_gpu_step.cpp
|
|
src/services/impl/workflow/rendering/workflow_frame_end_scene_step.cpp
|
|
src/services/impl/workflow/rendering/workflow_geometry_create_flashlight_step.cpp
|
|
src/services/impl/workflow/rendering/workflow_lighting_setup_step.cpp
|
|
src/services/impl/workflow/rendering/workflow_map_load_step.cpp
|
|
src/services/impl/workflow/rendering/workflow_model_load_step.cpp
|
|
src/services/impl/workflow/rendering/workflow_postfx_bloom_blur_step.cpp
|
|
src/services/impl/workflow/rendering/workflow_postfx_bloom_extract_step.cpp
|
|
src/services/impl/workflow/rendering/workflow_postfx_composite_step.cpp
|
|
src/services/impl/workflow/rendering/workflow_postfx_setup_step.cpp
|
|
src/services/impl/workflow/rendering/workflow_postfx_ssao_step.cpp
|
|
src/services/impl/workflow/rendering/workflow_postfx_taa_step.cpp
|
|
src/services/impl/workflow/rendering/workflow_render_grid_draw_step.cpp
|
|
src/services/impl/workflow/rendering/workflow_render_grid_setup_step.cpp
|
|
src/services/impl/workflow/rendering/workflow_render_prepare_step.cpp
|
|
src/services/impl/workflow/rendering/workflow_shadow_pass_step.cpp
|
|
src/services/impl/workflow/rendering/workflow_shadow_setup_step.cpp
|
|
src/services/impl/workflow/rendering/workflow_spawn_apply_step.cpp
|
|
src/services/impl/workflow/rendering/workflow_spotlight_setup_step.cpp
|
|
src/services/impl/workflow/rendering/workflow_spotlight_update_step.cpp
|
|
src/services/impl/workflow/graphics/workflow_gpu_pipeline_create_step.cpp
|
|
src/services/impl/workflow/graphics/workflow_gpu_shader_compile_step.cpp
|
|
src/services/impl/workflow/graphics/workflow_graphics_buffer_create_index_step.cpp
|
|
src/services/impl/workflow/graphics/workflow_graphics_buffer_create_vertex_step.cpp
|
|
src/services/impl/workflow/graphics/workflow_graphics_buffer_upload_step.cpp
|
|
src/services/impl/workflow/graphics/workflow_graphics_draw_submit_step.cpp
|
|
src/services/impl/workflow/graphics/workflow_graphics_frame_begin_step.cpp
|
|
src/services/impl/workflow/graphics/workflow_graphics_frame_end_step.cpp
|
|
src/services/impl/workflow/graphics/workflow_graphics_framebuffer_readback_step.cpp
|
|
src/services/impl/workflow/graphics/workflow_graphics_gpu_init_step.cpp
|
|
src/services/impl/workflow/graphics/workflow_graphics_init_renderer_step.cpp
|
|
src/services/impl/workflow/graphics/workflow_graphics_init_viewport_step.cpp
|
|
src/services/impl/workflow/graphics/workflow_graphics_screenshot_request_step.cpp
|
|
src/services/impl/workflow/graphics/workflow_texture_load_step.cpp
|
|
src/services/impl/workflow/input/workflow_input_axis_combine_step.cpp
|
|
src/services/impl/workflow/input/workflow_input_button_combine_step.cpp
|
|
src/services/impl/workflow/input/workflow_input_gamepad_poll_step.cpp
|
|
src/services/impl/workflow/input/workflow_input_keyboard_poll_step.cpp
|
|
src/services/impl/workflow/input/workflow_input_mouse_poll_step.cpp
|
|
src/services/impl/workflow/input/workflow_input_poll_all_step.cpp
|
|
src/services/impl/workflow/scene/workflow_scene_add_geometry_step.cpp
|
|
src/services/impl/workflow/scene/workflow_scene_clear_step.cpp
|
|
src/services/impl/workflow/scene/workflow_scene_create_step.cpp
|
|
src/services/impl/workflow/scene/workflow_scene_get_bounds_step.cpp
|
|
src/services/impl/workflow/scene/workflow_scene_load_step.cpp
|
|
src/services/impl/workflow/scene/workflow_scene_remove_geometry_step.cpp
|
|
src/services/impl/workflow/scene/workflow_scene_set_active_step.cpp
|
|
src/services/impl/workflow/scene/workflow_scene_update_step.cpp
|
|
src/services/impl/workflow/compute/workflow_compute_pipeline_create_step.cpp
|
|
src/services/impl/workflow/compute/workflow_compute_tessellate_dispatch_step.cpp
|
|
src/services/impl/workflow/compute/workflow_compute_tessellate_step.cpp
|
|
src/services/impl/workflow/workflow_camera_view_state_builder.cpp
|
|
src/services/impl/workflow/workflow_cmdline_args_step.cpp
|
|
src/services/impl/workflow/workflow_data_deserialize_step.cpp
|
|
src/services/impl/workflow/workflow_data_serialize_step.cpp
|
|
src/services/impl/workflow/workflow_graphics_init_device_step.cpp
|
|
src/services/impl/workflow/workflow_graphics_init_swapchain_step.cpp
|
|
src/services/impl/workflow/workflow_media_catalog_scan_step.cpp
|
|
src/services/impl/workflow/workflow_media_item_select_step.cpp
|
|
src/services/impl/workflow/workflow_network_connect_step.cpp
|
|
src/services/impl/workflow/workflow_network_receive_step.cpp
|
|
src/services/impl/workflow/workflow_network_send_step.cpp
|
|
src/services/impl/workflow/workflow_package_shader_loader_step.cpp
|
|
src/services/impl/workflow/workflow_shader_builtin_constant_color_step.cpp
|
|
src/services/impl/workflow/workflow_shader_compile_step.cpp
|
|
src/services/impl/workflow/workflow_shader_system_initialize_step.cpp
|
|
src/services/impl/workflow/workflow_shader_system_set_step.cpp
|
|
src/services/impl/workflow/workflow_state_clear_step.cpp
|
|
src/services/impl/workflow/workflow_state_load_step.cpp
|
|
src/services/impl/workflow/workflow_state_save_step.cpp
|
|
src/services/impl/workflow/workflow_template_resolver.cpp
|
|
)
|
|
target_include_directories(sdl3_app PRIVATE
|
|
"${CMAKE_CURRENT_SOURCE_DIR}/src"
|
|
)
|
|
target_link_libraries(sdl3_app PRIVATE
|
|
${SDL_TARGET}
|
|
rapidjson
|
|
nlohmann_json::nlohmann_json
|
|
Bullet::Bullet
|
|
glm::glm
|
|
stb::stb
|
|
EnTT::EnTT
|
|
libzip::zip
|
|
assimp::assimp
|
|
)
|
|
endif()
|
|
|
|
# ============================================================================
|
|
# FILE COPYING
|
|
# ============================================================================
|
|
if(BUILD_SDL3_APP)
|
|
if(EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/packages")
|
|
file(COPY "${CMAKE_CURRENT_SOURCE_DIR}/packages" DESTINATION "${CMAKE_CURRENT_BINARY_DIR}")
|
|
endif()
|
|
endif() |