@@ -36,6 +36,19 @@ macro(add_param)
3636 message (STATUS " ${ADD_PARAM_NAME} : ${${ADD_PARAM_NAME} } (Description: ${ADD_PARAM_DESCRIPTION} )" )
3737endmacro ()
3838
39+ set (IOX2_RUST_FEATURES "" )
40+ macro (add_rust_feature)
41+ set (ONE_VALUE_ARGS NAME DESCRIPTION DEFAULT_VALUE RUST_FEATURE)
42+ cmake_parse_arguments (ADD_RUST_FEATURE "" "${ONE_VALUE_ARGS} " "" ${ARGN} )
43+
44+ option (${ADD_RUST_FEATURE_NAME} ${ADD_RUST_FEATURE_DESCRIPTION} ${ADD_RUST_FEATURE_DEFAULT_VALUE} )
45+ message (STATUS " ${ADD_RUST_FEATURE_NAME} : ${${ADD_RUST_FEATURE_NAME} } (Description: ${ADD_RUST_FEATURE_DESCRIPTION} )" )
46+
47+ if (${ADD_RUST_FEATURE_NAME} )
48+ list (APPEND IOX2_RUST_FEATURES ${ADD_RUST_FEATURE_RUST_FEATURE} )
49+ endif ()
50+ endmacro ()
51+
3952message (STATUS "iceoryx2 options:" )
4053
4154add_option(
@@ -68,6 +81,29 @@ add_param(
6881 DEFAULT_VALUE ""
6982)
7083
84+ message (STATUS "iceoryx2 Rust feature flags:" )
85+
86+ add_rust_feature(
87+ NAME IOX2_FEATURE_DEV_PERMISSIONS
88+ DESCRIPTION "The permissions of all resources will be set to read, write, execute for everyone."
89+ DEFAULT_VALUE OFF
90+ RUST_FEATURE "iceoryx2/dev_permissions"
91+ )
92+
93+ add_rust_feature(
94+ NAME IOX2_FEATURE_LOGGER_LOG
95+ DESCRIPTION "Enables https://crates.io/crates/log as default logger"
96+ DEFAULT_VALUE OFF
97+ RUST_FEATURE "iceoryx2/logger_log"
98+ )
99+
100+ add_rust_feature(
101+ NAME IOX2_FEATURE_LOGGER_TRACING
102+ DESCRIPTION "Enables https://crates.io/crates/tracing as default logger"
103+ DEFAULT_VALUE OFF
104+ RUST_FEATURE "iceoryx2/logger_tracing"
105+ )
106+
71107if (SANITIZERS)
72108 set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fsanitize=address -fsanitize=undefined" )
73109 set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fsanitize=address -fsanitize=undefined" )
0 commit comments