summaryrefslogtreecommitdiffstats
path: root/CMakeLists.txt
diff options
context:
space:
mode:
authorLibravatar Drew DeVault <sir@cmpwn.com>2015-11-12 22:20:44 -0500
committerLibravatar Drew DeVault <sir@cmpwn.com>2015-11-12 22:20:44 -0500
commit44d0b3282f91cf1f01a9c79ad0e2b64f1a11e845 (patch)
treea7797ce637c450643a773d6cb415b7a617d11891 /CMakeLists.txt
parentWe don't need to implement strdup (diff)
parentcmake: run git in the source directory (diff)
downloadsway-44d0b3282f91cf1f01a9c79ad0e2b64f1a11e845.tar.gz
sway-44d0b3282f91cf1f01a9c79ad0e2b64f1a11e845.tar.zst
sway-44d0b3282f91cf1f01a9c79ad0e2b64f1a11e845.zip
Merge pull request #224 from mathstuf/cmake-cleanups
CMake cleanups
Diffstat (limited to 'CMakeLists.txt')
-rw-r--r--CMakeLists.txt124
1 files changed, 62 insertions, 62 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index b75e8737..f8dd9cb7 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -1,41 +1,39 @@
1cmake_minimum_required(VERSION 2.8.5) 1cmake_minimum_required(VERSION 3.1.0)
2
2project(sway C) 3project(sway C)
4
3set(CMAKE_C_FLAGS "-g") 5set(CMAKE_C_FLAGS "-g")
4set(CMAKE_C_STANDARD 99) 6set(CMAKE_C_STANDARD 99)
5SET(CMAKE_C_EXTENSIONS OFF) 7SET(CMAKE_C_EXTENSIONS OFF)
6set(CMAKE_RUNTIME_OUTPUT_DIRECTORY "bin/") 8set(CMAKE_RUNTIME_OUTPUT_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/bin")
7add_definitions("-Wall -Wextra -Wno-unused-parameter -D_GNU_SOURCE") 9add_definitions("-Wall -Wextra -Wno-unused-parameter -D_GNU_SOURCE")
8set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${PROJECT_SOURCE_DIR}/CMake) 10list(INSERT CMAKE_MODULE_PATH 0
9 11 "${CMAKE_CURRENT_SOURCE_DIR}/CMake")
10add_subdirectory(swaybg swaybg)
11 12
12if(EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/.git") 13if(EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/.git")
13 execute_process( 14 execute_process(
14 COMMAND git describe --always 15 COMMAND git describe --always
15 OUTPUT_VARIABLE GIT_COMMIT_HASH 16 OUTPUT_VARIABLE GIT_COMMIT_HASH
16 OUTPUT_STRIP_TRAILING_WHITESPACE 17 OUTPUT_STRIP_TRAILING_WHITESPACE
18 WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}"
17 ) 19 )
18 execute_process( 20 execute_process(
19 COMMAND git rev-parse --abbrev-ref HEAD 21 COMMAND git rev-parse --abbrev-ref HEAD
20 OUTPUT_VARIABLE GIT_BRANCH 22 OUTPUT_VARIABLE GIT_BRANCH
21 OUTPUT_STRIP_TRAILING_WHITESPACE 23 OUTPUT_STRIP_TRAILING_WHITESPACE
24 WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}"
22 ) 25 )
23endif(EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/.git") 26endif(EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/.git")
24 27
25SET(VERSION_GIT_COMMIT_FLAG "-DSWAY_GIT_VERSION=\"g${GIT_COMMIT_HASH}\"") 28add_definitions("-DSWAY_GIT_VERSION=\"g${GIT_COMMIT_HASH}\"")
26add_definitions("${VERSION_GIT_COMMIT_FLAG}") 29add_definitions("-DSWAY_GIT_BRANCH=\"${GIT_BRANCH}\"")
27 30
28SET(VERSION_GIT_BRANCH_FLAG "-DSWAY_GIT_BRANCH=\"${GIT_BRANCH}\"") 31string(TIMESTAMP CURRENT_DATE "%Y-%m-%d" UTC)
29add_definitions("${VERSION_GIT_BRANCH_FLAG}") 32add_definitions("-DSWAY_VERSION_DATE=${CURRENT_DATE}")
30
31execute_process(
32 COMMAND date +"%Y-%m-%d"
33 OUTPUT_VARIABLE CURRENT_DATE
34 OUTPUT_STRIP_TRAILING_WHITESPACE
35)
36 33
37SET(VERSION_DATE_FLAG "-DSWAY_VERSION_DATE=${CURRENT_DATE}") 34include_directories("${CMAKE_CURRENT_SOURCE_DIR}/include")
38add_definitions("${VERSION_DATE_FLAG}") 35add_subdirectory(common)
36add_subdirectory(swaybg)
39 37
40find_package(XKBCommon REQUIRED) 38find_package(XKBCommon REQUIRED)
41find_package(WLC REQUIRED) 39find_package(WLC REQUIRED)
@@ -44,14 +42,12 @@ find_package(PCRE REQUIRED)
44find_package(JsonC REQUIRED) 42find_package(JsonC REQUIRED)
45 43
46FILE(GLOB sources ${PROJECT_SOURCE_DIR}/sway/*.c) 44FILE(GLOB sources ${PROJECT_SOURCE_DIR}/sway/*.c)
47FILE(GLOB common ${PROJECT_SOURCE_DIR}/common/*.c)
48 45
49include_directories( 46include_directories(
50 ${WLC_INCLUDE_DIRS} 47 ${WLC_INCLUDE_DIRS}
51 ${PCRE_INCLUDE_DIRS} 48 ${PCRE_INCLUDE_DIRS}
52 ${JSONC_INCLUDE_DIRS} 49 ${JSONC_INCLUDE_DIRS}
53 ${XKBCOMMON_INCLUDE_DIRS} 50 ${XKBCOMMON_INCLUDE_DIRS}
54 include/
55) 51)
56 52
57add_executable(sway 53add_executable(sway
@@ -64,48 +60,52 @@ target_link_libraries(sway
64 ${XKBCOMMON_LIBRARIES} 60 ${XKBCOMMON_LIBRARIES}
65 ${PCRE_LIBRARIES} 61 ${PCRE_LIBRARIES}
66 ${JSONC_LIBRARIES} 62 ${JSONC_LIBRARIES}
63 sway_common
67) 64)
68 65
69INSTALL( 66install(
70 TARGETS sway 67 TARGETS sway
71 RUNTIME DESTINATION bin 68 RUNTIME DESTINATION bin
72) 69 COMPONENT runtime)
73 70install(
74INSTALL( 71 FILES "${CMAKE_CURRENT_SOURCE_DIR}/config"
75 FILES ${PROJECT_SOURCE_DIR}/config 72 DESTINATION /etc/sway/
76 DESTINATION /etc/sway/ 73 COMPONENT configuration)
77) 74
78 75add_custom_target(man ALL)
79ADD_CUSTOM_COMMAND(OUTPUT ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/sway.1 76
80 COMMAND ${A2X_COMMAND} --no-xmllint --doctype manpage --format manpage 77function (add_manpage name section)
81 -D ${CMAKE_RUNTIME_OUTPUT_DIRECTORY} ${CMAKE_CURRENT_SOURCE_DIR}/sway.1.txt 78 add_custom_command(
82 DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/sway.1.txt 79 OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/${name}.${section}"
83) 80 COMMAND "${A2X_COMMAND}"
84 81 --no-xmllint
85ADD_CUSTOM_COMMAND(OUTPUT ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/sway.5 82 --doctype manpage
86 COMMAND ${A2X_COMMAND} --no-xmllint --doctype manpage --format manpage 83 --format manpage
87 -D ${CMAKE_RUNTIME_OUTPUT_DIRECTORY} ${CMAKE_CURRENT_SOURCE_DIR}/sway.5.txt 84 -D "${CMAKE_CURRENT_BINARY_DIR}"
88 DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/sway.5.txt 85 "${CMAKE_CURRENT_SOURCE_DIR}/${name}.${section}.txt"
89) 86 DEPENDS "${CMAKE_CURRENT_SOURCE_DIR}/${name}.${section}.txt"
90 87 COMMENT "Generating manpage for ${name}.${section}")
91ADD_CUSTOM_TARGET(man ALL 88
92 DEPENDS ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/sway.1 89 add_custom_target("man-${name}.${section}"
93 DEPENDS ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/sway.5) 90 DEPENDS
94 91 "${CMAKE_CURRENT_BINARY_DIR}/${name}.${section}")
95INSTALL( 92 add_dependencies(man
96 FILES ${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/sway.1 93 "man-${name}.${section}")
97 DESTINATION ${CMAKE_INSTALL_PREFIX}/share/man/man1 94
98) 95 install(
99 96 FILES "${CMAKE_CURRENT_BINARY_DIR}/${name}.${section}"
100INSTALL( 97 DESTINATION "share/man/man${section}"
101 FILES ${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/sway.5 98 COMPONENT documentation)
102 DESTINATION ${CMAKE_INSTALL_PREFIX}/share/man/man5 99endfunction ()
103) 100
104 101add_manpage(sway 1)
105INSTALL( 102add_manpage(sway 5)
106 FILES ${PROJECT_SOURCE_DIR}/sway.desktop 103
107 DESTINATION ${CMAKE_INSTALL_PREFIX}/share/wayland-sessions/) 104install(
108 105 FILES "${CMAKE_CURRENT_SOURCE_DIR}/sway.desktop"
109INSTALL( 106 DESTINATION share/wayland-sessions
110 FILES ${PROJECT_SOURCE_DIR}/sway-xorg.desktop 107 COMPONENT data)
111 DESTINATION ${CMAKE_INSTALL_PREFIX}/share/xsessions/) 108install(
109 FILES "${CMAKE_CURRENT_SOURCE_DIR}/sway-xorg.desktop"
110 DESTINATION share/xsessions
111 COMPONENT data)