aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLibravatar Drew DeVault <sir@cmpwn.com>2015-12-01 15:25:41 -0500
committerLibravatar Drew DeVault <sir@cmpwn.com>2015-12-01 15:25:41 -0500
commit1fbabc6c747205e62cd1dff3771bd319a935438f (patch)
tree8c079c9fe0f909be8429ab010ed75853bd3429d0
parentMerge pull request #286 from mikkeloscar/wlc-origin-point (diff)
parentcmake: remove unnecessary quotes (diff)
downloadsway-1fbabc6c747205e62cd1dff3771bd319a935438f.tar.gz
sway-1fbabc6c747205e62cd1dff3771bd319a935438f.tar.zst
sway-1fbabc6c747205e62cd1dff3771bd319a935438f.zip
Merge pull request #285 from christophgysin/cmake
cmake configuration cleanup
-rw-r--r--CMakeLists.txt171
-rw-r--r--README.md4
-rw-r--r--swaybar/CMakeLists.txt51
-rw-r--r--swaybg/CMakeLists.txt51
-rw-r--r--swaygrab/CMakeLists.txt22
-rw-r--r--swaymsg/CMakeLists.txt18
6 files changed, 182 insertions, 135 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 68dd7fa3..48f03e2e 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -4,39 +4,44 @@ project(sway C)
4 4
5set(FALLBACK_CONFIG_DIR "/etc/sway" CACHE PATH 5set(FALLBACK_CONFIG_DIR "/etc/sway" CACHE PATH
6 "Fallback config directory defaults to /etc/sway") 6 "Fallback config directory defaults to /etc/sway")
7add_definitions('-DFALLBACK_CONFIG_DIR=\"${FALLBACK_CONFIG_DIR}\"') 7add_definitions(-DFALLBACK_CONFIG_DIR=\"${FALLBACK_CONFIG_DIR}\")
8 8
9set(CMAKE_C_FLAGS "-g") 9set(CMAKE_C_FLAGS "-g")
10set(CMAKE_C_STANDARD 99) 10set(CMAKE_C_STANDARD 99)
11SET(CMAKE_C_EXTENSIONS OFF) 11set(CMAKE_C_EXTENSIONS OFF)
12set(CMAKE_CURRENT_BINARY_DIR "${CMAKE_CURRENT_BINARY_DIR}/bin") 12set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/bin)
13set(CMAKE_RUNTIME_OUTPUT_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}") 13add_definitions(
14add_definitions("-Wall -Wextra -Wno-unused-parameter -D_GNU_SOURCE") 14 -D_GNU_SOURCE
15)
16set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall")
17set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wextra")
18set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wno-unused-parameter")
19
15list(INSERT CMAKE_MODULE_PATH 0 20list(INSERT CMAKE_MODULE_PATH 0
16 "${CMAKE_CURRENT_SOURCE_DIR}/CMake") 21 ${CMAKE_CURRENT_SOURCE_DIR}/CMake
17 22)
18if(EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/.git") 23if(EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/.git)
19 execute_process( 24 execute_process(
20 COMMAND git describe --always 25 COMMAND git describe --always
21 OUTPUT_VARIABLE GIT_COMMIT_HASH 26 OUTPUT_VARIABLE GIT_COMMIT_HASH
22 OUTPUT_STRIP_TRAILING_WHITESPACE 27 OUTPUT_STRIP_TRAILING_WHITESPACE
23 WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}" 28 WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
24 ) 29 )
25 execute_process( 30 execute_process(
26 COMMAND git rev-parse --abbrev-ref HEAD 31 COMMAND git rev-parse --abbrev-ref HEAD
27 OUTPUT_VARIABLE GIT_BRANCH 32 OUTPUT_VARIABLE GIT_BRANCH
28 OUTPUT_STRIP_TRAILING_WHITESPACE 33 OUTPUT_STRIP_TRAILING_WHITESPACE
29 WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}" 34 WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
30 ) 35 )
31endif(EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/.git") 36endif()
32 37
33add_definitions("-DSWAY_GIT_VERSION=\"g${GIT_COMMIT_HASH}\"") 38add_definitions(-DSWAY_GIT_VERSION=\"${GIT_COMMIT_HASH}\")
34add_definitions("-DSWAY_GIT_BRANCH=\"${GIT_BRANCH}\"") 39add_definitions(-DSWAY_GIT_BRANCH=\"${GIT_BRANCH}\")
35 40
36string(TIMESTAMP CURRENT_DATE "%Y-%m-%d" UTC) 41string(TIMESTAMP CURRENT_DATE "%Y-%m-%d" UTC)
37add_definitions('-DSWAY_VERSION_DATE="${CURRENT_DATE}"') 42add_definitions(-DSWAY_VERSION_DATE=\"${CURRENT_DATE}\")
38 43
39include_directories("${CMAKE_CURRENT_SOURCE_DIR}/include") 44include_directories(${CMAKE_CURRENT_SOURCE_DIR}/include)
40 45
41add_subdirectory(swaybg) 46add_subdirectory(swaybg)
42add_subdirectory(swaymsg) 47add_subdirectory(swaymsg)
@@ -50,68 +55,78 @@ find_package(PCRE REQUIRED)
50find_package(Wayland REQUIRED) 55find_package(Wayland REQUIRED)
51find_package(JsonC REQUIRED) 56find_package(JsonC REQUIRED)
52 57
53FILE(GLOB sources ${PROJECT_SOURCE_DIR}/sway/*.c) 58file(GLOB sources ${PROJECT_SOURCE_DIR}/sway/*.c)
54FILE(GLOB common ${PROJECT_SOURCE_DIR}/common/*.c) 59file(GLOB common ${PROJECT_SOURCE_DIR}/common/*.c)
55 60
56include(Wayland) 61include(Wayland)
57WAYLAND_ADD_PROTOCOL_SERVER(proto-desktop-shell "${PROJECT_SOURCE_DIR}/protocols/desktop-shell.xml" desktop-shell) 62WAYLAND_ADD_PROTOCOL_SERVER(proto-desktop-shell
63 ${PROJECT_SOURCE_DIR}/protocols/desktop-shell.xml
64 desktop-shell
65)
58 66
59include_directories( 67include_directories(
60 ${WLC_INCLUDE_DIRS} 68 ${WLC_INCLUDE_DIRS}
61 ${PCRE_INCLUDE_DIRS} 69 ${PCRE_INCLUDE_DIRS}
62 ${JSONC_INCLUDE_DIRS} 70 ${JSONC_INCLUDE_DIRS}
63 ${XKBCOMMON_INCLUDE_DIRS} 71 ${XKBCOMMON_INCLUDE_DIRS}
64 ${CMAKE_CURRENT_BINARY_DIR} 72 ${CMAKE_CURRENT_BINARY_DIR}
65) 73)
66 74
67add_executable(sway 75add_executable(sway
68 ${sources} 76 ${sources}
69 ${common} 77 ${common}
70 ${proto-desktop-shell} 78 ${proto-desktop-shell}
71) 79)
72 80
73target_link_libraries(sway 81target_link_libraries(sway
74 ${WLC_LIBRARIES} 82 ${WLC_LIBRARIES}
75 ${XKBCOMMON_LIBRARIES} 83 ${XKBCOMMON_LIBRARIES}
76 ${PCRE_LIBRARIES} 84 ${PCRE_LIBRARIES}
77 ${JSONC_LIBRARIES} 85 ${JSONC_LIBRARIES}
78 ${WAYLAND_SERVER_LIBRARIES} 86 ${WAYLAND_SERVER_LIBRARIES}
79) 87)
80 88
81install( 89install(
82 TARGETS sway 90 TARGETS sway
83 RUNTIME DESTINATION bin 91 RUNTIME
84 COMPONENT runtime) 92 DESTINATION bin
93 COMPONENT runtime
94)
85install( 95install(
86 FILES "${CMAKE_CURRENT_SOURCE_DIR}/config" 96 FILES ${CMAKE_CURRENT_SOURCE_DIR}/config
87 DESTINATION "${FALLBACK_CONFIG_DIR}" 97 DESTINATION ${FALLBACK_CONFIG_DIR}
88 COMPONENT configuration) 98 COMPONENT configuration
99)
89 100
90add_custom_target(man ALL) 101add_custom_target(man ALL)
91 102
92function (add_manpage name section) 103function(add_manpage name section)
93 add_custom_command( 104 add_custom_command(
94 OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/${name}.${section}" 105 OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/${name}.${section}
95 COMMAND "${A2X_COMMAND}" 106 COMMAND ${A2X_COMMAND}
96 --no-xmllint 107 --no-xmllint
97 --doctype manpage 108 --doctype manpage
98 --format manpage 109 --format manpage
99 -D "${CMAKE_RUNTIME_OUTPUT_DIRECTORY}" 110 -D ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}
100 "${CMAKE_CURRENT_SOURCE_DIR}/${name}.${section}.txt" 111 ${CMAKE_CURRENT_SOURCE_DIR}/${name}.${section}.txt
101 DEPENDS "${CMAKE_CURRENT_SOURCE_DIR}/${name}.${section}.txt" 112 DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/${name}.${section}.txt
102 COMMENT "Generating manpage for ${name}.${section}") 113 COMMENT Generating manpage for ${name}.${section}
103 114 )
104 add_custom_target("man-${name}.${section}" 115
105 DEPENDS 116 add_custom_target(man-${name}.${section}
106 "${CMAKE_CURRENT_BINARY_DIR}/${name}.${section}") 117 DEPENDS
107 add_dependencies(man 118 ${CMAKE_CURRENT_BINARY_DIR}/${name}.${section}
108 "man-${name}.${section}") 119 )
109 120 add_dependencies(man
110 install( 121 man-${name}.${section}
111 FILES "${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/${name}.${section}" 122 )
112 DESTINATION "share/man/man${section}" 123
113 COMPONENT documentation) 124 install(
114endfunction () 125 FILES ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/${name}.${section}
126 DESTINATION share/man/man${section}
127 COMPONENT documentation
128 )
129endfunction()
115 130
116add_manpage(sway 1) 131add_manpage(sway 1)
117add_manpage(sway 5) 132add_manpage(sway 5)
@@ -119,10 +134,12 @@ add_manpage(swaymsg 1)
119add_manpage(swaygrab 1) 134add_manpage(swaygrab 1)
120 135
121install( 136install(
122 FILES "${CMAKE_CURRENT_SOURCE_DIR}/sway.desktop" 137 FILES ${CMAKE_CURRENT_SOURCE_DIR}/sway.desktop
123 DESTINATION share/wayland-sessions 138 DESTINATION share/wayland-sessions
124 COMPONENT data) 139 COMPONENT data
140)
125install( 141install(
126 FILES "${CMAKE_CURRENT_SOURCE_DIR}/sway-xorg.desktop" 142 FILES ${CMAKE_CURRENT_SOURCE_DIR}/sway-xorg.desktop
127 DESTINATION share/xsessions 143 DESTINATION share/xsessions
128 COMPONENT data) 144 COMPONENT data
145)
diff --git a/README.md b/README.md
index 4bbfa750..394dfc80 100644
--- a/README.md
+++ b/README.md
@@ -46,7 +46,9 @@ Install dependencies:
46 46
47Run these commands: 47Run these commands:
48 48
49 cmake . 49 mkdir build
50 cd build
51 cmake ..
50 make 52 make
51 sudo make install 53 sudo make install
52 54
diff --git a/swaybar/CMakeLists.txt b/swaybar/CMakeLists.txt
index 12dd40c6..ea35134f 100644
--- a/swaybar/CMakeLists.txt
+++ b/swaybar/CMakeLists.txt
@@ -5,32 +5,45 @@ find_package(Cairo REQUIRED)
5find_package(Pango REQUIRED) 5find_package(Pango REQUIRED)
6 6
7include(Wayland) 7include(Wayland)
8set(CMAKE_CURRENT_BINARY_DIR ${CMAKE_CURRENT_BINARY_DIR}/../bin/) 8WAYLAND_ADD_PROTOCOL_CLIENT(proto-xdg-shell
9WAYLAND_ADD_PROTOCOL_CLIENT(proto-xdg-shell "${PROJECT_SOURCE_DIR}/../protocols/xdg-shell.xml" xdg-shell) 9 ${PROJECT_SOURCE_DIR}/../protocols/xdg-shell.xml
10WAYLAND_ADD_PROTOCOL_CLIENT(proto-desktop-shell "${PROJECT_SOURCE_DIR}/../protocols/desktop-shell.xml" desktop-shell) 10 xdg-shell
11)
12WAYLAND_ADD_PROTOCOL_CLIENT(proto-desktop-shell
13 ${PROJECT_SOURCE_DIR}/../protocols/desktop-shell.xml
14 desktop-shell
15)
11 16
12include_directories( 17include_directories(
13 ${WAYLAND_CLIENT_INCLUDE_DIR} 18 ${WAYLAND_CLIENT_INCLUDE_DIR}
14 ${CAIRO_INCLUDE_DIRS} 19 ${CAIRO_INCLUDE_DIRS}
15 ${PANGO_INCLUDE_DIRS} 20 ${PANGO_INCLUDE_DIRS}
16 ${CMAKE_CURRENT_BINARY_DIR} 21 ${CMAKE_CURRENT_BINARY_DIR}
17) 22)
18 23
19FILE(GLOB sources ${PROJECT_SOURCE_DIR}/*.c) 24file(GLOB sources ${PROJECT_SOURCE_DIR}/*.c)
20FILE(GLOB common ${PROJECT_SOURCE_DIR}/../common/*.c) 25file(GLOB common ${PROJECT_SOURCE_DIR}/../common/*.c)
21FILE(GLOB wl_sources ${PROJECT_SOURCE_DIR}/../wayland/*.c) 26file(GLOB wl_sources ${PROJECT_SOURCE_DIR}/../wayland/*.c)
22 27
23add_executable(swaybar 28add_executable(swaybar
24 ${sources} 29 ${sources}
25 ${wl_sources} 30 ${wl_sources}
26 ${common} 31 ${common}
27 ${proto-xdg-shell} 32 ${proto-xdg-shell}
28 ${proto-desktop-shell} 33 ${proto-desktop-shell}
29) 34)
30 35
31TARGET_LINK_LIBRARIES(swaybar ${WAYLAND_CLIENT_LIBRARIES} ${WAYLAND_CURSOR_LIBRARIES} ${CAIRO_LIBRARIES} ${PANGO_LIBRARIES} m) 36target_link_libraries(swaybar
37 ${WAYLAND_CLIENT_LIBRARIES}
38 ${WAYLAND_CURSOR_LIBRARIES}
39 ${CAIRO_LIBRARIES}
40 ${PANGO_LIBRARIES}
41 m
42)
32 43
33install( 44install(
34 TARGETS swaybar 45 TARGETS swaybar
35 RUNTIME DESTINATION bin 46 RUNTIME
36 COMPONENT runtime) 47 DESTINATION bin
48 COMPONENT runtime
49)
diff --git a/swaybg/CMakeLists.txt b/swaybg/CMakeLists.txt
index d4de69de..8016d959 100644
--- a/swaybg/CMakeLists.txt
+++ b/swaybg/CMakeLists.txt
@@ -5,32 +5,45 @@ find_package(Cairo REQUIRED)
5find_package(Pango REQUIRED) 5find_package(Pango REQUIRED)
6 6
7include(Wayland) 7include(Wayland)
8set(CMAKE_CURRENT_BINARY_DIR ${CMAKE_CURRENT_BINARY_DIR}/../bin/) 8WAYLAND_ADD_PROTOCOL_CLIENT(proto-xdg-shell
9WAYLAND_ADD_PROTOCOL_CLIENT(proto-xdg-shell "${PROJECT_SOURCE_DIR}/../protocols/xdg-shell.xml" xdg-shell) 9 ${PROJECT_SOURCE_DIR}/../protocols/xdg-shell.xml
10WAYLAND_ADD_PROTOCOL_CLIENT(proto-desktop-shell "${PROJECT_SOURCE_DIR}/../protocols/desktop-shell.xml" desktop-shell) 10 xdg-shell
11)
12WAYLAND_ADD_PROTOCOL_CLIENT(proto-desktop-shell
13 ${PROJECT_SOURCE_DIR}/../protocols/desktop-shell.xml
14 desktop-shell
15)
11 16
12include_directories( 17include_directories(
13 ${WAYLAND_CLIENT_INCLUDE_DIR} 18 ${WAYLAND_CLIENT_INCLUDE_DIR}
14 ${CAIRO_INCLUDE_DIRS} 19 ${CAIRO_INCLUDE_DIRS}
15 ${PANGO_INCLUDE_DIRS} 20 ${PANGO_INCLUDE_DIRS}
16 ${CMAKE_CURRENT_BINARY_DIR} 21 ${CMAKE_CURRENT_BINARY_DIR}
17) 22)
18 23
19FILE(GLOB sources ${PROJECT_SOURCE_DIR}/*.c) 24file(GLOB sources ${PROJECT_SOURCE_DIR}/*.c)
20FILE(GLOB common ${PROJECT_SOURCE_DIR}/../common/*.c) 25file(GLOB common ${PROJECT_SOURCE_DIR}/../common/*.c)
21FILE(GLOB wl_sources ${PROJECT_SOURCE_DIR}/../wayland/*.c) 26file(GLOB wl_sources ${PROJECT_SOURCE_DIR}/../wayland/*.c)
22 27
23add_executable(swaybg 28add_executable(swaybg
24 ${sources} 29 ${sources}
25 ${wl_sources} 30 ${wl_sources}
26 ${common} 31 ${common}
27 ${proto-xdg-shell} 32 ${proto-xdg-shell}
28 ${proto-desktop-shell} 33 ${proto-desktop-shell}
29) 34)
30 35
31TARGET_LINK_LIBRARIES(swaybg ${WAYLAND_CLIENT_LIBRARIES} ${WAYLAND_CURSOR_LIBRARIES} ${CAIRO_LIBRARIES} ${PANGO_LIBRARIES} m) 36target_link_libraries(swaybg
37 ${WAYLAND_CLIENT_LIBRARIES}
38 ${WAYLAND_CURSOR_LIBRARIES}
39 ${CAIRO_LIBRARIES}
40 ${PANGO_LIBRARIES}
41 m
42)
32 43
33install( 44install(
34 TARGETS swaybg 45 TARGETS swaybg
35 RUNTIME DESTINATION bin 46 RUNTIME
36 COMPONENT runtime) 47 DESTINATION bin
48 COMPONENT runtime
49)
diff --git a/swaygrab/CMakeLists.txt b/swaygrab/CMakeLists.txt
index 8bc8ed8b..efe8986b 100644
--- a/swaygrab/CMakeLists.txt
+++ b/swaygrab/CMakeLists.txt
@@ -1,18 +1,20 @@
1project(swaygrab) 1project(swaygrab)
2 2
3set(CMAKE_CURRENT_BINARY_DIR ${CMAKE_CURRENT_BINARY_DIR}/../bin/) 3file(GLOB sources ${PROJECT_SOURCE_DIR}/*.c)
4 4file(GLOB common ${PROJECT_SOURCE_DIR}/../common/*.c)
5FILE(GLOB sources ${PROJECT_SOURCE_DIR}/*.c)
6FILE(GLOB common ${PROJECT_SOURCE_DIR}/../common/*.c)
7 5
8add_executable(swaygrab 6add_executable(swaygrab
9 ${sources} 7 ${sources}
10 ${common} 8 ${common}
11) 9)
12 10
13TARGET_LINK_LIBRARIES(swaygrab rt) 11target_link_libraries(swaygrab
12 rt
13)
14 14
15install( 15install(
16 TARGETS swaygrab 16 TARGETS swaygrab
17 RUNTIME DESTINATION bin 17 RUNTIME
18 COMPONENT runtime) 18 DESTINATION bin
19 COMPONENT runtime
20)
diff --git a/swaymsg/CMakeLists.txt b/swaymsg/CMakeLists.txt
index 79af0f3e..2671dc2c 100644
--- a/swaymsg/CMakeLists.txt
+++ b/swaymsg/CMakeLists.txt
@@ -1,16 +1,16 @@
1project(swaymsg) 1project(swaymsg)
2 2
3set(CMAKE_CURRENT_BINARY_DIR ${CMAKE_CURRENT_BINARY_DIR}/../bin/) 3file(GLOB sources ${PROJECT_SOURCE_DIR}/*.c)
4 4file(GLOB common ${PROJECT_SOURCE_DIR}/../common/*.c)
5FILE(GLOB sources ${PROJECT_SOURCE_DIR}/*.c)
6FILE(GLOB common ${PROJECT_SOURCE_DIR}/../common/*.c)
7 5
8add_executable(swaymsg 6add_executable(swaymsg
9 ${sources} 7 ${sources}
10 ${common} 8 ${common}
11) 9)
12 10
13install( 11install(
14 TARGETS swaymsg 12 TARGETS swaymsg
15 RUNTIME DESTINATION bin 13 RUNTIME
16 COMPONENT runtime) 14 DESTINATION bin
15 COMPONENT runtime
16)