summaryrefslogtreecommitdiffstats
path: root/Tests/RunCMake/UnityBuild/unitybuild_anon_ns_test_files.cmake
diff options
context:
space:
mode:
Diffstat (limited to 'Tests/RunCMake/UnityBuild/unitybuild_anon_ns_test_files.cmake')
-rw-r--r--Tests/RunCMake/UnityBuild/unitybuild_anon_ns_test_files.cmake31
1 files changed, 31 insertions, 0 deletions
diff --git a/Tests/RunCMake/UnityBuild/unitybuild_anon_ns_test_files.cmake b/Tests/RunCMake/UnityBuild/unitybuild_anon_ns_test_files.cmake
new file mode 100644
index 0000000..06a600e
--- /dev/null
+++ b/Tests/RunCMake/UnityBuild/unitybuild_anon_ns_test_files.cmake
@@ -0,0 +1,31 @@
+
+function(write_unity_build_anon_ns_test_files OUTVAR)
+ set(srcs)
+ foreach(s RANGE 1 8)
+ set(src "${CMAKE_CURRENT_BINARY_DIR}/s${s}.cpp")
+ file(WRITE "${src}" "
+#ifndef CONFIG_H
+#define CONFIG_H
+#define MY_ANON_NAMESPACE MY_ANON_ID
+#define MY_ANON(Name) MY_ANON_NAMESPACE::Name
+#define MY_ANON_USING_NAMESPACE using namespace MY_ANON_NAMESPACE
+#endif
+
+namespace { namespace MY_ANON_NAMESPACE {
+ int i = ${s};
+}}
+int use_plain_${s}() {
+ return MY_ANON_NAMESPACE::i;
+}
+int func_like_macro_${s}() {
+ return MY_ANON(i);
+}
+int using_macro_${s}() {
+ MY_ANON_USING_NAMESPACE;
+ return i;
+}
+")
+ list(APPEND srcs "${src}")
+ endforeach()
+ set(${OUTVAR} ${srcs} PARENT_SCOPE)
+endfunction()