diff options
author | Oscar Fuentes <ofv@wanadoo.es> | 2009-04-04 22:41:07 +0000 |
---|---|---|
committer | Oscar Fuentes <ofv@wanadoo.es> | 2009-04-04 22:41:07 +0000 |
commit | a7374584daba8fd974c7e2d9f849a6220a88facb (patch) | |
tree | 71560feb3e7eda2b4c25269cd513f0112a8e98b1 /cmake | |
parent | fb6120ea6fdf08a046c2ded82bf31eb0c6a3c004 (diff) | |
download | external_llvm-a7374584daba8fd974c7e2d9f849a6220a88facb.zip external_llvm-a7374584daba8fd974c7e2d9f849a6220a88facb.tar.gz external_llvm-a7374584daba8fd974c7e2d9f849a6220a88facb.tar.bz2 |
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
Diffstat (limited to 'cmake')
-rwxr-xr-x | cmake/config-ix.cmake | 5 | ||||
-rw-r--r-- | cmake/modules/AddLLVMDefinitions.cmake | 11 |
2 files changed, 16 insertions, 0 deletions
diff --git a/cmake/config-ix.cmake b/cmake/config-ix.cmake index 9e5bcd8..5ab3935 100755 --- a/cmake/config-ix.cmake +++ b/cmake/config-ix.cmake @@ -52,6 +52,11 @@ check_symbol_exists(mallinfo malloc.h HAVE_MALLINFO) check_symbol_exists(pthread_mutex_lock pthread.h HAVE_PTHREAD_MUTEX_LOCK) check_symbol_exists(strtoll stdlib.h HAVE_STRTOLL) +check_symbol_exists(__GLIBC__ stdio.h LLVM_USING_GLIBC) +if( LLVM_USING_GLIBC ) + add_llvm_definitions( -D_GNU_SOURCE ) +endif() + include(CheckCXXCompilerFlag) check_cxx_compiler_flag("-fPIC" SUPPORTS_FPIC_FLAG) 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)
+
|