mirror of
https://github.com/Llewellynvdm/conky.git
synced 2024-11-20 03:51:18 +00:00
Add CMake build support for Lua bindings.
This commit is contained in:
parent
32c5f451b9
commit
fb33419cd4
@ -28,3 +28,10 @@ add_subdirectory(src)
|
|||||||
add_subdirectory(lua)
|
add_subdirectory(lua)
|
||||||
add_subdirectory(doc)
|
add_subdirectory(doc)
|
||||||
|
|
||||||
|
# Install README into share dir (is this even the right spot? need to revisit
|
||||||
|
# this at some point)
|
||||||
|
install(FILES
|
||||||
|
README
|
||||||
|
DESTINATION share/doc/conky
|
||||||
|
)
|
||||||
|
|
||||||
|
@ -72,6 +72,10 @@ if(BUILD_X11)
|
|||||||
endif(BUILD_X11)
|
endif(BUILD_X11)
|
||||||
|
|
||||||
option(BUILD_LUA "Build Lua support" true)
|
option(BUILD_LUA "Build Lua support" true)
|
||||||
|
if(BUILD_LUA)
|
||||||
|
option(BUILD_LUA_CAIRO "Build cairo bindings for Lua" false)
|
||||||
|
option(BUILD_LUA_IMLIB2 "Build Imlib2 bindings for Lua" false)
|
||||||
|
endif(BUILD_LUA)
|
||||||
|
|
||||||
option(BUILD_AUDACIOUS "Build audacious (music player) support" false)
|
option(BUILD_AUDACIOUS "Build audacious (music player) support" false)
|
||||||
if(BUILD_AUDACIOUS)
|
if(BUILD_AUDACIOUS)
|
||||||
|
@ -149,6 +149,18 @@ if(BUILD_LUA)
|
|||||||
pkg_search_module(LUA REQUIRED lua>=5.1 lua-5.1>=5.1 lua5.1>=5.1)
|
pkg_search_module(LUA REQUIRED lua>=5.1 lua-5.1>=5.1 lua5.1>=5.1)
|
||||||
set(conky_libs ${conky_libs} ${LUA_LIBRARIES})
|
set(conky_libs ${conky_libs} ${LUA_LIBRARIES})
|
||||||
set(conky_includes ${conky_includes} ${LUA_INCLUDE_DIRS})
|
set(conky_includes ${conky_includes} ${LUA_INCLUDE_DIRS})
|
||||||
|
if(BUILD_LUA_CAIRO)
|
||||||
|
set(WANT_TOLUA true)
|
||||||
|
pkg_check_modules(CAIRO REQUIRED cairo cairo-xlib)
|
||||||
|
set(luacairo_libs ${CAIRO_LIBRARIES} ${LUA_LIBRARIES})
|
||||||
|
set(luacairo_includes ${CAIRO_INCLUDE_DIRS} ${LUA_INCLUDE_DIRS})
|
||||||
|
endif(BUILD_LUA_CAIRO)
|
||||||
|
if(BUILD_LUA_IMLIB2)
|
||||||
|
set(WANT_TOLUA true)
|
||||||
|
pkg_check_modules(IMLIB2 imlib2)
|
||||||
|
set(luaimlib2_libs ${IMLIB2_LIB} ${LUA_LIBRARIES})
|
||||||
|
set(luaimlib2_includes ${IMLIB2_INCLUDE_PATH} ${LUA_INCLUDE_DIRS})
|
||||||
|
endif(BUILD_LUA_IMLIB2)
|
||||||
endif(BUILD_LUA)
|
endif(BUILD_LUA)
|
||||||
|
|
||||||
if(BUILD_AUDACIOUS)
|
if(BUILD_AUDACIOUS)
|
||||||
@ -244,3 +256,17 @@ if(WANT_LIBXML2)
|
|||||||
set(conky_includes ${conky_includes} ${LIBXML2_INCLUDE_DIRS})
|
set(conky_includes ${conky_includes} ${LIBXML2_INCLUDE_DIRS})
|
||||||
endif(WANT_LIBXML2)
|
endif(WANT_LIBXML2)
|
||||||
|
|
||||||
|
if(WANT_TOLUA)
|
||||||
|
find_program(APP_TOLUA tolua++)
|
||||||
|
if(NOT APP_TOLUA)
|
||||||
|
message(FATAL_ERROR "Unable to find program 'tolua++'")
|
||||||
|
endif(NOT APP_TOLUA)
|
||||||
|
find_library(TOLUA_LIBS NAMES tolua++ tolua++5.1)
|
||||||
|
find_path(TOLUA_INCLUDE_PATH tolua++.h ${INCLUDE_SEARCH_PATH})
|
||||||
|
if(TOLUA_INCLUDE_PATH AND TOLUA_LIBS)
|
||||||
|
set(TOLUA_FOUND true)
|
||||||
|
else(TOLUA_INCLUDE_PATH AND TOLUA_LIBS)
|
||||||
|
message(FATAL_ERROR "Unable to find tolua++ library")
|
||||||
|
endif(TOLUA_INCLUDE_PATH AND TOLUA_LIBS)
|
||||||
|
endif(WANT_TOLUA)
|
||||||
|
|
||||||
|
24
cmake/ToLua.cmake
Normal file
24
cmake/ToLua.cmake
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
function(wrap_tolua VAR)
|
||||||
|
if(NOT ARGN)
|
||||||
|
message(SEND_ERROR "Error: wrap_tolua called without any files")
|
||||||
|
return()
|
||||||
|
endif(NOT ARGN)
|
||||||
|
|
||||||
|
SET(INCL)
|
||||||
|
SET(${VAR})
|
||||||
|
FOREACH(FIL ${ARGN})
|
||||||
|
GET_FILENAME_COMPONENT(ABS_FIL ${FIL} ABSOLUTE)
|
||||||
|
GET_FILENAME_COMPONENT(FIL_WE ${FIL} NAME_WE)
|
||||||
|
LIST(APPEND ${VAR} "${CMAKE_CURRENT_BINARY_DIR}/lib${FIL_WE}.c")
|
||||||
|
|
||||||
|
ADD_CUSTOM_COMMAND( OUTPUT ${${VAR}} ${INCL} COMMAND ${APP_TOLUA} -n
|
||||||
|
${FIL_WE} -o ${CMAKE_CURRENT_BINARY_DIR}/lib${FIL_WE}.c ${ABS_FIL} DEPENDS
|
||||||
|
${ABS_FIL} COMMENT "Running tolua++ on ${FIL}"
|
||||||
|
VERBATIM )
|
||||||
|
|
||||||
|
SET_SOURCE_FILES_PROPERTIES(${${VAR}} ${INCL} PROPERTIES GENERATED TRUE)
|
||||||
|
ENDFOREACH(FIL)
|
||||||
|
|
||||||
|
SET(${VAR} ${${VAR}} PARENT_SCOPE)
|
||||||
|
|
||||||
|
endfunction(wrap_tolua)
|
@ -0,0 +1,27 @@
|
|||||||
|
include(ToLua)
|
||||||
|
|
||||||
|
if(BUILD_LUA_CAIRO)
|
||||||
|
include_directories(${luacairo_includes} ${CMAKE_CURRENT_SOURCE_DIR})
|
||||||
|
wrap_tolua(luacairo_src cairo.pkg)
|
||||||
|
|
||||||
|
add_library(cairo SHARED ${luacairo_src})
|
||||||
|
|
||||||
|
target_link_libraries(cairo ${luacairo_libs} ${TOLUA_LIBS})
|
||||||
|
set(lua_libs ${lua_libs} cairo)
|
||||||
|
endif(BUILD_LUA_CAIRO)
|
||||||
|
|
||||||
|
if(BUILD_LUA_IMLIB2)
|
||||||
|
include_directories(${luaimlib2_includes} ${CMAKE_CURRENT_SOURCE_DIR})
|
||||||
|
wrap_tolua(luaimlib2_src imlib2.pkg)
|
||||||
|
|
||||||
|
add_library(imlib2 SHARED ${luaimlib2_src})
|
||||||
|
|
||||||
|
target_link_libraries(imlib2 ${luaimlib2_libs} ${TOLUA_LIBS})
|
||||||
|
set(lua_libs ${lua_libs} imlib2)
|
||||||
|
endif(BUILD_LUA_IMLIB2)
|
||||||
|
|
||||||
|
install(TARGETS
|
||||||
|
${lua_libs}
|
||||||
|
LIBRARY DESTINATION lib/conky
|
||||||
|
ARCHIVE DESTINATION lib/conky
|
||||||
|
)
|
@ -3,7 +3,7 @@ $#include <cairo-deprecated.h>
|
|||||||
$#include <cairo.h>
|
$#include <cairo.h>
|
||||||
$#include <cairo-xlib.h>
|
$#include <cairo-xlib.h>
|
||||||
$#include <X11/Xlib.h>
|
$#include <X11/Xlib.h>
|
||||||
$#include "libcairo-helper.h"
|
$#include <libcairo-helper.h>
|
||||||
/*
|
/*
|
||||||
* This code was mostly copied from cairo.h and cairo-xlib.h with comments
|
* This code was mostly copied from cairo.h and cairo-xlib.h with comments
|
||||||
* removed. The licence noticed below is present for the sake of clarity.
|
* removed. The licence noticed below is present for the sake of clarity.
|
||||||
|
@ -143,3 +143,11 @@ endif(BUILD_CONFIG_OUTPUT)
|
|||||||
add_executable(conky ${conky_sources} ${optional_sources})
|
add_executable(conky ${conky_sources} ${optional_sources})
|
||||||
|
|
||||||
target_link_libraries(conky ${conky_libs})
|
target_link_libraries(conky ${conky_libs})
|
||||||
|
|
||||||
|
# Install libtcp-portmon too?
|
||||||
|
install(TARGETS
|
||||||
|
conky
|
||||||
|
RUNTIME DESTINATION bin
|
||||||
|
LIBRARY DESTINATION lib
|
||||||
|
ARCHIVE DESTINATION lib
|
||||||
|
)
|
||||||
|
Loading…
Reference in New Issue
Block a user