awesome/awesomeConfig.cmake

149 lines
5.0 KiB
CMake

SET( PROJECT_AWE_NAME awesome )
SET( PROJECT_AWECLIENT_NAME awesome-client )
SET( VERSION 3 )
PROJECT( ${PROJECT_AWE_NAME} )
SET( CMAKE_BUILD_TYPE RELEASE )
# Check for doxygen
INCLUDE( FindDoxygen )
INCLUDE( FindPkgConfig )
INCLUDE( UsePkgConfig )
SET( AWE_COMMON_DIR common )
SET( AWE_LAYOUT_DIR layouts )
SET( AWE_WIDGET_DIR widgets )
MESSAGE( "Checking for REQUIRED modules: " )
# Use pkgconfig to get most of the libraries
pkg_check_modules( AWE_MOD REQUIRED glib-2.0
cairo
pango
gtk+-2.0>=2.2
xcb
xcb-event
xcb-randr
xcb-xinerama
xcb-shape
xcb-aux
xcb-atom
xcb-keysyms
xcb-render
xcb-icccm
cairo-xcb
dbus-1
imlib2
)
# Check for readline and ncurse
FIND_LIBRARY( LIB_READLINE readline )
FIND_LIBRARY( LIB_NCURSES ncurses )
# Check for lua5.1
FIND_PATH(LUA_INC_DIR lua.h
/usr/include
/usr/include/lua5.1
/usr/local/include/lua5.1
../libs/lua-5.1.3/src)
FIND_LIBRARY(LUA_LIB NAMES lua5.1 lua
/usr/lib
/usr/lib/lua
/usr/local/lib
../libs/lua-5.1.3/lib)
# Error check
IF( NOT LIB_READLINE )
MESSAGE( FATAL_ERROR "readline library not found" )
ENDIF( NOT LIB_READLINE )
IF( NOT LIB_NCURSES )
MESSAGE( FATAL_ERROR "ncurse library not found" )
ENDIF( NOT LIB_NCURSES )
IF( NOT LUA_LIB )
MESSAGE( FATAL_ERROR "lua library not found" )
ELSE( LUA_LIB AND LUA_INC_DIR )
MESSAGE( "lua 5.1 found: " ${LUA_LIB} )
ENDIF( NOT LUA_LIB )
# Add awesome defines
ADD_DEFINITIONS( -DWITH_DBUS
-DWITH_IMLIB
)
IF ( DOXYGEN_EXECUTABLE )
ADD_CUSTOM_TARGET( doc ${DOXYGEN_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/awesome.doxygen )
ENDIF ( DOXYGEN_EXECUTABLE )
# Check for programs needed for man pages
FIND_PROGRAM( ASCIIDOC_EXECUTABLE asciidoc )
FIND_PROGRAM( XMLTO_EXECUTABLE xmlto )
FIND_PROGRAM( GZIP_EXECUTABLE gzip )
IF( ASCIIDOC_EXECUTABLE AND XMLTO_EXECUTABLE AND GZIP_EXECUTABLE )
SET( AWESOME_GENERATE_MAN TRUE )
ENDIF( ASCIIDOC_EXECUTABLE AND XMLTO_EXECUTABLE AND GZIP_EXECUTABLE )
# Set awesome informations and path
SET( AWESOME_VERSION_INTERNAL devel )
SET( AWESOME_COMPILE_MACHINE ${CMAKE_SYSTEM_PROCESSOR} )
SET( AWESOME_COMPILE_HOSTNAME ${CMAKE_SYSTEM_NAME} )
SET( AWESOME_COMPILE_BY ${CMAKE_C_COMPILER} )
SET( AWESOME_RELEASE ${VERSION} )
SET( AWESOME_ETC ${CMAKE_INSTALL_PREFIX}/etc )
SET( AWESOME_SHARE ${CMAKE_INSTALL_PREFIX}/share )
SET( AWESOME_LUA_LIB_PATH ${AWESOME_SHARE}/${PROJECT_AWE_NAME}/lib )
SET( AWESOME_ICON_PATH ${AWESOME_SHARE}/${PROJECT_AWE_NAME}/icons )
SET( AWESOME_CONF_PATH ${AWESOME_ETC}/${PROJECT_AWE_NAME} )
SET( AWESOME_MAN1_PATH ${AWESOME_SHARE}/man/man1 )
SET( AWESOME_MAN5_PATH ${AWESOME_SHARE}/man/man5 )
# Configure awesome config.h from template
CONFIGURE_FILE( ${CMAKE_CURRENT_SOURCE_DIR}/config.h.in
${CMAKE_CURRENT_SOURCE_DIR}/config.h
ESCAPE_QUOTE
@ONLY
)
# Confiure awesomerc.lua.in
CONFIGURE_FILE( ${CMAKE_CURRENT_SOURCE_DIR}/awesomerc.lua.in
${CMAKE_CURRENT_SOURCE_DIR}/awesomerc.lua
ESCAPE_QUOTE
@ONLY
)
# Configure awesome awesome-version-internal.h from template
CONFIGURE_FILE( ${CMAKE_CURRENT_SOURCE_DIR}/awesome-version-internal.h.in
${CMAKE_CURRENT_SOURCE_DIR}/awesome-version-internal.h
ESCAPE_QUOTE
@ONLY
)
# Configure awesome.doxygen
CONFIGURE_FILE( ${CMAKE_CURRENT_SOURCE_DIR}/awesome.doxygen.in
${CMAKE_CURRENT_SOURCE_DIR}/awesome.doxygen
ESCAPE_QUOTE
@ONLY
)
# Execute some header generator
EXECUTE_PROCESS( COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/build-utils/layoutgen.sh
OUTPUT_FILE ${CMAKE_CURRENT_SOURCE_DIR}/layoutgen.h
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
)
EXECUTE_PROCESS( COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/build-utils/widgetgen.sh
OUTPUT_FILE ${CMAKE_CURRENT_SOURCE_DIR}/widgetgen.h
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
)
# Set the awesome include dir
SET( AWE_INC_DIR ${CMAKE_CURRENT_SOURCE_DIR}
${AWE_MOD_INCLUDE_DIRS}
${LUA_INC_DIR}
)