diff options
author | Drew DeVault <sir@cmpwn.com> | 2015-11-12 22:20:44 -0500 |
---|---|---|
committer | Drew DeVault <sir@cmpwn.com> | 2015-11-12 22:20:44 -0500 |
commit | 44d0b3282f91cf1f01a9c79ad0e2b64f1a11e845 (patch) | |
tree | a7797ce637c450643a773d6cb415b7a617d11891 /CMakeLists.txt | |
parent | We don't need to implement strdup (diff) | |
parent | cmake: run git in the source directory (diff) | |
download | sway-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.txt | 124 |
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 @@ | |||
1 | cmake_minimum_required(VERSION 2.8.5) | 1 | cmake_minimum_required(VERSION 3.1.0) |
2 | |||
2 | project(sway C) | 3 | project(sway C) |
4 | |||
3 | set(CMAKE_C_FLAGS "-g") | 5 | set(CMAKE_C_FLAGS "-g") |
4 | set(CMAKE_C_STANDARD 99) | 6 | set(CMAKE_C_STANDARD 99) |
5 | SET(CMAKE_C_EXTENSIONS OFF) | 7 | SET(CMAKE_C_EXTENSIONS OFF) |
6 | set(CMAKE_RUNTIME_OUTPUT_DIRECTORY "bin/") | 8 | set(CMAKE_RUNTIME_OUTPUT_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/bin") |
7 | add_definitions("-Wall -Wextra -Wno-unused-parameter -D_GNU_SOURCE") | 9 | add_definitions("-Wall -Wextra -Wno-unused-parameter -D_GNU_SOURCE") |
8 | set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${PROJECT_SOURCE_DIR}/CMake) | 10 | list(INSERT CMAKE_MODULE_PATH 0 |
9 | 11 | "${CMAKE_CURRENT_SOURCE_DIR}/CMake") | |
10 | add_subdirectory(swaybg swaybg) | ||
11 | 12 | ||
12 | if(EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/.git") | 13 | if(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 | ) |
23 | endif(EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/.git") | 26 | endif(EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/.git") |
24 | 27 | ||
25 | SET(VERSION_GIT_COMMIT_FLAG "-DSWAY_GIT_VERSION=\"g${GIT_COMMIT_HASH}\"") | 28 | add_definitions("-DSWAY_GIT_VERSION=\"g${GIT_COMMIT_HASH}\"") |
26 | add_definitions("${VERSION_GIT_COMMIT_FLAG}") | 29 | add_definitions("-DSWAY_GIT_BRANCH=\"${GIT_BRANCH}\"") |
27 | 30 | ||
28 | SET(VERSION_GIT_BRANCH_FLAG "-DSWAY_GIT_BRANCH=\"${GIT_BRANCH}\"") | 31 | string(TIMESTAMP CURRENT_DATE "%Y-%m-%d" UTC) |
29 | add_definitions("${VERSION_GIT_BRANCH_FLAG}") | 32 | add_definitions("-DSWAY_VERSION_DATE=${CURRENT_DATE}") |
30 | |||
31 | execute_process( | ||
32 | COMMAND date +"%Y-%m-%d" | ||
33 | OUTPUT_VARIABLE CURRENT_DATE | ||
34 | OUTPUT_STRIP_TRAILING_WHITESPACE | ||
35 | ) | ||
36 | 33 | ||
37 | SET(VERSION_DATE_FLAG "-DSWAY_VERSION_DATE=${CURRENT_DATE}") | 34 | include_directories("${CMAKE_CURRENT_SOURCE_DIR}/include") |
38 | add_definitions("${VERSION_DATE_FLAG}") | 35 | add_subdirectory(common) |
36 | add_subdirectory(swaybg) | ||
39 | 37 | ||
40 | find_package(XKBCommon REQUIRED) | 38 | find_package(XKBCommon REQUIRED) |
41 | find_package(WLC REQUIRED) | 39 | find_package(WLC REQUIRED) |
@@ -44,14 +42,12 @@ find_package(PCRE REQUIRED) | |||
44 | find_package(JsonC REQUIRED) | 42 | find_package(JsonC REQUIRED) |
45 | 43 | ||
46 | FILE(GLOB sources ${PROJECT_SOURCE_DIR}/sway/*.c) | 44 | FILE(GLOB sources ${PROJECT_SOURCE_DIR}/sway/*.c) |
47 | FILE(GLOB common ${PROJECT_SOURCE_DIR}/common/*.c) | ||
48 | 45 | ||
49 | include_directories( | 46 | include_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 | ||
57 | add_executable(sway | 53 | add_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 | ||
69 | INSTALL( | 66 | install( |
70 | TARGETS sway | 67 | TARGETS sway |
71 | RUNTIME DESTINATION bin | 68 | RUNTIME DESTINATION bin |
72 | ) | 69 | COMPONENT runtime) |
73 | 70 | install( | |
74 | INSTALL( | 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 | 75 | add_custom_target(man ALL) | |
79 | ADD_CUSTOM_COMMAND(OUTPUT ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/sway.1 | 76 | |
80 | COMMAND ${A2X_COMMAND} --no-xmllint --doctype manpage --format manpage | 77 | function (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 | |
85 | ADD_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}") | |
91 | ADD_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}") | |
95 | INSTALL( | 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}" | |
100 | INSTALL( | 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 | 99 | endfunction () |
103 | ) | 100 | |
104 | 101 | add_manpage(sway 1) | |
105 | INSTALL( | 102 | add_manpage(sway 5) |
106 | FILES ${PROJECT_SOURCE_DIR}/sway.desktop | 103 | |
107 | DESTINATION ${CMAKE_INSTALL_PREFIX}/share/wayland-sessions/) | 104 | install( |
108 | 105 | FILES "${CMAKE_CURRENT_SOURCE_DIR}/sway.desktop" | |
109 | INSTALL( | 106 | DESTINATION share/wayland-sessions |
110 | FILES ${PROJECT_SOURCE_DIR}/sway-xorg.desktop | 107 | COMPONENT data) |
111 | DESTINATION ${CMAKE_INSTALL_PREFIX}/share/xsessions/) | 108 | install( |
109 | FILES "${CMAKE_CURRENT_SOURCE_DIR}/sway-xorg.desktop" | ||
110 | DESTINATION share/xsessions | ||
111 | COMPONENT data) | ||