memory/fallible/moz.build
author Carsten "Tomcat" Book <cbook@mozilla.com>
Fri, 17 Jun 2016 13:33:08 +0100
changeset 302014 7acb2ff3725059f6603adc13d422dbe50d522105
parent 297481 0ee18d7a875a77016dfe5f9ac651787bab7a48d9
child 306187 3ec6380fca8207fa199693206a3ca24975bf9833
permissions -rw-r--r--
Backed out changeset dfe70885c37c (bug 1279657)

# -*- 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