source: tol/rtol/cmake/modules/FindRINSIDE.cmake @ cdd8fca

1941-docker-image-to-testdevel
Last change on this file since cdd8fca was cdd8fca, checked in by Pedro Gea <pgea@…>, 11 years ago

Refs #1898, #1842
Se crea un proyecto rtol para compilar las librerías de enlace de TOL con R.

git-svn-id: ​https://www.tol-project.org/svn/tolp/trunk@7058 be4846ae-f051-483a-831f-b64e7d08527f

  • Property mode set to 100644
File size: 2.1 KB
Line 
1include( LibFindMacros )
2
3find_package( R REQUIRED )
4message( STATUS "R_INCLUDE_DIR = ${R_INCLUDE_DIR}" )
5
6set( RINSIDE_FOUND 0 )
7execute_process(COMMAND ${Rscript_COMMAND} -e "Rcpp:::CxxFlags()"
8  OUTPUT_VARIABLE RCPP_FLAGS OUTPUT_STRIP_TRAILING_WHITESPACE)
9if ( ${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}" )
13endif( )
14
15execute_process(COMMAND ${Rscript_COMMAND} -e "RInside:::CxxFlags()"
16  OUTPUT_VARIABLE RINSIDE_CPPFLAGS OUTPUT_STRIP_TRAILING_WHITESPACE)
17message( STATUS "RINSIDE_CPPFLAGS = ${RINSIDE_CPPFLAGS}" )
18if ( ${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}" )
22endif( )
23
24execute_process( COMMAND ${Rscript_COMMAND} -e "RInside:::LdFlags()"
25  OUTPUT_VARIABLE RINSIDE_LDFLAGS OUTPUT_STRIP_TRAILING_WHITESPACE )
26if ( 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}" )
37else( 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( )
47endif( WIN32 )
48
49set( RINSIDE_PROCESS_INCLUDES
50  RCPP_INCLUDE_DIR RINSIDE_INCLUDE_DIR R_INCLUDE_DIR )
51set( RINSIDE_PROCESS_LIBS RINSIDE_LIBRARY R_LIBRARY_BASE )
52libfind_process( RINSIDE )
53
54message( STATUS "RINSIDE_INCLUDE_DIRS = ${RINSIDE_INCLUDE_DIRS}" )
55message( STATUS "RINSIDE_LIBRARIES = ${RINSIDE_LIBRARIES}" )
Note: See TracBrowser for help on using the repository browser.