| 1 | include( LibFindMacros ) |
|---|
| 2 | |
|---|
| 3 | find_package( R REQUIRED ) |
|---|
| 4 | message( STATUS "R_INCLUDE_DIR = ${R_INCLUDE_DIR}" ) |
|---|
| 5 | |
|---|
| 6 | set( RINSIDE_FOUND 0 ) |
|---|
| 7 | execute_process(COMMAND ${Rscript_COMMAND} -e "Rcpp:::CxxFlags()" |
|---|
| 8 | OUTPUT_VARIABLE RCPP_FLAGS OUTPUT_STRIP_TRAILING_WHITESPACE) |
|---|
| 9 | if ( ${RCPP_FLAGS} MATCHES "[-][I]([^ ;])+" ) |
|---|
| 10 | string( SUBSTRING ${CMAKE_MATCH_0} 2 -1 _INCL ) |
|---|
| 11 | set( RCPP_INCLUDE_DIR ${_INCL} ) |
|---|
| 12 | message( STATUS "RCPP_INCLUDE_DIR = ${RCPP_INCLUDE_DIR}" ) |
|---|
| 13 | endif( ) |
|---|
| 14 | |
|---|
| 15 | execute_process(COMMAND ${Rscript_COMMAND} -e "RInside:::CxxFlags()" |
|---|
| 16 | OUTPUT_VARIABLE RINSIDE_CPPFLAGS OUTPUT_STRIP_TRAILING_WHITESPACE) |
|---|
| 17 | message( STATUS "RINSIDE_CPPFLAGS = ${RINSIDE_CPPFLAGS}" ) |
|---|
| 18 | if ( ${RINSIDE_CPPFLAGS} MATCHES "[-][I](.+)( -|$)" ) |
|---|
| 19 | string( SUBSTRING ${CMAKE_MATCH_0} 2 -1 _INCL ) |
|---|
| 20 | set( RINSIDE_INCLUDE_DIR ${_INCL} ) |
|---|
| 21 | message( STATUS "RINSIDE_INCLUDE_DIR = ${RINSIDE_INCLUDE_DIR}" ) |
|---|
| 22 | endif( ) |
|---|
| 23 | |
|---|
| 24 | execute_process( COMMAND ${Rscript_COMMAND} -e "RInside:::LdFlags()" |
|---|
| 25 | OUTPUT_VARIABLE RINSIDE_LDFLAGS OUTPUT_STRIP_TRAILING_WHITESPACE ) |
|---|
| 26 | if ( WIN32 ) |
|---|
| 27 | set( re "^\"(.+)\"$" ) |
|---|
| 28 | string( REGEX MATCH ${re} matched ${RINSIDE_LDFLAGS} ) |
|---|
| 29 | if( matched ) |
|---|
| 30 | set( RINSIDE_LIBRARY ${CMAKE_MATCH_1} ) |
|---|
| 31 | else( matched ) |
|---|
| 32 | set( RINSIDE_LIBRARY ${RINSIDE_LDFLAGS} ) |
|---|
| 33 | endif( matched ) |
|---|
| 34 | message( STATUS "RINSIDE_LIBRARY = ${RINSIDE_LIBRARY}" ) |
|---|
| 35 | get_filename_component( RINSIDE_LIBRARY_PATH ${RINSIDE_LIBRARY} PATH ) |
|---|
| 36 | message( STATUS "RINSIDE_LIBRARY_PATH = ${RINSIDE_LIBRARY_PATH}" ) |
|---|
| 37 | else( WIN32 ) |
|---|
| 38 | if ( ${RINSIDE_LDFLAGS} MATCHES "[-][L]([^ ;])+" ) |
|---|
| 39 | string( SUBSTRING ${CMAKE_MATCH_0} 2 -1 _INCL ) |
|---|
| 40 | set( RINSIDE_LIBRARY_DIR ${_INCL} ) |
|---|
| 41 | message( STATUS "RINSIDE_LIBRARY_DIR = ${RINSIDE_LIBRARY_DIR}" ) |
|---|
| 42 | find_library( RINSIDE_LIBRARY RInside |
|---|
| 43 | PATHS ${RINSIDE_LIBRARY_DIR} |
|---|
| 44 | NO_DEFAULT_PATH ) |
|---|
| 45 | message( STATUS "RINSIDE_LIBRARY = ${RINSIDE_LIBRARY}" ) |
|---|
| 46 | endif( ) |
|---|
| 47 | endif( WIN32 ) |
|---|
| 48 | |
|---|
| 49 | set( RINSIDE_PROCESS_INCLUDES |
|---|
| 50 | RCPP_INCLUDE_DIR RINSIDE_INCLUDE_DIR R_INCLUDE_DIR ) |
|---|
| 51 | set( RINSIDE_PROCESS_LIBS RINSIDE_LIBRARY R_LIBRARY_BASE ) |
|---|
| 52 | libfind_process( RINSIDE ) |
|---|
| 53 | |
|---|
| 54 | message( STATUS "RINSIDE_INCLUDE_DIRS = ${RINSIDE_INCLUDE_DIRS}" ) |
|---|
| 55 | message( STATUS "RINSIDE_LIBRARIES = ${RINSIDE_LIBRARIES}" ) |
|---|