Qt image dialog
[texmacs.git] / src / cmake / FindGuile.cmake
blobb2e9a304a6e9bf9679344ba18bb25e785c4c9867
1 # - Locate the GNU Guile library
2 # Once done, this will define
4 #  Guile_FOUND - system has Freetype
5 #  Guile_INCLUDE_DIRS - the Freetype include directories
6 #  Guile_LIBRARIES - link these to use Freetype
7 #  Guile_VERSION_STRING - version of Guile
9 FIND_PROGRAM(GUILECONFIG_EXECUTABLE NAMES guile-config )
11 # if guile-config has been found
12 IF(GUILECONFIG_EXECUTABLE)
14   EXECUTE_PROCESS(COMMAND ${GUILECONFIG_EXECUTABLE} link 
15     OUTPUT_VARIABLE _guileconfigDevNull RESULT_VARIABLE _return_VALUE  )
17   # and if the package of interest also exists for guile-config, then get the information
18   IF(NOT _return_VALUE)
20     EXECUTE_PROCESS(COMMAND ${GUILECONFIG_EXECUTABLE}  link 
21       OUTPUT_VARIABLE _guileconfig_link )
23     EXECUTE_PROCESS(COMMAND ${GUILECONFIG_EXECUTABLE}  compile 
24       OUTPUT_VARIABLE _guileconfig_compile )
26     EXECUTE_PROCESS(COMMAND ${GUILECONFIG_EXECUTABLE}  info libdir 
27       OUTPUT_VARIABLE _guileconfig_libdir )
30     EXECUTE_PROCESS(COMMAND ${GUILECONFIG_EXECUTABLE}  "--version"
31       OUTPUT_VARIABLE _guileconfig_version ERROR_VARIABLE _guileconfig_version )
32     
33   
34     
35     ## parsing  
36           
37             
38     STRING(REGEX MATCHALL "[-][L]([^ ;])+" _guile_libdirs_with_prefix "${_guileconfig_link}" )
39     STRING(REGEX MATCHALL "[-][l]([^ ;])+" _guile_libraries_with_prefix "${_guileconfig_link}" )
40     STRING(REGEX MATCHALL "[-][I]([^ ;])+" _guile_includes_with_prefix "${_guileconfig_compile}" )
41     STRING(REGEX MATCHALL "[-][D]([^ ;])+" _guile_definitions_with_prefix "${_guileconfig_compile}" )
42     STRING(REGEX MATCH "[0-9]+\\.[0-9]+\\.[0-9]+" Guile_VERSION_STRING "${_guileconfig_version}")
43       
44     STRING(REPLACE "-L" " " _guile_libdirs ${_guile_libdirs_with_prefix} )
45     STRING(REPLACE "-l" " " _guile_lib_list "${_guile_libraries_with_prefix}" )
46     STRING(REPLACE "-I" " " _guile_includes "${_guile_includes_with_prefix}" )
47 #    SEPARATE_ARGUMENTS(_guile_libdirs)
48     
49     MESSAGE(STATUS ${_guile_libraries_with_prefix})
50     SET(_guile_libraries "")
52     FOREACH(i ${_guile_lib_list})
53       STRING(STRIP ${i} i)
54       IF (i)
55         IF(NOT _guile_flag_library_${i}) # avoid copies
56           find_library(_guile_tmp_library_${i}
57             NAMES ${i}
58             PATHS ${_guile_libdirs}
59            )
60          #  MESSAGE(STATUS ">>>>>>>>>" ${_guile_tmp_library_${i}})
61           IF(_guile_tmp_library_${i})   
62             SET(_guile_flag_library_${i})
63             SET(_guile_libraries ${_guile_libraries} ${_guile_tmp_library_${i}})
64           ENDIF(_guile_tmp_library_${i})
65         ENDIF(NOT _guile_flag_library_${i}) 
66       ENDIF (i)
67     ENDFOREACH(i)       
68            
71     SET(Guile_FOUND YES)
72     SET(Guile_INCLUDE_DIRS ${_guile_includes})
73     SET(Guile_LIBRARIES ${_guile_libraries})
74     SET(Guile_CFLAGS ${_guile_definitions_with_prefix})
75     
76     MESSAGE(">>>" "${Guile_INCLUDE_DIRS}")
77     MESSAGE(">>>" "${Guile_LIBRARIES}")
78     MESSAGE(">>>" "${Guile_CFLAGS}")
79     MESSAGE(">>>" "${_guileconfig_version}")
80     
81   ELSE( NOT _return_VALUE)
83     MESSAGE(STATUS "guile-config not working; I assume guile is not installed.")
85   ENDIF(NOT _return_VALUE)
87 ELSE(GUILECONFIG_EXECUTABLE)
89     MESSAGE(STATUS "guile-config not found; I assume guile is not installed.")
92 ENDIF(GUILECONFIG_EXECUTABLE)