2014-08-24 00:11:05 +00:00
|
|
|
# -*- 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/.
|
|
|
|
|
2014-09-03 05:10:54 +00:00
|
|
|
@template
|
|
|
|
def Program(name):
|
|
|
|
'''Template for program executables.'''
|
|
|
|
PROGRAM = name
|
|
|
|
|
|
|
|
|
|
|
|
@template
|
2014-09-03 05:16:37 +00:00
|
|
|
def SimplePrograms(names, ext='.cpp'):
|
2014-09-03 05:10:54 +00:00
|
|
|
'''Template for simple program executables.
|
|
|
|
|
|
|
|
Those have a single source with the same base name as the executable.
|
|
|
|
'''
|
|
|
|
SIMPLE_PROGRAMS += names
|
2014-09-03 05:16:37 +00:00
|
|
|
SOURCES += ['%s%s' % (name, ext) for name in names]
|
2014-09-03 05:10:54 +00:00
|
|
|
|
|
|
|
|
|
|
|
@template
|
2014-09-03 05:16:37 +00:00
|
|
|
def CppUnitTests(names, ext='.cpp'):
|
2014-09-03 05:10:54 +00:00
|
|
|
'''Template for C++ unit tests.
|
|
|
|
|
|
|
|
Those have a single source with the same base name as the executable.
|
|
|
|
'''
|
|
|
|
CPP_UNIT_TESTS += names
|
2014-09-03 05:16:37 +00:00
|
|
|
SOURCES += ['%s%s' % (name, ext) for name in names]
|
2014-09-03 05:10:54 +00:00
|
|
|
|
|
|
|
|
|
|
|
@template
|
|
|
|
def Library(name):
|
|
|
|
'''Template for libraries.'''
|
|
|
|
LIBRARY_NAME = name
|
|
|
|
|
|
|
|
|
2014-09-04 00:04:45 +00:00
|
|
|
@template
|
|
|
|
def SharedLibrary(name):
|
|
|
|
'''Template for shared libraries.'''
|
|
|
|
Library(name)
|
|
|
|
|
|
|
|
FORCE_SHARED_LIB = True
|
|
|
|
|
|
|
|
|
|
|
|
@template
|
|
|
|
def Framework(name):
|
|
|
|
'''Template for OSX Frameworks.'''
|
|
|
|
Library(name)
|
|
|
|
|
|
|
|
IS_FRAMEWORK = True
|
|
|
|
|
|
|
|
|
2014-09-03 05:10:54 +00:00
|
|
|
@template
|
|
|
|
def HostProgram(name):
|
|
|
|
'''Template for build tools executables.'''
|
|
|
|
HOST_PROGRAM = name
|
|
|
|
|
|
|
|
|
|
|
|
@template
|
2014-09-03 05:16:37 +00:00
|
|
|
def HostSimplePrograms(names, ext='.cpp'):
|
2014-09-03 05:10:54 +00:00
|
|
|
'''Template for simple build tools executables.
|
|
|
|
|
|
|
|
Those have a single source with the same base name as the executable.
|
|
|
|
'''
|
|
|
|
HOST_SIMPLE_PROGRAMS += names
|
2014-09-03 05:16:37 +00:00
|
|
|
HOST_SOURCES += ['%s%s' % (name.replace('host_', ''), ext)
|
|
|
|
for name in names]
|
2014-09-03 05:10:54 +00:00
|
|
|
|
|
|
|
|
|
|
|
@template
|
|
|
|
def HostLibrary(name):
|
|
|
|
'''Template for build tools libraries.'''
|
|
|
|
HOST_LIBRARY_NAME = name
|
|
|
|
|
|
|
|
|
2014-08-24 00:11:05 +00:00
|
|
|
@template
|
|
|
|
def GeckoBinary():
|
|
|
|
'''Template for binaries using Gecko.
|
|
|
|
|
|
|
|
This template is meant to be used in other templates.
|
|
|
|
'''
|
|
|
|
USE_LIBS += [
|
|
|
|
'mozalloc',
|
|
|
|
'nspr',
|
|
|
|
'xpcomglue_s',
|
|
|
|
'xul',
|
|
|
|
]
|
|
|
|
|
|
|
|
|
|
|
|
@template
|
|
|
|
def XPCOMBinaryComponent(name):
|
|
|
|
'''Template defining an XPCOM binary component for Gecko.
|
|
|
|
|
|
|
|
name is the name of the component.
|
|
|
|
'''
|
|
|
|
LIBRARY_NAME = name
|
|
|
|
|
|
|
|
GeckoBinary()
|
|
|
|
|
|
|
|
IS_COMPONENT = True
|