cmake_minimum_required(VERSION 2.8.5) project(sway C) set(CMAKE_C_FLAGS "-g") set(CMAKE_C_STANDARD 99) SET(CMAKE_C_EXTENSIONS OFF) set(CMAKE_RUNTIME_OUTPUT_DIRECTORY "bin/") add_definitions("-Wall -Wextra -Wno-unused-parameter") set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${PROJECT_SOURCE_DIR}/CMake) if(EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/.git") execute_process( COMMAND git describe --always OUTPUT_VARIABLE GIT_COMMIT_HASH OUTPUT_STRIP_TRAILING_WHITESPACE ) execute_process( COMMAND git rev-parse --abbrev-ref HEAD OUTPUT_VARIABLE GIT_BRANCH OUTPUT_STRIP_TRAILING_WHITESPACE ) endif(EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/.git") SET(VERSION_GIT_COMMIT_FLAG "-DSWAY_GIT_VERSION=\"g${GIT_COMMIT_HASH}\"") add_definitions("${VERSION_GIT_COMMIT_FLAG}") SET(VERSION_GIT_BRANCH_FLAG "-DSWAY_GIT_BRANCH=\"${GIT_BRANCH}\"") add_definitions("${VERSION_GIT_BRANCH_FLAG}") execute_process( COMMAND date +"%Y-%m-%d" OUTPUT_VARIABLE CURRENT_DATE OUTPUT_STRIP_TRAILING_WHITESPACE ) SET(VERSION_DATE_FLAG "-DSWAY_VERSION_DATE=${CURRENT_DATE}") add_definitions("${VERSION_DATE_FLAG}") find_package(XKBCommon REQUIRED) find_package(WLC REQUIRED) find_package(A2X REQUIRED) find_package(PCRE REQUIRED) find_package(JsonC REQUIRED) FILE(GLOB sources ${PROJECT_SOURCE_DIR}/sway/*.c) include_directories( ${WLC_INCLUDE_DIRS} ${PCRE_INCLUDE_DIRS} ${JSONC_INCLUDE_DIRS} ${XKBCOMMON_INCLUDE_DIRS} include/ ) add_executable(sway ${sources} ) target_link_libraries(sway ${WLC_LIBRARIES} ${XKBCOMMON_LIBRARIES} ${PCRE_LIBRARIES} ${JSONC_LIBRARIES} ) INSTALL( TARGETS sway RUNTIME DESTINATION bin ) INSTALL( FILES ${PROJECT_SOURCE_DIR}/config DESTINATION /etc/sway/ ) ADD_CUSTOM_COMMAND(OUTPUT ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/sway.1 COMMAND ${A2X_COMMAND} --no-xmllint --doctype manpage --format manpage -D ${CMAKE_RUNTIME_OUTPUT_DIRECTORY} ${CMAKE_CURRENT_SOURCE_DIR}/sway.1.txt DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/sway.1.txt ) ADD_CUSTOM_COMMAND(OUTPUT ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/sway.5 COMMAND ${A2X_COMMAND} --no-xmllint --doctype manpage --format manpage -D ${CMAKE_RUNTIME_OUTPUT_DIRECTORY} ${CMAKE_CURRENT_SOURCE_DIR}/sway.5.txt DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/sway.5.txt ) ADD_CUSTOM_TARGET(man ALL DEPENDS ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/sway.1 DEPENDS ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/sway.5) INSTALL( FILES ${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/sway.1 DESTINATION ${CMAKE_INSTALL_PREFIX}/share/man/man1 ) INSTALL( FILES ${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/sway.5 DESTINATION ${CMAKE_INSTALL_PREFIX}/share/man/man5 ) INSTALL( FILES ${PROJECT_SOURCE_DIR}/sway.desktop DESTINATION ${CMAKE_INSTALL_PREFIX}/share/wayland-sessions/) INSTALL( FILES ${PROJECT_SOURCE_DIR}/sway-xorg.desktop DESTINATION ${CMAKE_INSTALL_PREFIX}/share/xsessions/)