## This file was generated by $generator from $template

set(CMAKE_CXX_STANDARD 11)

project(anari_library_$libraryname LANGUAGES CXX)

if(CMAKE_VERSION VERSION_GREATER_EQUAL "3.12")
  find_package(Python3 REQUIRED COMPONENTS Interpreter)

  add_custom_target(generate_$libraryname_queries
    COMMAND ${Python3_EXECUTABLE} ${ANARI_CODE_GEN_ROOT}/generate_queries.py
      --json ${ANARI_CODE_GEN_ROOT}
      --prefix $prefix
      --device ${CMAKE_CURRENT_SOURCE_DIR}/$device_json
      --namespace $namespace
      --output ${CMAKE_CURRENT_SOURCE_DIR}/generated
    WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
    DEPENDS $device_json
  )

  add_dependencies(generate_all generate_$libraryname_queries)
endif()

set(CMAKE_INSTALL_RPATH "$ORIGIN")

add_library(${PROJECT_NAME} SHARED
  $source_path/$prefixDevice.cpp
  $source_path/$prefixArrayObjects.cpp
  $source_path/$prefixFrameObject.cpp
  $source_path/$prefixDeviceObject.cpp
  $generated_path/$prefixObjects.cpp
  $generated_path/$prefixDeviceFactories.cpp
  $generated_path/$prefixString.cpp
  $generated_path/$prefixQueries.cpp
)

target_include_directories(${PROJECT_NAME}
PUBLIC
  $<BUILD_INTERFACE:${CMAKE_CURRENT_LIST_DIR}>
  $source_path
  $generated_path
)

target_link_libraries(${PROJECT_NAME}
PUBLIC
  $target_prefixanari
  $target_prefixanari_utilities
)

target_compile_definitions(${PROJECT_NAME}
PRIVATE
  "anari_library_$libraryname_EXPORTS"
)

install(TARGETS ${PROJECT_NAME}
  LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
  RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
  ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
)
