cmake_minimum_required(VERSION 3.24)
project(EpicTunerSDKConformance LANGUAGES C CXX)
find_package(EpicTunerSDK 1.0 REQUIRED CONFIG)
enable_testing()
add_executable(sdk-c-layout c_layout.c)
target_link_libraries(sdk-c-layout PRIVATE EpicTuner::SDK)
set_target_properties(sdk-c-layout PROPERTIES C_STANDARD 11 C_STANDARD_REQUIRED ON)
add_test(NAME sdk_c_layout COMMAND sdk-c-layout)
add_executable(sdk-cpp-contract cpp_contract.cpp)
target_link_libraries(sdk-cpp-contract PRIVATE EpicTuner::SDKCpp)
add_test(NAME sdk_cpp_contract COMMAND sdk-cpp-contract)
add_executable(sdk-binary-host binary_host.cpp)
target_link_libraries(sdk-binary-host PRIVATE EpicTuner::SDKCpp ${CMAKE_DL_LIBS})
add_subdirectory(../examples/lifecycle examples)
add_test(NAME sdk_cpp_binary COMMAND sdk-binary-host $<TARGET_FILE:lifecycle> cpp)
add_test(NAME sdk_c_binary COMMAND sdk-binary-host $<TARGET_FILE:lifecycle-c> c)

add_subdirectory(../examples/hello-panels hello-panels)
add_subdirectory(../examples/cascading-selects cascading-selects)

add_subdirectory(../examples/live-telemetry live-telemetry)
add_subdirectory(../examples/log-analyzer log-analyzer)

add_subdirectory(../examples/calibration-workbench calibration-workbench)
add_subdirectory(../examples/fuel-analysis-demo fuel-analysis-demo)
add_subdirectory(../examples/licensed-feature-demo licensed-feature-demo)
add_subdirectory(../examples/fault-injection fault-injection)
add_subdirectory(../templates/panel starter)
option(ET_SDK_BUILD_IMGUI "Build the independent OpenGL example" OFF)
if(ET_SDK_BUILD_IMGUI)
    add_subdirectory(../examples/imgui-inspector imgui-inspector)
endif()
