summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorSebastien Helleu <flashcode@flashtux.org>2007-05-21 16:30:04 +0000
committerSebastien Helleu <flashcode@flashtux.org>2007-05-21 16:30:04 +0000
commit9f5d99f57e614195c65eeb9b663dc1bd8d5b1dc9 (patch)
treebddb2e678b06930ec965ecb8ba107d54900db874 /src
parentc79becdc8502c6839757eb4417ec2b8ec332b428 (diff)
downloadweechat-9f5d99f57e614195c65eeb9b663dc1bd8d5b1dc9.zip
Added cmake for weechat compile
Diffstat (limited to 'src')
-rw-r--r--src/CMakeLists.txt95
-rw-r--r--src/common/CMakeLists.txt33
-rw-r--r--src/common/util.c8
-rw-r--r--src/gui/CMakeLists.txt25
-rw-r--r--src/gui/curses/CMakeLists.txt42
-rw-r--r--src/irc/CMakeLists.txt26
-rw-r--r--src/plugins/CMakeLists.txt45
-rw-r--r--src/plugins/aspell/CMakeLists.txt26
-rw-r--r--src/plugins/charset/CMakeLists.txt30
-rw-r--r--src/plugins/scripts/CMakeLists.txt50
-rw-r--r--src/plugins/scripts/lua/CMakeLists.txt30
-rw-r--r--src/plugins/scripts/perl/CMakeLists.txt38
-rw-r--r--src/plugins/scripts/python/CMakeLists.txt28
-rw-r--r--src/plugins/scripts/ruby/CMakeLists.txt27
14 files changed, 503 insertions, 0 deletions
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
new file mode 100644
index 000000000..2694d55d1
--- /dev/null
+++ b/src/CMakeLists.txt
@@ -0,0 +1,95 @@
+# Copyright (c) 2003-2007 FlashCode <flashcode@flashtux.org>
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+#
+
+ADD_DEFINITIONS(-DHAVE_CONFIG_H)
+
+INCLUDE(CheckIncludeFiles)
+INCLUDE(CheckFunctionExists)
+
+CHECK_INCLUDE_FILES("arpa/inet.h" HAVE_ARPA_INET_H)
+CHECK_INCLUDE_FILES("libintl.h" HAVE_LIBINTL_H)
+CHECK_INCLUDE_FILES("limits.h" HAVE_LIMITS_H)
+CHECK_INCLUDE_FILES("locale.h" HAVE_LOCALE_H)
+CHECK_INCLUDE_FILES("netdb.h" HAVE_NETDB_H)
+CHECK_INCLUDE_FILES("netinet/in.h" HAVE_NETINET_IN_H)
+CHECK_INCLUDE_FILES("stdlib.h" HAVE_STDLIB_H)
+CHECK_INCLUDE_FILES("string.h" HAVE_STRING_H)
+CHECK_INCLUDE_FILES("sys/socket.h" HAVE_SYS_SOCKET_H)
+CHECK_INCLUDE_FILES("sys/time.h" HAVE_SYS_TIME_H)
+CHECK_INCLUDE_FILES("sys/types.h" HAVE_SYS_TYPES_H)
+CHECK_INCLUDE_FILES("unistd.h" HAVE_UNISTD_H)
+CHECK_INCLUDE_FILES("pwd.h" HAVE_PWD_H)
+CHECK_INCLUDE_FILES("errno.h" HAVE_ERRNO_H)
+CHECK_INCLUDE_FILES("wchar.h" HAVE_WCHAR_H)
+CHECK_INCLUDE_FILES("langinfo.h" HAVE_LANGINFO_CODESET)
+
+CHECK_FUNCTION_EXISTS(gethostbyname HAVE_GETHOSTBYNAME)
+CHECK_FUNCTION_EXISTS(gethostname HAVE_GETHOSTNAME)
+CHECK_FUNCTION_EXISTS(getsockname HAVE_GETSOCKNAME)
+CHECK_FUNCTION_EXISTS(gettimeofday HAVE_GETTIMEOFDAY)
+CHECK_FUNCTION_EXISTS(inet_ntoa HAVE_INET_NTOA)
+CHECK_FUNCTION_EXISTS(memset HAVE_MEMSET)
+CHECK_FUNCTION_EXISTS(mkdir HAVE_MKDIR)
+CHECK_FUNCTION_EXISTS(select HAVE_SELECT)
+CHECK_FUNCTION_EXISTS(setlocale HAVE_SETLOCALE)
+CHECK_FUNCTION_EXISTS(socket HAVE_SOCKET)
+CHECK_FUNCTION_EXISTS(strcasecmp HAVE_STRCASECMP)
+CHECK_FUNCTION_EXISTS(strchr HAVE_STRCHR)
+CHECK_FUNCTION_EXISTS(strdup HAVE_STRDUP)
+CHECK_FUNCTION_EXISTS(strndup HAVE_STRNDUP)
+CHECK_FUNCTION_EXISTS(strncasecmp HAVE_STRNCASECMP)
+CHECK_FUNCTION_EXISTS(strpbrk HAVE_STRPBRK)
+CHECK_FUNCTION_EXISTS(strrchr HAVE_STRRCHR)
+CHECK_FUNCTION_EXISTS(strstr HAVE_STRSTR)
+
+
+#needs to be splitted in subdirectories
+# FIXME: weechat_gui_common MUST be the first lib in the list
+SET(STATIC_LIBS weechat_gui_common)
+
+# Check for Gettext
+IF(NOT DISABLE_NLS)
+ FIND_PACKAGE(Gettext)
+ IF(GETTEXT_FOUND)
+ ADD_DEFINITIONS(-DENABLE_NLS)
+ ENDIF(GETTEXT_FOUND)
+ENDIF(NOT DISABLE_NLS)
+
+# Check for GnuTLS
+IF(NOT DISABLE_GNUTLS)
+ FIND_PACKAGE(GnuTLS)
+
+ IF(GNUTLS_FOUND)
+ STRING(REGEX REPLACE "/[^/]*$" "" GNUTLS_LIBRARY_PATH "${GNUTLS_LIBRARY}")
+ ADD_DEFINITIONS(-DHAVE_GNUTLS)
+ INCLUDE_DIRECTORIES(${GNUTLS_INCLUDE_PATH})
+ SET(CMAKE_C_LINK_FLAGS "${CMAKE_C_LINK_FLAGS} -L${GNUTLS_LIBRARY_PATH}")
+ LIST(APPEND EXTRA_LIBS gnutls)
+ ENDIF(GNUTLS_FOUND)
+ENDIF(NOT DISABLE_GNUTLS)
+
+IF(NOT DISABLE_PLUGINS)
+ ADD_DEFINITIONS(-DPLUGINS)
+ LIST(APPEND STATIC_LIBS weechat_plugins)
+ ADD_SUBDIRECTORY( plugins )
+ENDIF(NOT DISABLE_PLUGINS)
+
+ADD_SUBDIRECTORY( common )
+List(APPEND STATIC_LIBS weechat_main)
+ADD_SUBDIRECTORY( irc )
+LIST(APPEND STATIC_LIBS weechat_irc)
+ADD_SUBDIRECTORY( gui )
diff --git a/src/common/CMakeLists.txt b/src/common/CMakeLists.txt
new file mode 100644
index 000000000..158374946
--- /dev/null
+++ b/src/common/CMakeLists.txt
@@ -0,0 +1,33 @@
+# Copyright (c) 2003-2007 FlashCode <flashcode@flashtux.org>
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+#
+
+SET(LIB_MAIN_SRC weechat.c weechat.h alias.c alias.h backtrace.c backtrace.h
+command.c command.h completion.c completion.h weelist.c weelist.h weeconfig.c
+weeconfig.h history.c history.h hotlist.c hotlist.h log.c log.h fifo.c fifo.h
+session.c session.h utf8.c utf8.h util.c util.h)
+
+# Check for flock support
+INCLUDE(CheckSymbolExists)
+CHECK_INCLUDE_FILES("sys/file.h" HAVE_SYS_FILE_H)
+CHECK_SYMBOL_EXISTS(flock "sys/file.h" HAVE_FLOCK)
+
+IF(ICONV_FOUND)
+ ADD_DEFINITIONS( -DHAVE_ICONV )
+ENDIF(ICONV_FOUND)
+
+INCLUDE_DIRECTORIES(${CMAKE_BINARY_DIR})
+ADD_LIBRARY(weechat_main STATIC ${LIB_MAIN_SRC})
diff --git a/src/common/util.c b/src/common/util.c
index b7c6907da..f6434700c 100644
--- a/src/common/util.c
+++ b/src/common/util.c
@@ -33,6 +33,14 @@
#include <iconv.h>
#endif
+#ifndef ICONV_CONST
+ #ifdef ICONV_2ARG_IS_CONST
+ #define ICONV_CONST const
+ #else
+ #define ICONV_CONST
+ #endif
+#endif
+
#include "weechat.h"
#include "utf8.h"
#include "weeconfig.h"
diff --git a/src/gui/CMakeLists.txt b/src/gui/CMakeLists.txt
new file mode 100644
index 000000000..7835db2b4
--- /dev/null
+++ b/src/gui/CMakeLists.txt
@@ -0,0 +1,25 @@
+# Copyright (c) 2003-2007 FlashCode <flashcode@flashtux.org>
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+#
+
+SUBDIRS( curses )
+
+SET(LIB_GUI_COMMON_SRC gui-buffer.c gui-common.c gui-action.c gui-keyboard.c
+gui-log.c gui-window.c gui-panel.c gui.h gui-buffer.h gui-color.h gui-keyboard.h
+gui-panel.h gui-window.h)
+
+INCLUDE_DIRECTORIES(${CMAKE_BINARY_DIR})
+ADD_LIBRARY(weechat_gui_common STATIC ${LIB_GUI_COMMON_SRC})
diff --git a/src/gui/curses/CMakeLists.txt b/src/gui/curses/CMakeLists.txt
new file mode 100644
index 000000000..6bfdf0bcd
--- /dev/null
+++ b/src/gui/curses/CMakeLists.txt
@@ -0,0 +1,42 @@
+# Copyright (c) 2003-2007 FlashCode <flashcode@flashtux.org>
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+#
+
+SET(WEECHAT_CURSES_SRC gui-curses-chat.c gui-curses-color.c gui-curses-infobar.c
+gui-curses-input.c gui-curses-keyboard.c gui-curses-main.c gui-curses-nicklist.c
+gui-curses-status.c gui-curses-window.c gui-curses-panel.c gui-curses.h)
+
+SET(EXECUTABLE weechat-curses)
+
+INCLUDE(CheckLibraryExists)
+# Check for ncurses and/or ncursesw
+CHECK_INCLUDE_FILES(ncursesw/ncurses.h NCURSESW_HEADERS)
+CHECK_LIBRARY_EXISTS(ncursesw initscr "" NCURSESW_FOUND)
+
+IF(NCURSESW_FOUND)
+ ADD_DEFINITIONS(-DHAVE_NCURSESW_CURSES_H)
+ LIST(APPEND EXTRA_LIBS ncursesw)
+ELSE(NCURSESW_FOUND)
+ CHECK_INCLUDE_FILES(ncurses.h NCURSES_HEADERS)
+ CHECK_LIBRARY_EXISTS(ncurses initscr "" NCURSES_FOUND)
+ LIST(APPEND EXTRA_LIBS ncurses)
+ENDIF(NCURSESW_FOUND)
+
+ADD_EXECUTABLE(${EXECUTABLE} ${WEECHAT_CURSES_SRC})
+INCLUDE_DIRECTORIES(.. ../../common ../../irc ../../plugins)
+TARGET_LINK_LIBRARIES(${EXECUTABLE} ${STATIC_LIBS} ${EXTRA_LIBS})
+
+INSTALL(TARGETS ${EXECUTABLE} RUNTIME DESTINATION bin)
diff --git a/src/irc/CMakeLists.txt b/src/irc/CMakeLists.txt
new file mode 100644
index 000000000..68d19060a
--- /dev/null
+++ b/src/irc/CMakeLists.txt
@@ -0,0 +1,26 @@
+# Copyright (c) 2003-2007 FlashCode <flashcode@flashtux.org>
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+#
+
+SET(LIB_IRC_SRC irc.h irc-commands.c irc-send.c irc-recv.c irc-server.c
+irc-channel.c irc-nick.c irc-mode.c irc-dcc.c irc-ignore.c irc-display.c)
+
+CHECK_INCLUDE_FILES("regex.h" HAVE_REGEX_H)
+CHECK_FUNCTION_EXISTS(regexec HAVE_REGEXEC)
+CHECK_FUNCTION_EXISTS(uname HAVE_UNAME)
+
+INCLUDE_DIRECTORIES(${CMAKE_BINARY_DIR})
+ADD_LIBRARY(weechat_irc STATIC ${LIB_IRC_SRC})
diff --git a/src/plugins/CMakeLists.txt b/src/plugins/CMakeLists.txt
new file mode 100644
index 000000000..ec8d057a0
--- /dev/null
+++ b/src/plugins/CMakeLists.txt
@@ -0,0 +1,45 @@
+# Copyright (c) 2003-2007 FlashCode <flashcode@flashtux.org>
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+#
+
+SET(LIB_PLUGINS_SRC weechat-plugin.h plugins.h plugins.c plugins-interface.c
+plugins-config.h plugins-config.c)
+
+INCLUDE_DIRECTORIES(${CMAKE_BINARY_DIR})
+ADD_LIBRARY(weechat_plugins STATIC ${LIB_PLUGINS_SRC})
+
+INCLUDE(CheckIncludeFiles)
+INCLUDE(CheckFunctionExists)
+INCLUDE(CheckLibraryExists)
+
+IF(NOT DISABLE_ASPELL)
+ # Check for aspell libraries
+ FIND_PACKAGE(Aspell)
+ IF(ASPELL_FOUND)
+ ADD_SUBDIRECTORY( aspell )
+ ENDIF(ASPELL_FOUND)
+ENDIF(NOT DISABLE_ASPELL)
+
+IF (NOT DISABLE_CHARSET)
+ # Check for iconv support.
+ FIND_PACKAGE(Iconv)
+ IF(ICONV_FOUND)
+ ADD_DEFINITIONS( -DHAVE_ICONV )
+ ADD_SUBDIRECTORY( charset )
+ ENDIF(ICONV_FOUND)
+ENDIF(NOT DISABLE_CHARSET)
+
+ADD_SUBDIRECTORY( scripts )
diff --git a/src/plugins/aspell/CMakeLists.txt b/src/plugins/aspell/CMakeLists.txt
new file mode 100644
index 000000000..d38e75606
--- /dev/null
+++ b/src/plugins/aspell/CMakeLists.txt
@@ -0,0 +1,26 @@
+# Copyright (c) 2003-2007 FlashCode <flashcode@flashtux.org>
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+#
+
+ADD_LIBRARY(aspell MODULE weechat-aspell.h weechat-aspell.c)
+SET_TARGET_PROPERTIES(aspell PROPERTIES PREFIX "")
+
+IF(ASPELL_FOUND)
+ INCLUDE_DIRECTORIES(${ASPELL_INCLUDE_PATH})
+ TARGET_LINK_LIBRARIES(aspell ${ASPELL_LIBRARY})
+ENDIF(ASPELL_FOUND)
+
+INSTALL(TARGETS aspell LIBRARY DESTINATION lib/${PROJECT_NAME}/plugins)
diff --git a/src/plugins/charset/CMakeLists.txt b/src/plugins/charset/CMakeLists.txt
new file mode 100644
index 000000000..5068ea68a
--- /dev/null
+++ b/src/plugins/charset/CMakeLists.txt
@@ -0,0 +1,30 @@
+# Copyright (c) 2003-2007 FlashCode <flashcode@flashtux.org>
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+#
+
+ADD_LIBRARY(charset MODULE weechat-charset.h weechat-charset.c)
+SET_TARGET_PROPERTIES(charset PROPERTIES PREFIX "")
+
+IF(ICONV_FOUND)
+ INCLUDE_DIRECTORIES(${ICONV_INCLUDE_PATH})
+ IF(ICONV_LIBRARY)
+ TARGET_LINK_LIBRARIES(charset ${ICONV_LIBRARY})
+ ELSE(ICONV_LIBRARY)
+ TARGET_LINK_LIBRARIES(charset)
+ ENDIF(ICONV_LIBRARY)
+ENDIF(ICONV_FOUND)
+
+INSTALL(TARGETS charset LIBRARY DESTINATION lib/${PROJECT_NAME}/plugins)
diff --git a/src/plugins/scripts/CMakeLists.txt b/src/plugins/scripts/CMakeLists.txt
new file mode 100644
index 000000000..4831b6ffe
--- /dev/null
+++ b/src/plugins/scripts/CMakeLists.txt
@@ -0,0 +1,50 @@
+# Copyright (c) 2003-2007 FlashCode <flashcode@flashtux.org>
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+#
+
+SET(LIB_SCRIPTS_SRC weechat-script.c weechat-script.h)
+
+ADD_DEFINITIONS(${CMAKE_SHARED_LIBRARY_C_FLAGS})
+INCLUDE_DIRECTORIES(${CMAKE_BINARY_DIR})
+ADD_LIBRARY(weechat_scripts STATIC ${LIB_SCRIPTS_SRC})
+
+IF(NOT DISABLE_RUBY)
+ FIND_PACKAGE(Ruby)
+ IF(RUBY_FOUND)
+ ADD_SUBDIRECTORY( ruby )
+ ENDIF(RUBY_FOUND)
+ENDIF(NOT DISABLE_RUBY)
+
+IF(NOT DISABLE_LUA)
+ FIND_PACKAGE(Lua)
+ IF(LUA_FOUND)
+ ADD_SUBDIRECTORY( lua )
+ ENDIF(LUA_FOUND)
+ENDIF(NOT DISABLE_LUA)
+
+IF(NOT DISABLE_PYTHON)
+ FIND_PACKAGE(Python)
+ IF(PYTHON_FOUND)
+ ADD_SUBDIRECTORY( python )
+ ENDIF(PYTHON_FOUND)
+ENDIF(NOT DISABLE_PYTHON)
+
+IF(NOT DISABLE_PERL)
+ FIND_PACKAGE(Perl)
+ IF(PERL_FOUND)
+ ADD_SUBDIRECTORY( perl )
+ ENDIF(PERL_FOUND)
+ENDIF(NOT DISABLE_PERL)
diff --git a/src/plugins/scripts/lua/CMakeLists.txt b/src/plugins/scripts/lua/CMakeLists.txt
new file mode 100644
index 000000000..255de8cdc
--- /dev/null
+++ b/src/plugins/scripts/lua/CMakeLists.txt
@@ -0,0 +1,30 @@
+# Copyright (c) 2003-2007 FlashCode <flashcode@flashtux.org>
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+#
+
+ADD_LIBRARY(lua MODULE weechat-lua.c)
+SET_TARGET_PROPERTIES(lua PROPERTIES PREFIX "")
+
+IF(LUA_FOUND)
+ INCLUDE_DIRECTORIES(${LUA_INCLUDE_PATH} )
+ IF(LUA_LIBRARY AND LUALIB_LIBRARY)
+ TARGET_LINK_LIBRARIES(lua ${LUA_LIBRARY} ${LUALIB_LIBRARY} weechat_scripts)
+ ELSE(LUA_LIBRARY AND LUALIB_LIBRARY)
+ TARGET_LINK_LIBRARIES(lua ${LUA_LIBRARY} weechat_scripts)
+ ENDIF(LUA_LIBRARY AND LUALIB_LIBRARY)
+ENDIF(LUA_FOUND)
+
+INSTALL(TARGETS lua LIBRARY DESTINATION lib/${PROJECT_NAME}/plugins)
diff --git a/src/plugins/scripts/perl/CMakeLists.txt b/src/plugins/scripts/perl/CMakeLists.txt
new file mode 100644
index 000000000..9b5ed98ea
--- /dev/null
+++ b/src/plugins/scripts/perl/CMakeLists.txt
@@ -0,0 +1,38 @@
+# Copyright (c) 2003-2007 FlashCode <flashcode@flashtux.org>
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+#
+
+ADD_LIBRARY(perl MODULE weechat-perl.c)
+
+SET_TARGET_PROPERTIES(perl PROPERTIES PREFIX "")
+
+IF(PERL_FOUND)
+ ADD_DEFINITIONS(${PERL_CFLAGS})
+ INCLUDE_DIRECTORIES(${PERL_INCLUDE_PATH})
+ # ugly hack to force linking against Dynaloader.a
+ STRING(REGEX MATCH "/[^ $]*/DynaLoader.a" PERL_DYNALOADER ${PERL_LFLAGS})
+ IF(PERL_DYNALOADER)
+ STRING(REPLACE "${PERL_DYNALOADER}" "" PERL_LFLAGS "${PERL_LFLAGS}")
+ SET(CMAKE_MODULE_LINKER_FLAGS "${CMAKE_MODULE_LINKER_FLAGS} ${PERL_LFLAGS}")
+ EXECUTE_PROCESS(COMMAND ${CMAKE_COMMAND} -E copy ${PERL_DYNALOADER} ${CMAKE_CURRENT_BINARY_DIR}/libDynaLoader.a)
+ TARGET_LINK_LIBRARIES(perl ${PERL_LIBRARY} weechat_scripts ${CMAKE_CURRENT_BINARY_DIR}/libDynaLoader.a)
+ ELSE(PERL_DYNALOADER)
+ SET(CMAKE_MODULE_LINKER_FLAGS "${CMAKE_MODULE_LINKER_FLAGS} ${PERL_LFLAGS}")
+ TARGET_LINK_LIBRARIES(perl ${PERL_LIBRARY} weechat_scripts)
+ ENDIF(PERL_DYNALOADER)
+ENDIF(PERL_FOUND)
+
+INSTALL(TARGETS perl LIBRARY DESTINATION lib/${PROJECT_NAME}/plugins)
diff --git a/src/plugins/scripts/python/CMakeLists.txt b/src/plugins/scripts/python/CMakeLists.txt
new file mode 100644
index 000000000..cf7e05533
--- /dev/null
+++ b/src/plugins/scripts/python/CMakeLists.txt
@@ -0,0 +1,28 @@
+# Copyright (c) 2003-2007 FlashCode <flashcode@flashtux.org>
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+#
+
+ADD_LIBRARY(python MODULE weechat-python.c)
+
+SET_TARGET_PROPERTIES(python PROPERTIES PREFIX "")
+
+IF(PYTHON_FOUND)
+ INCLUDE_DIRECTORIES(${PYTHON_INCLUDE_PATH})
+ SET(CMAKE_MODULE_LINKER_FLAGS "${CMAKE_MODULE_LINKER_FLAGS} ${PYTHON_LFLAGS}")
+ TARGET_LINK_LIBRARIES(python ${PYTHON_LIBRARY} weechat_scripts)
+ENDIF(PYTHON_FOUND)
+
+INSTALL(TARGETS python LIBRARY DESTINATION lib/weechat/plugins)
diff --git a/src/plugins/scripts/ruby/CMakeLists.txt b/src/plugins/scripts/ruby/CMakeLists.txt
new file mode 100644
index 000000000..51ea89959
--- /dev/null
+++ b/src/plugins/scripts/ruby/CMakeLists.txt
@@ -0,0 +1,27 @@
+# Copyright (c) 2003-2007 FlashCode <flashcode@flashtux.org>
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+#
+
+ADD_LIBRARY(ruby MODULE weechat-ruby.c)
+
+SET_TARGET_PROPERTIES(ruby PROPERTIES PREFIX "")
+
+IF(RUBY_FOUND)
+ INCLUDE_DIRECTORIES(${RUBY_INCLUDE_PATH})
+ TARGET_LINK_LIBRARIES(ruby ${RUBY_LIBRARY} weechat_scripts)
+ENDIF(RUBY_FOUND)
+
+INSTALL(TARGETS ruby LIBRARY DESTINATION lib/${PROJECT_NAME}/plugins)