CMake: defines and uses macro add_llvm_definitions for keeping track
of compiler parameters explicitly added by the build
specification. This macro replaces the cmake built-in
`add_definitions'.

Detects glibc and defines _GNU_SOURCE accordingly.

Resolves bug 3882.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68428 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/cmake/modules/AddLLVMDefinitions.cmake b/cmake/modules/AddLLVMDefinitions.cmake
new file mode 100644
index 0000000..0f6d81f
--- /dev/null
+++ b/cmake/modules/AddLLVMDefinitions.cmake
@@ -0,0 +1,11 @@
+# There is no clear way of keeping track of compiler command-line

+# options chosen via `add_definitions', so we need our own method for

+# using it on tools/llvm-config/CMakeLists.txt.

+

+# Beware that there is no implementation of remove_llvm_definitions.

+

+macro(add_llvm_definitions)

+  set(LLVM_DEFINITIONS "${LLVM_DEFINITIONS} ${ARGN}")

+  add_definitions( ${ARGN} )

+endmacro(add_llvm_definitions)

+