diff options
Diffstat (limited to 'chromium/third_party/libc++/libc++.gyp')
-rw-r--r-- | chromium/third_party/libc++/libc++.gyp | 127 |
1 files changed, 127 insertions, 0 deletions
diff --git a/chromium/third_party/libc++/libc++.gyp b/chromium/third_party/libc++/libc++.gyp new file mode 100644 index 00000000000..d26d06e297d --- /dev/null +++ b/chromium/third_party/libc++/libc++.gyp @@ -0,0 +1,127 @@ +# Copyright 2013 The Chromium Authors. All rights reserved. +# Use of this source code is governed by a BSD-style license that can be +# found in the LICENSE file. + +{ + 'targets': [ + { + 'target_name': 'libcxx_proxy', + 'type': 'none', + 'dependencies=': [ + 'libc++', + ], + # Do not add dependency on libc++.so to dependents of this target. We + # don't want to pass libc++.so on the command line to the linker, as that + # would cause it to be linked into C executables which don't need it. + # Instead, we supply -stdlib=libc++ and let the clang driver decide. + 'dependencies_traverse': 0, + 'variables': { + # Don't add this target to the dependencies of targets with type=none. + 'link_dependency': 1, + }, + 'all_dependent_settings': { + 'target_conditions': [ + ['_type!="none"', { + 'include_dirs': [ + 'trunk/include', + '../libc++abi/trunk/include', + ], + 'cflags_cc': [ + '-nostdinc++', + ], + 'ldflags': [ + '-stdlib=libc++', + # Normally the generator takes care of RPATH. Our case is special + # because the generator is unaware of the libc++.so dependency. + # Note that setting RPATH here is a potential security issue. See: + # https://code.google.com/p/gyp/issues/detail?id=315 + '-Wl,-R,\$$ORIGIN/lib/', + ], + 'library_dirs': [ + '<(PRODUCT_DIR)/lib/', + ], + }], + ], + }, + }, + { + 'target_name': 'libc++', + 'type': 'shared_library', + 'dependencies=': [ + # libc++abi is linked statically into libc++.so. This allows us to get + # both libc++ and libc++abi by passing '-stdlib=libc++'. If libc++abi + # was a separate DSO, we'd have to link against it explicitly. + '../libc++abi/libc++abi.gyp:libc++abi', + ], + 'sources': [ + 'trunk/src/algorithm.cpp', + 'trunk/src/bind.cpp', + 'trunk/src/chrono.cpp', + 'trunk/src/condition_variable.cpp', + 'trunk/src/debug.cpp', + 'trunk/src/exception.cpp', + 'trunk/src/future.cpp', + 'trunk/src/hash.cpp', + 'trunk/src/ios.cpp', + 'trunk/src/iostream.cpp', + 'trunk/src/locale.cpp', + 'trunk/src/memory.cpp', + 'trunk/src/mutex.cpp', + 'trunk/src/new.cpp', + 'trunk/src/optional.cpp', + 'trunk/src/random.cpp', + 'trunk/src/regex.cpp', + 'trunk/src/shared_mutex.cpp', + 'trunk/src/stdexcept.cpp', + 'trunk/src/string.cpp', + 'trunk/src/strstream.cpp', + 'trunk/src/system_error.cpp', + 'trunk/src/thread.cpp', + 'trunk/src/typeinfo.cpp', + 'trunk/src/utility.cpp', + 'trunk/src/valarray.cpp', + ], + 'include_dirs': [ + 'trunk/include', + '../libc++abi/trunk/include', + ], + 'cflags': [ + '-g', '-Os', '-fPIC', + '-std=c++11', + '-fstrict-aliasing', + '-Wall', + '-Wextra', + '-Wshadow', + '-Wconversion', + '-Wnewline-eof', + '-Wpadded', + '-Wmissing-prototypes', + '-Wstrict-aliasing=2', + '-Wstrict-overflow=4', + '-nostdinc++', + ], + 'cflags_cc!': [ + '-fno-rtti', + ], + 'cflags!': [ + '-fno-exceptions', + '-fvisibility=hidden', + ], + 'ldflags': [ + '-nodefaultlibs', + ], + 'ldflags!': [ + # This somehow causes a warning from clang about an unused compilation + # option. Use '-lpthread' instead. + # TODO(earthdok): find out what's causing the warning. + '-pthread', + ], + 'libraries': [ + '-lc', + '-lgcc_s', + '-lpthread', + '-lrt', + ], + }, + ] +} |