memory/fallible/moz.build
author Franziskus Kiefer <franziskuskiefer@gmail.com>
Wed, 20 Sep 2017 09:13:14 +0200
changeset 381787 76aceb596872aef0261a7771b7a9e07828db55a7
parent 307838 ebc38a4eea8e66724294eb0e186ee158c8e41a8f
child 395551 5d4d649431f49b4350927d6a8be99c2fb164cb2b
permissions -rw-r--r--
Bug 1399100 - fix client.py follow-up, r=kaie MozReview-Commit-ID: V8nVlkRenv

# -*- Mode: python; 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',
    ]

    # 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