IF (SWIG_VERSION VERSION_LESS 4.0.0) MESSAGE(FATAL_ERROR "For R interface SWIG 4.0.0 or later is required") ENDIF() FIND_PACKAGE(R REQUIRED) UNSET(TARGET_SWIGFLAGS) include(ShogunInterfaces) SET(SWIG_CXX_COMPILER_FLAGS "${SWIG_CXX_COMPILER_FLAGS} ${R_CXX_FLAGS}") IF("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang") SET(SWIG_CXX_COMPILER_FLAGS "${SWIG_CXX_COMPILER_FLAGS} -DDO_NOT_USE_CXX_HEADERS") ENDIF() SET(INTERFACE_KEEP_VARS 1) GENERATE_INTERFACE_TARGET(r ${CMAKE_CURRENT_SOURCE_DIR} ${R_LIBRARIES}) SET_TARGET_PROPERTIES(${INTERFACE_REAL_NAME} PROPERTIES PREFIX "") ADD_CUSTOM_TARGET(interface_r_fix ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/fix_generated_swig_files.py ${CMAKE_CURRENT_BINARY_DIR}/shogun.R ${CMAKE_CURRENT_BINARY_DIR}/shogunR_wrap.cxx DEPENDS ${swig_generated_sources} ${CMAKE_CURRENT_SOURCE_DIR}/fix_generated_swig_files.py ) ADD_DEPENDENCIES(interface_r_fix ${INTERFACE_TARGET_SRC}) ADD_DEPENDENCIES(${INTERFACE_REAL_NAME} interface_r_fix) GENERATE_INTERFACE_TARGET_UNSET_VARS() EXECUTE_PROCESS(COMMAND ${PYTHON_EXECUTABLE} -c "from time import gmtime, strftime; print(strftime(\"%Y-%m-%d\", gmtime()))" OUTPUT_VARIABLE DATE OUTPUT_STRIP_TRAILING_WHITESPACE ) CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/DESCRIPTION.in ${CMAKE_CURRENT_BINARY_DIR}/DESCRIPTION @ONLY) INSTALL(CODE "EXECUTE_PROCESS(COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/r-install.sh shogun ${CMAKE_SHARED_LIBRARY_SUFFIX} WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR})")