cmake_minimum_required(VERSION 3.20)
project(linkit_cpp_sdk VERSION 0.4.0 LANGUAGES CXX)

add_library(linkit_cpp INTERFACE)
target_include_directories(linkit_cpp INTERFACE "${CMAKE_CURRENT_SOURCE_DIR}/include")
target_compile_features(linkit_cpp INTERFACE cxx_std_20)

option(LINKIT_BUILD_TESTS "Build linkit_cpp test binaries" ON)

if(LINKIT_BUILD_TESTS)
  enable_testing()

  add_executable(linkit_cpp_unit_tests tests/unit_tests.cpp)
  target_link_libraries(linkit_cpp_unit_tests PRIVATE linkit_cpp)

  add_executable(linkit_cpp_parity_tests tests/parity_suite_gen.cpp)
  target_link_libraries(linkit_cpp_parity_tests PRIVATE linkit_cpp)

  add_executable(linkit_cpp_orders_contract_tests tests/orders_contract_tests.cpp)
  target_link_libraries(linkit_cpp_orders_contract_tests PRIVATE linkit_cpp)

  add_executable(linkit_cpp_integration_tests tests/integration_tests.cpp)
  target_link_libraries(linkit_cpp_integration_tests PRIVATE linkit_cpp)

  add_test(NAME linkit_cpp_unit_tests COMMAND linkit_cpp_unit_tests)
  add_test(NAME linkit_cpp_parity_tests COMMAND linkit_cpp_parity_tests)
  add_test(NAME linkit_cpp_orders_contract_tests COMMAND linkit_cpp_orders_contract_tests)
  add_test(NAME linkit_cpp_integration_tests COMMAND linkit_cpp_integration_tests)
endif()

