diff --git a/CMake/Manpage.cmake b/CMake/Manpage.cmake new file mode 100644 index 000000000..4842387ef --- /dev/null +++ b/CMake/Manpage.cmake @@ -0,0 +1,31 @@ +find_package(A2X REQUIRED) + +add_custom_target(man ALL) + +function(add_manpage name section) + add_custom_command( + OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/${name}.${section} + COMMAND ${A2X_COMMAND} + --no-xmllint + --doctype manpage + --format manpage + -D ${CMAKE_RUNTIME_OUTPUT_DIRECTORY} + ${CMAKE_CURRENT_SOURCE_DIR}/${name}.${section}.txt + DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/${name}.${section}.txt + COMMENT Generating manpage for ${name}.${section} + ) + + add_custom_target(man-${name}.${section} + DEPENDS + ${CMAKE_CURRENT_BINARY_DIR}/${name}.${section} + ) + add_dependencies(man + man-${name}.${section} + ) + + install( + FILES ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/${name}.${section} + DESTINATION share/man/man${section} + COMPONENT documentation + ) +endfunction() diff --git a/CMakeLists.txt b/CMakeLists.txt index 48f03e2e7..b9a2e37dd 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -28,7 +28,7 @@ if(EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/.git) WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} ) execute_process( - COMMAND git rev-parse --abbrev-ref HEAD + COMMAND git rev-parse --abbrev-ref HEAD OUTPUT_VARIABLE GIT_BRANCH OUTPUT_STRIP_TRAILING_WHITESPACE WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} @@ -43,91 +43,13 @@ add_definitions(-DSWAY_VERSION_DATE=\"${CURRENT_DATE}\") include_directories(${CMAKE_CURRENT_SOURCE_DIR}/include) +add_subdirectory(sway) add_subdirectory(swaybg) add_subdirectory(swaymsg) add_subdirectory(swaygrab) add_subdirectory(swaybar) -find_package(XKBCommon REQUIRED) -find_package(WLC REQUIRED) -find_package(A2X REQUIRED) -find_package(PCRE REQUIRED) -find_package(Wayland REQUIRED) -find_package(JsonC REQUIRED) - -file(GLOB sources ${PROJECT_SOURCE_DIR}/sway/*.c) -file(GLOB common ${PROJECT_SOURCE_DIR}/common/*.c) - -include(Wayland) -WAYLAND_ADD_PROTOCOL_SERVER(proto-desktop-shell - ${PROJECT_SOURCE_DIR}/protocols/desktop-shell.xml - desktop-shell -) - -include_directories( - ${WLC_INCLUDE_DIRS} - ${PCRE_INCLUDE_DIRS} - ${JSONC_INCLUDE_DIRS} - ${XKBCOMMON_INCLUDE_DIRS} - ${CMAKE_CURRENT_BINARY_DIR} -) - -add_executable(sway - ${sources} - ${common} - ${proto-desktop-shell} -) - -target_link_libraries(sway - ${WLC_LIBRARIES} - ${XKBCOMMON_LIBRARIES} - ${PCRE_LIBRARIES} - ${JSONC_LIBRARIES} - ${WAYLAND_SERVER_LIBRARIES} -) - -install( - TARGETS sway - RUNTIME - DESTINATION bin - COMPONENT runtime -) -install( - FILES ${CMAKE_CURRENT_SOURCE_DIR}/config - DESTINATION ${FALLBACK_CONFIG_DIR} - COMPONENT configuration -) - -add_custom_target(man ALL) - -function(add_manpage name section) - add_custom_command( - OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/${name}.${section} - COMMAND ${A2X_COMMAND} - --no-xmllint - --doctype manpage - --format manpage - -D ${CMAKE_RUNTIME_OUTPUT_DIRECTORY} - ${CMAKE_CURRENT_SOURCE_DIR}/${name}.${section}.txt - DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/${name}.${section}.txt - COMMENT Generating manpage for ${name}.${section} - ) - - add_custom_target(man-${name}.${section} - DEPENDS - ${CMAKE_CURRENT_BINARY_DIR}/${name}.${section} - ) - add_dependencies(man - man-${name}.${section} - ) - - install( - FILES ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/${name}.${section} - DESTINATION share/man/man${section} - COMPONENT documentation - ) -endfunction() - +include(Manpage) add_manpage(sway 1) add_manpage(sway 5) add_manpage(swaymsg 1) diff --git a/sway/CMakeLists.txt b/sway/CMakeLists.txt new file mode 100644 index 000000000..1e2f3fd37 --- /dev/null +++ b/sway/CMakeLists.txt @@ -0,0 +1,48 @@ +find_package(XKBCommon REQUIRED) +find_package(WLC REQUIRED) +find_package(PCRE REQUIRED) +find_package(Wayland REQUIRED) +find_package(JsonC REQUIRED) + +include(Wayland) +WAYLAND_ADD_PROTOCOL_SERVER(proto-desktop-shell + ${PROJECT_SOURCE_DIR}/protocols/desktop-shell.xml + desktop-shell +) + +file(GLOB sources ${PROJECT_SOURCE_DIR}/sway/*.c) +file(GLOB common ${PROJECT_SOURCE_DIR}/common/*.c) + +include_directories( + ${WLC_INCLUDE_DIRS} + ${PCRE_INCLUDE_DIRS} + ${JSONC_INCLUDE_DIRS} + ${XKBCOMMON_INCLUDE_DIRS} + ${CMAKE_CURRENT_BINARY_DIR} +) + +add_executable(sway + ${sources} + ${common} + ${proto-desktop-shell} +) + +target_link_libraries(sway + ${WLC_LIBRARIES} + ${XKBCOMMON_LIBRARIES} + ${PCRE_LIBRARIES} + ${JSONC_LIBRARIES} + ${WAYLAND_SERVER_LIBRARIES} +) + +install( + TARGETS sway + RUNTIME + DESTINATION bin + COMPONENT runtime +) +install( + FILES ${CMAKE_CURRENT_SOURCE_DIR}/config + DESTINATION ${FALLBACK_CONFIG_DIR} + COMPONENT configuration +) diff --git a/swaybar/CMakeLists.txt b/swaybar/CMakeLists.txt index ea35134f1..c14b5f758 100644 --- a/swaybar/CMakeLists.txt +++ b/swaybar/CMakeLists.txt @@ -1,16 +1,14 @@ -project(swaybar) - find_package(Wayland REQUIRED) find_package(Cairo REQUIRED) find_package(Pango REQUIRED) include(Wayland) WAYLAND_ADD_PROTOCOL_CLIENT(proto-xdg-shell - ${PROJECT_SOURCE_DIR}/../protocols/xdg-shell.xml + ../protocols/xdg-shell.xml xdg-shell ) WAYLAND_ADD_PROTOCOL_CLIENT(proto-desktop-shell - ${PROJECT_SOURCE_DIR}/../protocols/desktop-shell.xml + ../protocols/desktop-shell.xml desktop-shell ) @@ -21,9 +19,9 @@ include_directories( ${CMAKE_CURRENT_BINARY_DIR} ) -file(GLOB sources ${PROJECT_SOURCE_DIR}/*.c) -file(GLOB common ${PROJECT_SOURCE_DIR}/../common/*.c) -file(GLOB wl_sources ${PROJECT_SOURCE_DIR}/../wayland/*.c) +file(GLOB sources *.c) +file(GLOB common ../common/*.c) +file(GLOB wl_sources ../wayland/*.c) add_executable(swaybar ${sources} diff --git a/swaybg/CMakeLists.txt b/swaybg/CMakeLists.txt index 8016d9591..9d3cc5478 100644 --- a/swaybg/CMakeLists.txt +++ b/swaybg/CMakeLists.txt @@ -1,16 +1,14 @@ -project(swaybg) - find_package(Wayland REQUIRED) find_package(Cairo REQUIRED) find_package(Pango REQUIRED) include(Wayland) WAYLAND_ADD_PROTOCOL_CLIENT(proto-xdg-shell - ${PROJECT_SOURCE_DIR}/../protocols/xdg-shell.xml + ../protocols/xdg-shell.xml xdg-shell ) WAYLAND_ADD_PROTOCOL_CLIENT(proto-desktop-shell - ${PROJECT_SOURCE_DIR}/../protocols/desktop-shell.xml + ../protocols/desktop-shell.xml desktop-shell ) @@ -21,9 +19,9 @@ include_directories( ${CMAKE_CURRENT_BINARY_DIR} ) -file(GLOB sources ${PROJECT_SOURCE_DIR}/*.c) -file(GLOB common ${PROJECT_SOURCE_DIR}/../common/*.c) -file(GLOB wl_sources ${PROJECT_SOURCE_DIR}/../wayland/*.c) +file(GLOB sources *.c) +file(GLOB common ../common/*.c) +file(GLOB wl_sources ../wayland/*.c) add_executable(swaybg ${sources} diff --git a/swaygrab/CMakeLists.txt b/swaygrab/CMakeLists.txt index efe8986bb..77d96412d 100644 --- a/swaygrab/CMakeLists.txt +++ b/swaygrab/CMakeLists.txt @@ -1,7 +1,5 @@ -project(swaygrab) - -file(GLOB sources ${PROJECT_SOURCE_DIR}/*.c) -file(GLOB common ${PROJECT_SOURCE_DIR}/../common/*.c) +file(GLOB sources *.c) +file(GLOB common ../common/*.c) add_executable(swaygrab ${sources} diff --git a/swaymsg/CMakeLists.txt b/swaymsg/CMakeLists.txt index 2671dc2cb..7616d9423 100644 --- a/swaymsg/CMakeLists.txt +++ b/swaymsg/CMakeLists.txt @@ -1,7 +1,5 @@ -project(swaymsg) - -file(GLOB sources ${PROJECT_SOURCE_DIR}/*.c) -file(GLOB common ${PROJECT_SOURCE_DIR}/../common/*.c) +file(GLOB sources *.c) +file(GLOB common ../common/*.c) add_executable(swaymsg ${sources}