cmake_minimum_required(VERSION 3.22)
project(fused_engine C)

set(CMAKE_C_STANDARD 17)
set(CMAKE_C_STANDARD_REQUIRED ON)

find_package(OpenSSL REQUIRED)
find_package(PkgConfig REQUIRED)
pkg_check_modules(YAML REQUIRED yaml-0.1)

file(GLOB SRCS "*.c")
list(REMOVE_ITEM SRCS "${CMAKE_CURRENT_SOURCE_DIR}/jsmn.c")

add_executable(fused_engine ${SRCS})
target_include_directories(fused_engine PRIVATE ${CMAKE_CURRENT_SOURCE_DIR} ${OPENSSL_INCLUDE_DIR} ${YAML_INCLUDE_DIRS})
target_link_libraries(fused_engine PRIVATE ${OPENSSL_LIBRARIES} ${YAML_LIBRARIES} pthread rt m)

target_compile_options(fused_engine PRIVATE
    -O3 -march=native -Wall -Wextra -Wpedantic
    -Wno-unused-parameter
)
