From 00d4438933ff1af1849dcef18dc17e1de51ab0fc Mon Sep 17 00:00:00 2001 From: Tomas Rigaux Date: Thu, 26 Jun 2025 11:48:17 -0400 Subject: [PATCH 01/20] Add new module format and update some header orderings. --- CMakeLists.txt | 15 ++- include/flow/core/Concepts.hpp | 4 +- include/flow/core/Core.hpp | 12 +- include/flow/core/Module.hpp | 33 +++--- src/Module.cpp | 159 ++++++++++++++++++-------- tests/CMakeLists.txt | 15 +-- tests/factory_test.cpp | 4 +- tests/graph_test.cpp | 4 +- tests/indexable_name_test.cpp | 4 +- tests/module_test.cpp | 32 +++--- tests/node_test.cpp | 3 +- tests/test_module.flowmod | Bin 0 -> 225686 bytes tests/test_module/CMakeLists.txt | 30 ----- tests/test_module/src/register.cpp | 39 ------- tests/test_module/test_module.flowmod | 6 - 15 files changed, 185 insertions(+), 175 deletions(-) create mode 100644 tests/test_module.flowmod delete mode 100644 tests/test_module/CMakeLists.txt delete mode 100644 tests/test_module/src/register.cpp delete mode 100644 tests/test_module/test_module.flowmod diff --git a/CMakeLists.txt b/CMakeLists.txt index b6d22dd..f0835aa 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -27,6 +27,13 @@ include(cmake/CPM.cmake) CPMAddPackage("gh:nlohmann/json@3.11.3") CPMAddPackage("gh:bshoshany/thread-pool@5.0.0") +set(BUILD_TOOLS OFF CACHE BOOL "") +set(BUILD_REGRESS OFF CACHE BOOL "") +set(BUILD_OSSFUZZ OFF CACHE BOOL "") +set(BUILD_EXAMPLES OFF CACHE BOOL "") +set(BUILD_DOC OFF CACHE BOOL "") +CPMAddPackage("gh:nih-at/libzip@1.11.4") + # ----------------------------------------------------------------------------- # Library # ----------------------------------------------------------------------------- @@ -68,22 +75,24 @@ if(APPLE) target_link_libraries(${PROJECT_NAME} PUBLIC "-framework CoreFoundation" pthread - nlohmann_json::nlohmann_json ) elseif(MSVC) add_compile_definitions(_CRT_SECURE_NO_WARNINGS) target_compile_options(${PROJECT_NAME} PRIVATE /W4 /MP) - target_link_libraries(${PROJECT_NAME} PUBLIC nlohmann_json::nlohmann_json) else() target_compile_options(${PROJECT_NAME} PRIVATE -Wall -Wextra -Wpedantic -Werror) target_link_libraries(${PROJECT_NAME} PUBLIC dl pthread uuid - nlohmann_json::nlohmann_json ) endif() +target_link_libraries(${PROJECT_NAME} PUBLIC + nlohmann_json::nlohmann_json + zip +) + # ----------------------------------------------------------------------------- # Install # ----------------------------------------------------------------------------- diff --git a/include/flow/core/Concepts.hpp b/include/flow/core/Concepts.hpp index 0a3de5b..9572dd1 100644 --- a/include/flow/core/Concepts.hpp +++ b/include/flow/core/Concepts.hpp @@ -20,7 +20,7 @@ FLOW_NAMESPACE_END /** * @brief Type traits for compile-time type information and validation */ -FLOW_SUBNAMESPACE_START(type_traits) +FLOW_SUBNAMESPACE_BEGIN(type_traits) /** * @brief Check if type is specialization of template @@ -44,7 +44,7 @@ FLOW_SUBNAMESPACE_END /** * @brief Concepts for constraining template parameters */ -FLOW_SUBNAMESPACE_START(concepts) +FLOW_SUBNAMESPACE_BEGIN(concepts) /** * @brief Requires type to be arithmetic (integral or floating point) diff --git a/include/flow/core/Core.hpp b/include/flow/core/Core.hpp index ba4a54a..5294133 100644 --- a/include/flow/core/Core.hpp +++ b/include/flow/core/Core.hpp @@ -13,6 +13,16 @@ #error "Platform unsupported" #endif +#if defined(__x86_64__) || defined(_M_X64) || defined(__amd64__) +#define FLOW_X86_64 +#elif defined(__i386__) || defined(_M_IX86) +#define FLOW_X86 +#elif defined(__arm__) || defined(__aarch64__) || defined(_M_ARM64) +#define FLOW_ARM +#else +#error "Architecture unsupported" +#endif + #ifdef FLOW_WINDOWS #define FLOW_CORE_CALL __stdcall #else @@ -21,7 +31,7 @@ // clang-format off #define FLOW_NAMESPACE_BEGIN namespace flow { -#define FLOW_SUBNAMESPACE_START(nested) namespace flow { namespace nested { +#define FLOW_SUBNAMESPACE_BEGIN(nested) namespace flow { namespace nested { #define FLOW_NAMESPACE_END } #define FLOW_SUBNAMESPACE_END } } //clang-format on diff --git a/include/flow/core/Module.hpp b/include/flow/core/Module.hpp index 8a27e85..bcf37c9 100644 --- a/include/flow/core/Module.hpp +++ b/include/flow/core/Module.hpp @@ -5,7 +5,7 @@ #include "Core.hpp" -#include +#include #include #include @@ -17,9 +17,19 @@ using json = nlohmann::json; class NodeFactory; +struct ModuleMetaData +{ + std::string Name; + std::string Version; + std::string Author; + std::string Description; +}; + +NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE(ModuleMetaData, Name, Version, Author, Description); + class Module { - struct HandleDelete + struct HandleUnloader { void operator()(void*); }; @@ -49,32 +59,21 @@ class Module bool IsLoaded() const noexcept { return _handle != nullptr; } - const std::string& GetName() const noexcept { return _name; } - - const std::string& GetVersion() const noexcept { return _version; } - - const std::string& GetAuthor() const noexcept { return _author; } - - const std::string& GetDescription() const noexcept { return _description; } - - const std::vector& GetDependencies() const noexcept { return _dependencies; } + const ModuleMetaData& GetMetaData() const noexcept { return _metadata; } private: - void Validate(const json& module_json); + void ValidateMetaData(const json& module_json); public: static const std::string FileExtension; static const std::string BinaryExtension; private: - std::string _name; - std::string _version; - std::string _author; - std::string _description; + ModuleMetaData _metadata; std::vector _dependencies; std::shared_ptr _factory; - std::unique_ptr _handle; + std::unique_ptr _handle; }; FLOW_NAMESPACE_END diff --git a/src/Module.cpp b/src/Module.cpp index 4af2397..186e6cb 100644 --- a/src/Module.cpp +++ b/src/Module.cpp @@ -3,6 +3,7 @@ #include "flow/core/NodeFactory.hpp" #include +#include #include #include @@ -20,14 +21,50 @@ FLOW_NAMESPACE_BEGIN const std::string Module::FileExtension = "flowmod"; #ifdef FLOW_WINDOWS -const std::string Module::BinaryExtension = ".dll"; +constexpr const char* platform = "windows"; #elif defined(FLOW_APPLE) -const std::string Module::BinaryExtension = ".dylib"; +constexpr const char* platform = "macos"; #else -const std::string Module::BinaryExtension = ".so"; +constexpr const char* platform = "linux"; #endif -void Module::HandleDelete::operator()(void* handle) +#ifdef FLOW_X86_64 +constexpr const char* architecture = "x86_64"; +#elif defined(FLOW_ARM) +constexpr const char* architecture = "arm64"; +#else +#error "Unsupported architecture" +#endif + +#ifdef FLOW_WINDOWS +constexpr const char* library_extension = ".dll"; +#elif defined(FLOW_APPLE) +constexpr const char* library_extension = ".dylib"; +#else +constexpr const char* library_extension = ".so"; +#endif + +/** + * @brief Get the Module Binary Path object. + * + * @param dir The directory of the module files. + * @returns The path to the module binary. + */ +std::filesystem::path GetModuleBinaryPath(const std::filesystem::path& dir) +{ + return dir / platform / architecture / dir.stem().replace_extension(library_extension); +} + +std::filesystem::path GetModuleMetaDataPath(const std::filesystem::path& dir) { return dir / "module.json"; } + +std::filesystem::path GetTempModulePath() +{ + auto temp_path = std::filesystem::temp_directory_path() / "flow_modules"; + std::filesystem::create_directories(temp_path); + return temp_path; +} + +void Module::HandleUnloader::operator()(void* handle) { #ifdef FLOW_WINDOWS if (!FreeLibrary(std::bit_cast(handle))) @@ -57,19 +94,6 @@ Module::Module(const std::filesystem::path& dir, std::shared_ptr fa Load(dir); } -Module::Module(const json& module_j, const std::filesystem::path& dir, std::shared_ptr factory) - : _factory(std::move(factory)) -{ - Validate(module_j); - - _name = module_j["Name"]; - _version = module_j["Version"]; - _author = module_j["Author"]; - _description = module_j["Description"]; - - Load(dir); -} - Module::~Module() { Unload(); } bool Module::Load(const std::filesystem::path& path) @@ -84,45 +108,69 @@ bool Module::Load(const std::filesystem::path& path) throw std::runtime_error(std::format("Path does not exist. (file={})", path.string())); } - if (std::filesystem::is_regular_file(path)) + if (!std::filesystem::is_regular_file(path)) + { + throw std::runtime_error(std::format("Path is not a file. (file={})", path.string())); + } + + zip_t* archive = zip_open(path.string().c_str(), ZIP_RDONLY, nullptr); + if (!archive) { - if (path.extension() != ("." + FileExtension)) + throw std::runtime_error(std::format("Failed to open module archive. (file={})", path.string())); + } + + const zip_int64_t num_entries = zip_get_num_entries(archive, 0); + for (zip_int64_t i = 0; i < num_entries; ++i) + { + zip_stat_t file_info; + zip_stat_init(&file_info); + + if (zip_stat_index(archive, i, 0, &file_info) != 0) { + zip_close(archive); throw std::runtime_error( - std::format("File is not a module. (file={}, extension={})", path.string(), FileExtension)); + std::format("Failed to get file info from module archive. (file={})", path.string())); } - std::ifstream module_fs(path); - json module_j = json::parse(module_fs); - - Validate(module_j); + auto file_path = GetTempModulePath() / file_info.name; + auto file = zip_fopen(archive, file_info.name, 0); + if (!file) + { + zip_close(archive); + throw std::runtime_error( + std::format("Failed to open file in module archive. (file={})", file_path.string())); + } - _name = module_j["Name"]; - _version = module_j["Version"]; - _author = module_j["Author"]; - _description = module_j["Description"]; - } + std::vector buffer(file_info.size); + zip_fread(file, buffer.data(), file_info.size); + zip_fclose(file); - const std::string module_file_name = _name + BinaryExtension; - std::filesystem::path module_binary_path; - for (const auto& entry : std::filesystem::recursive_directory_iterator(path.parent_path())) - { - if (!std::filesystem::is_regular_file(entry) || - (entry.path().filename() != module_file_name && entry.path().filename() != ("lib" + module_file_name))) + std::filesystem::create_directories(file_path.parent_path()); + if (std::filesystem::is_directory(file_path)) { continue; } - module_binary_path = entry; - break; - } + std::ofstream out_file(file_path, std::ios::binary); + if (!out_file) + { + zip_close(archive); + throw std::runtime_error( + std::format("Failed to create file from module archive. (file={})", file_path.string())); + } - if (!std::filesystem::exists(module_binary_path)) - { - throw std::runtime_error( - std::format("Module binary does not exist. (binary_path={})", module_binary_path.string())); + out_file.write(buffer.data(), buffer.size()); + out_file.close(); } + auto module_metadata_path = GetModuleMetaDataPath(GetTempModulePath() / path.stem()); + std::ifstream metadata_fs(module_metadata_path); + json module_j = json::parse(metadata_fs); + ValidateMetaData(module_j); + _metadata = module_j; + + auto module_binary_path = GetModuleBinaryPath(GetTempModulePath() / path.stem()); + #ifdef UNICODE auto handle = LoadModuleLibrary(module_binary_path.wstring()); #else @@ -146,7 +194,7 @@ bool Module::Load(const std::filesystem::path& path) return true; } - HandleDelete{}(handle); + HandleUnloader{}(handle); throw std::runtime_error(std::format("Failed to load symbols for RegisterModule. (file={})", path.string())); } @@ -172,12 +220,16 @@ bool Module::Unload() return true; } -void Module::Validate(const json& mod_j) +void Module::ValidateMetaData(const json& mod_j) { - if (!mod_j.contains("Name") || !mod_j.contains("Author") || !mod_j.contains("Version") || - !mod_j.contains("Description")) + if (!mod_j.contains("Name") || !mod_j["Name"].is_string()) + { + throw std::invalid_argument("Module metadata is missing 'Name' field or it is not a string."); + } + + if (!mod_j.contains("Version") || !mod_j["Version"].is_string()) { - throw std::invalid_argument("JSON is not a valid flow::Module"); + throw std::invalid_argument("Module metadata is missing 'Version' field or it is not a string."); } std::regex semver_regex(R"(^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)$)"); @@ -185,7 +237,18 @@ void Module::Validate(const json& mod_j) if (!std::regex_match(version, semver_regex)) { - throw std::invalid_argument(std::format("Version is not in numeric only format (version={})", version)); + throw std::invalid_argument( + std::format("Module metadata 'Version' field is not a valid semantic version. (version={})", version)); + } + + if (!mod_j.contains("Author") || !mod_j["Author"].is_string()) + { + throw std::invalid_argument("Module metadata is missing 'Author' field or it is not a string."); + } + + if (!mod_j.contains("Description") || !mod_j["Description"].is_string()) + { + throw std::invalid_argument("Module metadata is missing 'Description' field or it is not a string."); } } diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index eb3361f..d3c2d02 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -20,13 +20,6 @@ if (NOT GTest_FOUND) FetchContent_MakeAvailable(googletest) endif() -#=============================================================================# -# Add Test Module -#=============================================================================# - -set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/tests/bin) -add_subdirectory(test_module) - #=============================================================================# # Test Executable #=============================================================================# @@ -67,5 +60,13 @@ if(MSVC) ) endif() +add_custom_command( + TARGET flow_core_tests + POST_BUILD + COMMAND ${CMAKE_COMMAND} -E copy + "${CMAKE_CURRENT_SOURCE_DIR}/test_module.flowmod" + "$/test_module.flowmod" +) + include(GoogleTest) gtest_discover_tests(flow_core_tests) diff --git a/tests/factory_test.cpp b/tests/factory_test.cpp index 9d93d52..e430f0b 100644 --- a/tests/factory_test.cpp +++ b/tests/factory_test.cpp @@ -1,9 +1,9 @@ -#include - #include "flow/core/Env.hpp" #include "flow/core/Node.hpp" #include "flow/core/NodeFactory.hpp" +#include + using namespace flow; namespace diff --git a/tests/graph_test.cpp b/tests/graph_test.cpp index c3e0e0b..9f33519 100644 --- a/tests/graph_test.cpp +++ b/tests/graph_test.cpp @@ -1,11 +1,11 @@ -#include - #include "flow/core/Env.hpp" #include "flow/core/Graph.hpp" #include "flow/core/Node.hpp" #include "flow/core/NodeData.hpp" #include "flow/core/NodeFactory.hpp" +#include + using namespace flow; namespace diff --git a/tests/indexable_name_test.cpp b/tests/indexable_name_test.cpp index 08a7e19..d51cc4e 100644 --- a/tests/indexable_name_test.cpp +++ b/tests/indexable_name_test.cpp @@ -1,7 +1,7 @@ -#include - #include "IndexableName.hpp" +#include + #include #include #include diff --git a/tests/module_test.cpp b/tests/module_test.cpp index ccf683b..9ceef4c 100644 --- a/tests/module_test.cpp +++ b/tests/module_test.cpp @@ -1,32 +1,36 @@ -#include - #include "flow/core/Env.hpp" #include "flow/core/Module.hpp" #include "flow/core/NodeFactory.hpp" +#include #include #include using namespace flow; -nlohmann::json module_json{ - {"Author", "Cisco Systems, Inc."}, - {"Description", "A test module."}, - {"Name", "test_module"}, - {"Version", "0.0.0"}, -}; - -const std::filesystem::path module_path = std::filesystem::current_path(); +const std::filesystem::path module_path = std::filesystem::current_path() / "test_module.flowmod"; auto factory = std::make_shared(); auto env = Env::Create(factory); -TEST(ModuleTest, Load) { ASSERT_NO_THROW(Module(module_json, module_path, factory)); } +TEST(ModuleTest, Load) { ASSERT_NO_THROW(Module(module_path, factory)); } + +TEST(ModuleTest, ValidateMetaData) +{ + Module module(module_path, factory); + ASSERT_TRUE(module.IsLoaded()); + + const auto& meta_data = module.GetMetaData(); + ASSERT_EQ(meta_data.Name, "test_module"); + ASSERT_EQ(meta_data.Version, "0.0.0"); + ASSERT_EQ(meta_data.Author, "Cisco Systems, Inc."); + ASSERT_EQ(meta_data.Description, "A test module."); +} TEST(ModuleTest, RunModuleNodes) { - Module module(module_json, module_path, factory); + Module module(module_path, factory); ASSERT_TRUE(module.IsLoaded()); SharedNode node; @@ -39,7 +43,7 @@ TEST(ModuleTest, RunModuleNodes) TEST(ModuleTest, Unload) { - Module module(module_json, module_path, factory); + Module module(module_path, factory); ASSERT_TRUE(module.IsLoaded()); ASSERT_NO_THROW(module.Unload()); ASSERT_FALSE(module.IsLoaded()); @@ -47,7 +51,7 @@ TEST(ModuleTest, Unload) TEST(ModuleTest, LoadUnloadLoad) { - Module module(module_json, module_path, factory); + Module module(module_path, factory); ASSERT_TRUE(module.IsLoaded()); ASSERT_NO_THROW(ASSERT_FALSE(module.Load(module_path))); ASSERT_TRUE(module.IsLoaded()); diff --git a/tests/node_test.cpp b/tests/node_test.cpp index b899dde..da3307c 100644 --- a/tests/node_test.cpp +++ b/tests/node_test.cpp @@ -1,11 +1,10 @@ -#include - #include "flow/core/Env.hpp" #include "flow/core/FunctionNode.hpp" #include "flow/core/Node.hpp" #include "flow/core/NodeData.hpp" #include "flow/core/NodeFactory.hpp" +#include #include using namespace flow; diff --git a/tests/test_module.flowmod b/tests/test_module.flowmod new file mode 100644 index 0000000000000000000000000000000000000000..9c5b61971fde4c78bfe30ccea0c7f9945bfe703a GIT binary patch literal 225686 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 bqV*-k{JlNs%qfzx5m+8>9&+-j7q^SO|5HFdK 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

~(iF@nzckoQ*6B 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 -) diff --git a/tests/test_module/src/register.cpp b/tests/test_module/src/register.cpp deleted file mode 100644 index b396877..0000000 --- a/tests/test_module/src/register.cpp +++ /dev/null @@ -1,39 +0,0 @@ -#include -#include - -#ifdef FLOW_WINDOWS -#ifdef TEST_MODULE_EXPORT -#define TEST_MODULE_API __declspec(dllexport) FLOW_CORE_CALL -#else -#define TEST_MODULE_API __declspec(dllimport) FLOW_CORE_CALL -#endif -#else -#define TEST_MODULE_API -#endif - -struct TestNode : public flow::Node -{ - explicit TestNode(const std::string& uuid_str, const std::string& name, std::shared_ptr env) - : Node(uuid_str, flow::TypeName_v, name, std::move(env)) - - { - } - - virtual void Compute() override { throw std::runtime_error("Computed TestNode successfully!"); } -}; - -extern "C" -{ - namespace test_flow - { - void TEST_MODULE_API RegisterModule(std::shared_ptr factory) - { - factory->RegisterNodeClass("test", "Test"); - } - - void TEST_MODULE_API UnregisterModule(std::shared_ptr factory) - { - factory->UnregisterNodeClass("test"); - } - } // namespace test_flow -} diff --git a/tests/test_module/test_module.flowmod b/tests/test_module/test_module.flowmod deleted file mode 100644 index 3b50844..0000000 --- a/tests/test_module/test_module.flowmod +++ /dev/null @@ -1,6 +0,0 @@ -{ - "Author": "Cisco Systems, Inc.", - "Description": "A test module.", - "Name": "test_module", - "Version": "0.0.0" -} From 1f882aa94c77c4caff49326a0c1c17b8130fda81 Mon Sep 17 00:00:00 2001 From: Tomas Rigaux Date: Thu, 26 Jun 2025 11:51:26 -0400 Subject: [PATCH 02/20] Update readme. --- README.md | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/README.md b/README.md index 10d3c7d..c9d8521 100644 --- a/README.md +++ b/README.md @@ -4,6 +4,10 @@ [![License: MIT](https://img.shields.io/github/license/InFlowStructure/flow-core)](https://github.com/InFlowStructure/flow-core/blob/main/LICENSE) [![Language: C++20](https://img.shields.io/badge/Language-C%2B%2B20%20-blue)](https://en.cppreference.com/w/cpp/20) +![Linux](https://img.shields.io/badge/OS-Linux-blue) +![Windows](https://img.shields.io/badge/OS-Windows-blue) +![macOS](https://img.shields.io/badge/OS-macOS-blue) + ## Overview Flow Core is a cross-platform C++20 graph-based code engine designed for building dynamically modifiable code flows. It serves as a foundation for Low-Code/No-Code solutions by providing a flexible and extensible graph computation system. @@ -26,18 +30,21 @@ Flow Core is a cross-platform C++20 graph-based code engine designed for buildin ## Dependencies Flow Core relies on these open-source libraries: + - [nlohmann_json](https://github.com/nlohmann/json) - Modern JSON handling - [thread-pool](https://github.com/bshoshany/thread-pool) - Efficient thread management ## Building ### Basic Build + ```bash cmake -B build cmake --build build --parallel ``` ### Build with Tests + ```bash cmake -B build -Dflow-core_BUILD_TESTS=ON cmake --build build --parallel @@ -46,6 +53,7 @@ cmake --build build --parallel ## Installation Configure and install: + ```bash cmake -B build -Dflow-core_INSTALL=ON cmake --build build --parallel @@ -55,6 +63,7 @@ cmake --install build ## Getting Started Check out our [documentation](docs/getting-started.md) for: + - Basic concepts and architecture - Creating your first flow - Building custom nodes From d88e327c1f2f3be21ceabec555157c9d919a359c Mon Sep 17 00:00:00 2001 From: Tomas Rigaux Date: Thu, 26 Jun 2025 12:09:39 -0400 Subject: [PATCH 03/20] Update copyright --- CMakeLists.txt | 3 +++ src/Module.cpp | 3 +++ tests/factory_test.cpp | 3 +++ tests/graph_test.cpp | 3 +++ tests/indexable_name_test.cpp | 3 +++ tests/module_test.cpp | 3 +++ tests/node_test.cpp | 3 +++ tests/type_name_test.cpp | 5 ++++- 8 files changed, 25 insertions(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index f0835aa..4b9d73b 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,3 +1,6 @@ +# Copyright (c) 2024, Cisco Systems, Inc. +# All rights reserved. + cmake_minimum_required(VERSION 3.10) project(flow-core VERSION 1.1.1 LANGUAGES CXX) diff --git a/src/Module.cpp b/src/Module.cpp index 186e6cb..641958a 100644 --- a/src/Module.cpp +++ b/src/Module.cpp @@ -1,3 +1,6 @@ +// Copyright (c) 2024, Cisco Systems, Inc. +// All rights reserved. + #include "flow/core/Module.hpp" #include "flow/core/NodeFactory.hpp" diff --git a/tests/factory_test.cpp b/tests/factory_test.cpp index e430f0b..3be8ced 100644 --- a/tests/factory_test.cpp +++ b/tests/factory_test.cpp @@ -1,3 +1,6 @@ +// Copyright (c) 2024, Cisco Systems, Inc. +// All rights reserved. + #include "flow/core/Env.hpp" #include "flow/core/Node.hpp" #include "flow/core/NodeFactory.hpp" diff --git a/tests/graph_test.cpp b/tests/graph_test.cpp index 9f33519..f8e150a 100644 --- a/tests/graph_test.cpp +++ b/tests/graph_test.cpp @@ -1,3 +1,6 @@ +// Copyright (c) 2024, Cisco Systems, Inc. +// All rights reserved. + #include "flow/core/Env.hpp" #include "flow/core/Graph.hpp" #include "flow/core/Node.hpp" diff --git a/tests/indexable_name_test.cpp b/tests/indexable_name_test.cpp index d51cc4e..4fb1163 100644 --- a/tests/indexable_name_test.cpp +++ b/tests/indexable_name_test.cpp @@ -1,3 +1,6 @@ +// Copyright (c) 2024, Cisco Systems, Inc. +// All rights reserved. + #include "IndexableName.hpp" #include diff --git a/tests/module_test.cpp b/tests/module_test.cpp index 9ceef4c..a54457a 100644 --- a/tests/module_test.cpp +++ b/tests/module_test.cpp @@ -1,3 +1,6 @@ +// Copyright (c) 2024, Cisco Systems, Inc. +// All rights reserved. + #include "flow/core/Env.hpp" #include "flow/core/Module.hpp" #include "flow/core/NodeFactory.hpp" diff --git a/tests/node_test.cpp b/tests/node_test.cpp index da3307c..89b9a6e 100644 --- a/tests/node_test.cpp +++ b/tests/node_test.cpp @@ -1,3 +1,6 @@ +// Copyright (c) 2024, Cisco Systems, Inc. +// All rights reserved. + #include "flow/core/Env.hpp" #include "flow/core/FunctionNode.hpp" #include "flow/core/Node.hpp" diff --git a/tests/type_name_test.cpp b/tests/type_name_test.cpp index 1d7bec3..e07e6d8 100644 --- a/tests/type_name_test.cpp +++ b/tests/type_name_test.cpp @@ -1,7 +1,10 @@ -#include +// Copyright (c) 2024, Cisco Systems, Inc. +// All rights reserved. #include "TypeName.hpp" +#include + using flow::TypeName; TEST(TypeNameTest, LanguageTypes) From d7d29f0ff3afd2bce2758a495927dc41cc234eb9 Mon Sep 17 00:00:00 2001 From: Tomas Rigaux Date: Thu, 26 Jun 2025 14:18:49 -0400 Subject: [PATCH 04/20] Cross platform test module build. --- tests/CMakeLists.txt | 14 +++---- tests/test_module.flowmod | Bin 225686 -> 0 bytes tests/test_module/CMakeLists.txt | 64 +++++++++++++++++++++++++++++ tests/test_module/README.md | 14 +++++++ tests/test_module/module.json | 6 +++ tests/test_module/src/register.cpp | 39 ++++++++++++++++++ 6 files changed, 129 insertions(+), 8 deletions(-) delete mode 100644 tests/test_module.flowmod create mode 100644 tests/test_module/CMakeLists.txt create mode 100644 tests/test_module/README.md create mode 100644 tests/test_module/module.json create mode 100644 tests/test_module/src/register.cpp diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index d3c2d02..2f4b413 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -20,6 +20,12 @@ if (NOT GTest_FOUND) FetchContent_MakeAvailable(googletest) endif() +#=============================================================================# +# Test Module +#=============================================================================# + +add_subdirectory(test_module) + #=============================================================================# # Test Executable #=============================================================================# @@ -60,13 +66,5 @@ if(MSVC) ) endif() -add_custom_command( - TARGET flow_core_tests - POST_BUILD - COMMAND ${CMAKE_COMMAND} -E copy - "${CMAKE_CURRENT_SOURCE_DIR}/test_module.flowmod" - "$/test_module.flowmod" -) - include(GoogleTest) gtest_discover_tests(flow_core_tests) diff --git a/tests/test_module.flowmod b/tests/test_module.flowmod deleted file mode 100644 index 9c5b61971fde4c78bfe30ccea0c7f9945bfe703a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 225686 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 bqV*-k{JlNs%qfzx5m+8>9&+-j7q^SO|5HFdK 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

~(iF@nzckoQ*6B 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 NAME) +add_custom_command(TARGET ${PROJECT_NAME} POST_BUILD + COMMAND ${CMAKE_COMMAND} -E copy + $ + $/${PROJECT_NAME}/${MODULE_BINARY_DIR}/${PROJECT_NAME}.${CMAKE_SHARED_LIBRARY_SUFFIX} +) +add_custom_command(TARGET ${PROJECT_NAME} POST_BUILD + COMMAND ${CMAKE_COMMAND} -E copy + ${CMAKE_CURRENT_SOURCE_DIR}/module.json + $/${PROJECT_NAME}/module.json +) +add_custom_command(TARGET ${PROJECT_NAME} POST_BUILD + COMMAND ${CMAKE_COMMAND} -E copy + ${CMAKE_CURRENT_SOURCE_DIR}/README.md + $/${PROJECT_NAME}/README.md +) + +add_custom_command(TARGET ${PROJECT_NAME} POST_BUILD + COMMAND ${CMAKE_COMMAND} -E tar cfv ${CMAKE_CURRENT_BINARY_DIR}/../${PROJECT_NAME}.flowmod --format=zip ${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME} +) diff --git a/tests/test_module/README.md b/tests/test_module/README.md new file mode 100644 index 0000000..ff2a43e --- /dev/null +++ b/tests/test_module/README.md @@ -0,0 +1,14 @@ +# Test Flow Module + +This repository contains a simple test module for the [Flow](https://github.com/InFlowStructure/flow-core) framework. +It is intended for demonstration and testing purposes only. + +## Features + +- Example Flow module structure +- Placeholder code for integration and testing +- No production functionality + +## License + +This project is licensed under the MIT License. diff --git a/tests/test_module/module.json b/tests/test_module/module.json new file mode 100644 index 0000000..3b50844 --- /dev/null +++ b/tests/test_module/module.json @@ -0,0 +1,6 @@ +{ + "Author": "Cisco Systems, Inc.", + "Description": "A test module.", + "Name": "test_module", + "Version": "0.0.0" +} diff --git a/tests/test_module/src/register.cpp b/tests/test_module/src/register.cpp new file mode 100644 index 0000000..b396877 --- /dev/null +++ b/tests/test_module/src/register.cpp @@ -0,0 +1,39 @@ +#include +#include + +#ifdef FLOW_WINDOWS +#ifdef TEST_MODULE_EXPORT +#define TEST_MODULE_API __declspec(dllexport) FLOW_CORE_CALL +#else +#define TEST_MODULE_API __declspec(dllimport) FLOW_CORE_CALL +#endif +#else +#define TEST_MODULE_API +#endif + +struct TestNode : public flow::Node +{ + explicit TestNode(const std::string& uuid_str, const std::string& name, std::shared_ptr env) + : Node(uuid_str, flow::TypeName_v, name, std::move(env)) + + { + } + + virtual void Compute() override { throw std::runtime_error("Computed TestNode successfully!"); } +}; + +extern "C" +{ + namespace test_flow + { + void TEST_MODULE_API RegisterModule(std::shared_ptr factory) + { + factory->RegisterNodeClass("test", "Test"); + } + + void TEST_MODULE_API UnregisterModule(std::shared_ptr factory) + { + factory->UnregisterNodeClass("test"); + } + } // namespace test_flow +} From d1e92feeb0e5f065af027f8d8b0b4b632d351feb Mon Sep 17 00:00:00 2001 From: Tomas Rigaux Date: Mon, 30 Jun 2025 09:42:06 -0400 Subject: [PATCH 05/20] Fix bad module zip. --- tests/test_module/CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/test_module/CMakeLists.txt b/tests/test_module/CMakeLists.txt index 526535c..789bf21 100644 --- a/tests/test_module/CMakeLists.txt +++ b/tests/test_module/CMakeLists.txt @@ -46,7 +46,7 @@ get_filename_component(lib_file $ NAME) add_custom_command(TARGET ${PROJECT_NAME} POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy $ - $/${PROJECT_NAME}/${MODULE_BINARY_DIR}/${PROJECT_NAME}.${CMAKE_SHARED_LIBRARY_SUFFIX} + $/${PROJECT_NAME}/${MODULE_BINARY_DIR}/${PROJECT_NAME}${CMAKE_SHARED_LIBRARY_SUFFIX} ) add_custom_command(TARGET ${PROJECT_NAME} POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy From bf7ce8662fc54a5c95eb141b2c23a29b06f50d00 Mon Sep 17 00:00:00 2001 From: Tomas Rigaux Date: Mon, 30 Jun 2025 09:48:46 -0400 Subject: [PATCH 06/20] Install zlib on windows. --- .github/workflows/cmake.yml | 61 ++++++++++++++++++++----------------- 1 file changed, 33 insertions(+), 28 deletions(-) diff --git a/.github/workflows/cmake.yml b/.github/workflows/cmake.yml index 140161e..241f852 100644 --- a/.github/workflows/cmake.yml +++ b/.github/workflows/cmake.yml @@ -2,9 +2,9 @@ name: CMake on: push: - branches: [ "main" ] + branches: ["main"] pull_request: - branches: [ "main" ] + branches: ["main"] env: # Customize the CMake build type here (Release, Debug, RelWithDebInfo, etc.) @@ -18,8 +18,8 @@ jobs: - uses: actions/checkout@v4 - uses: jidicula/clang-format-action@v4.13.0 with: - clang-format-version: '17' - exclude-regex: '(third_party)' + clang-format-version: "17" + exclude-regex: "(third_party)" build: # The CMake configure and build commands are platform agnostic and should work equally well on Windows or Mac. @@ -27,32 +27,37 @@ jobs: # See: https://docs.github.com/en/free-pro-team@latest/actions/learn-github-actions/managing-complex-workflows#using-a-build-matrix strategy: matrix: - os: [ ubuntu-latest, macos-latest, windows-latest ] + os: [ubuntu-latest, macos-latest, windows-latest] runs-on: ${{ matrix.os }} continue-on-error: true steps: - - uses: actions/checkout@v4 - with: - submodules: recursive - - - name: Install Packages (Ubuntu) - run: | - sudo apt-get install -y uuid-dev - if: matrix.os == 'ubuntu-latest' - - - name: Configure CMake - # Configure CMake in a 'build' subdirectory. `CMAKE_BUILD_TYPE` is only required if you are using a single-configuration generator such as make. - # See https://cmake.org/cmake/help/latest/variable/CMAKE_BUILD_TYPE.html?highlight=cmake_build_type - run: cmake -B ${{github.workspace}}/build -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} -Dflow-core_BUILD_TESTS=ON - - - name: Build - # Build your program with the given configuration - run: cmake --build ${{github.workspace}}/build --config ${{env.BUILD_TYPE}} --parallel 18 - - - name: Test - working-directory: ${{github.workspace}}/build - # Execute tests defined by the CMake configuration. - # See https://cmake.org/cmake/help/latest/manual/ctest.1.html for more detail - run: ctest -C ${{env.BUILD_TYPE}} --output-on-failure + - uses: actions/checkout@v4 + with: + submodules: recursive + + - name: Install Packages (Ubuntu) + run: | + sudo apt-get install -y uuid-dev + if: matrix.os == 'ubuntu-latest' + + - name: Install Packages (Windows) + run: | + powershell -Command "(Invoke-WebRequest -Uri https://git.io/JnHTY -OutFile install_zlib.bat)"; ./install_zlib.bat; del install_zlib.bat + if: matrix.os == 'windows-latest' + + - name: Configure CMake + # Configure CMake in a 'build' subdirectory. `CMAKE_BUILD_TYPE` is only required if you are using a single-configuration generator such as make. + # See https://cmake.org/cmake/help/latest/variable/CMAKE_BUILD_TYPE.html?highlight=cmake_build_type + run: cmake -B ${{github.workspace}}/build -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} -Dflow-core_BUILD_TESTS=ON + + - name: Build + # Build your program with the given configuration + run: cmake --build ${{github.workspace}}/build --config ${{env.BUILD_TYPE}} --parallel 18 + + - name: Test + working-directory: ${{github.workspace}}/build + # Execute tests defined by the CMake configuration. + # See https://cmake.org/cmake/help/latest/manual/ctest.1.html for more detail + run: ctest -C ${{env.BUILD_TYPE}} --output-on-failure From 9dc866d3598cc81d3d8d28e560d6b140d7e6eed1 Mon Sep 17 00:00:00 2001 From: Tomas Rigaux Date: Mon, 30 Jun 2025 10:31:17 -0400 Subject: [PATCH 07/20] Fix arch support for module --- tests/test_module/CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/test_module/CMakeLists.txt b/tests/test_module/CMakeLists.txt index 789bf21..b7c8625 100644 --- a/tests/test_module/CMakeLists.txt +++ b/tests/test_module/CMakeLists.txt @@ -31,7 +31,7 @@ else() message(FATAL_ERROR "Unsupported platform: ${CMAKE_SYSTEM_NAME}") endif() -if (${CMAKE_SYSTEM_PROCESSOR} MATCHES "^(x86_64|amd64)$") +if (${CMAKE_SYSTEM_PROCESSOR} MATCHES "^(x86_64|amd64|AMD64)$") set(MODULE_BINARY_DIR "${MODULE_BINARY_DIR}/x86_64") elseif(${CMAKE_SYSTEM_PROCESSOR} MATCHES "^(arm64|aarch64)$") set(MODULE_BINARY_DIR "${MODULE_BINARY_DIR}/arm64") From fe0dce6b887c8207f3df1ba5634e2f285c7b2264 Mon Sep 17 00:00:00 2001 From: GhostofCookie Date: Tue, 1 Jul 2025 13:48:44 -0400 Subject: [PATCH 08/20] Change zip library to ZIpper and fix windows. --- .github/workflows/cmake.yml | 5 --- CMakeLists.txt | 13 +++----- cmake/FlowModule.cmake | 42 ++++++++++++++++++++++++ src/Module.cpp | 55 +++++--------------------------- tests/CMakeLists.txt | 35 +++++++------------- tests/module_test.cpp | 2 +- tests/test_module/CMakeLists.txt | 48 +++++----------------------- 7 files changed, 76 insertions(+), 124 deletions(-) create mode 100644 cmake/FlowModule.cmake diff --git a/.github/workflows/cmake.yml b/.github/workflows/cmake.yml index 241f852..7043adc 100644 --- a/.github/workflows/cmake.yml +++ b/.github/workflows/cmake.yml @@ -42,11 +42,6 @@ jobs: sudo apt-get install -y uuid-dev if: matrix.os == 'ubuntu-latest' - - name: Install Packages (Windows) - run: | - powershell -Command "(Invoke-WebRequest -Uri https://git.io/JnHTY -OutFile install_zlib.bat)"; ./install_zlib.bat; del install_zlib.bat - if: matrix.os == 'windows-latest' - - name: Configure CMake # Configure CMake in a 'build' subdirectory. `CMAKE_BUILD_TYPE` is only required if you are using a single-configuration generator such as make. # See https://cmake.org/cmake/help/latest/variable/CMAKE_BUILD_TYPE.html?highlight=cmake_build_type diff --git a/CMakeLists.txt b/CMakeLists.txt index 4b9d73b..7c9ecb7 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -29,13 +29,7 @@ include(cmake/CPM.cmake) CPMAddPackage("gh:nlohmann/json@3.11.3") CPMAddPackage("gh:bshoshany/thread-pool@5.0.0") - -set(BUILD_TOOLS OFF CACHE BOOL "") -set(BUILD_REGRESS OFF CACHE BOOL "") -set(BUILD_OSSFUZZ OFF CACHE BOOL "") -set(BUILD_EXAMPLES OFF CACHE BOOL "") -set(BUILD_DOC OFF CACHE BOOL "") -CPMAddPackage("gh:nih-at/libzip@1.11.4") +CPMAddPackage("gh:Lecrapouille/zipper@3.0.0") # ----------------------------------------------------------------------------- # Library @@ -93,7 +87,10 @@ endif() target_link_libraries(${PROJECT_NAME} PUBLIC nlohmann_json::nlohmann_json - zip +) + +target_link_libraries(${PROJECT_NAME} PRIVATE + zipper ) # ----------------------------------------------------------------------------- diff --git a/cmake/FlowModule.cmake b/cmake/FlowModule.cmake new file mode 100644 index 0000000..46ab2ce --- /dev/null +++ b/cmake/FlowModule.cmake @@ -0,0 +1,42 @@ +function(CreateFlowModule module_name) + if(CMAKE_SYSTEM_NAME STREQUAL "Linux") + set(MODULE_BINARY_DIR "linux") + elseif(CMAKE_SYSTEM_NAME STREQUAL "Darwin") # macOS uses Darwin as its kernel name + set(MODULE_BINARY_DIR "macos") + elseif(CMAKE_SYSTEM_NAME STREQUAL "Windows") + set(MODULE_BINARY_DIR "windows") + else() + message(FATAL_ERROR "Unsupported platform: ${CMAKE_SYSTEM_NAME}") + endif() + + if (${CMAKE_SYSTEM_PROCESSOR} MATCHES "^(x86_64|amd64|AMD64)$") + set(MODULE_BINARY_DIR "${MODULE_BINARY_DIR}/x86_64") + elseif(${CMAKE_SYSTEM_PROCESSOR} MATCHES "^(arm64|aarch64)$") + set(MODULE_BINARY_DIR "${MODULE_BINARY_DIR}/arm64") + elseif(${CMAKE_SYSTEM_PROCESSOR} MATCHES "^(i386|i686)$") + set(MODULE_BINARY_DIR "${MODULE_BINARY_DIR}/x86") + else() + message(FATAL_ERROR "Unsupported architecture: ${CMAKE_SYSTEM_PROCESSOR}") + endif() + + add_custom_command(TARGET ${module_name} POST_BUILD + COMMAND ${CMAKE_COMMAND} -E copy + $ + $/${module_name}/${MODULE_BINARY_DIR}/${module_name}${CMAKE_SHARED_LIBRARY_SUFFIX} + ) + add_custom_command(TARGET ${module_name} POST_BUILD + COMMAND ${CMAKE_COMMAND} -E copy + ${CMAKE_CURRENT_SOURCE_DIR}/module.json + $/${module_name}/module.json + ) + add_custom_command(TARGET ${module_name} POST_BUILD + COMMAND ${CMAKE_COMMAND} -E copy + ${CMAKE_CURRENT_SOURCE_DIR}/README.md + $/${module_name}/README.md + ) + + add_custom_command(TARGET ${module_name} POST_BUILD + WORKING_DIRECTORY $ + COMMAND ${CMAKE_COMMAND} -E tar -cfv ${CMAKE_CURRENT_BINARY_DIR}/${module_name}.fmod --format=zip ${module_name}/ + ) +endfunction() diff --git a/src/Module.cpp b/src/Module.cpp index 641958a..df33919 100644 --- a/src/Module.cpp +++ b/src/Module.cpp @@ -5,8 +5,8 @@ #include "flow/core/NodeFactory.hpp" +#include #include -#include #include #include @@ -21,7 +21,9 @@ FLOW_NAMESPACE_BEGIN -const std::string Module::FileExtension = "flowmod"; +using namespace zipper; + +const std::string Module::FileExtension = "fmod"; #ifdef FLOW_WINDOWS constexpr const char* platform = "windows"; @@ -116,55 +118,14 @@ bool Module::Load(const std::filesystem::path& path) throw std::runtime_error(std::format("Path is not a file. (file={})", path.string())); } - zip_t* archive = zip_open(path.string().c_str(), ZIP_RDONLY, nullptr); - if (!archive) + Unzipper unzipper(path.string()); + if (!unzipper.isOpened()) { throw std::runtime_error(std::format("Failed to open module archive. (file={})", path.string())); } - const zip_int64_t num_entries = zip_get_num_entries(archive, 0); - for (zip_int64_t i = 0; i < num_entries; ++i) - { - zip_stat_t file_info; - zip_stat_init(&file_info); - - if (zip_stat_index(archive, i, 0, &file_info) != 0) - { - zip_close(archive); - throw std::runtime_error( - std::format("Failed to get file info from module archive. (file={})", path.string())); - } - - auto file_path = GetTempModulePath() / file_info.name; - auto file = zip_fopen(archive, file_info.name, 0); - if (!file) - { - zip_close(archive); - throw std::runtime_error( - std::format("Failed to open file in module archive. (file={})", file_path.string())); - } - - std::vector buffer(file_info.size); - zip_fread(file, buffer.data(), file_info.size); - zip_fclose(file); - - std::filesystem::create_directories(file_path.parent_path()); - if (std::filesystem::is_directory(file_path)) - { - continue; - } - - std::ofstream out_file(file_path, std::ios::binary); - if (!out_file) - { - zip_close(archive); - throw std::runtime_error( - std::format("Failed to create file from module archive. (file={})", file_path.string())); - } - - out_file.write(buffer.data(), buffer.size()); - out_file.close(); - } + unzipper.extractAll(GetTempModulePath().string(), Unzipper::OverwriteMode::Overwrite); + unzipper.close(); auto module_metadata_path = GetModuleMetaDataPath(GetTempModulePath() / path.stem()); std::ifstream metadata_fs(module_metadata_path); diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index 2f4b413..bf0f9fb 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -4,24 +4,14 @@ set(CMAKE_CXX_STANDARD 20) set(CMAKE_CXX_STANDARD_REQUIRED ON) #=============================================================================# -# Fetch testing dependencies +# Dependencies #=============================================================================# -find_package(GTest CONFIG QUIET) -if (NOT GTest_FOUND) - include(FetchContent) - FetchContent_Declare( - googletest OVERRIDE_FIND_PACKAGE - URL https://github.com/google/googletest/releases/download/v1.15.2/googletest-1.15.2.tar.gz - GIT_TAG v1.15.2 - ) - - set(gtest_force_shared_crt ON CACHE BOOL "" FORCE) - FetchContent_MakeAvailable(googletest) -endif() +set(gtest_force_shared_crt ON CACHE BOOL "" FORCE) +CPMAddPackage("gh:google/googletest@1.15.2") #=============================================================================# -# Test Module +# Add Test Module #=============================================================================# add_subdirectory(test_module) @@ -30,8 +20,9 @@ add_subdirectory(test_module) # Test Executable #=============================================================================# +set(TEST_EXE flow_core_tests) add_executable( - flow_core_tests + ${TEST_EXE} factory_test.cpp graph_test.cpp @@ -43,18 +34,16 @@ add_executable( if(MSVC) add_compile_definitions(_CRT_SECURE_NO_WARNINGS) - target_compile_options(flow_core_tests PRIVATE /W4 /MP) + target_compile_options(${TEST_EXE} PRIVATE /W4 /MP) endif() -target_link_libraries( - flow_core_tests - +target_link_libraries(${TEST_EXE} flow-core GTest::gtest_main ) -target_include_directories(flow_core_tests PRIVATE - ../include/flow/core +target_include_directories(${TEST_EXE} PRIVATE + ${CMAKE_SOURCE_DIR}/include/flow/core ${thread_pool_SOURCE_DIR}/include ) @@ -62,9 +51,9 @@ if(MSVC) add_custom_command(TARGET flow_core_tests POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy_if_different $ - $ + $ ) endif() include(GoogleTest) -gtest_discover_tests(flow_core_tests) +gtest_discover_tests(${TEST_EXE}) diff --git a/tests/module_test.cpp b/tests/module_test.cpp index a54457a..e878f92 100644 --- a/tests/module_test.cpp +++ b/tests/module_test.cpp @@ -12,7 +12,7 @@ using namespace flow; -const std::filesystem::path module_path = std::filesystem::current_path() / "test_module.flowmod"; +const std::filesystem::path module_path = std::filesystem::current_path() / "test_module.fmod"; auto factory = std::make_shared(); auto env = Env::Create(factory); diff --git a/tests/test_module/CMakeLists.txt b/tests/test_module/CMakeLists.txt index b7c8625..bc53f8a 100644 --- a/tests/test_module/CMakeLists.txt +++ b/tests/test_module/CMakeLists.txt @@ -21,44 +21,12 @@ add_dependencies(${PROJECT_NAME} flow-core) target_include_directories(${PROJECT_NAME} PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/include) target_link_libraries(${PROJECT_NAME} PUBLIC flow-core) -if(CMAKE_SYSTEM_NAME STREQUAL "Linux") - set(MODULE_BINARY_DIR "linux") -elseif(CMAKE_SYSTEM_NAME STREQUAL "Darwin") # macOS uses Darwin as its kernel name - set(MODULE_BINARY_DIR "macos") -elseif(CMAKE_SYSTEM_NAME STREQUAL "Windows") - set(MODULE_BINARY_DIR "windows") -else() - message(FATAL_ERROR "Unsupported platform: ${CMAKE_SYSTEM_NAME}") -endif() - -if (${CMAKE_SYSTEM_PROCESSOR} MATCHES "^(x86_64|amd64|AMD64)$") - set(MODULE_BINARY_DIR "${MODULE_BINARY_DIR}/x86_64") -elseif(${CMAKE_SYSTEM_PROCESSOR} MATCHES "^(arm64|aarch64)$") - set(MODULE_BINARY_DIR "${MODULE_BINARY_DIR}/arm64") -elseif(${CMAKE_SYSTEM_PROCESSOR} MATCHES "^(i386|i686)$") - set(MODULE_BINARY_DIR "${MODULE_BINARY_DIR}/x86") -else() - message(FATAL_ERROR "Unsupported architecture: ${CMAKE_SYSTEM_PROCESSOR}") -endif() - - -get_filename_component(lib_file $ NAME) -add_custom_command(TARGET ${PROJECT_NAME} POST_BUILD - COMMAND ${CMAKE_COMMAND} -E copy - $ - $/${PROJECT_NAME}/${MODULE_BINARY_DIR}/${PROJECT_NAME}${CMAKE_SHARED_LIBRARY_SUFFIX} -) -add_custom_command(TARGET ${PROJECT_NAME} POST_BUILD - COMMAND ${CMAKE_COMMAND} -E copy - ${CMAKE_CURRENT_SOURCE_DIR}/module.json - $/${PROJECT_NAME}/module.json -) -add_custom_command(TARGET ${PROJECT_NAME} POST_BUILD - COMMAND ${CMAKE_COMMAND} -E copy - ${CMAKE_CURRENT_SOURCE_DIR}/README.md - $/${PROJECT_NAME}/README.md -) - -add_custom_command(TARGET ${PROJECT_NAME} POST_BUILD - COMMAND ${CMAKE_COMMAND} -E tar cfv ${CMAKE_CURRENT_BINARY_DIR}/../${PROJECT_NAME}.flowmod --format=zip ${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME} +include(../../cmake/FlowModule.cmake) +CreateFlowModule(${PROJECT_NAME}) + +add_custom_command(TARGET ${PROJECT_NAME} + POST_BUILD + COMMAND ${CMAKE_COMMAND} -E copy + ${CMAKE_CURRENT_BINARY_DIR}/test_module.fmod + $ ) From 26e7587ac4822c92a1de85cc7ff597a91146f133 Mon Sep 17 00:00:00 2001 From: GhostofCookie Date: Tue, 1 Jul 2025 14:01:36 -0400 Subject: [PATCH 09/20] Force cpp version for zipper. --- CMakeLists.txt | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/CMakeLists.txt b/CMakeLists.txt index 7c9ecb7..5e13967 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -30,6 +30,11 @@ include(cmake/CPM.cmake) CPMAddPackage("gh:nlohmann/json@3.11.3") CPMAddPackage("gh:bshoshany/thread-pool@5.0.0") CPMAddPackage("gh:Lecrapouille/zipper@3.0.0") +set_target_properties(zipper PROPERTIES + CXX_STANDARD 20 + CXX_STANDARD_REQUIRED ON + CXX_EXTENSIONS OFF +) # ----------------------------------------------------------------------------- # Library From 22c46bfc2d87ae5892e1efb35ef4800ad2a96321 Mon Sep 17 00:00:00 2001 From: GhostofCookie Date: Tue, 1 Jul 2025 14:12:41 -0400 Subject: [PATCH 10/20] Try fixing windows test. --- tests/CMakeLists.txt | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index bf0f9fb..18f8fcb 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -10,12 +10,6 @@ set(CMAKE_CXX_STANDARD_REQUIRED ON) set(gtest_force_shared_crt ON CACHE BOOL "" FORCE) CPMAddPackage("gh:google/googletest@1.15.2") -#=============================================================================# -# Add Test Module -#=============================================================================# - -add_subdirectory(test_module) - #=============================================================================# # Test Executable #=============================================================================# @@ -55,5 +49,15 @@ if(MSVC) ) endif() +#=============================================================================# +# Add Test Module +#=============================================================================# + +add_subdirectory(test_module) + +#=============================================================================# +# Discover tests +#=============================================================================# + include(GoogleTest) gtest_discover_tests(${TEST_EXE}) From 3eefce531629d5b599734954634ae0b298890aa0 Mon Sep 17 00:00:00 2001 From: GhostofCookie Date: Tue, 1 Jul 2025 14:21:59 -0400 Subject: [PATCH 11/20] Debug windows test failing. --- tests/test_module/CMakeLists.txt | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/tests/test_module/CMakeLists.txt b/tests/test_module/CMakeLists.txt index bc53f8a..78eadc9 100644 --- a/tests/test_module/CMakeLists.txt +++ b/tests/test_module/CMakeLists.txt @@ -24,9 +24,7 @@ target_link_libraries(${PROJECT_NAME} PUBLIC flow-core) include(../../cmake/FlowModule.cmake) CreateFlowModule(${PROJECT_NAME}) -add_custom_command(TARGET ${PROJECT_NAME} - POST_BUILD - COMMAND ${CMAKE_COMMAND} -E copy - ${CMAKE_CURRENT_BINARY_DIR}/test_module.fmod - $ +add_custom_command(TARGET ${PROJECT_NAME} POST_BUILD + COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_BINARY_DIR}/test_module.fmod $ + COMMENT "Copy ${CMAKE_CURRENT_BINARY_DIR}/test_module.fmod to $" ) From ffb646e991c2d602de4057ed447366c83067d79e Mon Sep 17 00:00:00 2001 From: GhostofCookie Date: Tue, 1 Jul 2025 14:36:29 -0400 Subject: [PATCH 12/20] Fix location to copy fmod to. --- tests/test_module/CMakeLists.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/test_module/CMakeLists.txt b/tests/test_module/CMakeLists.txt index 78eadc9..b157341 100644 --- a/tests/test_module/CMakeLists.txt +++ b/tests/test_module/CMakeLists.txt @@ -25,6 +25,6 @@ include(../../cmake/FlowModule.cmake) CreateFlowModule(${PROJECT_NAME}) add_custom_command(TARGET ${PROJECT_NAME} POST_BUILD - COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_BINARY_DIR}/test_module.fmod $ - COMMENT "Copy ${CMAKE_CURRENT_BINARY_DIR}/test_module.fmod to $" + COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_BINARY_DIR}/test_module.fmod ${CMAKE_BINARY_DIR}/tests + COMMENT "Copy ${CMAKE_CURRENT_BINARY_DIR}/test_module.fmod to ${CMAKE_BINARY_DIR}/tests" ) From ad8d3af9b3b0a008407086a47c0d885561d1af0e Mon Sep 17 00:00:00 2001 From: Tomas Rigaux Date: Tue, 1 Jul 2025 15:26:11 -0400 Subject: [PATCH 13/20] Improve module API. --- include/flow/core/Module.hpp | 58 +++++++++++++++++++++---- src/Module.cpp | 83 +++++++++++++++++++++++++++++------- tests/module_test.cpp | 74 ++++++++++++++++++++++---------- 3 files changed, 168 insertions(+), 47 deletions(-) diff --git a/include/flow/core/Module.hpp b/include/flow/core/Module.hpp index bcf37c9..2f7e7ac 100644 --- a/include/flow/core/Module.hpp +++ b/include/flow/core/Module.hpp @@ -5,9 +5,10 @@ #include "Core.hpp" -#include +#include #include +#include #include #include @@ -17,16 +18,24 @@ using json = nlohmann::json; class NodeFactory; +/** + * @brief Structure to hold metadata for a flow module. + */ struct ModuleMetaData { + /// The name of the module. std::string Name; + + /// The version of the module in semantic versioning format (e.g., "1.0.0"). std::string Version; + + /// The author of the module. std::string Author; + + /// A description of the module. std::string Description; }; -NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE(ModuleMetaData, Name, Version, Author, Description); - class Module { struct HandleUnloader @@ -36,40 +45,71 @@ class Module public: /** - * @brief Constructs a flow module from a given directory. + * @brief Constructs a flow module with a given NodeFactory. + * @param factory The factory to load registered nodes into. + */ + Module(std::shared_ptr factory); + + /** + * @brief Constructs a flow module from a given JSON metadata and directory. * @param dir The directory to try to load. * @param factory The factory to load registered nodes into. */ Module(const std::filesystem::path& dir, std::shared_ptr factory); - Module(const json& module_json, const std::filesystem::path& dir, std::shared_ptr factory); - + /** + * @brief Destructor for the Module class. Unloads the module if loaded. + */ ~Module(); /** * @brief Loads a module from a given directory. * @param dir The directory to try to load. + * @return True if the module was loaded successfully, false otherwise. */ bool Load(const std::filesystem::path& dir); /** * @brief Unloads the currently loaded module handle. + * @return True if the module was unloaded successfully, false otherwise. */ bool Unload(); + /** + * @brief Registers the module nodes with the provided factory. + * @param factory The factory to register nodes with. + */ + void RegisterModuleNodes(const std::shared_ptr& factory); + + /** + * @brief Unregisters the module nodes from the provided factory. + * @param factory The factory to unregister nodes from. + */ + void UnregisterModuleNodes(const std::shared_ptr& factory); + + /** + * @brief Checks if the module is currently loaded. + * @return True if loaded, false otherwise. + */ bool IsLoaded() const noexcept { return _handle != nullptr; } - const ModuleMetaData& GetMetaData() const noexcept { return _metadata; } + /** + * @brief Gets the metadata associated with the module. + * @return A const reference to the ModuleMetaData. + */ + const std::optional& GetMetaData() const noexcept { return _metadata; } private: void ValidateMetaData(const json& module_json); public: + /** + * @brief The file extension for module metadata files. + */ static const std::string FileExtension; - static const std::string BinaryExtension; private: - ModuleMetaData _metadata; + std::optional _metadata; std::vector _dependencies; std::shared_ptr _factory; diff --git a/src/Module.cpp b/src/Module.cpp index df33919..fa7ea10 100644 --- a/src/Module.cpp +++ b/src/Module.cpp @@ -16,6 +16,7 @@ #ifdef FLOW_WINDOWS #include #else +#include "Module.hpp" #include #endif @@ -23,6 +24,8 @@ FLOW_NAMESPACE_BEGIN using namespace zipper; +NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE(ModuleMetaData, Name, Version, Author, Description); + const std::string Module::FileExtension = "fmod"; #ifdef FLOW_WINDOWS @@ -60,8 +63,22 @@ std::filesystem::path GetModuleBinaryPath(const std::filesystem::path& dir) return dir / platform / architecture / dir.stem().replace_extension(library_extension); } +/** + * @brief Get the Module Meta Data Path object. + * + * @param dir The directory of the module files. + * @returns The path to the module metadata file. + */ std::filesystem::path GetModuleMetaDataPath(const std::filesystem::path& dir) { return dir / "module.json"; } +/** + * @brief Get the temporary module path. + * + * This function creates a directory for temporary modules if it does not exist. + * The path is platform-specific and uses the system's temporary directory. + * + * @returns The path to the temporary module directory. + */ std::filesystem::path GetTempModulePath() { auto temp_path = std::filesystem::temp_directory_path() / "flow_modules"; @@ -94,6 +111,8 @@ auto LoadModuleLibrary(const std::string& name) #endif } +Module::Module(std::shared_ptr factory) : _factory(std::move(factory)) {} + Module::Module(const std::filesystem::path& dir, std::shared_ptr factory) : _factory(std::move(factory)) { Load(dir); @@ -127,7 +146,7 @@ bool Module::Load(const std::filesystem::path& path) unzipper.extractAll(GetTempModulePath().string(), Unzipper::OverwriteMode::Overwrite); unzipper.close(); - auto module_metadata_path = GetModuleMetaDataPath(GetTempModulePath() / path.stem()); + const auto module_metadata_path = GetModuleMetaDataPath(GetTempModulePath() / path.stem()); std::ifstream metadata_fs(module_metadata_path); json module_j = json::parse(metadata_fs); ValidateMetaData(module_j); @@ -146,28 +165,61 @@ bool Module::Load(const std::filesystem::path& path) std::format("Failed to load module binary. (binary_path={})", module_binary_path.string())); } + _handle.reset(std::bit_cast(handle)); + + RegisterModuleNodes(_factory); + + return true; +} + +bool Module::Unload() +{ + if (!_handle) + { + return false; + } + + UnregisterModuleNodes(_factory); + + _handle.reset(); + return true; +} + +void Module::RegisterModuleNodes(const std::shared_ptr& factory) +{ + if (!_handle) + { + throw std::runtime_error("Module is not loaded, cannot register nodes."); + } + + if (!factory) + { + throw std::invalid_argument("NodeFactory is null, cannot register nodes."); + } + #ifdef FLOW_WINDOWS - auto register_func = GetProcAddress(handle, NodeFactory::RegisterModuleFuncName); + auto register_func = GetProcAddress(std::bit_cast(_handle.get()), NodeFactory::RegisterModuleFuncName); #else - auto register_func = dlsym(handle, NodeFactory::RegisterModuleFuncName); + auto register_func = dlsym(_handle.get(), NodeFactory::RegisterModuleFuncName); #endif - if (auto RegisterModule_func = std::bit_cast(register_func)) + if (auto RegisterModule_func = std::bit_cast(register_func)) [[likely]] { - RegisterModule_func(_factory); - _handle.reset(std::bit_cast(handle)); - return true; + return RegisterModule_func(factory); } - HandleUnloader{}(handle); - - throw std::runtime_error(std::format("Failed to load symbols for RegisterModule. (file={})", path.string())); + throw std::runtime_error("Failed to load symbols for RegisterModule."); } -bool Module::Unload() +void Module::UnregisterModuleNodes(const std::shared_ptr& factory) { if (!_handle) { - return false; + throw std::runtime_error("Module is not loaded, cannot unregister nodes."); + } + + if (!factory) + { + throw std::invalid_argument("NodeFactory is null, cannot unregister nodes."); } #ifdef FLOW_WINDOWS @@ -175,13 +227,12 @@ bool Module::Unload() #else auto unregister = dlsym(_handle.get(), NodeFactory::UnregisterModuleFuncName); #endif - if (auto UnregisterModule_func = std::bit_cast(unregister)) + if (auto UnregisterModule_func = std::bit_cast(unregister)) [[likely]] { - UnregisterModule_func(_factory); + return UnregisterModule_func(factory); } - _handle.reset(); - return true; + throw std::runtime_error("Failed to load symbols for UnregisterModule."); } void Module::ValidateMetaData(const json& mod_j) diff --git a/tests/module_test.cpp b/tests/module_test.cpp index e878f92..52f8e55 100644 --- a/tests/module_test.cpp +++ b/tests/module_test.cpp @@ -17,7 +17,34 @@ const std::filesystem::path module_path = std::filesystem::current_path() / "tes auto factory = std::make_shared(); auto env = Env::Create(factory); -TEST(ModuleTest, Load) { ASSERT_NO_THROW(Module(module_path, factory)); } +TEST(ModuleTest, Load) +{ + Module m(factory); + ASSERT_NO_THROW(ASSERT_TRUE(m.Load(module_path))); + ASSERT_TRUE(m.IsLoaded()); +} + +TEST(ModuleTest, Unload) +{ + Module module(module_path, factory); + ASSERT_TRUE(module.IsLoaded()); + ASSERT_TRUE(module.Unload()); + ASSERT_FALSE(module.IsLoaded()); +} + +TEST(ModuleTest, LoadInvalidPath) +{ + Module m(factory); + ASSERT_THROW(m.Load("invalid_path.fmod"), std::runtime_error); +} + +TEST(ModuleTest, UnloadWithoutLoad) +{ + Module m(factory); + ASSERT_FALSE(m.IsLoaded()); + ASSERT_FALSE(m.Unload()); + ASSERT_FALSE(m.IsLoaded()); +} TEST(ModuleTest, ValidateMetaData) { @@ -25,41 +52,44 @@ TEST(ModuleTest, ValidateMetaData) ASSERT_TRUE(module.IsLoaded()); const auto& meta_data = module.GetMetaData(); - ASSERT_EQ(meta_data.Name, "test_module"); - ASSERT_EQ(meta_data.Version, "0.0.0"); - ASSERT_EQ(meta_data.Author, "Cisco Systems, Inc."); - ASSERT_EQ(meta_data.Description, "A test module."); + ASSERT_EQ(meta_data->Name, "test_module"); + ASSERT_EQ(meta_data->Version, "0.0.0"); + ASSERT_EQ(meta_data->Author, "Cisco Systems, Inc."); + ASSERT_EQ(meta_data->Description, "A test module."); } -TEST(ModuleTest, RunModuleNodes) +TEST(ModuleTest, RegisterModuleNodes) { Module module(module_path, factory); ASSERT_TRUE(module.IsLoaded()); - SharedNode node; - ASSERT_NO_THROW(node = factory->CreateNode("TestNode", UUID{}, "test", env)); - ASSERT_NE(node, nullptr); - node->OnCompute.Bind("Test", [&] { FAIL(); }); - node->OnError.Bind("Test", [&](auto&& e) { ASSERT_THROW(throw e, std::exception); }); - node->InvokeCompute(); + ASSERT_NO_THROW(module.RegisterModuleNodes(factory)); + ASSERT_NE(factory->CreateNode("TestNode", UUID{}, "test", env), nullptr); } -TEST(ModuleTest, Unload) +TEST(ModuleTest, UnregisterModuleNodes) { Module module(module_path, factory); ASSERT_TRUE(module.IsLoaded()); - ASSERT_NO_THROW(module.Unload()); - ASSERT_FALSE(module.IsLoaded()); + + module.RegisterModuleNodes(factory); + ASSERT_NE(factory->CreateNode("TestNode", UUID{}, "test", env), nullptr); + + ASSERT_NO_THROW(module.UnregisterModuleNodes(factory)); + ASSERT_EQ(factory->CreateNode("TestNode", UUID{}, "test", env), nullptr); } -TEST(ModuleTest, LoadUnloadLoad) +TEST(ModuleTest, RunModuleNodes) { Module module(module_path, factory); ASSERT_TRUE(module.IsLoaded()); - ASSERT_NO_THROW(ASSERT_FALSE(module.Load(module_path))); - ASSERT_TRUE(module.IsLoaded()); - ASSERT_NO_THROW(ASSERT_TRUE(module.Unload())); - ASSERT_FALSE(module.IsLoaded()); - ASSERT_NO_THROW(ASSERT_TRUE(module.Load(module_path))); - ASSERT_TRUE(module.IsLoaded()); + + module.RegisterModuleNodes(factory); + + SharedNode node; + ASSERT_NO_THROW(node = factory->CreateNode("TestNode", UUID{}, "test", env)); + ASSERT_NE(node, nullptr); + node->OnCompute.Bind("Test", [&] { FAIL(); }); + node->OnError.Bind("Test", [&](auto&& e) { ASSERT_THROW(throw e, std::exception); }); + node->InvokeCompute(); } From b8fa766dac9e64abbc3a6906d95fd00d289a36cd Mon Sep 17 00:00:00 2001 From: Tomas Rigaux Date: Tue, 1 Jul 2025 15:28:18 -0400 Subject: [PATCH 14/20] Adding a few more helpful API functions. --- include/flow/core/Module.hpp | 12 ++++++++++++ src/Module.cpp | 4 ++++ tests/module_test.cpp | 8 ++++---- 3 files changed, 20 insertions(+), 4 deletions(-) diff --git a/include/flow/core/Module.hpp b/include/flow/core/Module.hpp index 2f7e7ac..fb96c18 100644 --- a/include/flow/core/Module.hpp +++ b/include/flow/core/Module.hpp @@ -75,6 +75,18 @@ class Module */ bool Unload(); + /** + * @brief Registers the module nodes with the factory. + * This function will call the `RegisterModule` function from the module binary. + */ + void RegisterModuleNodes(); + + /** + * @brief Unregisters the module nodes from the factory. + * This function will call the `UnregisterModule` function from the module binary. + */ + void UnregisterModuleNodes(); + /** * @brief Registers the module nodes with the provided factory. * @param factory The factory to register nodes with. diff --git a/src/Module.cpp b/src/Module.cpp index fa7ea10..96447cd 100644 --- a/src/Module.cpp +++ b/src/Module.cpp @@ -185,6 +185,10 @@ bool Module::Unload() return true; } +void Module::RegisterModuleNodes() { RegisterModuleNodes(_factory); } + +void Module::UnregisterModuleNodes() { UnregisterModuleNodes(_factory); } + void Module::RegisterModuleNodes(const std::shared_ptr& factory) { if (!_handle) diff --git a/tests/module_test.cpp b/tests/module_test.cpp index 52f8e55..bbf86b9 100644 --- a/tests/module_test.cpp +++ b/tests/module_test.cpp @@ -63,7 +63,7 @@ TEST(ModuleTest, RegisterModuleNodes) Module module(module_path, factory); ASSERT_TRUE(module.IsLoaded()); - ASSERT_NO_THROW(module.RegisterModuleNodes(factory)); + ASSERT_NO_THROW(module.RegisterModuleNodes()); ASSERT_NE(factory->CreateNode("TestNode", UUID{}, "test", env), nullptr); } @@ -72,10 +72,10 @@ TEST(ModuleTest, UnregisterModuleNodes) Module module(module_path, factory); ASSERT_TRUE(module.IsLoaded()); - module.RegisterModuleNodes(factory); + module.RegisterModuleNodes(); ASSERT_NE(factory->CreateNode("TestNode", UUID{}, "test", env), nullptr); - ASSERT_NO_THROW(module.UnregisterModuleNodes(factory)); + ASSERT_NO_THROW(module.UnregisterModuleNodes()); ASSERT_EQ(factory->CreateNode("TestNode", UUID{}, "test", env), nullptr); } @@ -84,7 +84,7 @@ TEST(ModuleTest, RunModuleNodes) Module module(module_path, factory); ASSERT_TRUE(module.IsLoaded()); - module.RegisterModuleNodes(factory); + module.RegisterModuleNodes(); SharedNode node; ASSERT_NO_THROW(node = factory->CreateNode("TestNode", UUID{}, "test", env)); From 1d8b118a7b38337c0f612a26a262d20225c1acdc Mon Sep 17 00:00:00 2001 From: Tomas Rigaux Date: Wed, 2 Jul 2025 09:09:22 -0400 Subject: [PATCH 15/20] Add comment. --- include/flow/core/Module.hpp | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/include/flow/core/Module.hpp b/include/flow/core/Module.hpp index fb96c18..6ab0b0b 100644 --- a/include/flow/core/Module.hpp +++ b/include/flow/core/Module.hpp @@ -36,6 +36,13 @@ struct ModuleMetaData std::string Description; }; +/** + * @brief Class representing a flow module that can be loaded and unloaded. + * + * This class is responsible for managing the lifecycle of a flow module, + * including loading and unloading the module, registering and unregistering nodes, + * and validating module metadata. + */ class Module { struct HandleUnloader From 1e55f2440b89c064311ad327fd18cef96a19222a Mon Sep 17 00:00:00 2001 From: GhostofCookie Date: Wed, 2 Jul 2025 09:23:04 -0400 Subject: [PATCH 16/20] Cleanup and add module licence. --- cmake/FlowModule.cmake | 10 +++++++++- include/flow/core/Module.hpp | 4 +--- tests/test_module/CMakeLists.txt | 2 +- tests/test_module/LICENSE | 21 +++++++++++++++++++++ 4 files changed, 32 insertions(+), 5 deletions(-) create mode 100644 tests/test_module/LICENSE diff --git a/cmake/FlowModule.cmake b/cmake/FlowModule.cmake index 46ab2ce..1ce47de 100644 --- a/cmake/FlowModule.cmake +++ b/cmake/FlowModule.cmake @@ -1,7 +1,7 @@ function(CreateFlowModule module_name) if(CMAKE_SYSTEM_NAME STREQUAL "Linux") set(MODULE_BINARY_DIR "linux") - elseif(CMAKE_SYSTEM_NAME STREQUAL "Darwin") # macOS uses Darwin as its kernel name + elseif(CMAKE_SYSTEM_NAME STREQUAL "Darwin") set(MODULE_BINARY_DIR "macos") elseif(CMAKE_SYSTEM_NAME STREQUAL "Windows") set(MODULE_BINARY_DIR "windows") @@ -24,17 +24,25 @@ function(CreateFlowModule module_name) $ $/${module_name}/${MODULE_BINARY_DIR}/${module_name}${CMAKE_SHARED_LIBRARY_SUFFIX} ) + add_custom_command(TARGET ${module_name} POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/module.json $/${module_name}/module.json ) + add_custom_command(TARGET ${module_name} POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/README.md $/${module_name}/README.md ) + add_custom_command(TARGET ${module_name} POST_BUILD + COMMAND ${CMAKE_COMMAND} -E copy + ${CMAKE_CURRENT_SOURCE_DIR}/LICENSE + $/${module_name}/LICENSE + ) + add_custom_command(TARGET ${module_name} POST_BUILD WORKING_DIRECTORY $ COMMAND ${CMAKE_COMMAND} -E tar -cfv ${CMAKE_CURRENT_BINARY_DIR}/${module_name}.fmod --format=zip ${module_name}/ diff --git a/include/flow/core/Module.hpp b/include/flow/core/Module.hpp index 6ab0b0b..c7b868f 100644 --- a/include/flow/core/Module.hpp +++ b/include/flow/core/Module.hpp @@ -128,11 +128,9 @@ class Module static const std::string FileExtension; private: + std::unique_ptr _handle; std::optional _metadata; - std::vector _dependencies; - std::shared_ptr _factory; - std::unique_ptr _handle; }; FLOW_NAMESPACE_END diff --git a/tests/test_module/CMakeLists.txt b/tests/test_module/CMakeLists.txt index b157341..16ac805 100644 --- a/tests/test_module/CMakeLists.txt +++ b/tests/test_module/CMakeLists.txt @@ -21,7 +21,7 @@ add_dependencies(${PROJECT_NAME} flow-core) target_include_directories(${PROJECT_NAME} PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/include) target_link_libraries(${PROJECT_NAME} PUBLIC flow-core) -include(../../cmake/FlowModule.cmake) +include(${CMAKE_SOURCE_DIR}/cmake/FlowModule.cmake) CreateFlowModule(${PROJECT_NAME}) add_custom_command(TARGET ${PROJECT_NAME} POST_BUILD diff --git a/tests/test_module/LICENSE b/tests/test_module/LICENSE new file mode 100644 index 0000000..6032004 --- /dev/null +++ b/tests/test_module/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2024 InFlowStructure + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. From c3b4844de620cf2cc939457505113bd5d56731c4 Mon Sep 17 00:00:00 2001 From: GhostofCookie Date: Tue, 8 Jul 2025 10:46:55 -0400 Subject: [PATCH 17/20] Get test modules as artifacts. --- .github/workflows/cmake.yml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/.github/workflows/cmake.yml b/.github/workflows/cmake.yml index 7043adc..7811582 100644 --- a/.github/workflows/cmake.yml +++ b/.github/workflows/cmake.yml @@ -51,6 +51,12 @@ jobs: # Build your program with the given configuration run: cmake --build ${{github.workspace}}/build --config ${{env.BUILD_TYPE}} --parallel 18 + - name: Upload Artifacts + uses: actions/upload-artifact@v4 + with: + name: Test Module + path: ${{github.workspace}}/build/tests/test_module.fmod + - name: Test working-directory: ${{github.workspace}}/build # Execute tests defined by the CMake configuration. From d171ede60e56526bc61d7573b26173e8d7ff67ca Mon Sep 17 00:00:00 2001 From: GhostofCookie Date: Tue, 8 Jul 2025 10:49:27 -0400 Subject: [PATCH 18/20] Unique test modules. --- .github/workflows/cmake.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/cmake.yml b/.github/workflows/cmake.yml index 7811582..ee927f0 100644 --- a/.github/workflows/cmake.yml +++ b/.github/workflows/cmake.yml @@ -54,7 +54,7 @@ jobs: - name: Upload Artifacts uses: actions/upload-artifact@v4 with: - name: Test Module + name: Test Module (${{matrix.os}}) path: ${{github.workspace}}/build/tests/test_module.fmod - name: Test From 8d7ffec3d118d0323cd8d81969f0b068a3c64f47 Mon Sep 17 00:00:00 2001 From: GhostofCookie Date: Tue, 22 Jul 2025 10:31:25 -0400 Subject: [PATCH 19/20] Module manager tool beginnings. --- .github/workflows/cmake.yml | 9 --- CMakeLists.txt | 28 ++++--- include/flow/core/Module.hpp | 5 +- src/Module.cpp | 119 ++++++++++++++++------------ tests/test_module/CMakeLists.txt | 4 +- tools/CMakeLists.txt | 1 + tools/module_manager/CMakeLists.txt | 19 +++++ tools/module_manager/src/main.cpp | 75 ++++++++++++++++++ 8 files changed, 187 insertions(+), 73 deletions(-) create mode 100644 tools/CMakeLists.txt create mode 100644 tools/module_manager/CMakeLists.txt create mode 100644 tools/module_manager/src/main.cpp diff --git a/.github/workflows/cmake.yml b/.github/workflows/cmake.yml index ee927f0..41d9f6d 100644 --- a/.github/workflows/cmake.yml +++ b/.github/workflows/cmake.yml @@ -7,7 +7,6 @@ on: branches: ["main"] env: - # Customize the CMake build type here (Release, Debug, RelWithDebInfo, etc.) BUILD_TYPE: Release jobs: @@ -22,9 +21,6 @@ jobs: exclude-regex: "(third_party)" build: - # The CMake configure and build commands are platform agnostic and should work equally well on Windows or Mac. - # You can convert this to a matrix build if you need cross-platform coverage. - # See: https://docs.github.com/en/free-pro-team@latest/actions/learn-github-actions/managing-complex-workflows#using-a-build-matrix strategy: matrix: os: [ubuntu-latest, macos-latest, windows-latest] @@ -43,12 +39,9 @@ jobs: if: matrix.os == 'ubuntu-latest' - name: Configure CMake - # Configure CMake in a 'build' subdirectory. `CMAKE_BUILD_TYPE` is only required if you are using a single-configuration generator such as make. - # See https://cmake.org/cmake/help/latest/variable/CMAKE_BUILD_TYPE.html?highlight=cmake_build_type run: cmake -B ${{github.workspace}}/build -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} -Dflow-core_BUILD_TESTS=ON - name: Build - # Build your program with the given configuration run: cmake --build ${{github.workspace}}/build --config ${{env.BUILD_TYPE}} --parallel 18 - name: Upload Artifacts @@ -59,6 +52,4 @@ jobs: - name: Test working-directory: ${{github.workspace}}/build - # Execute tests defined by the CMake configuration. - # See https://cmake.org/cmake/help/latest/manual/ctest.1.html for more detail run: ctest -C ${{env.BUILD_TYPE}} --output-on-failure diff --git a/CMakeLists.txt b/CMakeLists.txt index 5e13967..f208656 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -18,8 +18,9 @@ endif() # Options # ----------------------------------------------------------------------------- -option(flow-core_BUILD_TESTS "Build tests - requires gtest" OFF) -option(flow-core_INSTALL "Add installation targets" OFF) +option(${PROJECT_NAME}_BUILD_TESTS "Build tests (gtest)" OFF) +option(${PROJECT_NAME}_BUILD_TOOLS "Build tools" OFF) +option(${PROJECT_NAME}_INSTALL "Add installation targets" OFF) # ----------------------------------------------------------------------------- # Dependencies @@ -40,10 +41,10 @@ set_target_properties(zipper PROPERTIES # Library # ----------------------------------------------------------------------------- -set(flow-core_HEADERS_DIR "${CMAKE_CURRENT_LIST_DIR}/include") -file(GLOB flow-core_HEADERS "${flow-core_HEADERS_DIR}/flow/core/*.hpp") +set(${PROJECT_NAME}_HEADERS_DIR "${CMAKE_CURRENT_LIST_DIR}/include") +file(GLOB ${PROJECT_NAME}_HEADERS "${${PROJECT_NAME}_HEADERS_DIR}/flow/core/*.hpp") file(GLOB thread-pool_HEADERS "${thread-pool_SOURCE_DIR}/include/*.hpp") -list(APPEND ${flow-core_HEADERS} ${thread-pool_HEADERS}) +list(APPEND ${${PROJECT_NAME}_HEADERS} ${thread-pool_HEADERS}) add_library(${PROJECT_NAME} SHARED src/Connection.cpp @@ -57,10 +58,11 @@ add_library(${PROJECT_NAME} SHARED src/TypeConversion.cpp src/UUID.cpp - ${flow-core_HEADERS} + ${${PROJECT_NAME}_HEADERS} ) add_library(${PROJECT_NAME}::${PROJECT_NAME} ALIAS ${PROJECT_NAME}) +target_compile_definitions(${PROJECT_NAME} PRIVATE FLOW_CORE_EXPORT) target_include_directories(${PROJECT_NAME} PUBLIC @@ -102,11 +104,11 @@ target_link_libraries(${PROJECT_NAME} PRIVATE # Install # ----------------------------------------------------------------------------- -if(flow-core_INSTALL) +if(${PROJECT_NAME}_INSTALL) set(export_destination "${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME}") set(export_targets ${PROJECT_NAME}) - if (NOT flow-core_USE_EXTERNAL_JSON) + if (NOT ${PROJECT_NAME}_USE_EXTERNAL_JSON) list(APPEND export_targets nlohmann_json) endif() @@ -145,7 +147,15 @@ endif() # Tests # ----------------------------------------------------------------------------- -if (flow-core_BUILD_TESTS) +if (${PROJECT_NAME}_BUILD_TESTS) enable_testing() add_subdirectory(tests) endif() + +# ----------------------------------------------------------------------------- +# Tools +# ----------------------------------------------------------------------------- + +if (${PROJECT_NAME}_BUILD_TOOLS) + add_subdirectory(tools) +endif() diff --git a/include/flow/core/Module.hpp b/include/flow/core/Module.hpp index c7b868f..a094f16 100644 --- a/include/flow/core/Module.hpp +++ b/include/flow/core/Module.hpp @@ -23,6 +23,8 @@ class NodeFactory; */ struct ModuleMetaData { + static void Validate(const json& module_json); + /// The name of the module. std::string Name; @@ -118,9 +120,6 @@ class Module */ const std::optional& GetMetaData() const noexcept { return _metadata; } - private: - void ValidateMetaData(const json& module_json); - public: /** * @brief The file extension for module metadata files. diff --git a/src/Module.cpp b/src/Module.cpp index 96447cd..78d7c92 100644 --- a/src/Module.cpp +++ b/src/Module.cpp @@ -24,6 +24,25 @@ FLOW_NAMESPACE_BEGIN using namespace zipper; +struct formatted_error : public std::runtime_error +{ + template + formatted_error(const std::format_string fmt, Args&&... args) + : runtime_error(std::format(fmt, std::forward(args)...)) + { + } +}; + +struct runtime_error : public formatted_error +{ + using formatted_error::formatted_error; +}; + +struct invalid_argument : public formatted_error +{ + using formatted_error::formatted_error; +}; + NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE(ModuleMetaData, Name, Version, Author, Description); const std::string Module::FileExtension = "fmod"; @@ -38,6 +57,8 @@ constexpr const char* platform = "linux"; #ifdef FLOW_X86_64 constexpr const char* architecture = "x86_64"; +#elif defined(FLOW_X86) +constexpr const char* architecture = "x86"; #elif defined(FLOW_ARM) constexpr const char* architecture = "arm64"; #else @@ -86,10 +107,42 @@ std::filesystem::path GetTempModulePath() return temp_path; } +void ModuleMetaData::Validate(const json& mod_j) +{ + if (!mod_j.contains("Name") || !mod_j["Name"].is_string()) + { + throw std::invalid_argument("Module metadata is missing 'Name' field or it is not a string."); + } + + if (!mod_j.contains("Version") || !mod_j["Version"].is_string()) + { + throw std::invalid_argument("Module metadata is missing 'Version' field or it is not a string."); + } + + std::regex semver_regex(R"(^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)$)"); + const std::string& version = mod_j["Version"].get_ref(); + + if (!std::regex_match(version, semver_regex)) + { + throw flow::invalid_argument("Module metadata 'Version' field is not a valid semantic version. (version={})", + version); + } + + if (!mod_j.contains("Author") || !mod_j["Author"].is_string()) + { + throw std::invalid_argument("Module metadata is missing 'Author' field or it is not a string."); + } + + if (!mod_j.contains("Description") || !mod_j["Description"].is_string()) + { + throw std::invalid_argument("Module metadata is missing 'Description' field or it is not a string."); + } +} + void Module::HandleUnloader::operator()(void* handle) { #ifdef FLOW_WINDOWS - if (!FreeLibrary(std::bit_cast(handle))) + if (!FreeLibrary(reinterpret_cast(handle))) #else if (dlclose(handle) != 0) #endif @@ -129,43 +182,40 @@ bool Module::Load(const std::filesystem::path& path) if (!std::filesystem::exists(path)) { - throw std::runtime_error(std::format("Path does not exist. (file={})", path.string())); + throw flow::runtime_error("Path does not exist. (file={})", path.string()); } if (!std::filesystem::is_regular_file(path)) { - throw std::runtime_error(std::format("Path is not a file. (file={})", path.string())); + throw flow::runtime_error("Path is not a file. (file={})", path.string()); } Unzipper unzipper(path.string()); if (!unzipper.isOpened()) { - throw std::runtime_error(std::format("Failed to open module archive. (file={})", path.string())); + throw flow::runtime_error("Failed to open module archive. (file={})", path.string()); } unzipper.extractAll(GetTempModulePath().string(), Unzipper::OverwriteMode::Overwrite); unzipper.close(); - const auto module_metadata_path = GetModuleMetaDataPath(GetTempModulePath() / path.stem()); - std::ifstream metadata_fs(module_metadata_path); - json module_j = json::parse(metadata_fs); - ValidateMetaData(module_j); + json module_j = json::parse(std::ifstream(GetModuleMetaDataPath(GetTempModulePath() / path.stem()))); + ModuleMetaData::Validate(module_j); _metadata = module_j; - auto module_binary_path = GetModuleBinaryPath(GetTempModulePath() / path.stem()); + auto binary_path = GetModuleBinaryPath(GetTempModulePath() / path.stem()); #ifdef UNICODE - auto handle = LoadModuleLibrary(module_binary_path.wstring()); + auto handle = LoadModuleLibrary(binary_path.wstring()); #else - auto handle = LoadModuleLibrary(module_binary_path.string()); + auto handle = LoadModuleLibrary(binary_path.string()); #endif if (!handle) { - throw std::runtime_error( - std::format("Failed to load module binary. (binary_path={})", module_binary_path.string())); + throw flow::runtime_error("Failed to load module binary. (binary_path={})", binary_path.string()); } - _handle.reset(std::bit_cast(handle)); + _handle.reset(reinterpret_cast(handle)); RegisterModuleNodes(_factory); @@ -202,11 +252,12 @@ void Module::RegisterModuleNodes(const std::shared_ptr& factory) } #ifdef FLOW_WINDOWS - auto register_func = GetProcAddress(std::bit_cast(_handle.get()), NodeFactory::RegisterModuleFuncName); + auto register_func = + GetProcAddress(reinterpret_cast(_handle.get()), NodeFactory::RegisterModuleFuncName); #else auto register_func = dlsym(_handle.get(), NodeFactory::RegisterModuleFuncName); #endif - if (auto RegisterModule_func = std::bit_cast(register_func)) [[likely]] + if (auto RegisterModule_func = reinterpret_cast(register_func)) [[likely]] { return RegisterModule_func(factory); } @@ -227,11 +278,11 @@ void Module::UnregisterModuleNodes(const std::shared_ptr& factory) } #ifdef FLOW_WINDOWS - auto unregister = GetProcAddress(std::bit_cast(_handle.get()), NodeFactory::UnregisterModuleFuncName); + auto unregister = GetProcAddress(reinterpret_cast(_handle.get()), NodeFactory::UnregisterModuleFuncName); #else auto unregister = dlsym(_handle.get(), NodeFactory::UnregisterModuleFuncName); #endif - if (auto UnregisterModule_func = std::bit_cast(unregister)) [[likely]] + if (auto UnregisterModule_func = reinterpret_cast(unregister)) [[likely]] { return UnregisterModule_func(factory); } @@ -239,36 +290,4 @@ void Module::UnregisterModuleNodes(const std::shared_ptr& factory) throw std::runtime_error("Failed to load symbols for UnregisterModule."); } -void Module::ValidateMetaData(const json& mod_j) -{ - if (!mod_j.contains("Name") || !mod_j["Name"].is_string()) - { - throw std::invalid_argument("Module metadata is missing 'Name' field or it is not a string."); - } - - if (!mod_j.contains("Version") || !mod_j["Version"].is_string()) - { - throw std::invalid_argument("Module metadata is missing 'Version' field or it is not a string."); - } - - std::regex semver_regex(R"(^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)$)"); - const std::string& version = mod_j["Version"].get_ref(); - - if (!std::regex_match(version, semver_regex)) - { - throw std::invalid_argument( - std::format("Module metadata 'Version' field is not a valid semantic version. (version={})", version)); - } - - if (!mod_j.contains("Author") || !mod_j["Author"].is_string()) - { - throw std::invalid_argument("Module metadata is missing 'Author' field or it is not a string."); - } - - if (!mod_j.contains("Description") || !mod_j["Description"].is_string()) - { - throw std::invalid_argument("Module metadata is missing 'Description' field or it is not a string."); - } -} - FLOW_NAMESPACE_END diff --git a/tests/test_module/CMakeLists.txt b/tests/test_module/CMakeLists.txt index 16ac805..9df73b5 100644 --- a/tests/test_module/CMakeLists.txt +++ b/tests/test_module/CMakeLists.txt @@ -25,6 +25,6 @@ include(${CMAKE_SOURCE_DIR}/cmake/FlowModule.cmake) CreateFlowModule(${PROJECT_NAME}) add_custom_command(TARGET ${PROJECT_NAME} POST_BUILD - COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_BINARY_DIR}/test_module.fmod ${CMAKE_BINARY_DIR}/tests - COMMENT "Copy ${CMAKE_CURRENT_BINARY_DIR}/test_module.fmod to ${CMAKE_BINARY_DIR}/tests" + COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_BINARY_DIR}/test_module.fmod $ + COMMENT "Copy ${CMAKE_CURRENT_BINARY_DIR}/test_module.fmod to $" ) diff --git a/tools/CMakeLists.txt b/tools/CMakeLists.txt new file mode 100644 index 0000000..4396939 --- /dev/null +++ b/tools/CMakeLists.txt @@ -0,0 +1 @@ +add_subdirectory(module_manager) diff --git a/tools/module_manager/CMakeLists.txt b/tools/module_manager/CMakeLists.txt new file mode 100644 index 0000000..0733572 --- /dev/null +++ b/tools/module_manager/CMakeLists.txt @@ -0,0 +1,19 @@ +cmake_minimum_required(VERSION 3.10) + +project(flow_module_manager VERSION 0.0.0 LANGUAGES CXX) + +set(CMAKE_CXX_STANDARD 20) +set(CMAKE_CXX_STANDARD_REQUIRED ON) + +CPMAddPackage("gh:jarro2783/cxxopts@3.2.0") + +add_executable(${PROJECT_NAME} src/main.cpp) +target_link_libraries(${PROJECT_NAME} PRIVATE flow-core zipper cxxopts) + +if(MSVC) + add_custom_command(TARGET ${PROJECT_NAME} POST_BUILD + COMMAND ${CMAKE_COMMAND} -E copy_if_different + $ + $ + ) +endif() \ No newline at end of file diff --git a/tools/module_manager/src/main.cpp b/tools/module_manager/src/main.cpp new file mode 100644 index 0000000..6cf2bdc --- /dev/null +++ b/tools/module_manager/src/main.cpp @@ -0,0 +1,75 @@ +#include +#include +#include +#include + +#include +#include +#include + +using json = nlohmann::json; +using namespace zipper; + +int main(int argc, char** argv) +{ + // clang-format off + cxxopts::Options options("FlowModuleManager"); + options.add_options() + ("f,file", "Flow file to open", cxxopts::value()) + ("h,help", "Print usage"); + // clang-format on + + cxxopts::ParseResult result; + + try + { + result = options.parse(argc, argv); + } + catch (const cxxopts::exceptions::exception& e) + { + std::cerr << "Caught exception while parsing arguments: " << e.what() << std::endl; + return EXIT_FAILURE; + } + + if (result.count("help")) + { + std::cerr << options.help() << std::endl; + return EXIT_SUCCESS; + } + + if (result.count("file") == 0) + { + std::cerr << "No fmod file provided" << std::endl; + return EXIT_FAILURE; + } + + const auto temp_path = std::filesystem::temp_directory_path() / "tmp_flow_modules"; + + try + { + std::filesystem::path fmod_file_path = result["file"].as(); + if (!std::filesystem::exists(fmod_file_path) || !std::filesystem::is_regular_file(fmod_file_path)) + { + std::cerr << fmod_file_path.string() << " is not a file" << std::endl; + return EXIT_FAILURE; + } + + Unzipper unzipper(fmod_file_path.string()); + if (!unzipper.isOpened()) + { + throw std::runtime_error(std::format("Failed to open module archive. (file={})", fmod_file_path.string())); + } + + unzipper.extractAll((temp_path).string(), Unzipper::OverwriteMode::Overwrite); + unzipper.close(); + + flow::ModuleMetaData::Validate(json::parse(std::ifstream(temp_path / fmod_file_path.stem() / "module.json"))); + } + catch (const std::exception& e) + { + std::cerr << e.what() << std::endl; + return EXIT_FAILURE; + } + + return EXIT_SUCCESS; +} \ No newline at end of file From b9601f3a138b058ac348baafc9b9df5b693a494b Mon Sep 17 00:00:00 2001 From: GhostofCookie Date: Tue, 22 Jul 2025 11:01:04 -0400 Subject: [PATCH 20/20] Fix github windows build. --- tests/test_module/CMakeLists.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/test_module/CMakeLists.txt b/tests/test_module/CMakeLists.txt index 9df73b5..16ac805 100644 --- a/tests/test_module/CMakeLists.txt +++ b/tests/test_module/CMakeLists.txt @@ -25,6 +25,6 @@ include(${CMAKE_SOURCE_DIR}/cmake/FlowModule.cmake) CreateFlowModule(${PROJECT_NAME}) add_custom_command(TARGET ${PROJECT_NAME} POST_BUILD - COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_BINARY_DIR}/test_module.fmod $ - COMMENT "Copy ${CMAKE_CURRENT_BINARY_DIR}/test_module.fmod to $" + COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_BINARY_DIR}/test_module.fmod ${CMAKE_BINARY_DIR}/tests + COMMENT "Copy ${CMAKE_CURRENT_BINARY_DIR}/test_module.fmod to ${CMAKE_BINARY_DIR}/tests" )