# SPDX-FileCopyrightText: 2023 The Naja authors <https://github.com/najaeda/naja/blob/main/AUTHORS>
#
# SPDX-License-Identifier: Apache-2.0

set(SOURCES
  frontend/SNLSVConstructor.cpp
  frontend/SNLSVIntent.cpp
)

set(HEADERS
  frontend/SNLSVConstructor.h
  frontend/SNLSVConstructorException.h
  frontend/SNLSVIntent.h
)

add_library(naja_snl_systemverilog STATIC ${SOURCES})
set_property(TARGET naja_snl_systemverilog PROPERTY POSITION_INDEPENDENT_CODE ON)

add_library(naja_snl_systemverilog_test STATIC EXCLUDE_FROM_ALL ${SOURCES})
set_property(TARGET naja_snl_systemverilog_test PROPERTY POSITION_INDEPENDENT_CODE ON)
target_compile_definitions(naja_snl_systemverilog_test PRIVATE NAJA_SVCONSTRUCTOR_TEST_DETAIL)

if(ENABLE_SV_CONSTRUCTOR_PERF_REPORT)
  target_compile_definitions(
    naja_snl_systemverilog
    PRIVATE NAJA_ENABLE_SV_CONSTRUCTOR_PERF_REPORT)
  target_compile_definitions(
    naja_snl_systemverilog_test
    PRIVATE NAJA_ENABLE_SV_CONSTRUCTOR_PERF_REPORT)
endif()

target_link_libraries(naja_snl_systemverilog naja_nl slang::slang)
target_link_libraries(naja_snl_systemverilog_test naja_nl slang::slang)

target_include_directories(naja_snl_systemverilog PUBLIC
  ${CMAKE_CURRENT_SOURCE_DIR}/frontend)
target_include_directories(naja_snl_systemverilog PUBLIC ${SPDLOG_DIR})
target_include_directories(naja_snl_systemverilog_test PUBLIC
  ${CMAKE_CURRENT_SOURCE_DIR}/frontend)
target_include_directories(naja_snl_systemverilog_test PUBLIC ${SPDLOG_DIR})

if(NOT BUILD_NAJA_PYTHON)
  set_target_properties(naja_snl_systemverilog PROPERTIES PUBLIC_HEADER "${HEADERS}")
  install(TARGETS naja_snl_systemverilog
    LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
    PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
endif(NOT BUILD_NAJA_PYTHON)
