IF(NOT EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/awesomeConfig.cmake) MESSAGE(FATAL "Please provide awesomeConfig.cmake") ENDIF() CMAKE_MINIMUM_REQUIRED(VERSION 2.4) INCLUDE(awesomeConfig.cmake) INCLUDE_DIRECTORIES(${AWE_INC_DIR}) # C flags {{{ # big debug flags SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -std=gnu99 -ggdb3") SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -O2") SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fno-strict-aliasing") SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall") SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wextra") SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wchar-subscripts") SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wundef") SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wshadow") SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wcast-align") SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wwrite-strings") SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wsign-compare") SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wunused") SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wno-unused-parameter") SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wuninitialized") SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Winit-self") SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wpointer-arith") SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wredundant-decls") SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wformat-nonliteral") SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wno-format-zero-length") SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wmissing-prototypes") #SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wmissing-format-attribute") # }}} SET(AWE_LUA_FILES ${CMAKE_CURRENT_SOURCE_DIR}/lib/tabulous.lua ${CMAKE_CURRENT_SOURCE_DIR}/lib/awful.lua) SET(AWE_CONF_FILES ${CMAKE_CURRENT_SOURCE_DIR}/awesomerc.lua) SET(AWE_ICON_DIR ${CMAKE_CURRENT_SOURCE_DIR}/icons) SET(AWE_SRCS ${CMAKE_CURRENT_SOURCE_DIR}/awesome.c ${CMAKE_CURRENT_SOURCE_DIR}/client.c ${CMAKE_CURRENT_SOURCE_DIR}/cnode.c ${CMAKE_CURRENT_SOURCE_DIR}/dbus.c ${CMAKE_CURRENT_SOURCE_DIR}/event.c ${CMAKE_CURRENT_SOURCE_DIR}/ewmh.c ${CMAKE_CURRENT_SOURCE_DIR}/focus.c ${CMAKE_CURRENT_SOURCE_DIR}/keybinding.c ${CMAKE_CURRENT_SOURCE_DIR}/keygrabber.c ${CMAKE_CURRENT_SOURCE_DIR}/layout.c ${CMAKE_CURRENT_SOURCE_DIR}/lua.c ${CMAKE_CURRENT_SOURCE_DIR}/mouse.c ${CMAKE_CURRENT_SOURCE_DIR}/placement.c ${CMAKE_CURRENT_SOURCE_DIR}/screen.c ${CMAKE_CURRENT_SOURCE_DIR}/stack.c ${CMAKE_CURRENT_SOURCE_DIR}/statusbar.c ${CMAKE_CURRENT_SOURCE_DIR}/systray.c ${CMAKE_CURRENT_SOURCE_DIR}/tag.c ${CMAKE_CURRENT_SOURCE_DIR}/titlebar.c ${CMAKE_CURRENT_SOURCE_DIR}/widget.c ${CMAKE_CURRENT_SOURCE_DIR}/window.c ${CMAKE_CURRENT_SOURCE_DIR}/${AWE_COMMON_DIR}/configopts.c ${CMAKE_CURRENT_SOURCE_DIR}/${AWE_COMMON_DIR}/draw.c ${CMAKE_CURRENT_SOURCE_DIR}/${AWE_COMMON_DIR}/markup.c ${CMAKE_CURRENT_SOURCE_DIR}/${AWE_COMMON_DIR}/socket.c ${CMAKE_CURRENT_SOURCE_DIR}/${AWE_COMMON_DIR}/swindow.c ${CMAKE_CURRENT_SOURCE_DIR}/${AWE_COMMON_DIR}/util.c ${CMAKE_CURRENT_SOURCE_DIR}/${AWE_COMMON_DIR}/version.c ${CMAKE_CURRENT_SOURCE_DIR}/${AWE_COMMON_DIR}/xembed.c ${CMAKE_CURRENT_SOURCE_DIR}/${AWE_COMMON_DIR}/xscreen.c ${CMAKE_CURRENT_SOURCE_DIR}/${AWE_COMMON_DIR}/xutil.c ${CMAKE_CURRENT_SOURCE_DIR}/${AWE_LAYOUT_DIR}/fibonacci.c ${CMAKE_CURRENT_SOURCE_DIR}/${AWE_LAYOUT_DIR}/floating.c ${CMAKE_CURRENT_SOURCE_DIR}/${AWE_LAYOUT_DIR}/magnifier.c ${CMAKE_CURRENT_SOURCE_DIR}/${AWE_LAYOUT_DIR}/max.c ${CMAKE_CURRENT_SOURCE_DIR}/${AWE_LAYOUT_DIR}/tile.c ${CMAKE_CURRENT_SOURCE_DIR}/${AWE_WIDGET_DIR}/graph.c ${CMAKE_CURRENT_SOURCE_DIR}/${AWE_WIDGET_DIR}/iconbox.c ${CMAKE_CURRENT_SOURCE_DIR}/${AWE_WIDGET_DIR}/progressbar.c ${CMAKE_CURRENT_SOURCE_DIR}/${AWE_WIDGET_DIR}/taglist.c ${CMAKE_CURRENT_SOURCE_DIR}/${AWE_WIDGET_DIR}/tasklist.c ${CMAKE_CURRENT_SOURCE_DIR}/${AWE_WIDGET_DIR}/textbox.c ${CMAKE_CURRENT_SOURCE_DIR}/${AWE_WIDGET_DIR}/systray.c) SET(AWE_CLIENT_SRCS ${CMAKE_CURRENT_SOURCE_DIR}/awesome-client.c ${CMAKE_CURRENT_SOURCE_DIR}/${AWE_COMMON_DIR}/socket.c ${CMAKE_CURRENT_SOURCE_DIR}/${AWE_COMMON_DIR}/util.c ${CMAKE_CURRENT_SOURCE_DIR}/${AWE_COMMON_DIR}/version.c) SET(AWE_MAN_SRCS ${CMAKE_CURRENT_SOURCE_DIR}/awesome.1.txt ${CMAKE_CURRENT_SOURCE_DIR}/awesome-client.1.txt ${CMAKE_CURRENT_SOURCE_DIR}/awesomerc.5.txt) SET(AWE_MAN1_NAME ${CMAKE_CURRENT_BINARY_DIR}/awesome.1.gz ${CMAKE_CURRENT_BINARY_DIR}/awesome-client.1.gz) SET(AWE_MAN5_NAME ${CMAKE_CURRENT_BINARY_DIR}/awesomerc.5.gz) SET(AWE_LUADOC_FILE ${CMAKE_CURRENT_SOURCE_DIR}/apidocgen.txt) ADD_EXECUTABLE(${PROJECT_AWE_NAME} ${AWE_SRCS}) ADD_EXECUTABLE(${PROJECT_AWECLIENT_NAME} ${AWE_CLIENT_SRCS}) TARGET_LINK_LIBRARIES(${PROJECT_AWE_NAME} ${AWE_MOD_LIBRARIES} ${LUA_LIB} ${LIB_EV} ${LIB_READLINE} ${LIB_NCURSES} ${LIB_EV}) TARGET_LINK_LIBRARIES(${PROJECT_AWECLIENT_NAME} ${AWE_MOD_LIBRARIES} ${LIB_READLINE} ${LIB_NCURSES}) IF(AWESOME_GENERATE_MAN) # Create luadoc file FIND_PROGRAM(CAT_EXECUTABLE cat) EXECUTE_PROCESS(COMMAND ${CAT_EXECUTABLE} ${AWE_SRCS} COMMAND ${LUA_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/build-utils/gendoc.lua OUTPUT_FILE ${AWE_LUADOC_FILE} WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}) FOREACH(txtfile ${AWE_MAN_SRCS}) STRING(REGEX REPLACE ".txt\$" ".xml" xmlfile ${txtfile}) STRING(REGEX REPLACE ".xml\$" ".gz" gzipman ${xmlfile}) STRING(REPLACE ${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_BINARY_DIR} gzipman ${gzipman}) STRING(REGEX REPLACE ".gz\$" "" manfile ${gzipman}) ADD_CUSTOM_COMMAND(TARGET ${PROJECT_AWECLIENT_NAME} POST_BUILD COMMAND ${ASCIIDOC_EXECUTABLE} -d manpage -b docbook -o ${xmlfile} ${txtfile} COMMAND ${XMLTO_EXECUTABLE} man ${xmlfile} COMMAND ${GZIP_EXECUTABLE} -f ${manfile} COMMENT "Generating manpage for ${manfile}") ENDFOREACH() ENDIF() INSTALL(TARGETS ${PROJECT_AWE_NAME} ${PROJECT_AWECLIENT_NAME} RUNTIME DESTINATION bin) INSTALL(FILES ${AWE_LUA_FILES} DESTINATION ${AWESOME_LUA_LIB_PATH}) INSTALL(FILES ${AWE_CONF_FILES} DESTINATION ${AWESOME_CONF_PATH}) INSTALL(FILES ${AWE_MAN1_NAME} DESTINATION ${AWESOME_MAN1_PATH}) INSTALL(FILES ${AWE_MAN5_NAME} DESTINATION ${AWESOME_MAN5_PATH}) INSTALL(DIRECTORY ${AWE_ICON_DIR} DESTINATION ${AWESOME_DATA_PATH}) # vim: filetype=cmake:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:encoding=utf-8:textwidth=80