cmake_minimum_required(VERSION 3.20)
project(cf_opcua_owner_provider LANGUAGES CXX)

set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)

get_filename_component(_CF_REPO_ROOT "${CMAKE_CURRENT_SOURCE_DIR}/../.." ABSOLUTE)
include("${_CF_REPO_ROOT}/tools/cmake/cf_contracts_include.cmake")

add_library(cf_opcua_owner_provider SHARED
  ${CMAKE_CURRENT_SOURCE_DIR}/src/cf_opcua_server/native/opcua_owner_contract_provider.cpp
)

target_include_directories(cf_opcua_owner_provider PRIVATE
  ${CF_CONTRACTS_INCLUDE}
)

target_compile_definitions(cf_opcua_owner_provider PRIVATE CF_STEP_ABI_EXPORTS)
set_target_properties(cf_opcua_owner_provider PROPERTIES
  PREFIX ""
)

install(TARGETS cf_opcua_owner_provider
  RUNTIME DESTINATION cf_opcua_server/native/bin
  LIBRARY DESTINATION cf_opcua_server/native/lib
  ARCHIVE DESTINATION cf_opcua_server/native/lib
)

install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/src/cf_opcua_server/provider_descriptor.v1.json DESTINATION cf_opcua_server)
