pan_bindings 1.0.2

FFI bindings for the SCION PAN Path Aware Networking library
cmake_minimum_required(VERSION 3.16)


find_package(Curses)

set(SRC_ECHO
    echo/main.cpp
    echo/policy.cpp
    echo/reply_selector.cpp
    echo/selector.cpp
    common/message_parser.cpp
)
if (NOT WIN32)
    list(APPEND SRC_ECHO echo/ncurses_helper.cpp)
endif()
add_executable(echo ${SRC_ECHO})
set_property(TARGET echo PROPERTY CXX_STANDARD 17)
target_include_directories(echo PRIVATE ${CMAKE_CURRENT_SOURCE_DIR})
target_link_libraries(echo PRIVATE pan_cpp)
if (WIN32)
    target_precompile_headers(echo PRIVATE common/pch.hpp)
else()
    target_include_directories(echo PRIVATE ${CURSES_INCLUDE_DIR})
    target_link_libraries(echo PRIVATE ${CURSES_LIBRARIES})
endif()

set_target_properties(echo PROPERTIES PREFIX scion-)
install(TARGETS echo)

set(SRC_ECHO_ASYNC
    echo_async/main.cpp
    echo_async/args.cpp
    echo_async/proxy.cpp
    common/message_parser.cpp
)
add_executable(echo-async ${SRC_ECHO_ASYNC})
set_property(TARGET echo-async PROPERTY CXX_STANDARD 17)
target_include_directories(echo-async PRIVATE ${CMAKE_CURRENT_SOURCE_DIR})
target_link_libraries(echo-async PRIVATE pan_cpp)
if (WIN32)
    target_precompile_headers(echo-async REUSE_FROM echo)
endif()

set_target_properties(echo-async PROPERTIES PREFIX scion-)
install(TARGETS echo-async)