deargui-vpl/applications/nodehub/CMakeLists.txt
2026-02-03 18:25:25 +01:00

113 lines
3.4 KiB
CMake

cmake_minimum_required(VERSION 3.5)
add_example_executable(nodehub
main.cpp
types.h
app.h
app.cpp
app-logic.cpp
app-render.cpp
app-screenshot.cpp
app-runtime.cpp
containers/container.h
containers/container.cpp
containers/root_container.h
containers/root_container.cpp
core/graph_state.h
core/graph_state.cpp
core/Object.h
core/Object.cpp
core/Parameter.h
core/Parameter.cpp
core/ParameterIn.h
core/ParameterIn.cpp
core/ParameterOut.h
core/ParameterOut.cpp
core/ParameterManager.h
core/ParameterManager.cpp
core/BaseManager.h
core/BaseManager.cpp
core/Context.h
core/Context.cpp
blocks/NodeEx.h
blocks/NodeEx.cpp
blocks/block.h
blocks/block.cpp
blocks/math_blocks.h
blocks/math_blocks.cpp
blocks/logic_blocks.h
blocks/logic_blocks.cpp
blocks/start_block.h
blocks/start_block.cpp
blocks/log_block.h
blocks/log_block.cpp
blocks/parameter_operation.h
blocks/parameter_operation.cpp
blocks/group_block.h
blocks/group_block.cpp
blocks/parameter_node.h
blocks/parameter_node.cpp
blocks/block_edit_dialog.h
blocks/block_edit_dialog.cpp
blocks/parameter_edit_dialog.h
blocks/parameter_edit_dialog.cpp
utilities/node_renderer_base.h
utilities/pathfinding.h
utilities/edge_editing.h
utilities/pin_renderer.h
utilities/style_manager.h
utilities/uuid_generator.h
utilities/uuid_id_manager.h
utilities/node_renderer_base.cpp
utilities/pathfinding.cpp
utilities/edge_editing.cpp
utilities/pin_renderer.cpp
utilities/style_manager.cpp
utilities/uuid_generator.cpp
utilities/uuid_id_manager.cpp
Logging.h
Logging.cpp
stats.cpp
)
target_include_directories(nodehub PRIVATE "${CMAKE_CURRENT_SOURCE_DIR}/../application/include")
target_include_directories(nodehub PRIVATE "${CMAKE_CURRENT_SOURCE_DIR}/../nodehub/core")
target_include_directories(nodehub PRIVATE "${CMAKE_CURRENT_SOURCE_DIR}/../nodehub/blocks")
# Add local spdlog include directory (we copied it into our project)
target_include_directories(nodehub PRIVATE "${CMAKE_CURRENT_SOURCE_DIR}/external")
target_compile_definitions(nodehub PRIVATE FMT_HEADER_ONLY=1)
# Add /utf-8 compiler flag for spdlog on MSVC
if (MSVC)
target_compile_options(nodehub PRIVATE /utf-8)
endif()
# Link protobuf if available
if (PROTOBUF_AVAILABLE AND TARGET protobuf_interface)
target_link_libraries(nodehub PRIVATE protobuf_interface)
endif()
# Also add to console variant if it exists
if (WIN32 AND BUILD_CONSOLE_VARIANTS)
target_include_directories(nodehub-console PRIVATE "${CMAKE_CURRENT_SOURCE_DIR}/../application/include")
target_include_directories(nodehub-console PRIVATE "${CMAKE_CURRENT_SOURCE_DIR}/external")
target_compile_definitions(nodehub-console PRIVATE FMT_HEADER_ONLY=1)
if (MSVC)
target_compile_options(nodehub-console PRIVATE /utf-8)
endif()
# Link protobuf to console variant if available
if (PROTOBUF_AVAILABLE AND TARGET protobuf_interface)
target_link_libraries(nodehub-console PRIVATE protobuf_interface)
endif()
endif()
file(GLOB NodeHubResources CONFIGURE_DEPENDS "${CMAKE_CURRENT_SOURCE_DIR}/data/*")
add_custom_command(
TARGET nodehub
PRE_BUILD
COMMAND ${CMAKE_COMMAND} -E copy_directory
"${CMAKE_CURRENT_SOURCE_DIR}/data"
"$<TARGET_FILE_DIR:nodehub>/data"
)