From 87270b686cbaf4068e256e980f30dd6f549a2aa3 Mon Sep 17 00:00:00 2001 From: Max Wash Date: Sun, 3 May 2026 17:05:48 +0100 Subject: [PATCH] build: re-organise assembly build files --- CMakeLists.txt | 68 +++---------------- assemblies/fx.cmdline/CMakeLists.txt | 7 ++ .../{fx.cmdline.c => fx.cmdline/assembly.c} | 0 assemblies/fx.collections/CMakeLists.txt | 4 ++ .../assembly.c} | 0 assemblies/fx.compression/CMakeLists.txt | 4 ++ .../assembly.c} | 0 assemblies/fx.io/CMakeLists.txt | 4 ++ assemblies/{fx.io.c => fx.io/assembly.c} | 0 assemblies/fx.runtime/CMakeLists.txt | 3 + .../{fx.runtime.c => fx.runtime/assembly.c} | 0 assemblies/fx.serial/CMakeLists.txt | 4 ++ .../{fx.serial.c => fx.serial/assembly.c} | 0 assemblies/fx.term/CMakeLists.txt | 4 ++ assemblies/{fx.term.c => fx.term/assembly.c} | 0 cmake/Templates.cmake | 5 +- 16 files changed, 42 insertions(+), 61 deletions(-) create mode 100644 assemblies/fx.cmdline/CMakeLists.txt rename assemblies/{fx.cmdline.c => fx.cmdline/assembly.c} (100%) create mode 100644 assemblies/fx.collections/CMakeLists.txt rename assemblies/{fx.collections.c => fx.collections/assembly.c} (100%) create mode 100644 assemblies/fx.compression/CMakeLists.txt rename assemblies/{fx.compression.c => fx.compression/assembly.c} (100%) create mode 100644 assemblies/fx.io/CMakeLists.txt rename assemblies/{fx.io.c => fx.io/assembly.c} (100%) create mode 100644 assemblies/fx.runtime/CMakeLists.txt rename assemblies/{fx.runtime.c => fx.runtime/assembly.c} (100%) create mode 100644 assemblies/fx.serial/CMakeLists.txt rename assemblies/{fx.serial.c => fx.serial/assembly.c} (100%) create mode 100644 assemblies/fx.term/CMakeLists.txt rename assemblies/{fx.term.c => fx.term/assembly.c} (100%) diff --git a/CMakeLists.txt b/CMakeLists.txt index f05ce3a..9e956a0 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -9,14 +9,13 @@ set(CMAKE_C_EXTENSIONS OFF) set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${CMAKE_SOURCE_DIR}/cmake) set_property(GLOBAL PROPERTY USE_FOLDERS ON) -set(fx_all_assemblies - fx.runtime - fx.collections - fx.compression - fx.io - fx.serial - fx.term - fx.cmdline) +file(GLOB _all_assemblies assemblies/* + LIST_DIRECTORIES TRUE) + +foreach (assembly_path ${_all_assemblies}) + get_filename_component(assembly_name ${assembly_path} NAME) + set(fx_all_assemblies ${fx_all_assemblies} ${assembly_name}) +endforeach (assembly_path) if (NOT DEFINED fx_assemblies) set(fx_assemblies ${fx_all_assemblies}) @@ -43,55 +42,8 @@ set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/bin) include(${CMAKE_CURRENT_SOURCE_DIR}/cmake/Templates.cmake) -if ("fx.runtime" IN_LIST fx_assemblies) - add_fx_assembly( - NAME fx.runtime - NAMESPACES fx fx.reflection) -endif () - -if ("fx.collections" IN_LIST fx_assemblies) - add_fx_assembly( - NAME fx.collections - NAMESPACES fx.collections - DEPENDENCIES fx.runtime) -endif () - -if ("fx.io" IN_LIST fx_assemblies) - add_fx_assembly( - NAME fx.io - NAMESPACES fx.io - DEPENDENCIES fx.runtime) -endif () - -if ("fx.compression" IN_LIST fx_assemblies) - add_fx_assembly( - NAME fx.compression - NAMESPACES fx.compression - DEPENDENCIES fx.runtime) -endif () - -if ("fx.serial" IN_LIST fx_assemblies) - add_fx_assembly( - NAME fx.serial - NAMESPACES fx.serial - DEPENDENCIES fx.runtime fx.collections) -endif () - -if ("fx.term" IN_LIST fx_assemblies) - add_fx_assembly( - NAME fx.term - NAMESPACES fx.term - DEPENDENCIES fx.runtime fx.collections) -endif () - -if ("fx.cmdline" IN_LIST fx_assemblies) - add_fx_assembly( - NAME fx.cmdline - NAMESPACES fx.cmdline - DEPENDENCIES - fx.runtime - fx.collections - fx.term) -endif () +foreach (assembly ${fx_assemblies}) + add_subdirectory(assemblies/${assembly}) +endforeach (assembly) add_executable(dynamic-test test/dynamic-test.c) diff --git a/assemblies/fx.cmdline/CMakeLists.txt b/assemblies/fx.cmdline/CMakeLists.txt new file mode 100644 index 0000000..acd5691 --- /dev/null +++ b/assemblies/fx.cmdline/CMakeLists.txt @@ -0,0 +1,7 @@ +add_fx_assembly( + NAME fx.cmdline + NAMESPACES fx.cmdline + DEPENDENCIES + fx.runtime + fx.collections + fx.term) diff --git a/assemblies/fx.cmdline.c b/assemblies/fx.cmdline/assembly.c similarity index 100% rename from assemblies/fx.cmdline.c rename to assemblies/fx.cmdline/assembly.c diff --git a/assemblies/fx.collections/CMakeLists.txt b/assemblies/fx.collections/CMakeLists.txt new file mode 100644 index 0000000..7ffca44 --- /dev/null +++ b/assemblies/fx.collections/CMakeLists.txt @@ -0,0 +1,4 @@ +add_fx_assembly( + NAME fx.collections + NAMESPACES fx.collections + DEPENDENCIES fx.runtime) diff --git a/assemblies/fx.collections.c b/assemblies/fx.collections/assembly.c similarity index 100% rename from assemblies/fx.collections.c rename to assemblies/fx.collections/assembly.c diff --git a/assemblies/fx.compression/CMakeLists.txt b/assemblies/fx.compression/CMakeLists.txt new file mode 100644 index 0000000..26a9a5a --- /dev/null +++ b/assemblies/fx.compression/CMakeLists.txt @@ -0,0 +1,4 @@ +add_fx_assembly( + NAME fx.compression + NAMESPACES fx.compression + DEPENDENCIES fx.runtime) diff --git a/assemblies/fx.compression.c b/assemblies/fx.compression/assembly.c similarity index 100% rename from assemblies/fx.compression.c rename to assemblies/fx.compression/assembly.c diff --git a/assemblies/fx.io/CMakeLists.txt b/assemblies/fx.io/CMakeLists.txt new file mode 100644 index 0000000..357fd67 --- /dev/null +++ b/assemblies/fx.io/CMakeLists.txt @@ -0,0 +1,4 @@ +add_fx_assembly( + NAME fx.io + NAMESPACES fx.io + DEPENDENCIES fx.runtime) diff --git a/assemblies/fx.io.c b/assemblies/fx.io/assembly.c similarity index 100% rename from assemblies/fx.io.c rename to assemblies/fx.io/assembly.c diff --git a/assemblies/fx.runtime/CMakeLists.txt b/assemblies/fx.runtime/CMakeLists.txt new file mode 100644 index 0000000..e3e1a43 --- /dev/null +++ b/assemblies/fx.runtime/CMakeLists.txt @@ -0,0 +1,3 @@ +add_fx_assembly( + NAME fx.runtime + NAMESPACES fx fx.reflection) diff --git a/assemblies/fx.runtime.c b/assemblies/fx.runtime/assembly.c similarity index 100% rename from assemblies/fx.runtime.c rename to assemblies/fx.runtime/assembly.c diff --git a/assemblies/fx.serial/CMakeLists.txt b/assemblies/fx.serial/CMakeLists.txt new file mode 100644 index 0000000..9b47dcf --- /dev/null +++ b/assemblies/fx.serial/CMakeLists.txt @@ -0,0 +1,4 @@ +add_fx_assembly( + NAME fx.serial + NAMESPACES fx.serial + DEPENDENCIES fx.runtime fx.collections) diff --git a/assemblies/fx.serial.c b/assemblies/fx.serial/assembly.c similarity index 100% rename from assemblies/fx.serial.c rename to assemblies/fx.serial/assembly.c diff --git a/assemblies/fx.term/CMakeLists.txt b/assemblies/fx.term/CMakeLists.txt new file mode 100644 index 0000000..de2ee35 --- /dev/null +++ b/assemblies/fx.term/CMakeLists.txt @@ -0,0 +1,4 @@ +add_fx_assembly( + NAME fx.term + NAMESPACES fx.term + DEPENDENCIES fx.runtime fx.collections) diff --git a/assemblies/fx.term.c b/assemblies/fx.term/assembly.c similarity index 100% rename from assemblies/fx.term.c rename to assemblies/fx.term/assembly.c diff --git a/cmake/Templates.cmake b/cmake/Templates.cmake index fb08022..20e7182 100644 --- a/cmake/Templates.cmake +++ b/cmake/Templates.cmake @@ -17,11 +17,10 @@ function(add_fx_assembly) string(TOUPPER ${assembly_token} assembly_token) set(assembly_include_paths "") - set(assembly_sources - ${CMAKE_CURRENT_SOURCE_DIR}/assemblies/${assembly_name}.c) + set(assembly_sources ${CMAKE_CURRENT_SOURCE_DIR}/assembly.c) foreach (dir ${arg_NAMESPACES}) - add_subdirectory(${dir}) + add_subdirectory(../../${dir} ../../namespaces/${dir}) set(assembly_sources ${assembly_sources} ${namespace_sources}) set(assembly_include_paths ${assembly_include_paths} ${namespace_include_paths}) endforeach (dir)