summaryrefslogtreecommitdiffstats
path: root/fluent-bit/gen_static_conf
diff options
context:
space:
mode:
Diffstat (limited to 'fluent-bit/gen_static_conf')
-rw-r--r--fluent-bit/gen_static_conf/CMakeLists.txt53
1 files changed, 53 insertions, 0 deletions
diff --git a/fluent-bit/gen_static_conf/CMakeLists.txt b/fluent-bit/gen_static_conf/CMakeLists.txt
new file mode 100644
index 000000000..e6ed38338
--- /dev/null
+++ b/fluent-bit/gen_static_conf/CMakeLists.txt
@@ -0,0 +1,53 @@
+message(STATUS "Static configuration path => '${FLB_STATIC_CONF}'")
+
+# Locate and process configuration files
+file(GLOB files "${FLB_STATIC_CONF}/*.conf")
+
+# Output directory for generated header files
+set(CONF_DIR ${PROJECT_SOURCE_DIR}/include/fluent-bit/conf/)
+
+# Iterate list creating custom commands for each entry
+set(OUT_FILES "")
+set(STATIC_DEPS "")
+set(FLB_STATIC_CONF_ARR "")
+set(FLB_STATIC_CONF_ARR_SIZE 0)
+foreach(file ${files})
+ # Convert configuration file using xxd-c
+ message(STATUS "Processing configuration file: '${file}'")
+ get_filename_component(in_file ${file} NAME)
+
+ add_custom_target(
+ flb-static-file-${in_file}.h ALL
+ COMMAND xxd-c
+ ARGS
+ -i ${file}
+ -o ${CONF_DIR}${in_file}.h
+ -s ${in_file}
+ DEPENDS ${file} xxd-c
+ COMMENT "Generating static configuration file: ${in_file}.h"
+ )
+ LIST(APPEND OUT_FILES "${in_file}.h")
+ LIST(APPEND STATIC_DEPS "flb-static-file-${in_file}.h")
+
+ string(REPLACE "." "_" stname ${in_file})
+ string(REPLACE "-" "_" stname ${stname})
+ set(keyname ${in_file})
+ set(stname "__${stname}")
+ set(FLB_STATIC_CONF_ARR "${FLB_STATIC_CONF_ARR}{(unsigned char*) \"${keyname}\", ${stname}},\n ")
+ MATH(EXPR FLB_STATIC_CONF_ARR_SIZE "${FLB_STATIC_CONF_ARR_SIZE}+1")
+endforeach()
+
+# Generate main flb_static_conf.h header using the template
+set(FLB_STATIC_CONF_INC "")
+foreach(c ${OUT_FILES})
+ set(FLB_STATIC_CONF_INC "${FLB_STATIC_CONF_INC}#include \"${c}\"\n")
+endforeach()
+
+configure_file(
+ "${PROJECT_SOURCE_DIR}/include/fluent-bit/conf/flb_static_conf.h.in"
+ "${PROJECT_SOURCE_DIR}/include/fluent-bit/conf/flb_static_conf.h"
+ )
+
+# Register the custom target, this will be a later dependency
+# of fluent-bit-static target
+add_custom_target(flb-static-conf DEPENDS ${STATIC_DEPS})