From 7676424fa68da0ee0f470d7239762e3818b2a6a8 Mon Sep 17 00:00:00 2001 From: agent Date: Wed, 28 Oct 2026 00:58:02 +0300 Subject: [PATCH 1/2] Externals: add md4c, picojson and Vulkan NanoVG as submodules md4c and picojson are pinned, unmodified mirrors of mity/md4c (f9e5eb2) and kazuho/picojson (111c9be). nanovg_vulkan points at the modules-vulkan branch of a fork of SubiyaCryolite/nanovg_vulkan, which carries the backend fixes made for Modules as reviewable commits on top of upstream. --- .gitmodules | 10 ++++++++++ Externals/md4c | 1 + Externals/nanovg_vulkan | 1 + Externals/picojson | 1 + 4 files changed, 13 insertions(+) create mode 160000 Externals/md4c create mode 160000 Externals/nanovg_vulkan create mode 160000 Externals/picojson diff --git a/.gitmodules b/.gitmodules index 4d67868f..13f2c8fe 100644 --- a/.gitmodules +++ b/.gitmodules @@ -28,3 +28,13 @@ [submodule "Externals/benchmark"] path = Externals/benchmark url = https://github.com/google/benchmark.git +[submodule "Externals/md4c"] + path = Externals/md4c + url = https://git.ilusha-basic.online/ilusha/md4c.git +[submodule "Externals/picojson"] + path = Externals/picojson + url = https://git.ilusha-basic.online/ilusha/picojson.git +[submodule "Externals/nanovg_vulkan"] + path = Externals/nanovg_vulkan + url = https://git.ilusha-basic.online/ilusha/nanovg_vulkan.git + branch = modules-vulkan diff --git a/Externals/md4c b/Externals/md4c new file mode 160000 index 00000000..f9e5eb23 --- /dev/null +++ b/Externals/md4c @@ -0,0 +1 @@ +Subproject commit f9e5eb232b95b737373ae706648cb75bd259ed1a diff --git a/Externals/nanovg_vulkan b/Externals/nanovg_vulkan new file mode 160000 index 00000000..a6a3fc7a --- /dev/null +++ b/Externals/nanovg_vulkan @@ -0,0 +1 @@ +Subproject commit a6a3fc7a4deb33547681156cacfca8c1c93deaf5 diff --git a/Externals/picojson b/Externals/picojson new file mode 160000 index 00000000..111c9be5 --- /dev/null +++ b/Externals/picojson @@ -0,0 +1 @@ +Subproject commit 111c9be5188f7350c2eac9ddaedd8cca3d7bf394 -- 2.49.1 From d8acea9cc6cd9b509b9575e6e0d65e98349b2c55 Mon Sep 17 00:00:00 2001 From: agent Date: Wed, 28 Oct 2026 00:58:02 +0300 Subject: [PATCH 2/2] Externals: build the submodule libraries and the ImGui Vulkan backend Adds the Picojson interface target, C99 Md4c from md4c/src and NanovgVk from nanovg_vulkan/src (nanovg.c plus the nanovg_vk.c backend). ImGui compiles imgui_impl_vulkan alongside the existing GLFW and OpenGL backends, so current OpenGL users keep linking. Desktop and test libraries stay enabled; the port's MODULES_BUILD_DESKTOP and MODULES_BUILD_TESTS gates are not used. --- Externals/CMakeLists.txt | 77 ++++++++++++++++++++++++---------------- 1 file changed, 47 insertions(+), 30 deletions(-) diff --git a/Externals/CMakeLists.txt b/Externals/CMakeLists.txt index ec859936..bf3e66e0 100644 --- a/Externals/CMakeLists.txt +++ b/Externals/CMakeLists.txt @@ -1,58 +1,75 @@ -# find_package(ALSA REQUIRED) +find_package(Vulkan REQUIRED) add_subdirectory(glfw) project(Imgui) set(${PROJECT_NAME}_SOURCES - imgui/imgui.cpp - imgui/imgui_draw.cpp - imgui/imgui_tables.cpp - imgui/imgui_widgets.cpp - imgui/imgui_demo.cpp + imgui/imgui.cpp + imgui/imgui_draw.cpp + imgui/imgui_tables.cpp + imgui/imgui_widgets.cpp + imgui/imgui_demo.cpp - imgui/backends/imgui_impl_glfw.cpp - imgui/backends/imgui_impl_opengl3.cpp + imgui/backends/imgui_impl_glfw.cpp + imgui/backends/imgui_impl_opengl3.cpp + imgui/backends/imgui_impl_vulkan.cpp - implot/implot.cpp - implot/implot_items.cpp + implot/implot.cpp + implot/implot_items.cpp ) add_library(${PROJECT_NAME} STATIC ${${PROJECT_NAME}_SOURCES}) -include_directories(${PROJECT_NAME} ./glfw/include) target_include_directories(${PROJECT_NAME} PUBLIC ./imgui/ ./imgui/backends/ ./implot/) +target_link_libraries(${PROJECT_NAME} PUBLIC Vulkan::Vulkan) + +if (ANDROID) + add_library(native_app_glue STATIC ${ANDROID_NDK}/sources/android/native_app_glue/android_native_app_glue.c) + target_include_directories(native_app_glue PUBLIC ${ANDROID_NDK}/sources/android/native_app_glue) + target_link_libraries(native_app_glue PUBLIC android log) +endif () + +add_library(Picojson INTERFACE) +target_include_directories(Picojson INTERFACE ./picojson/) + +project(Md4c) +add_library(${PROJECT_NAME} STATIC md4c/src/md4c.c) +target_include_directories(${PROJECT_NAME} PUBLIC ./md4c/src/) +set_target_properties(${PROJECT_NAME} PROPERTIES C_STANDARD 99 C_STANDARD_REQUIRED ON) project(Nanovg) -set(${PROJECT_NAME}_SOURCES - nanovg/src/nanovg.c -) - -add_library(${PROJECT_NAME} STATIC ${${PROJECT_NAME}_SOURCES}) +add_library(${PROJECT_NAME} STATIC nanovg/src/nanovg.c) target_include_directories(${PROJECT_NAME} PUBLIC ./nanovg/src/ ./nanovg/obsolete/) +project(NanovgVk) +add_library(${PROJECT_NAME} STATIC + nanovg_vulkan/src/nanovg.c + nanovg_vulkan/src/nanovg_vk.c +) +target_include_directories(${PROJECT_NAME} PUBLIC ./nanovg_vulkan/src/) +target_link_libraries(${PROJECT_NAME} PUBLIC Vulkan::Vulkan) + project(Lua) - -# Add the Lua source files -#file(GLOB ${PROJECT_NAME}_SOURCES "./lua/luaone.c") -# list(FILTER ${PROJECT_NAME}_SOURCES EXCLUDE REGEX "./lua/lua.c$") - -# Create the Lua library add_library(${PROJECT_NAME} STATIC "lua/onelua.c") - target_compile_definitions(${PROJECT_NAME} PUBLIC MAKE_LIB) - -# Include directories for Lua headers target_include_directories(${PROJECT_NAME} PUBLIC "./lua") - -# Set compilation options, e.g., for compilation with C99 set_target_properties(${PROJECT_NAME} PROPERTIES - C_STANDARD 99 - C_STANDARD_REQUIRED ON + C_STANDARD 99 + C_STANDARD_REQUIRED ON ) project(ImageIO) add_library(${PROJECT_NAME} INTERFACE) target_include_directories(${PROJECT_NAME} INTERFACE ./imageIO/) -add_subdirectory(lalr) +set(UNITTEST_DIR ${CMAKE_CURRENT_SOURCE_DIR}/unittest-cpp) +file(GLOB UNITTEST_SOURCES ${UNITTEST_DIR}/UnitTest++/*.cpp) +if (WIN32) + file(GLOB UNITTEST_PLATFORM_SOURCES ${UNITTEST_DIR}/UnitTest++/Win32/*.cpp) +else () + file(GLOB UNITTEST_PLATFORM_SOURCES ${UNITTEST_DIR}/UnitTest++/Posix/*.cpp) +endif () + +add_library(UnitTest++ STATIC ${UNITTEST_SOURCES} ${UNITTEST_PLATFORM_SOURCES}) +target_include_directories(UnitTest++ PUBLIC ${UNITTEST_DIR}) add_subdirectory(googletest) -- 2.49.1