173 lines
5.7 KiB
CMake
173 lines
5.7 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 )
|
|
|
|
# If this is a git repository...
|
|
IF( EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/.git/HEAD )
|
|
# ...update version
|
|
FIND_PROGRAM(GIT_EXECUTABLE git)
|
|
IF( GIT_EXECUTABLE )
|
|
EXECUTE_PROCESS( COMMAND ${GIT_EXECUTABLE} describe
|
|
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
|
|
OUTPUT_VARIABLE VERSION
|
|
OUTPUT_STRIP_TRAILING_WHITESPACE )
|
|
ENDIF( GIT_EXECUTABLE )
|
|
ENDIF( EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/.git/HEAD )
|
|
|
|
|
|
# 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 lobev
|
|
FIND_LIBRARY( LIB_EV ev )
|
|
|
|
# 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)
|
|
|
|
FIND_PROGRAM( LUA_EXECUTABLE lua )
|
|
|
|
# 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 LIB_EV )
|
|
MESSAGE( FATAL_ERROR "libev not found" )
|
|
ENDIF( NOT LIB_EV )
|
|
|
|
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 $ENV{HOSTNAME} )
|
|
SET( AWESOME_COMPILE_BY $ENV{USER} )
|
|
SET( AWESOME_RELEASE ${VERSION} )
|
|
SET( AWESOME_ETC ${CMAKE_INSTALL_PREFIX}/etc )
|
|
SET( AWESOME_SHARE ${CMAKE_INSTALL_PREFIX}/share )
|
|
SET( AWESOME_DATA_PATH ${CMAKE_INSTALL_PREFIX}/share/${PROJECT_AWE_NAME} )
|
|
SET( AWESOME_LUA_LIB_PATH ${AWESOME_DATA_PATH}/lib )
|
|
SET( AWESOME_ICON_PATH ${AWESOME_DATA_PATH}/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}
|
|
)
|
|
|
|
# vim: filetype=cmake:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:encoding=utf-8:textwidth=80
|