sway/CMakeLists.txt
Drew DeVault 4dc913c95e Add swaybg executable
This will let users set their background to something other than that
cringy demoscene thing wlc has now. It's also going to be the first
wayland client written for sway, so I picked an easy thing to work on.
We'll have to figure out how to indicate that it's a special view.
2015-11-12 08:31:47 -05:00

110 lines
2.9 KiB
CMake

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)
add_subdirectory(swaybg swaybg)
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/)