chore: auto-commit (286 archivos)
- .claude/agents/fn-orquestador/SKILL.md - .claude/commands/fn_claude.md - .claude/rules/INDEX.md - .claude/rules/cpp_apps.md - .claude/rules/ids_naming.md - CHANGELOG.md - apps/dag_engine/README.md - apps/dag_engine/api.go - apps/dag_engine/dags_migrated/example.yaml - apps/dag_engine/dags_migrated/example_lineage_tracking.yaml - ... Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
+71
-32
@@ -1,5 +1,9 @@
|
||||
cmake_minimum_required(VERSION 3.16)
|
||||
project(fn_registry_cpp LANGUAGES C CXX)
|
||||
if(WIN32)
|
||||
project(fn_registry_cpp LANGUAGES C CXX RC)
|
||||
else()
|
||||
project(fn_registry_cpp LANGUAGES C CXX)
|
||||
endif()
|
||||
|
||||
set(CMAKE_CXX_STANDARD 17)
|
||||
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
||||
@@ -236,7 +240,18 @@ endif()
|
||||
set(FN_CPP_ROOT_DIR ${CMAKE_CURRENT_SOURCE_DIR} CACHE INTERNAL "fn_registry cpp root")
|
||||
|
||||
function(add_imgui_app target)
|
||||
add_executable(${target} ${ARGN})
|
||||
# Windows icon: si la app tiene <app_dir>/appicon.ico, generamos un .rc
|
||||
# apuntando a ese .ico y lo anadimos como fuente. mingw-w64 windres
|
||||
# (CMAKE_RC_COMPILER en la toolchain) lo enlaza en el .exe.
|
||||
set(_extra_sources "")
|
||||
if(WIN32 AND EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/appicon.ico)
|
||||
set(_rc_file ${CMAKE_CURRENT_BINARY_DIR}/${target}_appicon.rc)
|
||||
# Forward slashes para que windres no se confunda con escapes.
|
||||
file(TO_CMAKE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/appicon.ico _ico_path)
|
||||
file(WRITE ${_rc_file} "IDI_ICON1 ICON \"${_ico_path}\"\n")
|
||||
list(APPEND _extra_sources ${_rc_file})
|
||||
endif()
|
||||
add_executable(${target} ${ARGN} ${_extra_sources})
|
||||
target_link_libraries(${target} PRIVATE fn_framework)
|
||||
target_include_directories(${target} PRIVATE
|
||||
${FN_CPP_ROOT_DIR}/functions
|
||||
@@ -314,14 +329,20 @@ target_link_libraries(fn_table_viz PUBLIC
|
||||
target_link_libraries(fn_table_viz PRIVATE fn_framework)
|
||||
endif()
|
||||
|
||||
# --- Demo app ---
|
||||
if(EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/apps/chart_demo/CMakeLists.txt)
|
||||
add_subdirectory(apps/chart_demo)
|
||||
# --- Demo app (lives in apps/, issue 0096 standardization) ---
|
||||
if(NOT DEFINED _CHART_DEMO_DIR)
|
||||
set(_CHART_DEMO_DIR ${CMAKE_SOURCE_DIR}/../apps/chart_demo)
|
||||
endif()
|
||||
if(EXISTS ${_CHART_DEMO_DIR}/CMakeLists.txt)
|
||||
add_subdirectory(${_CHART_DEMO_DIR} ${CMAKE_BINARY_DIR}/apps/chart_demo)
|
||||
endif()
|
||||
|
||||
# --- Shaders Lab ---
|
||||
if(EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/apps/shaders_lab/CMakeLists.txt)
|
||||
add_subdirectory(apps/shaders_lab)
|
||||
# --- Shaders Lab (lives in apps/) ---
|
||||
if(NOT DEFINED _SHADERS_LAB_DIR)
|
||||
set(_SHADERS_LAB_DIR ${CMAKE_SOURCE_DIR}/../apps/shaders_lab)
|
||||
endif()
|
||||
if(EXISTS ${_SHADERS_LAB_DIR}/CMakeLists.txt)
|
||||
add_subdirectory(${_SHADERS_LAB_DIR} ${CMAKE_BINARY_DIR}/apps/shaders_lab)
|
||||
endif()
|
||||
|
||||
# --- Lua 5.4 vendored (para playground tables / DSL formulas) ---
|
||||
@@ -329,30 +350,33 @@ if(EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/vendor/lua/CMakeLists.txt)
|
||||
add_subdirectory(vendor/lua)
|
||||
endif()
|
||||
|
||||
# --- Primitives Gallery (catalogo visual de primitivos core/viz/gfx) ---
|
||||
if(EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/apps/primitives_gallery/CMakeLists.txt)
|
||||
add_subdirectory(apps/primitives_gallery)
|
||||
# --- Primitives Gallery (lives in apps/) ---
|
||||
if(NOT DEFINED _PG_DIR)
|
||||
set(_PG_DIR ${CMAKE_SOURCE_DIR}/../apps/primitives_gallery)
|
||||
endif()
|
||||
if(EXISTS ${_PG_DIR}/CMakeLists.txt)
|
||||
add_subdirectory(${_PG_DIR} ${CMAKE_BINARY_DIR}/apps/primitives_gallery)
|
||||
endif()
|
||||
|
||||
# --- Tables playground (vive dentro de primitives_gallery/playground/tables/) ---
|
||||
# No es un app del registry; sirve para iterar mejoras sobre table_view_cpp_viz
|
||||
# antes de promover una API v2 y migrar las apps C++ que hoy usan ImGui::BeginTable raw.
|
||||
if(EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/apps/primitives_gallery/playground/tables/CMakeLists.txt)
|
||||
add_subdirectory(apps/primitives_gallery/playground/tables)
|
||||
if(EXISTS ${_PG_DIR}/playground/tables/CMakeLists.txt)
|
||||
add_subdirectory(${_PG_DIR}/playground/tables ${CMAKE_BINARY_DIR}/apps/primitives_gallery/playground/tables)
|
||||
endif()
|
||||
|
||||
# --- text_editor + file_watcher smoke test (issue 0025) ---
|
||||
# Build gate para validar que text_editor.cpp + file_watcher.cpp + vendor enlazan.
|
||||
if(EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/apps/text_editor_smoke/CMakeLists.txt)
|
||||
add_subdirectory(apps/text_editor_smoke)
|
||||
# --- text_editor + file_watcher smoke test (lives in apps/) ---
|
||||
if(NOT DEFINED _TES_DIR)
|
||||
set(_TES_DIR ${CMAKE_SOURCE_DIR}/../apps/text_editor_smoke)
|
||||
endif()
|
||||
if(EXISTS ${_TES_DIR}/CMakeLists.txt)
|
||||
add_subdirectory(${_TES_DIR} ${CMAKE_BINARY_DIR}/apps/text_editor_smoke)
|
||||
endif()
|
||||
|
||||
# --- AltSnap viewport-jitter regression test ---
|
||||
# Headless harness que conduce glfwSetWindowPos cada frame y verifica que
|
||||
# ImGui viewport->Pos sigue al OS dentro de 1px. Sin la patch del framework
|
||||
# (callback GLFW + per-frame sync) este test falla exit=1.
|
||||
if(EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/apps/altsnap_jitter_test/CMakeLists.txt)
|
||||
add_subdirectory(apps/altsnap_jitter_test)
|
||||
# --- AltSnap viewport-jitter regression test (lives in apps/) ---
|
||||
if(NOT DEFINED _AJT_DIR)
|
||||
set(_AJT_DIR ${CMAKE_SOURCE_DIR}/../apps/altsnap_jitter_test)
|
||||
endif()
|
||||
if(EXISTS ${_AJT_DIR}/CMakeLists.txt)
|
||||
add_subdirectory(${_AJT_DIR} ${CMAKE_BINARY_DIR}/apps/altsnap_jitter_test)
|
||||
endif()
|
||||
|
||||
# --- gamedev stack (SDL3 + sokol_gfx + miniaudio, issue 0072) ---
|
||||
@@ -368,11 +392,17 @@ if(EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/vendor/sdl3/CMakeLists.txt
|
||||
set(SDL_INSTALL OFF CACHE BOOL "" FORCE)
|
||||
set(SDL_X11_XSCRNSAVER OFF CACHE BOOL "" FORCE)
|
||||
add_subdirectory(vendor/sdl3 EXCLUDE_FROM_ALL)
|
||||
if(EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/apps/engine_smoke/CMakeLists.txt)
|
||||
add_subdirectory(apps/engine_smoke)
|
||||
if(NOT DEFINED _ES_DIR)
|
||||
set(_ES_DIR ${CMAKE_SOURCE_DIR}/../apps/engine_smoke)
|
||||
endif()
|
||||
if(EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/apps/runtime_test/CMakeLists.txt)
|
||||
add_subdirectory(apps/runtime_test)
|
||||
if(EXISTS ${_ES_DIR}/CMakeLists.txt)
|
||||
add_subdirectory(${_ES_DIR} ${CMAKE_BINARY_DIR}/apps/engine_smoke)
|
||||
endif()
|
||||
if(NOT DEFINED _RT_DIR)
|
||||
set(_RT_DIR ${CMAKE_SOURCE_DIR}/../apps/runtime_test)
|
||||
endif()
|
||||
if(EXISTS ${_RT_DIR}/CMakeLists.txt)
|
||||
add_subdirectory(${_RT_DIR} ${CMAKE_BINARY_DIR}/apps/runtime_test)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
@@ -421,7 +451,16 @@ if(BUILD_TESTING)
|
||||
endif()
|
||||
|
||||
|
||||
# --- dag_engine_ui ---
|
||||
if(EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/apps/dag_engine_ui/CMakeLists.txt)
|
||||
add_subdirectory(apps/dag_engine_ui)
|
||||
# --- dag_engine_ui (lives in apps/, issue 0096) ---
|
||||
if(NOT DEFINED _DAG_UI_DIR)
|
||||
set(_DAG_UI_DIR ${CMAKE_SOURCE_DIR}/../apps/dag_engine_ui)
|
||||
endif()
|
||||
if(EXISTS ${_DAG_UI_DIR}/CMakeLists.txt)
|
||||
add_subdirectory(${_DAG_UI_DIR} ${CMAKE_BINARY_DIR}/apps/dag_engine_ui)
|
||||
endif()
|
||||
|
||||
# --- data_factory (lives in apps/, issue 0096) ---
|
||||
set(_DATA_FACTORY_DIR ${CMAKE_SOURCE_DIR}/../apps/data_factory)
|
||||
if(EXISTS ${_DATA_FACTORY_DIR}/CMakeLists.txt)
|
||||
add_subdirectory(${_DATA_FACTORY_DIR} ${CMAKE_BINARY_DIR}/apps/data_factory)
|
||||
endif()
|
||||
|
||||
Reference in New Issue
Block a user