include_directories(${R_INCLUDEDIR})
LINK_DIRECTORIES(${R_SHAREDLIBDIR})

# Build rserver on all platforms now (not just Unix)
add_subdirectory(rserver)

set( RBackend_SRCS
  rbackend.cpp
  rsession.cpp
  rexpression.cpp
  rextensions.cpp
  rsettingswidget.cpp
  rvariablemodel.cpp
  ../backendsettingswidget.cpp
)

kconfig_add_kcfg_files(RBackend_SRCS rserver/settings.kcfgc)

ki18n_wrap_ui(RBackend_SRCS settings.ui)

add_backend(rbackend ${RBackend_SRCS})

set_target_properties( cantor_rbackend PROPERTIES INSTALL_RPATH_USE_LINK_PATH false)

target_link_libraries( cantor_rbackend ${R_USED_LIBS} Qt6::Network KF6::SyntaxHighlighting)

if (ENABLE_EMBEDDED_DOCUMENTATION)
    target_link_libraries(cantor_rbackend cantor_help)
endif ()

if(MSVC)
# When compiling with MSVC, we have to create a .lib file for R.dll, first
find_package(Python3 COMPONENTS Interpreter REQUIRED)
add_custom_target(R_lib COMMAND ${Python3_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/GenLibFile.py ${R_R_LIBRARY} ${CMAKE_BINARY_DIR} ${CMAKE_SYSTEM_PROCESSOR}
                        COMMENT "Generate .lib file for R.dll")
add_dependencies(cantor_rbackend R_lib)
endif(MSVC)

if(BUILD_TESTING AND NOT WIN32)
  add_executable( testr testr.cpp)
  add_test(NAME testr COMMAND testr)
  ecm_mark_as_test(testr)
  target_link_libraries( testr
    Qt6::Test
    cantorlibs
    cantortest
  )
endif()

install( FILES cantor_r.knsrc  DESTINATION  ${KDE_INSTALL_KNSRCDIR} )
