Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 3 additions & 1 deletion dev_support/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
# Only mock Demo and test tools link these kFixture registrations.
# A single OBJECT target inserts each registration exactly once per consumer.
add_library(edgeflow_demo_fixture_models OBJECT inference/test_biz_models.cpp)
file(GLOB_RECURSE EDGEFLOW_DEMO_FIXTURE_SOURCES CONFIGURE_DEPENDS
"${CMAKE_CURRENT_SOURCE_DIR}/inference/*.cpp")
add_library(edgeflow_demo_fixture_models OBJECT ${EDGEFLOW_DEMO_FIXTURE_SOURCES})
target_link_libraries(edgeflow_demo_fixture_models PRIVATE
edgeflow_internal_headers llm_edgeflow::internal_runtime)
8 changes: 5 additions & 3 deletions doc/dev_guide/source_layout.md
Original file line number Diff line number Diff line change
Expand Up @@ -96,8 +96,10 @@ cmake -P tests/contract/architecture/test_cmake_structure.cmake
Engine 的 `backends/` 单独归 Backend 目标。Adapter 的 `shared_algorithm_runtime.cpp`
与本地日志等级实现 `src/log.cpp` 显式归组合根。CLI 的两个可执行入口及 Demo 的 `main.cpp` 从公共实现中排除,
分别归自己的可执行目标。新增独立目标时仍须声明其入口和归属,不能混入已有目标。
测试按 `tests/RuntimeTests.cmake` 的目录和命名规则收集。跨 runner、进程隔离、生成源码及
可选 E2E 目标保留显式登记。常规 GoogleTest 用例自动发现并生成 CTest 入口。
测试按 `tests/RuntimeTests.cmake` 的目录和命名规则递归收集;`dev_support/` 的示例和推理夹具
也按所属目录递归收集。跨 runner、进程隔离、生成源码及可选 E2E 目标保留显式登记。
常规 GoogleTest 用例和脚本测试自动生成 CTest 入口;命名、参数和新增文件的规则见
[测试收集](../../tests/README.md#开发与收集)。

## 头文件的三种使用范围

Expand Down Expand Up @@ -166,7 +168,7 @@ CMake 缓存变量 `EDGEFLOW_OPERATOR_SHELL`(默认 `mock`)为每个构建
以上三个必需目录缺一时配置失败。Adapter、Demo、测试 runner 和集成层头视图的通配收集
先排除全部具体壳及 `operator_shell/<shell>/` 夹具目录,再加入选中项。壳无关一致性套件位于
`tests/contract/operator_shell/` 本层。公共头视图和平台声明仍使用当前来源;该机制只隔离源码与
夹具,不表示已经可以切换真实平台头。`OperatorShellSelectionTest` 检查默认选择、缺失目录失败、
夹具,不表示已经可以切换真实平台头。`contract/architecture/test_operator_shell_selection.cmake` 检查默认选择、缺失目录失败、
未选中壳的排除,以及生产目标不含测试驱动和清单。

编写转换器时,包含 `adapter/io_converter.h` 和 `adapter/converter_authoring.h`。
Expand Down
2 changes: 1 addition & 1 deletion scripts/check_layer_isolation.sh
Original file line number Diff line number Diff line change
Expand Up @@ -116,7 +116,7 @@ echo "✅ [LayerGuard PASS] Backend vendor resources and Qwen generation semanti

if [[ -n "${LLM_EDGEFLOW_LAYER_COMPILE_MANIFEST:-}" ]]; then
cmake "-DLAYER_COMPILE_MANIFEST=${LLM_EDGEFLOW_LAYER_COMPILE_MANIFEST}" \
-P "${REPO_ROOT}/tests/contract/architecture/test_layer_header_views.cmake"
-P "${REPO_ROOT}/tests/contract/architecture/layer_header_view_checks.cmake"
fi

echo "======================================================================"
Expand Down
2 changes: 1 addition & 1 deletion scripts/run_sanitizers.sh
Original file line number Diff line number Diff line change
Expand Up @@ -157,7 +157,7 @@ else
echo ">>> Running full sanitized CTest suite with [${SANITIZERS}] <<<"
fi
if [[ "${DETECT_LEAKS:-0}" == "1" ]] || [[ "${SANITIZERS}" == *"thread"* ]]; then
CTEST_ARGS+=( -E '^PipelineStudioServerTest$' )
CTEST_ARGS+=( -E '^tooling/test_pipeline_studio\.py$' )
fi
(
cd "${BUILD_DIR}"
Expand Down
35 changes: 1 addition & 34 deletions tests/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -40,41 +40,8 @@ endfunction()

find_package(Python3 COMPONENTS Interpreter REQUIRED)

set(_edgeflow_guard_platform_flags "")
foreach(flag IN LISTS edgeflow_cxx_platform_flags)
list(APPEND _edgeflow_guard_platform_flags "--cxx-flag=${flag}")
endforeach()
set(_edgeflow_guard_sanitizers "")
if(ENABLE_SANITIZERS)
list(APPEND _edgeflow_guard_sanitizers --sanitizers "${LLM_EDGEFLOW_SANITIZERS}")
endif()
add_test(NAME QualityGateScriptsContractTest
COMMAND ${Python3_EXECUTABLE}
${PROJECT_SOURCE_DIR}/tests/contract/architecture/test_quality_gate_contract.py
--cxx ${CMAKE_CXX_COMPILER}
${_edgeflow_guard_platform_flags}
${_edgeflow_guard_sanitizers}
--gtest-include $<TARGET_PROPERTY:GTest::gtest,INTERFACE_INCLUDE_DIRECTORIES>
--gtest-library $<TARGET_FILE:GTest::gtest>
--gtest-main ${PROJECT_SOURCE_DIR}/tests/support/gtest_main.cpp
--ctest-policy ${PROJECT_SOURCE_DIR}/tests/SafeGtestDiscovery.cmake)

include(${CMAKE_CURRENT_LIST_DIR}/RuntimeTests.cmake)

add_test(NAME JsonPromptDemoTest
COMMAND ${Python3_EXECUTABLE} ${PROJECT_SOURCE_DIR}/tests/tooling/test_json_prompt_demo.py)
set_tests_properties(JsonPromptDemoTest PROPERTIES
WORKING_DIRECTORY "${PROJECT_SOURCE_DIR}"
LABELS "tier3;tooling;dev-fast;sanitizer-compatible"
ENVIRONMENT "LLM_EDGEFLOW_DEMO_BINARY=$<TARGET_FILE:alg_demo>")

add_test(NAME TestLabelsContractTest
COMMAND ${Python3_EXECUTABLE}
${PROJECT_SOURCE_DIR}/tests/contract/architecture/test_test_labels_contract.py
--build-dir ${PROJECT_BINARY_DIR})
set_tests_properties(QualityGateScriptsContractTest TestLabelsContractTest PROPERTIES
WORKING_DIRECTORY "${PROJECT_SOURCE_DIR}"
LABELS "tier1;static-gate;dev-fast;sanitizer-compatible")
include(${CMAKE_CURRENT_LIST_DIR}/ScriptTests.cmake)

option(ENABLE_REAL_MODEL_TESTS "Enable real model weights E2E test suite" OFF)
if(ENABLE_REAL_MODEL_TESTS)
Expand Down
11 changes: 9 additions & 2 deletions tests/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -43,10 +43,17 @@ cmake --build build --target edgeflow_test_nodes_runner -j4
```

四个 runner 的源码目录在 `RuntimeTests.cmake` 中定义。GoogleTest 从编译出的用例生成 CTest
入口,包括脚手架生成的测试。新测试套件无需手动注册名称。`TestLabelsContractTest`
入口,包括脚手架生成的测试。新测试套件无需手动注册名称。`contract/architecture/test_test_labels_contract.py`
把实际用例与 CTest 过滤器对照,拒绝空匹配、漏执行、重复执行及不明确的 tier,
同时拒绝禁用的 CTest 条目和仅列举 GoogleTest 用例的命令。
独立 registry/SDK 目标保持进程和公开依赖隔离。
常规 `test_*.cpp` 和 `dev_support/` 所属目录中的 `.cpp` 递归收集,增删后在下次构建自动更新。
独立 registry/SDK 目标保持进程和公开依赖隔离;生成源码和可选 E2E 仍显式声明。

`contract/`、`tooling/` 下的 `test_*.py`、`test_*.sh`、`test_*.cmake` 自动注册,
CTest 名称为相对 `tests/` 的路径。只有独立测试入口使用 `test_*` 前缀。
特殊参数在 `ScriptTests.cmake` 中配置 `EDGEFLOW_TEST_ARGS`,环境和标签通过 `set_tests_properties` 配置。
Studio 自动发现 `studio_*_test.mjs`;浏览器测试仍按 Playwright 环境变量启用。

runner 只收集 `EDGEFLOW_OPERATOR_SHELL` 选中壳的 `operator_shell/<shell>/` 目录,规则见
[Operator 壳选择](../doc/dev_guide/source_layout.md#operator-壳选择)。一致性场景通过驱动调用
公共入口,不直接使用平台结构或数字错误码;场景检查返回 `::testing::AssertionResult`,
Expand Down
112 changes: 27 additions & 85 deletions tests/RuntimeTests.cmake
Original file line number Diff line number Diff line change
@@ -1,15 +1,25 @@
# 分片的 Google Test runner 与按标签驱动的开发测试矩阵。

# Collect each runner's owned directories, including nested tests. Concrete
# Operator shells share a directory convention; only the selected shell is used.
function(edgeflow_collect_test_files output_var)
file(GLOB_RECURSE sources CONFIGURE_DEPENDS ${ARGN})
set(selected)
foreach(source IN LISTS sources)
file(RELATIVE_PATH relative "${PROJECT_SOURCE_DIR}" "${source}")
if(relative MATCHES "/operator_shell/([^/]+)/" AND
NOT CMAKE_MATCH_1 STREQUAL EDGEFLOW_OPERATOR_SHELL)
continue()
endif()
list(APPEND selected "${source}")
endforeach()
set(${output_var} "${selected}" PARENT_SCOPE)
endfunction()

include(${CMAKE_CURRENT_LIST_DIR}/ScaffoldFixtures.cmake)

option(LLM_EDGEFLOW_TEST_PCH "Enable precompiled headers for test runners" OFF)

add_test(NAME ThirdPartyCacheMetadataTest
COMMAND ${CMAKE_COMMAND}
-DPROJECT_SOURCE_DIR=${PROJECT_SOURCE_DIR}
-DTEST_ROOT=${PROJECT_BINARY_DIR}/third_party_cache_metadata_test
-P ${PROJECT_SOURCE_DIR}/tests/contract/architecture/test_third_party_cache_metadata.cmake)

# Runtime runners share only their test entrypoint, runtime link and optional PCH.
# Fixture sources, allocation instrumentation and component libraries stay local.
function(edgeflow_configure_gtest_target target_name)
Expand All @@ -31,7 +41,7 @@ endfunction()
# 只扫描每个 runner 自有的测试目录。生成的源码、进程隔离的契约测试和
# 需显式开启的 E2E 目标保持显式列出。CONFIGURE_DEPENDS 使增删文件在下次
# 构建时触发重新生成 (CMake 3.19)。
file(GLOB EDGEFLOW_TEST_CORE_SRCS CONFIGURE_DEPENDS
edgeflow_collect_test_files(EDGEFLOW_TEST_CORE_SRCS
"${CMAKE_CURRENT_SOURCE_DIR}/unit/core/test_*.cpp"
"${CMAKE_CURRENT_SOURCE_DIR}/unit/engine/test_*.cpp"
"${CMAKE_CURRENT_SOURCE_DIR}/unit/logging/test_*.cpp")
Expand Down Expand Up @@ -118,7 +128,7 @@ if(LLM_EDGEFLOW_HAS_ONNXRUNTIME)
"{\"pipe_path\":\"pipeline_cross_rerank_missing_model.json\"}\n")
endif()

file(GLOB EDGEFLOW_TEST_NODE_SRCS CONFIGURE_DEPENDS
edgeflow_collect_test_files(EDGEFLOW_TEST_NODE_SRCS
"${CMAKE_CURRENT_SOURCE_DIR}/unit/nodes/test_*.cpp"
"${CMAKE_CURRENT_SOURCE_DIR}/unit/contracts/test_*.cpp")
add_executable(edgeflow_test_nodes_runner
Expand All @@ -130,30 +140,22 @@ target_link_libraries(edgeflow_test_nodes_runner PRIVATE edgeflow_test_allocatio

# 壳无关一致性套件位于 contract/operator_shell/;具体壳的驱动、清单及依赖其
# 载体的测试位于各 runner 目录下的 operator_shell/<shell>/,只收集选中的壳。
set(EDGEFLOW_TEST_SHELL "operator_shell/${EDGEFLOW_OPERATOR_SHELL}")
file(GLOB EDGEFLOW_TEST_ADAPTER_SRCS CONFIGURE_DEPENDS
edgeflow_collect_test_files(EDGEFLOW_TEST_ADAPTER_SRCS
"${CMAKE_CURRENT_SOURCE_DIR}/unit/adapter/test_*.cpp"
"${CMAKE_CURRENT_SOURCE_DIR}/unit/operator/test_*.cpp"
"${CMAKE_CURRENT_SOURCE_DIR}/integration/operator/test_*.cpp"
"${CMAKE_CURRENT_SOURCE_DIR}/contract/operator_shell/*.cpp"
"${CMAKE_CURRENT_SOURCE_DIR}/contract/${EDGEFLOW_TEST_SHELL}/*.cpp"
"${CMAKE_CURRENT_SOURCE_DIR}/unit/operator/${EDGEFLOW_TEST_SHELL}/test_*.cpp"
"${CMAKE_CURRENT_SOURCE_DIR}/integration/operator/${EDGEFLOW_TEST_SHELL}/test_*.cpp"
)
"${CMAKE_CURRENT_SOURCE_DIR}/contract/operator_shell/*.cpp")
list(APPEND EDGEFLOW_TEST_ADAPTER_SRCS "${EDGEFLOW_CONTROL_FIXTURE_SOURCE}")
add_executable(edgeflow_test_adapter_runner
${EDGEFLOW_TEST_ADAPTER_SRCS}
)
edgeflow_configure_gtest_target(edgeflow_test_adapter_runner)
target_link_libraries(edgeflow_test_adapter_runner PRIVATE edgeflow_test_allocation_failure)

file(GLOB EDGEFLOW_TEST_TOOLING_SRCS CONFIGURE_DEPENDS
edgeflow_collect_test_files(EDGEFLOW_TEST_TOOLING_SRCS
"${CMAKE_CURRENT_SOURCE_DIR}/integration/demo/test_*.cpp"
"${CMAKE_CURRENT_SOURCE_DIR}/integration/demo/${EDGEFLOW_TEST_SHELL}/test_*.cpp")
list(APPEND EDGEFLOW_TEST_TOOLING_SRCS
"${CMAKE_CURRENT_SOURCE_DIR}/integration/pipeline/test_pipeline_catalog_validator.cpp"
"${CMAKE_CURRENT_SOURCE_DIR}/integration/pipeline/test_pipeline_authoring.cpp"
"${EDGEFLOW_CONTROL_FIXTURE_SOURCE}")
"${CMAKE_CURRENT_SOURCE_DIR}/integration/pipeline/test_*.cpp")
list(APPEND EDGEFLOW_TEST_TOOLING_SRCS "${EDGEFLOW_CONTROL_FIXTURE_SOURCE}")
add_executable(edgeflow_test_tooling_runner
${EDGEFLOW_TEST_TOOLING_SRCS}
$<TARGET_OBJECTS:edgeflow_demo_objects>
Expand Down Expand Up @@ -245,10 +247,6 @@ set_tests_properties(CppOperatorSdkTest PROPERTIES
WORKING_DIRECTORY "${PROJECT_SOURCE_DIR}" LABELS "${_edgeflow_tier2}")

# 架构与源码治理门禁。
add_test(NAME CMakeStructureTest
COMMAND ${CMAKE_COMMAND}
-DPROJECT_SOURCE_DIR=${PROJECT_SOURCE_DIR}
-P ${PROJECT_SOURCE_DIR}/tests/contract/architecture/test_cmake_structure.cmake)
# 记录各目标实际源码,供壳选择检查确认生产目标不含测试驱动与清单。
set(_edgeflow_shell_manifest "set(operator_shell [==[${EDGEFLOW_OPERATOR_SHELL}]==])\n")
set(_edgeflow_shell_production_targets
Expand All @@ -267,73 +265,26 @@ foreach(target IN LISTS _edgeflow_shell_production_targets _edgeflow_shell_test_
endforeach()
file(GENERATE OUTPUT "${PROJECT_BINARY_DIR}/operator_shell_sources_$<CONFIG>.cmake"
CONTENT "${_edgeflow_shell_manifest}")
add_test(NAME OperatorShellSelectionTest
COMMAND ${CMAKE_COMMAND}
-DTEST_ROOT=${PROJECT_BINARY_DIR}/operator_shell_selection_test
"-DSOURCE_MANIFEST=${PROJECT_BINARY_DIR}/operator_shell_sources_$<CONFIG>.cmake"
-P ${PROJECT_SOURCE_DIR}/tests/contract/architecture/test_operator_shell_selection.cmake)
add_test(NAME LayerGuardTest
COMMAND ${CMAKE_COMMAND} -E env
"LLM_EDGEFLOW_LAYER_COMPILE_MANIFEST=${PROJECT_BINARY_DIR}/layer_includes/compile_checks_$<CONFIG>.cmake"
${PROJECT_SOURCE_DIR}/scripts/check_layer_isolation.sh)
add_test(NAME LayerGuardSelfTest
COMMAND ${Python3_EXECUTABLE}
${PROJECT_SOURCE_DIR}/tests/contract/architecture/test_layer_guard_contract.py)
add_test(NAME SpecSignatureDiagnosticsTest
COMMAND ${CMAKE_COMMAND}
"-DLAYER_COMPILE_MANIFEST=${PROJECT_BINARY_DIR}/layer_includes/compile_checks_$<CONFIG>.cmake"
-P "${PROJECT_SOURCE_DIR}/tests/contract/authoring/test_spec_signature_diagnostics.cmake")
add_test(NAME ArchitectureDocsDriftTest
COMMAND ${PROJECT_SOURCE_DIR}/scripts/check_architecture_docs.sh)
add_test(NAME ArchitectureDocsDriftGateSelfTest
COMMAND ${PROJECT_SOURCE_DIR}/tests/contract/architecture/test_architecture_docs_drift_gate.sh)
add_test(NAME GovernanceConsistencyTest
COMMAND ${PROJECT_SOURCE_DIR}/scripts/check_governance.sh)
add_test(NAME DocLinksTest
COMMAND ${Python3_EXECUTABLE} ${PROJECT_SOURCE_DIR}/scripts/check_doc_links.py)
add_test(NAME DocLinksSelfTest
COMMAND ${Python3_EXECUTABLE}
${PROJECT_SOURCE_DIR}/tests/contract/architecture/test_doc_links_contract.py)
add_test(NAME DiagramAssetsCheckTest
COMMAND ${PROJECT_SOURCE_DIR}/scripts/render_architecture_diagrams.sh --check)
add_test(NAME DiagramRenderGateSelfTest
COMMAND ${PROJECT_SOURCE_DIR}/tests/contract/architecture/test_diagram_render_gate.sh)
add_test(NAME ScriptGeneratorDetectionTest
COMMAND ${PROJECT_SOURCE_DIR}/tests/contract/architecture/test_script_generator_detection.sh)
set_tests_properties(
CMakeStructureTest ThirdPartyCacheMetadataTest SpecSignatureDiagnosticsTest
OperatorShellSelectionTest
LayerGuardTest LayerGuardSelfTest ArchitectureDocsDriftTest
ArchitectureDocsDriftGateSelfTest GovernanceConsistencyTest
DocLinksTest DocLinksSelfTest ScriptGeneratorDetectionTest
LayerGuardTest ArchitectureDocsDriftTest GovernanceConsistencyTest DocLinksTest
PROPERTIES WORKING_DIRECTORY "${PROJECT_SOURCE_DIR}"
LABELS "tier1;static-gate;dev-fast;sanitizer-compatible")
set_tests_properties(DiagramAssetsCheckTest DiagramRenderGateSelfTest
PROPERTIES WORKING_DIRECTORY "${PROJECT_SOURCE_DIR}"
set_tests_properties(DiagramAssetsCheckTest PROPERTIES
WORKING_DIRECTORY "${PROJECT_SOURCE_DIR}"
LABELS "tier4;tooling;static-gate;slow")

add_test(NAME PipelineStudioServerTest
COMMAND ${Python3_EXECUTABLE}
${PROJECT_SOURCE_DIR}/tests/tooling/test_pipeline_studio.py)
set_tests_properties(PipelineStudioServerTest PROPERTIES
ENVIRONMENT
"LLM_EDGEFLOW_PIPELINE_TOOL=$<TARGET_FILE:alg_pipeline_tool_test>;LLM_EDGEFLOW_SELECTION_TOOL=$<TARGET_FILE:alg_pipeline_tool>;LLM_EDGEFLOW_DEMO_BINARY=$<TARGET_FILE:alg_demo>;LLM_EDGEFLOW_ALG_SHOW=$<TARGET_FILE:alg_show>")

add_test(NAME CustomNodeScaffoldTest
COMMAND ${Python3_EXECUTABLE}
${PROJECT_SOURCE_DIR}/tests/tooling/test_scaffold_custom_node.py)

add_test(NAME BpeTokenizerToolTest
COMMAND ${Python3_EXECUTABLE}
${PROJECT_SOURCE_DIR}/tests/tooling/test_prepare_bpe_tokenizer.py)

add_test(NAME DevRecipeTest
COMMAND ${Python3_EXECUTABLE}
${PROJECT_SOURCE_DIR}/tests/tooling/test_dev_recipe.py)
set_tests_properties(DevRecipeTest PROPERTIES
ENVIRONMENT
"LLM_EDGEFLOW_PIPELINE_TOOL=$<TARGET_FILE:alg_pipeline_tool_test>;LLM_EDGEFLOW_SELECTION_TOOL=$<TARGET_FILE:alg_pipeline_tool>;LLM_EDGEFLOW_DEMO_BINARY=$<TARGET_FILE:alg_demo>")

add_test(NAME DemoSmokeTest COMMAND $<TARGET_FILE:alg_demo> --suite smoke)
set_tests_properties(DemoSmokeTest PROPERTIES
WORKING_DIRECTORY "${PROJECT_SOURCE_DIR}"
Expand Down Expand Up @@ -372,18 +323,9 @@ endif()

add_test(NAME PipelineToolCatalogTest COMMAND $<TARGET_FILE:alg_pipeline_tool>
catalog)
add_test(NAME PipelineToolValidateTest COMMAND ${Python3_EXECUTABLE}
${CMAKE_CURRENT_SOURCE_DIR}/tooling/test_pipeline_cli.py
--tool $<TARGET_FILE:alg_pipeline_tool>
--test-tool $<TARGET_FILE:alg_pipeline_tool_test>
--repo ${PROJECT_SOURCE_DIR})
set_tests_properties(
PipelineStudioServerTest CustomNodeScaffoldTest BpeTokenizerToolTest DevRecipeTest
PipelineToolCatalogTest PipelineToolValidateTest
set_tests_properties(PipelineToolCatalogTest
PROPERTIES WORKING_DIRECTORY "${PROJECT_SOURCE_DIR}"
LABELS "${_edgeflow_tier4}")
set_tests_properties(PipelineToolValidateTest PROPERTIES
ENVIRONMENT "LLM_EDGEFLOW_ALG_SHOW=$<TARGET_FILE:alg_show>")

add_custom_target(edgeflow_dev_tests DEPENDS
alg_demo alg_pipeline_tool alg_pipeline_tool_test alg_show
Expand Down
9 changes: 3 additions & 6 deletions tests/ScaffoldFixtures.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -25,9 +25,6 @@ add_custom_command(
VERBATIM)

# 在测试 runner 中编译文档里的原样函数示例,绝不进入 SDK Catalog。
list(APPEND EDGEFLOW_SCAFFOLD_FIXTURE_SOURCE
"${PROJECT_SOURCE_DIR}/dev_support/node_authoring/starter_batch_node.cpp"
"${PROJECT_SOURCE_DIR}/dev_support/node_authoring/starter_multi_model_node.cpp"
"${PROJECT_SOURCE_DIR}/dev_support/node_authoring/starter_batch_join_node.cpp"
"${PROJECT_SOURCE_DIR}/dev_support/node_authoring/starter_batch_group_node.cpp"
"${PROJECT_SOURCE_DIR}/dev_support/node_authoring/starter_batch_select_scatter_node.cpp")
file(GLOB_RECURSE EDGEFLOW_NODE_AUTHORING_SOURCES CONFIGURE_DEPENDS
"${PROJECT_SOURCE_DIR}/dev_support/node_authoring/*.cpp")
list(APPEND EDGEFLOW_SCAFFOLD_FIXTURE_SOURCE ${EDGEFLOW_NODE_AUTHORING_SOURCES})
Loading
Loading