Merge pull request #287 from christophgysin/cmake

cmake: extract config from toplevel CMakeLists.txt
This commit is contained in:
Drew DeVault 2015-12-01 15:57:03 -05:00
commit fc01f04c93
7 changed files with 96 additions and 103 deletions

31
CMake/Manpage.cmake Normal file
View file

@ -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()

View file

@ -28,7 +28,7 @@ if(EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/.git)
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
) )
execute_process( execute_process(
COMMAND git rev-parse --abbrev-ref HEAD COMMAND git rev-parse --abbrev-ref HEAD
OUTPUT_VARIABLE GIT_BRANCH OUTPUT_VARIABLE GIT_BRANCH
OUTPUT_STRIP_TRAILING_WHITESPACE OUTPUT_STRIP_TRAILING_WHITESPACE
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
@ -43,91 +43,13 @@ add_definitions(-DSWAY_VERSION_DATE=\"${CURRENT_DATE}\")
include_directories(${CMAKE_CURRENT_SOURCE_DIR}/include) include_directories(${CMAKE_CURRENT_SOURCE_DIR}/include)
add_subdirectory(sway)
add_subdirectory(swaybg) add_subdirectory(swaybg)
add_subdirectory(swaymsg) add_subdirectory(swaymsg)
add_subdirectory(swaygrab) add_subdirectory(swaygrab)
add_subdirectory(swaybar) add_subdirectory(swaybar)
find_package(XKBCommon REQUIRED) include(Manpage)
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()
add_manpage(sway 1) add_manpage(sway 1)
add_manpage(sway 5) add_manpage(sway 5)
add_manpage(swaymsg 1) add_manpage(swaymsg 1)

48
sway/CMakeLists.txt Normal file
View file

@ -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
)

View file

@ -1,16 +1,14 @@
project(swaybar)
find_package(Wayland REQUIRED) find_package(Wayland REQUIRED)
find_package(Cairo REQUIRED) find_package(Cairo REQUIRED)
find_package(Pango REQUIRED) find_package(Pango REQUIRED)
include(Wayland) include(Wayland)
WAYLAND_ADD_PROTOCOL_CLIENT(proto-xdg-shell WAYLAND_ADD_PROTOCOL_CLIENT(proto-xdg-shell
${PROJECT_SOURCE_DIR}/../protocols/xdg-shell.xml ../protocols/xdg-shell.xml
xdg-shell xdg-shell
) )
WAYLAND_ADD_PROTOCOL_CLIENT(proto-desktop-shell WAYLAND_ADD_PROTOCOL_CLIENT(proto-desktop-shell
${PROJECT_SOURCE_DIR}/../protocols/desktop-shell.xml ../protocols/desktop-shell.xml
desktop-shell desktop-shell
) )
@ -21,9 +19,9 @@ include_directories(
${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_CURRENT_BINARY_DIR}
) )
file(GLOB sources ${PROJECT_SOURCE_DIR}/*.c) file(GLOB sources *.c)
file(GLOB common ${PROJECT_SOURCE_DIR}/../common/*.c) file(GLOB common ../common/*.c)
file(GLOB wl_sources ${PROJECT_SOURCE_DIR}/../wayland/*.c) file(GLOB wl_sources ../wayland/*.c)
add_executable(swaybar add_executable(swaybar
${sources} ${sources}

View file

@ -1,16 +1,14 @@
project(swaybg)
find_package(Wayland REQUIRED) find_package(Wayland REQUIRED)
find_package(Cairo REQUIRED) find_package(Cairo REQUIRED)
find_package(Pango REQUIRED) find_package(Pango REQUIRED)
include(Wayland) include(Wayland)
WAYLAND_ADD_PROTOCOL_CLIENT(proto-xdg-shell WAYLAND_ADD_PROTOCOL_CLIENT(proto-xdg-shell
${PROJECT_SOURCE_DIR}/../protocols/xdg-shell.xml ../protocols/xdg-shell.xml
xdg-shell xdg-shell
) )
WAYLAND_ADD_PROTOCOL_CLIENT(proto-desktop-shell WAYLAND_ADD_PROTOCOL_CLIENT(proto-desktop-shell
${PROJECT_SOURCE_DIR}/../protocols/desktop-shell.xml ../protocols/desktop-shell.xml
desktop-shell desktop-shell
) )
@ -21,9 +19,9 @@ include_directories(
${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_CURRENT_BINARY_DIR}
) )
file(GLOB sources ${PROJECT_SOURCE_DIR}/*.c) file(GLOB sources *.c)
file(GLOB common ${PROJECT_SOURCE_DIR}/../common/*.c) file(GLOB common ../common/*.c)
file(GLOB wl_sources ${PROJECT_SOURCE_DIR}/../wayland/*.c) file(GLOB wl_sources ../wayland/*.c)
add_executable(swaybg add_executable(swaybg
${sources} ${sources}

View file

@ -1,7 +1,5 @@
project(swaygrab) file(GLOB sources *.c)
file(GLOB common ../common/*.c)
file(GLOB sources ${PROJECT_SOURCE_DIR}/*.c)
file(GLOB common ${PROJECT_SOURCE_DIR}/../common/*.c)
add_executable(swaygrab add_executable(swaygrab
${sources} ${sources}

View file

@ -1,7 +1,5 @@
project(swaymsg) file(GLOB sources *.c)
file(GLOB common ../common/*.c)
file(GLOB sources ${PROJECT_SOURCE_DIR}/*.c)
file(GLOB common ${PROJECT_SOURCE_DIR}/../common/*.c)
add_executable(swaymsg add_executable(swaymsg
${sources} ${sources}