diff --git a/cmake/FindGuile.cmake b/cmake/FindGuile.cmake index 635e2b2f6..748d12dca 100644 --- a/cmake/FindGuile.cmake +++ b/cmake/FindGuile.cmake @@ -31,21 +31,7 @@ IF(GUILE_FOUND) SET(GUILE_FIND_QUIETLY TRUE) ENDIF(GUILE_FOUND) -FIND_PATH(GUILE_INCLUDE_DIR libguile.h /usr/include /usr/local/include /usr/include/libguile /usr/local/include/libguile) - -FIND_LIBRARY(GUILE_LIBRARY NAMES guile PATH /usr/lib /usr/local/lib) - -IF(GUILE_INCLUDE_DIR AND GUILE_LIBRARY) - SET(GUILE_FOUND TRUE) - SET(GUILE_INCLUDE_DIRS ${GUILE_INCLUDE_DIR}) - SET(GUILE_LIBRARIES ${GUILE_LIBRARY}) -ELSE(GUILE_INCLUDE_DIR AND GUILE_LIBRARY) - SET(GUILE_FOUND FALSE) - SET(GUILE_INCLUDE_DIRS) - SET(GUILE_LIBRARIES) -ENDIF(GUILE_INCLUDE_DIR AND GUILE_LIBRARY) - -MARK_AS_ADVANCED( - GUILE_INCLUDE_DIR - GUILE_LIBRARY - ) +FIND_PACKAGE(PkgConfig) +IF(PKG_CONFIG_FOUND) + pkg_search_module(GUILE guile-2.0 guile-1.8) +ENDIF(PKG_CONFIG_FOUND) diff --git a/configure.in b/configure.in index a1d24552a..1c4755e84 100644 --- a/configure.in +++ b/configure.in @@ -754,20 +754,26 @@ if test "x$enable_guile" = "xyes" ; then enable_plugins="yes" guile_found="no" - GUILECONFIG="" - AC_CHECK_PROGS(GUILECONFIG, guile-config) - if test "x$GUILECONFIG" != "x" ; then - AC_MSG_CHECKING(for Guile headers and librairies with guile-config) + PKGCONFIG="" + AC_CHECK_PROGS(PKGCONFIG, pkg-config) + if test "x$PKGCONFIG" != "x"; then + AC_MSG_CHECKING(for Guile headers and librairies) echo - GUILE_CFLAGS=`$GUILECONFIG compile` - GUILE_LFLAGS=`$GUILECONFIG link` - GUILE_VERSION=`$GUILECONFIG info guileversion` - guile_found="yes" + for v in "2.0" "1.8" ; do + pkgconfig_guile_found=`$PKGCONFIG --exists guile-$v 2>/dev/null` + if test "x$?" = "x0" ; then + GUILE_VERSION=`$PKGCONFIG --modversion guile-$v` + GUILE_CFLAGS=`$PKGCONFIG --cflags guile-$v` + GUILE_LFLAGS=`$PKGCONFIG --libs guile-$v` + guile_found="yes" + break + fi + done fi if test "x$guile_found" = "xno" ; then AC_MSG_WARN([ -*** Script guile-config couldn't be found on your system. +*** Guile couldn't be found on your system. *** WeeChat will be built without Guile (scheme) support.]) enable_guile="no" not_found="$not_found guile" diff --git a/doc/de/weechat_user.de.txt b/doc/de/weechat_user.de.txt index f03cccde4..9195bb0ea 100644 --- a/doc/de/weechat_user.de.txt +++ b/doc/de/weechat_user.de.txt @@ -101,7 +101,7 @@ welche Pakete optional genutzt werden können. | ruby1.9.1-dev | ≥ 1.8 | | ruby Erweiterung | liblua5.1-0-dev | | | lua Erweiterung | tcl-dev | ≥ 8.5 | | tcl Erweiterung -| guile-1.8-dev | | | guile (scheme) Erweiterung +| guile-1.8-dev | ≥ 1.8 | | guile (scheme) Erweiterung | asciidoc | ≥ 8.5.0 | | erstellt Dokumentation (HTML Dateien) | source-highlight | | | Syntax Highlight für Quelltext in HTML Dokumentation |======================================== diff --git a/doc/en/weechat_user.en.txt b/doc/en/weechat_user.en.txt index 05f508626..52b41c5ba 100644 --- a/doc/en/weechat_user.en.txt +++ b/doc/en/weechat_user.en.txt @@ -101,7 +101,7 @@ compile WeeChat. | ruby1.9.1-dev | ≥ 1.8 | | ruby plugin | liblua5.1-0-dev | | | lua plugin | tcl-dev | ≥ 8.5 | | tcl plugin -| guile-1.8-dev | | | guile (scheme) plugin +| guile-1.8-dev | ≥ 1.8 | | guile (scheme) plugin | asciidoc | ≥ 8.5.0 | | build documentation (HTML files) | source-highlight | | | syntax highlight for sources in HTML documentation |======================================== diff --git a/doc/fr/weechat_user.fr.txt b/doc/fr/weechat_user.fr.txt index c193b4b73..e8b1137a6 100644 --- a/doc/fr/weechat_user.fr.txt +++ b/doc/fr/weechat_user.fr.txt @@ -103,7 +103,7 @@ compiler WeeChat. | ruby1.9.1-dev | ≥ 1.8 | | extension ruby | liblua5.1-0-dev | | | extension lua | tcl-dev | ≥ 8.5 | | extension tcl -| guile-1.8-dev | | | extension guile (scheme) +| guile-1.8-dev | ≥ 1.8 | | extension guile (scheme) | asciidoc | ≥ 8.5.0 | | construction de la documentation (fichiers HTML) | source-highlight | | | coloration des sources dans la documentation HTML |======================================== diff --git a/doc/it/weechat_user.it.txt b/doc/it/weechat_user.it.txt index 689f0cfea..09dd3ab6f 100644 --- a/doc/it/weechat_user.it.txt +++ b/doc/it/weechat_user.it.txt @@ -108,7 +108,7 @@ compilare WeeChat. | ruby1.9.1-dev | ≥ 1.8 | | plugin ruby | liblua5.1-0-dev | | | plugin lua | tcl-dev | ≥ 8.5 | | plugin tcl -| guile-1.8-dev | | | plugin guile (scheme) +| guile-1.8-dev | ≥ 1.8 | | plugin guile (scheme) | asciidoc | ≥ 8.5.0 | | compilazione della documentazione (file HTML) | source-highlight | | | evidenziazione della sintassi per i sorgenti nella documentazione HTML |======================================== diff --git a/src/plugins/guile/CMakeLists.txt b/src/plugins/guile/CMakeLists.txt index 2bfbaa4fc..73162016c 100644 --- a/src/plugins/guile/CMakeLists.txt +++ b/src/plugins/guile/CMakeLists.txt @@ -24,8 +24,9 @@ SET_TARGET_PROPERTIES(guile PROPERTIES PREFIX "") IF(GUILE_FOUND) INCLUDE_DIRECTORIES(${GUILE_INCLUDE_DIRS}) - SET(CMAKE_MODULE_LINKER_FLAGS "${CMAKE_MODULE_LINKER_FLAGS} ${GUILE_LFLAGS}") - TARGET_LINK_LIBRARIES(guile ${GUILE_LIBRARY} weechat_plugins_scripts) + SET(LINK_LIBS) + LIST(APPEND LINK_LIBS ${GUILE_LDFLAGS}) + TARGET_LINK_LIBRARIES(guile ${LINK_LIBS} weechat_plugins_scripts) ENDIF(GUILE_FOUND) INSTALL(TARGETS guile LIBRARY DESTINATION ${LIBDIR}/plugins)