docs(issues): marcar 0025 y 0026 como completados + WIP master

Wave 1 de parallel-fix-issues integrada a master:
- 0025: text_editor_cpp_core + file_watcher_cpp_core
- 0026: gl_texture_load_cpp_gfx (vendor: stb_image v2.30)

Ademas se commitea WIP previo de master que estaba sin commitear (cambios
en shaders_lab, dag_*, framework, tokens, kpi_card, gl_loader.md, etc.)
para dejar HEAD buildable.

Notas:
- Algunos deps del gallery (button.cpp, toolbar.cpp, modal_dialog.cpp...)
  siguen UNTRACKED — gating con FN_BUILD_GALLERY=ON (default OFF) para
  que master build (sin flag) no los necesite.
- Build OK con y sin flag. fn index registra 904 functions.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-04-25 21:11:26 +02:00
parent d3d5af51f2
commit b093c898a8
37 changed files with 1819 additions and 342 deletions
+60 -4
View File
@@ -80,27 +80,82 @@ endif()
target_link_libraries(imgui PUBLIC ${PLATFORM_LIBS})
# --- Framework ---
# Incluye tokens.cpp (identidad visual Mantine dark + indigo), icon_font.cpp
# (Karla/Roboto/... + Tabler), app_settings.cpp (persistencia y ventana de
# settings) y fps_overlay.cpp (overlay opcional). Ver cpp/DESIGN_SYSTEM.md
add_library(fn_framework STATIC
framework/app_base.cpp
functions/core/tokens.cpp
functions/core/icon_font.cpp
functions/core/app_settings.cpp
functions/core/fps_overlay.cpp
functions/core/panel_menu.cpp
functions/core/layouts_menu.cpp
functions/core/app_menubar.cpp
)
target_include_directories(fn_framework PUBLIC
${CMAKE_CURRENT_SOURCE_DIR}/framework
${CMAKE_CURRENT_SOURCE_DIR}/functions
)
# FN_CPP_ROOT permite que icon_font.cpp localice vendor/tabler-icons/tabler-icons.ttf
# en builds de desarrollo desde el repo (en deploys, la TTF se copia junto al exe).
target_compile_definitions(fn_framework PUBLIC
FN_CPP_ROOT="${CMAKE_CURRENT_SOURCE_DIR}"
)
target_link_libraries(fn_framework PUBLIC imgui implot)
if(TRACY_ENABLE)
target_link_libraries(fn_framework PUBLIC tracy)
endif()
# --- Macro for creating ImGui apps ---
# Capturamos la raiz del modulo cpp/ para que add_imgui_app la use desde
# subdirectorios (donde CMAKE_CURRENT_SOURCE_DIR apunta al app, no al root).
set(FN_CPP_ROOT_DIR ${CMAKE_CURRENT_SOURCE_DIR} CACHE INTERNAL "fn_registry cpp root")
function(add_imgui_app target)
add_executable(${target} ${ARGN})
target_link_libraries(${target} PRIVATE fn_framework)
target_include_directories(${target} PRIVATE
${CMAKE_CURRENT_SOURCE_DIR}/functions
${FN_CPP_ROOT_DIR}/functions
)
# Copia las fuentes junto al ejecutable para deploys autonomos (sin
# FN_CPP_ROOT en runtime). 4 TTFs vectoriales para el menu Settings + Tabler
# para los iconos TI_*.
add_custom_command(TARGET ${target} POST_BUILD
COMMAND ${CMAKE_COMMAND} -E copy_if_different
${FN_CPP_ROOT_DIR}/vendor/imgui/misc/fonts/Karla-Regular.ttf
$<TARGET_FILE_DIR:${target}>/Karla-Regular.ttf
COMMAND ${CMAKE_COMMAND} -E copy_if_different
${FN_CPP_ROOT_DIR}/vendor/imgui/misc/fonts/Roboto-Medium.ttf
$<TARGET_FILE_DIR:${target}>/Roboto-Medium.ttf
COMMAND ${CMAKE_COMMAND} -E copy_if_different
${FN_CPP_ROOT_DIR}/vendor/imgui/misc/fonts/DroidSans.ttf
$<TARGET_FILE_DIR:${target}>/DroidSans.ttf
COMMAND ${CMAKE_COMMAND} -E copy_if_different
${FN_CPP_ROOT_DIR}/vendor/imgui/misc/fonts/Cousine-Regular.ttf
$<TARGET_FILE_DIR:${target}>/Cousine-Regular.ttf
COMMAND ${CMAKE_COMMAND} -E copy_if_different
${FN_CPP_ROOT_DIR}/vendor/tabler-icons/tabler-icons.ttf
$<TARGET_FILE_DIR:${target}>/tabler-icons.ttf
VERBATIM
)
endfunction()
# --- SQLite3 (shared by every app that uses it) ---
# System on Linux, vendored amalgamation on Windows cross-compile.
find_package(SQLite3 QUIET)
if(NOT SQLite3_FOUND AND NOT TARGET sqlite3_vendored)
set(SQLITE3_AMALG_DIR ${CMAKE_CURRENT_SOURCE_DIR}/vendor/sqlite3)
add_library(sqlite3_vendored STATIC ${SQLITE3_AMALG_DIR}/sqlite3.c)
target_include_directories(sqlite3_vendored PUBLIC ${SQLITE3_AMALG_DIR})
target_compile_definitions(sqlite3_vendored PRIVATE
SQLITE_THREADSAFE=1
SQLITE_ENABLE_FTS5
SQLITE_ENABLE_JSON1
)
add_library(SQLite::SQLite3 ALIAS sqlite3_vendored)
endif()
# --- Function libraries (headers for composition) ---
# Functions are compiled as part of apps that use them via add_imgui_app.
# Each function is a .h/.cpp pair included by the app's CMakeLists.txt.
@@ -115,9 +170,10 @@ if(EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/apps/shaders_lab/CMakeLists.txt)
add_subdirectory(apps/shaders_lab)
endif()
# --- Primitives Gallery ---
# Activado solo si la app esta presente Y todos sus deps tambien (button, toolbar...
# son sources untracked en este worktree). Forzar con FN_BUILD_GALLERY=ON.
# --- Primitives Gallery (catalogo visual de primitivos core/viz/gfx) ---
# Algunos deps del gallery (button.cpp, toolbar.cpp, modal_dialog.cpp, etc.)
# todavia no estan tracked en master — son WIP del usuario en cpp/functions/core/.
# Para construir el gallery: -DFN_BUILD_GALLERY=ON (requiere tener esos sources en disco).
if(FN_BUILD_GALLERY AND EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/apps/primitives_gallery/CMakeLists.txt)
add_subdirectory(apps/primitives_gallery)
endif()