| # -*- Mode: python; c-basic-offset: 4; indent-tabs-mode: nil; tab-width: 40 -*- |
| # vim: set filetype=python: |
| # This Source Code Form is subject to the terms of the Mozilla Public |
| # License, v. 2.0. If a copy of the MPL was not distributed with this |
| # file, You can obtain one at http://mozilla.org/MPL/2.0/. |
| |
| EXPORTS.mozilla += [ |
| 'fallible.h', |
| ] |
| |
| Library('fallible') |
| |
| SOURCES += [ |
| 'fallible.cpp', |
| ] |
| |
| if CONFIG['_MSC_VER']: |
| # MSVC normally adds linker directives relative to the CRT in a .drectve |
| # section in .obj files. Then, when linking objects, it adds those |
| # directives as if they were given as command line arguments. This can |
| # lead to trying to include link CRTs because different objects are |
| # compiled with different CRT options (i.e. -MT vs. -MD), and failing. |
| # The only source in this directory doesn't expose anything that depends |
| # on a CRT, so it doesn't need to be bound to a specific one. |
| # Adding the -Zl option makes MSVC not store linker directives in the |
| # object. This allows to link fallible.obj to binaries independently of |
| # the CRT they use. |
| CXXFLAGS += [ |
| '-Zl', |
| ] |
| |
| if CONFIG['_MSC_VER'] >= '1900': |
| # This further prevents the CRT name from getting into the .obj file, |
| # by avoiding pulling in a bunch of string code that uses the CRT. |
| DEFINES['mozilla_Char16_h'] = True |
| |
| if CONFIG['GNU_CXX']: |
| CXXFLAGS += ['-Wshadow'] |