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) set(FALLBACK_CONFIG_DIR "/etc/sway" CACHE PATH "Fallback config directory defaults to /etc/sway") -add_definitions('-DFALLBACK_CONFIG_DIR=\"${FALLBACK_CONFIG_DIR}\"') +add_definitions(-DFALLBACK_CONFIG_DIR=\"${FALLBACK_CONFIG_DIR}\") set(CMAKE_C_FLAGS "-g") set(CMAKE_C_STANDARD 99) -SET(CMAKE_C_EXTENSIONS OFF) -set(CMAKE_CURRENT_BINARY_DIR "${CMAKE_CURRENT_BINARY_DIR}/bin") -set(CMAKE_RUNTIME_OUTPUT_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}") -add_definitions("-Wall -Wextra -Wno-unused-parameter -D_GNU_SOURCE") +set(CMAKE_C_EXTENSIONS OFF) +set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/bin) +add_definitions( + -D_GNU_SOURCE +) +set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall") +set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wextra") +set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wno-unused-parameter") + list(INSERT CMAKE_MODULE_PATH 0 - "${CMAKE_CURRENT_SOURCE_DIR}/CMake") + ${CMAKE_CURRENT_SOURCE_DIR}/CMake +) +if(EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/.git) + execute_process( + COMMAND git describe --always + OUTPUT_VARIABLE GIT_COMMIT_HASH + OUTPUT_STRIP_TRAILING_WHITESPACE + WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} + ) + execute_process( + COMMAND git rev-parse --abbrev-ref HEAD + OUTPUT_VARIABLE GIT_BRANCH + OUTPUT_STRIP_TRAILING_WHITESPACE + WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} + ) +endif() -if(EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/.git") - execute_process( - COMMAND git describe --always - OUTPUT_VARIABLE GIT_COMMIT_HASH - OUTPUT_STRIP_TRAILING_WHITESPACE - WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}" - ) - execute_process( - COMMAND git rev-parse --abbrev-ref HEAD - OUTPUT_VARIABLE GIT_BRANCH - OUTPUT_STRIP_TRAILING_WHITESPACE - WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}" - ) -endif(EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/.git") - -add_definitions("-DSWAY_GIT_VERSION=\"g${GIT_COMMIT_HASH}\"") -add_definitions("-DSWAY_GIT_BRANCH=\"${GIT_BRANCH}\"") +add_definitions(-DSWAY_GIT_VERSION=\"${GIT_COMMIT_HASH}\") +add_definitions(-DSWAY_GIT_BRANCH=\"${GIT_BRANCH}\") string(TIMESTAMP CURRENT_DATE "%Y-%m-%d" UTC) -add_definitions('-DSWAY_VERSION_DATE="${CURRENT_DATE}"') +add_definitions(-DSWAY_VERSION_DATE=\"${CURRENT_DATE}\") -include_directories("${CMAKE_CURRENT_SOURCE_DIR}/include") +include_directories(${CMAKE_CURRENT_SOURCE_DIR}/include) add_subdirectory(swaybg) add_subdirectory(swaymsg) @@ -50,68 +55,78 @@ 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) +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) +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} + ${WLC_INCLUDE_DIRS} + ${PCRE_INCLUDE_DIRS} + ${JSONC_INCLUDE_DIRS} + ${XKBCOMMON_INCLUDE_DIRS} + ${CMAKE_CURRENT_BINARY_DIR} ) add_executable(sway - ${sources} - ${common} - ${proto-desktop-shell} + ${sources} + ${common} + ${proto-desktop-shell} ) target_link_libraries(sway - ${WLC_LIBRARIES} - ${XKBCOMMON_LIBRARIES} - ${PCRE_LIBRARIES} - ${JSONC_LIBRARIES} - ${WAYLAND_SERVER_LIBRARIES} + ${WLC_LIBRARIES} + ${XKBCOMMON_LIBRARIES} + ${PCRE_LIBRARIES} + ${JSONC_LIBRARIES} + ${WAYLAND_SERVER_LIBRARIES} ) install( - TARGETS sway - RUNTIME DESTINATION bin - COMPONENT runtime) + TARGETS sway + RUNTIME + DESTINATION bin + COMPONENT runtime +) install( - FILES "${CMAKE_CURRENT_SOURCE_DIR}/config" - DESTINATION "${FALLBACK_CONFIG_DIR}" - COMPONENT configuration) + 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}") +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}") + 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 () + install( + FILES ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/${name}.${section} + DESTINATION share/man/man${section} + COMPONENT documentation + ) +endfunction() add_manpage(sway 1) add_manpage(sway 5) @@ -119,10 +134,12 @@ add_manpage(swaymsg 1) add_manpage(swaygrab 1) install( - FILES "${CMAKE_CURRENT_SOURCE_DIR}/sway.desktop" - DESTINATION share/wayland-sessions - COMPONENT data) + FILES ${CMAKE_CURRENT_SOURCE_DIR}/sway.desktop + DESTINATION share/wayland-sessions + COMPONENT data +) install( - FILES "${CMAKE_CURRENT_SOURCE_DIR}/sway-xorg.desktop" - DESTINATION share/xsessions - COMPONENT data) + FILES ${CMAKE_CURRENT_SOURCE_DIR}/sway-xorg.desktop + DESTINATION share/xsessions + COMPONENT data +) diff --git a/README.md b/README.md index 4bbfa750..394dfc80 100644 --- a/README.md +++ b/README.md @@ -46,7 +46,9 @@ Install dependencies: Run these commands: - cmake . + mkdir build + cd build + cmake .. make sudo make install 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) find_package(Pango REQUIRED) include(Wayland) -set(CMAKE_CURRENT_BINARY_DIR ${CMAKE_CURRENT_BINARY_DIR}/../bin/) -WAYLAND_ADD_PROTOCOL_CLIENT(proto-xdg-shell "${PROJECT_SOURCE_DIR}/../protocols/xdg-shell.xml" xdg-shell) -WAYLAND_ADD_PROTOCOL_CLIENT(proto-desktop-shell "${PROJECT_SOURCE_DIR}/../protocols/desktop-shell.xml" desktop-shell) +WAYLAND_ADD_PROTOCOL_CLIENT(proto-xdg-shell + ${PROJECT_SOURCE_DIR}/../protocols/xdg-shell.xml + xdg-shell +) +WAYLAND_ADD_PROTOCOL_CLIENT(proto-desktop-shell + ${PROJECT_SOURCE_DIR}/../protocols/desktop-shell.xml + desktop-shell +) include_directories( - ${WAYLAND_CLIENT_INCLUDE_DIR} - ${CAIRO_INCLUDE_DIRS} - ${PANGO_INCLUDE_DIRS} - ${CMAKE_CURRENT_BINARY_DIR} + ${WAYLAND_CLIENT_INCLUDE_DIR} + ${CAIRO_INCLUDE_DIRS} + ${PANGO_INCLUDE_DIRS} + ${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 ${PROJECT_SOURCE_DIR}/*.c) +file(GLOB common ${PROJECT_SOURCE_DIR}/../common/*.c) +file(GLOB wl_sources ${PROJECT_SOURCE_DIR}/../wayland/*.c) add_executable(swaybar - ${sources} - ${wl_sources} - ${common} - ${proto-xdg-shell} - ${proto-desktop-shell} + ${sources} + ${wl_sources} + ${common} + ${proto-xdg-shell} + ${proto-desktop-shell} ) -TARGET_LINK_LIBRARIES(swaybar ${WAYLAND_CLIENT_LIBRARIES} ${WAYLAND_CURSOR_LIBRARIES} ${CAIRO_LIBRARIES} ${PANGO_LIBRARIES} m) +target_link_libraries(swaybar + ${WAYLAND_CLIENT_LIBRARIES} + ${WAYLAND_CURSOR_LIBRARIES} + ${CAIRO_LIBRARIES} + ${PANGO_LIBRARIES} + m +) install( - TARGETS swaybar - RUNTIME DESTINATION bin - COMPONENT runtime) + TARGETS swaybar + RUNTIME + DESTINATION bin + COMPONENT runtime +) 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) find_package(Pango REQUIRED) include(Wayland) -set(CMAKE_CURRENT_BINARY_DIR ${CMAKE_CURRENT_BINARY_DIR}/../bin/) -WAYLAND_ADD_PROTOCOL_CLIENT(proto-xdg-shell "${PROJECT_SOURCE_DIR}/../protocols/xdg-shell.xml" xdg-shell) -WAYLAND_ADD_PROTOCOL_CLIENT(proto-desktop-shell "${PROJECT_SOURCE_DIR}/../protocols/desktop-shell.xml" desktop-shell) +WAYLAND_ADD_PROTOCOL_CLIENT(proto-xdg-shell + ${PROJECT_SOURCE_DIR}/../protocols/xdg-shell.xml + xdg-shell +) +WAYLAND_ADD_PROTOCOL_CLIENT(proto-desktop-shell + ${PROJECT_SOURCE_DIR}/../protocols/desktop-shell.xml + desktop-shell +) include_directories( - ${WAYLAND_CLIENT_INCLUDE_DIR} - ${CAIRO_INCLUDE_DIRS} - ${PANGO_INCLUDE_DIRS} - ${CMAKE_CURRENT_BINARY_DIR} + ${WAYLAND_CLIENT_INCLUDE_DIR} + ${CAIRO_INCLUDE_DIRS} + ${PANGO_INCLUDE_DIRS} + ${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 ${PROJECT_SOURCE_DIR}/*.c) +file(GLOB common ${PROJECT_SOURCE_DIR}/../common/*.c) +file(GLOB wl_sources ${PROJECT_SOURCE_DIR}/../wayland/*.c) add_executable(swaybg - ${sources} - ${wl_sources} - ${common} - ${proto-xdg-shell} - ${proto-desktop-shell} + ${sources} + ${wl_sources} + ${common} + ${proto-xdg-shell} + ${proto-desktop-shell} ) -TARGET_LINK_LIBRARIES(swaybg ${WAYLAND_CLIENT_LIBRARIES} ${WAYLAND_CURSOR_LIBRARIES} ${CAIRO_LIBRARIES} ${PANGO_LIBRARIES} m) +target_link_libraries(swaybg + ${WAYLAND_CLIENT_LIBRARIES} + ${WAYLAND_CURSOR_LIBRARIES} + ${CAIRO_LIBRARIES} + ${PANGO_LIBRARIES} + m +) install( - TARGETS swaybg - RUNTIME DESTINATION bin - COMPONENT runtime) + TARGETS swaybg + RUNTIME + DESTINATION bin + COMPONENT runtime +) 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 @@ project(swaygrab) -set(CMAKE_CURRENT_BINARY_DIR ${CMAKE_CURRENT_BINARY_DIR}/../bin/) - -FILE(GLOB sources ${PROJECT_SOURCE_DIR}/*.c) -FILE(GLOB common ${PROJECT_SOURCE_DIR}/../common/*.c) +file(GLOB sources ${PROJECT_SOURCE_DIR}/*.c) +file(GLOB common ${PROJECT_SOURCE_DIR}/../common/*.c) add_executable(swaygrab - ${sources} - ${common} + ${sources} + ${common} ) -TARGET_LINK_LIBRARIES(swaygrab rt) +target_link_libraries(swaygrab + rt +) install( - TARGETS swaygrab - RUNTIME DESTINATION bin - COMPONENT runtime) + TARGETS swaygrab + RUNTIME + DESTINATION bin + COMPONENT runtime +) 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 @@ project(swaymsg) -set(CMAKE_CURRENT_BINARY_DIR ${CMAKE_CURRENT_BINARY_DIR}/../bin/) - -FILE(GLOB sources ${PROJECT_SOURCE_DIR}/*.c) -FILE(GLOB common ${PROJECT_SOURCE_DIR}/../common/*.c) +file(GLOB sources ${PROJECT_SOURCE_DIR}/*.c) +file(GLOB common ${PROJECT_SOURCE_DIR}/../common/*.c) add_executable(swaymsg - ${sources} - ${common} + ${sources} + ${common} ) install( - TARGETS swaymsg - RUNTIME DESTINATION bin - COMPONENT runtime) + TARGETS swaymsg + RUNTIME + DESTINATION bin + COMPONENT runtime +)