memory/fallible/moz.build
author Kaku Kuo <tkuo@mozilla.com>
Mon, 08 Aug 2016 14:52:00 +0800
changeset 446451 b4cea724788a105fd76ade0805227d125b815b81
parent 395987 ebc38a4eea8e66724294eb0e186ee158c8e41a8f
child 654806 4be2364723395d5b9c03bb3e6d1101aaaca02cc8
child 658695 6e813ab64ec4e4138b953cd6eedc8fd3e3bc822b
child 708759 4f99d5947995ce43fafbf4b19eb1ae7fc0b15fd3
permissions -rw-r--r--
Bug 1244768 part 7 - refactor the Play() and PlayInternal() methods; r?jwwang MozReview-Commit-ID: CP00vERdWMv

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