cmake_minimum_required(VERSION 3.5)

project(opcua_dummy_client
  VERSION 1.0.0
)

list(INSERT CMAKE_MODULE_PATH 0 ${CMAKE_SOURCE_DIR}/cmake)

set(CMAKE_CXX_STANDARD 11)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_EXPORT_COMPILE_COMMANDS ON)

option(STRICT "Treat warnings as errors" OFF)
if(STRICT)
  add_compile_options(-Werror)
endif()

find_package(open62541)
if(NOT open62541_FOUND)
  set(OPEN62541_SOURCE_DIR ${PROJECT_BINARY_DIR}/open62541-download)
  set(OPEN62541_BINARY_DIR ${PROJECT_BINARY_DIR}/open62541)
  include(${CMAKE_SOURCE_DIR}/cmake/SetupOpen62541.cmake)
  find_package(open62541 REQUIRED
    CONFIG
    PATHS ${OPEN62541_BINARY_DIR}/lib/cmake
    NO_DEFAULT_PATH
  )
endif()

add_library(opcua-service-gen STATIC
  ${PROJECT_SOURCE_DIR}/../build/src_generated/open62541/fe_nodeids.h
  ${PROJECT_SOURCE_DIR}/../build/src_generated/open62541/namespace_fe_generated.c
  ${PROJECT_SOURCE_DIR}/../build/src_generated/open62541/namespace_fe_generated.h
  ${PROJECT_SOURCE_DIR}/../build/src_generated/open62541/types_fe_generated.c
  ${PROJECT_SOURCE_DIR}/../build/src_generated/open62541/types_fe_generated_encoding_binary.h
  ${PROJECT_SOURCE_DIR}/../build/src_generated/open62541/types_fe_generated.h
  ${PROJECT_SOURCE_DIR}/../build/src_generated/open62541/types_fe_generated_handling.h
)
target_compile_options(opcua-service-gen PRIVATE -Wno-implicit-function-declaration)
target_include_directories(opcua-service-gen SYSTEM PUBLIC ${PROJECT_SOURCE_DIR}/../build/src_generated)
target_link_libraries(opcua-service-gen PUBLIC open62541::open62541)

add_executable(dummy_client
  src/dummy_client.cpp
)

target_link_libraries(dummy_client PRIVATE
  open62541::open62541
  opcua-service-gen
)
