From 83c527dd915b8615533123587fecd2eb20ccbb80 Mon Sep 17 00:00:00 2001 From: Mark Stemm Date: Wed, 16 Feb 2022 17:35:36 -0800 Subject: [PATCH] Use cmake function to copy files, as a single target Replace nearly-identical blocks of code that defined individual custom targets/custom commands to copy files from source to build dir with the copy_files_to_build_dir function. This reduces the number of build targets and speeds up/cleans up the make output. Signed-off-by: Mark Stemm --- docker/local/rules/CMakeLists.txt | 12 +++--------- docker/local/traces/CMakeLists.txt | 12 +++--------- test/CMakeLists.txt | 3 --- test/trace_files/CMakeLists.txt | 14 +++----------- test/trace_files/k8s_audit/CMakeLists.txt | 15 +++------------ test/trace_files/plugins/CMakeLists.txt | 15 +++------------ test/trace_files/psp/CMakeLists.txt | 15 +++------------ 7 files changed, 18 insertions(+), 68 deletions(-) diff --git a/docker/local/rules/CMakeLists.txt b/docker/local/rules/CMakeLists.txt index f6b934c155c..fdb84ffc803 100644 --- a/docker/local/rules/CMakeLists.txt +++ b/docker/local/rules/CMakeLists.txt @@ -1,13 +1,7 @@ +include(copy_files_to_build_dir) + # Note: list of rules is created at cmake time, not build time file(GLOB test_rule_files "${CMAKE_CURRENT_SOURCE_DIR}/../../../test/rules/*.yaml") -foreach(rule_file_path ${test_rule_files}) - get_filename_component(rule_file ${rule_file_path} NAME) - add_custom_target(docker-local-rule-${rule_file} ALL - DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/${rule_file}) - add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/${rule_file} - COMMAND ${CMAKE_COMMAND} -E copy ${rule_file_path} ${CMAKE_CURRENT_BINARY_DIR}/${rule_file} - DEPENDS ${rule_file_path}) -endforeach() - +copy_files_to_build_dir("${test_rule_files}" docker-local-rules) diff --git a/docker/local/traces/CMakeLists.txt b/docker/local/traces/CMakeLists.txt index 87cd3356501..95519bcb8e9 100644 --- a/docker/local/traces/CMakeLists.txt +++ b/docker/local/traces/CMakeLists.txt @@ -1,13 +1,7 @@ +include(copy_files_to_build_dir) + # Note: list of traces is created at cmake time, not build time file(GLOB test_trace_files "${CMAKE_CURRENT_SOURCE_DIR}/../../../test/trace_files/*.scap") -foreach(trace_file_path ${test_trace_files}) - get_filename_component(trace_file ${trace_file_path} NAME) - add_custom_target(docker-local-trace-${trace_file} ALL - DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/${trace_file}) - add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/${trace_file} - COMMAND ${CMAKE_COMMAND} -E copy ${trace_file_path} ${CMAKE_CURRENT_BINARY_DIR}/${trace_file} - DEPENDS ${trace_file_path}) -endforeach() - +copy_files_to_build_dir("${test_trace_files}" docker-local-traces) diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt index f01777f46b2..bfc5c268755 100644 --- a/test/CMakeLists.txt +++ b/test/CMakeLists.txt @@ -1,7 +1,4 @@ add_subdirectory(trace_files) -add_custom_target(test-trace-files ALL) -add_dependencies(test-trace-files trace-files-base-scap trace-files-psp trace-files-k8s-audit trace-files-plugins) - add_subdirectory(plugins) add_subdirectory(confs/plugins) diff --git a/test/trace_files/CMakeLists.txt b/test/trace_files/CMakeLists.txt index fe5dedf97d4..032bb7b9a4d 100644 --- a/test/trace_files/CMakeLists.txt +++ b/test/trace_files/CMakeLists.txt @@ -2,19 +2,11 @@ add_subdirectory(k8s_audit) add_subdirectory(psp) add_subdirectory(plugins) +include(copy_files_to_build_dir) + # Note: list of traces is created at cmake time, not build time file(GLOB test_trace_files "${CMAKE_CURRENT_SOURCE_DIR}/*.scap") -foreach(trace_file_path ${test_trace_files}) - get_filename_component(trace_file ${trace_file_path} NAME) - add_custom_target(test-trace-${trace_file} ALL - DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/${trace_file}) - add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/${trace_file} - COMMAND ${CMAKE_COMMAND} -E copy ${trace_file_path} ${CMAKE_CURRENT_BINARY_DIR}/${trace_file} - DEPENDS ${trace_file_path}) - list(APPEND BASE_SCAP_TRACE_FILES_TARGETS test-trace-${trace_file}) -endforeach() +copy_files_to_build_dir("${test_trace_files}" base-scap) -add_custom_target(trace-files-base-scap ALL) -add_dependencies(trace-files-base-scap ${BASE_SCAP_TRACE_FILES_TARGETS}) diff --git a/test/trace_files/k8s_audit/CMakeLists.txt b/test/trace_files/k8s_audit/CMakeLists.txt index 0a482806468..2408bb884d4 100644 --- a/test/trace_files/k8s_audit/CMakeLists.txt +++ b/test/trace_files/k8s_audit/CMakeLists.txt @@ -1,16 +1,7 @@ +include(copy_files_to_build_dir) + # Note: list of traces is created at cmake time, not build time file(GLOB test_trace_files "${CMAKE_CURRENT_SOURCE_DIR}/*.json") -foreach(trace_file_path ${test_trace_files}) - get_filename_component(trace_file ${trace_file_path} NAME) - add_custom_target(test-trace-${trace_file} ALL - DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/${trace_file}) - add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/${trace_file} - COMMAND ${CMAKE_COMMAND} -E copy ${trace_file_path} ${CMAKE_CURRENT_BINARY_DIR}/${trace_file} - DEPENDS ${trace_file_path}) - list(APPEND K8S_AUDIT_TRACE_FILES_TARGETS test-trace-${trace_file}) -endforeach() - -add_custom_target(trace-files-k8s-audit ALL) -add_dependencies(trace-files-k8s-audit ${K8S_AUDIT_TRACE_FILES_TARGETS}) \ No newline at end of file +copy_files_to_build_dir("${test_trace_files}" k8s-audit) diff --git a/test/trace_files/plugins/CMakeLists.txt b/test/trace_files/plugins/CMakeLists.txt index 67af5f85362..36b34a582e8 100644 --- a/test/trace_files/plugins/CMakeLists.txt +++ b/test/trace_files/plugins/CMakeLists.txt @@ -1,16 +1,7 @@ +include(copy_files_to_build_dir) + # Note: list of traces is created at cmake time, not build time file(GLOB test_trace_files "${CMAKE_CURRENT_SOURCE_DIR}/*.json") -foreach(trace_file_path ${test_trace_files}) - get_filename_component(trace_file ${trace_file_path} NAME) - add_custom_target(test-trace-${trace_file} ALL - DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/${trace_file}) - add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/${trace_file} - COMMAND ${CMAKE_COMMAND} -E copy ${trace_file_path} ${CMAKE_CURRENT_BINARY_DIR}/${trace_file} - DEPENDS ${trace_file_path}) - list(APPEND PLUGINS_TRACE_FILES_TARGETS test-trace-${trace_file}) -endforeach() - -add_custom_target(trace-files-plugins ALL) -add_dependencies(trace-files-plugins ${PLUGINS_TRACE_FILES_TARGETS}) +copy_files_to_build_dir("${test_trace_files}" plugins) diff --git a/test/trace_files/psp/CMakeLists.txt b/test/trace_files/psp/CMakeLists.txt index cf6a0cd1404..4c050b0994d 100644 --- a/test/trace_files/psp/CMakeLists.txt +++ b/test/trace_files/psp/CMakeLists.txt @@ -1,17 +1,8 @@ +include(copy_files_to_build_dir) + # Note: list of traces is created at cmake time, not build time file(GLOB test_trace_files "${CMAKE_CURRENT_SOURCE_DIR}/*.json" "${CMAKE_CURRENT_SOURCE_DIR}/*.scap") -foreach(trace_file_path ${test_trace_files}) - get_filename_component(trace_file ${trace_file_path} NAME) - add_custom_target(test-trace-${trace_file} ALL - DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/${trace_file}) - add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/${trace_file} - COMMAND ${CMAKE_COMMAND} -E copy ${trace_file_path} ${CMAKE_CURRENT_BINARY_DIR}/${trace_file} - DEPENDS ${trace_file_path}) - list(APPEND PSP_TRACE_FILES_TARGETS test-trace-${trace_file}) -endforeach() - -add_custom_target(trace-files-psp ALL) -add_dependencies(trace-files-psp ${PSP_TRACE_FILES_TARGETS}) \ No newline at end of file +copy_files_to_build_dir("${test_trace_files}" psp)