cmake_minimum_required(VERSION 3.20) project(amduat_api LANGUAGES C) set(CMAKE_C_STANDARD 11) set(CMAKE_C_STANDARD_REQUIRED ON) set(CMAKE_C_EXTENSIONS OFF) option(AMDUATD_ENABLE_UI "Build amduatd embedded UI" ON) add_subdirectory(vendor/amduat) add_library(amduat_federation federation/coord.c federation/transport_stub.c federation/transport_unix.c ) target_include_directories(amduat_federation PUBLIC ${CMAKE_CURRENT_SOURCE_DIR} PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/vendor/amduat/include ) target_link_libraries(amduat_federation PRIVATE amduat_asl amduat_enc amduat_util amduat_fed ) set(amduatd_sources src/amduatd.c src/amduatd_caps.c src/amduatd_space.c src/amduatd_concepts.c) if(AMDUATD_ENABLE_UI) list(APPEND amduatd_sources src/amduatd_ui.c) endif() add_executable(amduatd ${amduatd_sources}) target_include_directories(amduatd PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/vendor/amduat/src/internal PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/vendor/amduat/include ) target_compile_definitions(amduatd PRIVATE AMDUATD_ENABLE_UI=$ ) target_link_libraries(amduatd PRIVATE amduat_tgk amduat_pel amduat_format amduat_asl_store_fs amduat_asl amduat_enc amduat_hash_asl1 amduat_util amduat_federation ) add_executable(amduat_pel_gc src/amduat_pel_gc.c src/asl_gc_fs.c ) set_target_properties(amduat_pel_gc PROPERTIES OUTPUT_NAME "amduat-pel") target_include_directories(amduat_pel_gc PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/vendor/amduat/include ) target_link_libraries(amduat_pel_gc PRIVATE amduat_asl_store_fs amduat_asl_record amduat_asl amduat_enc amduat_hash_asl1 amduat_pel amduat_util )