2026-07-22 13:56:42 +02:00
|
|
|
cmake_minimum_required(VERSION 3.14)
|
|
|
|
|
project(AmmModulePlugin LANGUAGES CXX)
|
|
|
|
|
|
|
|
|
|
# Include the Logos Module CMake helper (provided by logos-module-builder).
|
|
|
|
|
if(DEFINED ENV{LOGOS_MODULE_BUILDER_ROOT})
|
|
|
|
|
include($ENV{LOGOS_MODULE_BUILDER_ROOT}/cmake/LogosModule.cmake)
|
|
|
|
|
elseif(EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/cmake/LogosModule.cmake")
|
|
|
|
|
include(cmake/LogosModule.cmake)
|
|
|
|
|
else()
|
|
|
|
|
message(FATAL_ERROR "LogosModule.cmake not found. Set LOGOS_MODULE_BUILDER_ROOT.")
|
|
|
|
|
endif()
|
|
|
|
|
|
|
|
|
|
# Derive the module name from metadata.json — single source of truth.
|
|
|
|
|
file(READ "${CMAKE_CURRENT_SOURCE_DIR}/metadata.json" METADATA_JSON)
|
|
|
|
|
string(JSON MODULE_NAME GET ${METADATA_JSON} name)
|
|
|
|
|
|
|
|
|
|
# Universal core module: we write only the impl class; the Qt plugin glue is
|
|
|
|
|
# generated from src/amm_module_impl.h (because metadata.json sets
|
2026-07-29 15:57:24 +02:00
|
|
|
# "interface": "universal"). EXTERNAL_LIBS links amm_ffi — the pure-Rust,
|
2026-07-22 13:56:42 +02:00
|
|
|
# transport-independent AMM brain (PDA/decode/quote/plan/encode) exposed as a
|
2026-07-29 15:57:24 +02:00
|
|
|
# JSON FFI (amm_ffi.h), the same library the UI links. The chain I/O
|
2026-07-22 13:56:42 +02:00
|
|
|
# dependency (logos_execution_zone) is declared in metadata.json and reached via
|
|
|
|
|
# modules().logos_execution_zone in the impl, so it is NOT listed here.
|
|
|
|
|
logos_module(
|
|
|
|
|
NAME ${MODULE_NAME}
|
|
|
|
|
SOURCES
|
|
|
|
|
src/amm_module_impl.h
|
|
|
|
|
src/amm_module_impl.cpp
|
|
|
|
|
EXTERNAL_LIBS
|
2026-07-29 15:57:24 +02:00
|
|
|
amm_ffi
|
2026-07-22 13:56:42 +02:00
|
|
|
)
|