build/msvc-stlport-tools.jam
Dave Abrahams 56a7244dd3 Merged from RC_1_28_0
[SVN r13944]
2002-05-16 00:56:42 +00:00

123 lines
4.6 KiB
Plaintext

#
# This is msvc-stlport-tools.jam. It adds support for STLport used with
# the msvc toolset.
#
# Written by Markus Schöpflin.
# Originally based on "gcc-stlport-tools.jam", copyrighted by David
# Abrahams and Carlos Pinto Coelho 2001.
#
# To use it, you have to:
#
# 1. specify msvc-stlport as the tool name, for example by placing
# TOOLS = msvc-stlport ;
# in your jam rules file.
#
# 2a. Set STLPORT_PATH to point to the directory _above_ the STLport
# directory. This assumes that you didn't rename the STLport folder
# and allows for automatic selection of multiple STLport versions.
#
# and / or
#
# 2b. For STLPort version X.Y, set STLPORT_X.Y_PATH to the STLport
# directory for each STLport version you are going to use.
# This also overrides any setting of STLPORT_PATH for this version.
#
# NOTE: For msvc, the link libs are pulled in by the STLport header files
# automatically; there's no need to specify them manually.
#
# The following #// line will be used by the regression test table generation
# program as the column heading for HTML tables. Must not include version number.
#//<a href="http://msdn.microsoft.com/vstudio/default.asp">Micro-<br>soft<br>VC++</a><br><a href="http://www.stlport.org/">STLport</a>
# this is simply an extension to the msvc toolset.
extends-toolset msvc ;
MSVC_STDHDRS = $(STDHDRS) ;
MSVC_STDLIBPATH = $(STDLIBPATH) ;
STDHDRS = ;
STDLIBPATH = ;
# STLport iostreams or native iostreams
feature stlport-iostream : off on ;
STLPORT_VERSION = 4.5.3 ;
STLPORT_VERSIONS = 4.5 4.0 ;
# major versions of STLport
feature stlport-version : $(STLPORT_VERSION) $(STLPORT_VERSIONS) ;
feature stlport-cstd-namespace : std global ;
#############################################################################
# Returns a path which is assumed to be the root of the STLport installation.
#
# The result depends on the current version X.Y of STLport.
# 1. If global STLPORT_<X.Y>_PATH is set, return it.
# 2. If global STLPORT_PATH is set, return $(STLPORT_PATH)/STLport-<X.Y>
#
rule get-stlport-root
{
local version = [ get-values <stlport-version> : $(gBUILD_PROPERTIES) ] ;
local path ;
path ?= $(STLPORT_$(version)_PATH) ;
path ?= $(STLPORT_PATH)$(SLASH)STLport-$(version) ;
if $(version) && ! $(path)
{
local dollar = "$" ;
ECHO **** No STLPORT_PATH configured. *** ;
ECHO To configure STLPort for use with the msvc-stlport toolset, the following variables can be set: ;
ECHO ;
ECHO STLPORT_PATH - A directory containing at least one subdirectory of the form /STLPort-<version> ;
ECHO " where STLPort installations can be found." ;
ECHO ;
ECHO STLPORT_<version>_PATH - The directory where the specific STLPort <version> installation can be ;
ECHO " found, in case there is no central location appropriate for STLPORT_PATH, above, or a" ;
ECHO " particular version's installation is not located in the usual place." ;
ECHO ;
ECHO STLPORT_VERSION - The version of STLPort in use by default. Defaults to \"4.5.3\". Other ;
ECHO " values can be selected in parallel setting the build property <stlport-version> to" ;
ECHO " values from the list of $(dollar)(STLPORT_VERSIONS)" ;
ECHO ;
ECHO STLPORT_VERSIONS - Alternate versions of STLport available on this machine. Defaults to \"4.5 4.0\". ;
ECHO ;
ECHO "Note that STLPort iostreams are /not/ in use by default. To enable them, you must place" ;
ECHO " <stlport-iostream>on in your BUILD variable or in target requirements." ;
EXIT ;
}
return $(path) ;
}
#############################################################################
# flags which work for any STLport version
flags msvc-stlport STDHDRS : [ join [ get-stlport-root ] $(SLASH)stlport ] ;
flags msvc-stlport VC_STDLIB_PATH <stlport-iostream>on : [ join [ get-stlport-root ] $(SLASH)lib ] ;
flags msvc-stlport STDLIBPATH <stlport-iostream>on : [ join [ get-stlport-root ] $(SLASH)lib ] ;
flags msvc-stlport STLPORT_VERSION <stlport-version> ;
# special flags for STLport 4.0
{
local stl = _STLP ;
if <stlport-version>4.0 in $(gBUILD_PROPERTIES)
{
stl = __STL ;
}
flags msvc-stlport DEFINES <stlport-iostream>off : $(stl)_NO_SGI_IOSTREAMS=1 ;
flags msvc-stlport DEFINES <stlport-cstd-namespace>std : $(stl)_DO_IMPORT_CSTD_FUNCTIONS=1 ;
flags msvc-stlport DEFINES <runtime-build>debug : $(stl)_DEBUG=1 $(stl)_DEBUG_UNINITIALIZED=1 ;
}
# Append the old values for STDHDRS and STDLIBPATH
flags msvc-stlport STDHDRS : $(MSVC_STDHDRS) ;
flags msvc-stlport STDLIBPATH : $(MSVC_STDLIBPATH) ;