diff --git a/src/collections.rs b/src/collections.rs
index f1f107941ce40d79269216bcb225020425923458..3bc89b01865afb6a561d4b9c250a83892a169a26 100644
--- a/src/collections.rs
+++ b/src/collections.rs
@@ -34,6 +34,22 @@ macro_rules! hashmap {
     };
 }
 
+#[macro_export]
+macro_rules! cfg_list {
+    ($array:expr, $attr:ident = $value:expr) => {
+        #[cfg($attr = $value)]
+        {
+            $array.push($value);
+        }
+    };
+
+    ($array:expr, $($attr:ident = $value:expr),+) => {
+        $(
+            $crate::cfg_list!($array, $attr = $value);
+        )+
+    };
+}
+
 #[cfg(test)]
 mod tests {
 	use crate::*;