summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorManuel Bentele2021-03-04 08:47:43 +0100
committerManuel Bentele2021-03-04 08:47:43 +0100
commit2b5631eaa444023043a18ff3985f5a0e7a11436a (patch)
tree4f27eaf01b80eea60d5f9b65023c8db2635ec8b5 /src
parent[BUILD] Add build support for Github actions (diff)
downloaddnbd3-2b5631eaa444023043a18ff3985f5a0e7a11436a.tar.gz
dnbd3-2b5631eaa444023043a18ff3985f5a0e7a11436a.tar.xz
dnbd3-2b5631eaa444023043a18ff3985f5a0e7a11436a.zip
[BUILD] Add support in CMake to validate (lint) the source code
Diffstat (limited to 'src')
-rw-r--r--src/bench/CMakeLists.txt13
-rw-r--r--src/client/CMakeLists.txt7
-rw-r--r--src/fuse/CMakeLists.txt13
-rw-r--r--src/kernel/CMakeLists.txt8
-rw-r--r--src/server/CMakeLists.txt57
-rw-r--r--src/shared/CMakeLists.txt20
6 files changed, 88 insertions, 30 deletions
diff --git a/src/bench/CMakeLists.txt b/src/bench/CMakeLists.txt
index 4e2becf..24542a7 100644
--- a/src/bench/CMakeLists.txt
+++ b/src/bench/CMakeLists.txt
@@ -7,9 +7,16 @@ project(dnbd3-bench
# add compile option to enable enhanced POSIX pthread features
add_definitions(-D_GNU_SOURCE)
-add_executable(dnbd3-bench ${CMAKE_CURRENT_SOURCE_DIR}/connection.c
- ${CMAKE_CURRENT_SOURCE_DIR}/helper.c
- ${CMAKE_CURRENT_SOURCE_DIR}/main.c)
+set(DNBD3_BENCH_SOURCE_FILES ${CMAKE_CURRENT_SOURCE_DIR}/connection.c
+ ${CMAKE_CURRENT_SOURCE_DIR}/helper.c
+ ${CMAKE_CURRENT_SOURCE_DIR}/main.c)
+set(DNBD3_BENCH_HEADER_FILES ${CMAKE_CURRENT_SOURCE_DIR}/connection.h
+ ${CMAKE_CURRENT_SOURCE_DIR}/helper.h)
+
+add_executable(dnbd3-bench ${DNBD3_BENCH_SOURCE_FILES})
target_link_libraries(dnbd3-bench dnbd3-version dnbd3-shared ${CMAKE_THREAD_LIBS_INIT})
install(TARGETS dnbd3-bench RUNTIME DESTINATION bin
COMPONENT bench)
+
+add_linter(dnbd3-bench-lint "${DNBD3_BENCH_SOURCE_FILES}" "${DNBD3_BENCH_HEADER_FILES}")
+add_linter_fix(dnbd3-bench-lint-fix "${DNBD3_BENCH_SOURCE_FILES}" "${DNBD3_BENCH_HEADER_FILES}")
diff --git a/src/client/CMakeLists.txt b/src/client/CMakeLists.txt
index 29dcdb4..41f182e 100644
--- a/src/client/CMakeLists.txt
+++ b/src/client/CMakeLists.txt
@@ -7,7 +7,12 @@ project(dnbd3-client
# add compile option to enable enhanced BSD netdb features
add_definitions(-D_GNU_SOURCE)
-add_executable(dnbd3-client ${CMAKE_CURRENT_SOURCE_DIR}/client.c)
+set(DNBD3_CLIENT_SOURCE_FILES ${CMAKE_CURRENT_SOURCE_DIR}/client.c)
+
+add_executable(dnbd3-client ${DNBD3_CLIENT_SOURCE_FILES})
target_link_libraries(dnbd3-client dnbd3-version dnbd3-build dnbd3-shared)
install(TARGETS dnbd3-client RUNTIME DESTINATION bin
COMPONENT kernel)
+
+add_linter(dnbd3-client-lint "${DNBD3_CLIENT_SOURCE_FILES}")
+add_linter_fix(dnbd3-client-lint-fix "${DNBD3_CLIENT_SOURCE_FILES}")
diff --git a/src/fuse/CMakeLists.txt b/src/fuse/CMakeLists.txt
index fba0ed1..e4c8de9 100644
--- a/src/fuse/CMakeLists.txt
+++ b/src/fuse/CMakeLists.txt
@@ -9,10 +9,17 @@ find_package(Fuse REQUIRED)
# add compile option to enable enhanced POSIX pthread features
add_definitions(-D_GNU_SOURCE)
-add_executable(dnbd3-fuse ${CMAKE_CURRENT_SOURCE_DIR}/connection.c
- ${CMAKE_CURRENT_SOURCE_DIR}/helper.c
- ${CMAKE_CURRENT_SOURCE_DIR}/main.c)
+set(DNBD3_FUSE_SOURCE_FILES ${CMAKE_CURRENT_SOURCE_DIR}/connection.c
+ ${CMAKE_CURRENT_SOURCE_DIR}/helper.c
+ ${CMAKE_CURRENT_SOURCE_DIR}/main.c)
+set(DNBD3_FUSE_HEADER_FILES ${CMAKE_CURRENT_SOURCE_DIR}/connection.h
+ ${CMAKE_CURRENT_SOURCE_DIR}/helper.h)
+
+add_executable(dnbd3-fuse ${DNBD3_FUSE_SOURCE_FILES})
target_include_directories(dnbd3-fuse PRIVATE ${FUSE_INCLUDE_DIRS})
target_link_libraries(dnbd3-fuse dnbd3-build dnbd3-version dnbd3-shared ${FUSE_LIBRARIES} ${CMAKE_THREAD_LIBS_INIT})
install(TARGETS dnbd3-fuse RUNTIME DESTINATION bin
COMPONENT fuse)
+
+add_linter(dnbd3-fuse-lint "${DNBD3_FUSE_SOURCE_FILES}" "${DNBD3_FUSE_HEADER_FILES}")
+add_linter_fix(dnbd3-fuse-lint-fix "${DNBD3_FUSE_SOURCE_FILES}" "${DNBD3_FUSE_HEADER_FILES}")
diff --git a/src/kernel/CMakeLists.txt b/src/kernel/CMakeLists.txt
index 0f5a4bd..47efdd2 100644
--- a/src/kernel/CMakeLists.txt
+++ b/src/kernel/CMakeLists.txt
@@ -37,6 +37,7 @@ set(KERNEL_MODULE_DNBD3_HEADER_FILES ${CMAKE_CURRENT_SOURCE_DIR}/blk.h
${CMAKE_CURRENT_SOURCE_DIR}/net.h
${CMAKE_CURRENT_SOURCE_DIR}/sysfs.h
${CMAKE_CURRENT_SOURCE_DIR}/utils.h)
+
add_kernel_module(dnbd3 "${KERNEL_BUILD_DIR}"
"${KERNEL_INSTALL_DIR}"
"CONFIG_BLK_DEV_DNBD3=m"
@@ -46,3 +47,10 @@ add_kernel_module(dnbd3 "${KERNEL_BUILD_DIR}"
# add dependency to generate project version header before dnbd3.ko is built
add_dependencies(dnbd3 dnbd3-generate-version)
+
+add_kernel_linter(dnbd3-lint "${KERNEL_BUILD_DIR}"
+ "${KERNEL_MODULE_DNBD3_SOURCE_FILES}"
+ "${KERNEL_MODULE_DNBD3_HEADER_FILES}")
+add_kernel_linter_fix(dnbd3-lint-fix "${KERNEL_BUILD_DIR}"
+ "${KERNEL_MODULE_DNBD3_SOURCE_FILES}"
+ "${KERNEL_MODULE_DNBD3_HEADER_FILES}")
diff --git a/src/server/CMakeLists.txt b/src/server/CMakeLists.txt
index a5bd660..915da74 100644
--- a/src/server/CMakeLists.txt
+++ b/src/server/CMakeLists.txt
@@ -40,23 +40,43 @@ if(DNBD3_SERVER_AFL)
endif(AFL_C_COMPILER)
endif(DNBD3_SERVER_AFL)
-add_executable(dnbd3-server ${CMAKE_CURRENT_SOURCE_DIR}/altservers.c
- ${CMAKE_CURRENT_SOURCE_DIR}/fileutil.c
- ${CMAKE_CURRENT_SOURCE_DIR}/fuse.c
- ${CMAKE_CURRENT_SOURCE_DIR}/globals.c
- ${CMAKE_CURRENT_SOURCE_DIR}/helper.c
- ${CMAKE_CURRENT_SOURCE_DIR}/image.c
- ${CMAKE_CURRENT_SOURCE_DIR}/ini.c
- ${CMAKE_CURRENT_SOURCE_DIR}/integrity.c
- ${CMAKE_CURRENT_SOURCE_DIR}/locks.c
- ${CMAKE_CURRENT_SOURCE_DIR}/net.c
- ${CMAKE_CURRENT_SOURCE_DIR}/picohttpparser/picohttpparser.c
- ${CMAKE_CURRENT_SOURCE_DIR}/reference.c
- ${CMAKE_CURRENT_SOURCE_DIR}/rpc.c
- ${CMAKE_CURRENT_SOURCE_DIR}/server.c
- ${CMAKE_CURRENT_SOURCE_DIR}/threadpool.c
- ${CMAKE_CURRENT_SOURCE_DIR}/uplink.c
- ${CMAKE_CURRENT_SOURCE_DIR}/urldecode.c)
+set(DNBD3_SERVER_SOURCE_FILES ${CMAKE_CURRENT_SOURCE_DIR}/altservers.c
+ ${CMAKE_CURRENT_SOURCE_DIR}/fileutil.c
+ ${CMAKE_CURRENT_SOURCE_DIR}/fuse.c
+ ${CMAKE_CURRENT_SOURCE_DIR}/globals.c
+ ${CMAKE_CURRENT_SOURCE_DIR}/helper.c
+ ${CMAKE_CURRENT_SOURCE_DIR}/image.c
+ ${CMAKE_CURRENT_SOURCE_DIR}/ini.c
+ ${CMAKE_CURRENT_SOURCE_DIR}/integrity.c
+ ${CMAKE_CURRENT_SOURCE_DIR}/locks.c
+ ${CMAKE_CURRENT_SOURCE_DIR}/net.c
+ ${CMAKE_CURRENT_SOURCE_DIR}/picohttpparser/picohttpparser.c
+ ${CMAKE_CURRENT_SOURCE_DIR}/reference.c
+ ${CMAKE_CURRENT_SOURCE_DIR}/rpc.c
+ ${CMAKE_CURRENT_SOURCE_DIR}/server.c
+ ${CMAKE_CURRENT_SOURCE_DIR}/threadpool.c
+ ${CMAKE_CURRENT_SOURCE_DIR}/uplink.c
+ ${CMAKE_CURRENT_SOURCE_DIR}/urldecode.c)
+set(DNBD3_SERVER_HEADER_FILES ${CMAKE_CURRENT_SOURCE_DIR}/altservers.h
+ ${CMAKE_CURRENT_SOURCE_DIR}/fileutil.h
+ ${CMAKE_CURRENT_SOURCE_DIR}/fuse.h
+ ${CMAKE_CURRENT_SOURCE_DIR}/globals.h
+ ${CMAKE_CURRENT_SOURCE_DIR}/helper.h
+ ${CMAKE_CURRENT_SOURCE_DIR}/image.h
+ ${CMAKE_CURRENT_SOURCE_DIR}/ini.h
+ ${CMAKE_CURRENT_SOURCE_DIR}/integrity.h
+ ${CMAKE_CURRENT_SOURCE_DIR}/locks.h
+ ${CMAKE_CURRENT_SOURCE_DIR}/net.h
+ ${CMAKE_CURRENT_SOURCE_DIR}/picohttpparser/picohttpparser.h
+ ${CMAKE_CURRENT_SOURCE_DIR}/reference.h
+ ${CMAKE_CURRENT_SOURCE_DIR}/reftypes.h
+ ${CMAKE_CURRENT_SOURCE_DIR}/rpc.h
+ ${CMAKE_CURRENT_SOURCE_DIR}/server.h
+ ${CMAKE_CURRENT_SOURCE_DIR}/threadpool.h
+ ${CMAKE_CURRENT_SOURCE_DIR}/uplink.h
+ ${CMAKE_CURRENT_SOURCE_DIR}/urldecode.h)
+
+add_executable(dnbd3-server ${DNBD3_SERVER_SOURCE_FILES})
target_include_directories(dnbd3-server PRIVATE ${JANSSON_INCLUDE_DIR})
target_link_libraries(dnbd3-server dnbd3-version dnbd3-build dnbd3-shared Libatomic::Libatomic ${CMAKE_THREAD_LIBS_INIT} ${JANSSON_LIBRARIES})
@@ -85,3 +105,6 @@ endif(DNBD3_SERVER_DEBUG_THREADS)
install(TARGETS dnbd3-server RUNTIME DESTINATION bin
COMPONENT server)
+
+add_linter(dnbd3-server-lint "${DNBD3_SERVER_SOURCE_FILES}" "${DNBD3_SERVER_HEADER_FILES}")
+add_linter_fix(dnbd3-server-lint-fix "${DNBD3_SERVER_SOURCE_FILES}" "${DNBD3_SERVER_HEADER_FILES}")
diff --git a/src/shared/CMakeLists.txt b/src/shared/CMakeLists.txt
index 6356399..b280b77 100644
--- a/src/shared/CMakeLists.txt
+++ b/src/shared/CMakeLists.txt
@@ -7,10 +7,18 @@ project(dnbd3-shared
# add compile option to get POLLRDHUP support for signals
add_definitions(-D_GNU_SOURCE)
-add_library(dnbd3-shared STATIC ${CMAKE_CURRENT_SOURCE_DIR}/crc32.c
- ${CMAKE_CURRENT_SOURCE_DIR}/fdsignal.c
- ${CMAKE_CURRENT_SOURCE_DIR}/log.c
- ${CMAKE_CURRENT_SOURCE_DIR}/serialize.c
- ${CMAKE_CURRENT_SOURCE_DIR}/sockhelper.c
- ${CMAKE_CURRENT_SOURCE_DIR}/timing.c)
+set(DNBD3_SHARED_SOURCE_FILES ${CMAKE_CURRENT_SOURCE_DIR}/crc32.c
+ ${CMAKE_CURRENT_SOURCE_DIR}/fdsignal.c
+ ${CMAKE_CURRENT_SOURCE_DIR}/log.c
+ ${CMAKE_CURRENT_SOURCE_DIR}/serialize.c
+ ${CMAKE_CURRENT_SOURCE_DIR}/sockhelper.c
+ ${CMAKE_CURRENT_SOURCE_DIR}/timing.c)
+set(DNBD3_SHARED_HEADER_FILES ${CMAKE_CURRENT_SOURCE_DIR}/fdsignal.inc/eventfd.c
+ ${CMAKE_CURRENT_SOURCE_DIR}/fdsignal.inc/pipe64.c
+ ${CMAKE_CURRENT_SOURCE_DIR}/fdsignal.inc/pipe_malloc.c)
+
+add_library(dnbd3-shared STATIC ${DNBD3_SHARED_SOURCE_FILES})
target_include_directories(dnbd3-shared PUBLIC ${PROJECT_INCLUDE_DIR})
+
+add_linter(dnbd3-shared-lint "${DNBD3_SHARED_SOURCE_FILES}" "${DNBD3_SHARED_HEADER_FILES}")
+add_linter_fix(dnbd3-shared-lint-fix "${DNBD3_SHARED_SOURCE_FILES}" "${DNBD3_SHARED_HEADER_FILES}")