Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 6 additions & 5 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ project(static-subid C)
# CMake modules
include(GNUInstallDirs)
include(CheckCCompilerFlag)
enable_testing()

# ##############################################################################
# Require out-of-source builds
Expand Down Expand Up @@ -171,11 +172,11 @@ endif(NOT MAX_RANGES MATCHES "^[0-9]+$")

# ##############################################################################
# task focused cmake
include(config/CMakeLists.txt)
include(docs/CMakeLists.txt)
include(src/CMakeLists.txt)
include(systemd/CMakeLists.txt)
include(test/CMakeLists.txt)
add_subdirectory(config)
add_subdirectory(docs)
add_subdirectory(src)
add_subdirectory(systemd)
add_subdirectory(test)

# ##############################################################################
# Print out state summary
Expand Down
8 changes: 1 addition & 7 deletions config/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,11 +1,5 @@
cmake_minimum_required(VERSION 3.21)

# ##############################################################################
# Load CMake provided modules
include(GNUInstallDirs)

# ##############################################################################
# Create example configuration file and directory structure
install(DIRECTORY DESTINATION ${CONFIG_DIR_PATH})
install(FILES ${PROJECT_SOURCE_DIR}/config/${PROJECT_NAME}.conf
install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/${PROJECT_NAME}.conf
DESTINATION ${CONFIG_DIR_PATH})
13 changes: 5 additions & 8 deletions docs/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,6 +1,3 @@
cmake_minimum_required(VERSION 3.21)
include(GNUInstallDirs)

find_program(ASCIIDOCTOR asciidoctor)
find_program(ASCIIDOC asciidoc)
find_program(A2X a2x)
Expand All @@ -13,29 +10,29 @@ if(ASCIIDOCTOR)
OUTPUT ${PROJECT_BINARY_DIR}/static-subid.conf.5
COMMAND
${ASCIIDOCTOR} -b manpage -o ${PROJECT_BINARY_DIR}/static-subid.conf.5
${PROJECT_SOURCE_DIR}/docs/static-subid.conf.adoc
${CMAKE_CURRENT_SOURCE_DIR}/static-subid.conf.adoc
COMMENT "Building static-subid.conf manpage with asciidoctor"
VERBATIM)
add_custom_command(
OUTPUT ${PROJECT_BINARY_DIR}/static-subid.8
COMMAND ${ASCIIDOCTOR} -b manpage -o ${PROJECT_BINARY_DIR}/static-subid.8
${PROJECT_SOURCE_DIR}/docs/static-subid.adoc
${CMAKE_CURRENT_SOURCE_DIR}/static-subid.adoc
COMMENT "Building static-subid manpage with asciidoctor"
VERBATIM)
add_custom_target(doc ALL DEPENDS ${PROJECT_BINARY_DIR}/static-subid.conf.5
static-subid.8)
${PROJECT_BINARY_DIR}/static-subid.8)
elseif(ASCIIDOC AND A2X)
message(STATUS "Using asciidoc/a2x for manpage generation")
add_custom_command(
OUTPUT ${PROJECT_BINARY_DIR}/static-subid.conf.5
COMMAND ${A2X} --doctype manpage --format manpage -D ${PROJECT_BINARY_DIR}
${PROJECT_SOURCE_DIR}/docs/static-subid.conf.adoc
${CMAKE_CURRENT_SOURCE_DIR}/static-subid.conf.adoc
COMMENT "Building static-subid.conf manpage with a2x"
VERBATIM)
add_custom_command(
OUTPUT ${PROJECT_BINARY_DIR}/static-subid.8
COMMAND ${A2X} --doctype manpage --format manpage -D ${PROJECT_BINARY_DIR}
${PROJECT_SOURCE_DIR}/docs/static-subid.adoc
${CMAKE_CURRENT_SOURCE_DIR}/static-subid.adoc
COMMENT "Building static-subid manpage with a2x"
VERBATIM)
add_custom_target(doc ALL DEPENDS ${PROJECT_BINARY_DIR}/static-subid.conf.5
Expand Down
20 changes: 9 additions & 11 deletions src/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,24 +1,22 @@
cmake_minimum_required(VERSION 3.21)

# ##############################################################################
# Load CMake provided modules
include(GNUInstallDirs)

# ##############################################################################
# Generate autoconf.h from template
configure_file("${CMAKE_CURRENT_SOURCE_DIR}/src/autoconf.h.in"
configure_file("${CMAKE_CURRENT_SOURCE_DIR}/autoconf.h.in"
"${CMAKE_CURRENT_BINARY_DIR}/autoconf.h" @ONLY)

# ##############################################################################
# Source files
set(STATIC_SUBID_LIB_SOURCES
${CMAKE_CURRENT_SOURCE_DIR}/src/config.c
${CMAKE_CURRENT_SOURCE_DIR}/src/range.c
${CMAKE_CURRENT_SOURCE_DIR}/src/subid.c
${CMAKE_CURRENT_SOURCE_DIR}/src/syscall_ops_default.c
${CMAKE_CURRENT_SOURCE_DIR}/src/util.c
${CMAKE_CURRENT_SOURCE_DIR}/src/validate.c)
set(STATIC_SUBID_BINARY_SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/src/main.c)
${CMAKE_CURRENT_SOURCE_DIR}/config.c
${CMAKE_CURRENT_SOURCE_DIR}/range.c
${CMAKE_CURRENT_SOURCE_DIR}/subid.c
${CMAKE_CURRENT_SOURCE_DIR}/syscall_ops_default.c
${CMAKE_CURRENT_SOURCE_DIR}/util.c
${CMAKE_CURRENT_SOURCE_DIR}/validate.c
CACHE INTERNAL "Library source files")
set(STATIC_SUBID_BINARY_SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/main.c)

# ##############################################################################
# Create executable
Expand Down
18 changes: 6 additions & 12 deletions systemd/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,31 +1,25 @@
cmake_minimum_required(VERSION 3.21)

# ##############################################################################
# Load CMake provided modules
include(GNUInstallDirs)

# ##############################################################################
# Create systemd units
configure_file(
"${CMAKE_CURRENT_SOURCE_DIR}/systemd/system/static-subid@.service.in"
"${CMAKE_CURRENT_SOURCE_DIR}/system/static-subid@.service.in"
"${CMAKE_CURRENT_BINARY_DIR}/static-subid@.service" @ONLY)

install(FILES ${CMAKE_CURRENT_BINARY_DIR}/static-subid@.service
DESTINATION ${CMAKE_INSTALL_SYSTEMD_UNITDIR})
install(
FILES "${CMAKE_CURRENT_SOURCE_DIR}/systemd/user/setup-static-subid.service"
FILES "${CMAKE_CURRENT_SOURCE_DIR}/user/setup-static-subid.service"
DESTINATION ${CMAKE_INSTALL_SYSTEMD_USERUNITDIR})

# ##############################################################################
# Setup polkit
install(FILES "${CMAKE_CURRENT_SOURCE_DIR}/systemd/polkit/50-static-subid.rules"
install(FILES "${CMAKE_CURRENT_SOURCE_DIR}/polkit/50-static-subid.rules"
DESTINATION ${CMAKE_INSTALL_POLKIT_RULESDIR})

# ##############################################################################
# Setup target
add_custom_target(
systemd ALL
DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/static-subid@.service
SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/systemd/system/static-subid@.service.in
${CMAKE_CURRENT_SOURCE_DIR}/systemd/user/setup-static-subid.service
${CMAKE_CURRENT_SOURCE_DIR}/systemd/polkit/50-static-subid.rules)
SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/system/static-subid@.service.in
${CMAKE_CURRENT_SOURCE_DIR}/user/setup-static-subid.service
${CMAKE_CURRENT_SOURCE_DIR}/polkit/50-static-subid.rules)
7 changes: 2 additions & 5 deletions test/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,9 +1,6 @@
cmake_minimum_required(VERSION 3.21)

# ##############################################################################
# Project / modules

include(GNUInstallDirs)
include(CTest)
enable_testing()

Expand Down Expand Up @@ -61,7 +58,7 @@ endif(CMAKE_C_COMPILER_ID STREQUAL "GNU")
# Helper macros

macro(add_unit_test TEST_NAME)
add_executable(${TEST_NAME} test/${TEST_NAME}.c ${STATIC_SUBID_LIB_SOURCES})
add_executable(${TEST_NAME} ${CMAKE_CURRENT_SOURCE_DIR}/${TEST_NAME}.c ${STATIC_SUBID_LIB_SOURCES})

target_compile_definitions(${TEST_NAME} PRIVATE _GNU_SOURCE)
target_compile_features(
Expand All @@ -70,7 +67,7 @@ macro(add_unit_test TEST_NAME)

target_include_directories(
${TEST_NAME} PRIVATE ${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_SOURCE_DIR}/src
${CMAKE_SOURCE_DIR/test} ${CMAKE_BINARY_DIR})
${CMAKE_BINARY_DIR}/src)

target_link_libraries(${TEST_NAME} ${CMAKE_THREAD_LIBS_INIT})

Expand Down
Loading