diff options
| -rw-r--r-- | Jamfile.jam | 12 | ||||
| -rw-r--r-- | Jamrules.jam | 34 | 
2 files changed, 42 insertions, 4 deletions
| diff --git a/Jamfile.jam b/Jamfile.jam index 48dd03a..6908c9f 100644 --- a/Jamfile.jam +++ b/Jamfile.jam @@ -21,8 +21,18 @@ if ( ! $(configuration) )  	configuration = "debug" ;
  }
 +# remove empty define
 +defines -= "" ;
 +
  # options
 -BUILD = build/$(toolset)/$(configuration) ;
 +if ( $(defines) )
 +{
 +	BUILD = build/$(toolset)/$(defines:J=-)/$(configuration) ;
 +}
 +else
 +{
 +	BUILD = build/$(toolset)/standard/$(configuration) ;
 +}
  if ( $(toolset) = "mingw" )
  {
 diff --git a/Jamrules.jam b/Jamrules.jam index c74764f..fccb75c 100644 --- a/Jamrules.jam +++ b/Jamrules.jam @@ -2,6 +2,8 @@  if ( $(toolset:I=^mingw) )
  {
 +	CCFLAGS += -D$(defines) ;
 +
  	if ( $(configuration) = "debug" )
  	{
  		CCFLAGS += -D_DEBUG ;
 @@ -11,6 +13,11 @@ if ( $(toolset:I=^mingw) )  		CCFLAGS += -DNDEBUG -O3 ;
  	}
 +	if ( PUGIXML_NO_EXCEPTIONS in $(defines) )
 +	{
 +		CCFLAGS += -fno-exceptions ;
 +	}
 +
  	actions ObjectAction
  	{
  		"%$(toolset)_PATH%\bin\gcc" -W -Wall -Wextra -Werror -pedantic -c $(>) -o $(<) $(CCFLAGS)
 @@ -33,6 +40,8 @@ if ( $(toolset:I=^mingw) )  }
  else if ( $(toolset:I=^msvc) )
  {
 +	CCFLAGS += /D$(defines) ;
 +
  	if ( $(configuration) = "debug" )
  	{
  		CCFLAGS += /D_DEBUG /MTd ;
 @@ -51,9 +60,14 @@ else if ( $(toolset:I=^msvc) )  		CCFLAGS += /W3 ; # lots of warnings at W4 in standard library
  	}
 +	if ( ! ( PUGIXML_NO_EXCEPTIONS in $(defines) ) )
 +	{
 +		CCFLAGS += /EHsc ;
 +	}
 +
  	actions ObjectAction
  	{
 -		"%$(toolset)_PATH%\bin\cl.exe" /EHsc /WX /I"%$(toolset)_PATH%\include" /c $(>) /Fo$(<) /nologo $(CCFLAGS)
 +		"%$(toolset)_PATH%\bin\cl.exe" /WX /I"%$(toolset)_PATH%\include" /c $(>) /Fo$(<) /nologo $(CCFLAGS)
  	}
  	actions LibraryAction
 @@ -74,6 +88,8 @@ else if ( $(toolset) = "ic8" )  {
  	msvc = "msvc7" ;
 +	CCFLAGS += /D$(defines) ;
 +
  	if ( $(configuration) = "debug" )
  	{
  		CCFLAGS += /D_DEBUG /MTd ;
 @@ -83,9 +99,14 @@ else if ( $(toolset) = "ic8" )  		CCFLAGS += /DNDEBUG /Ox /MT ;
  	}
 +	if ( ! ( PUGIXML_NO_EXCEPTIONS in $(defines) ) )
 +	{
 +		CCFLAGS += /EHsc ;
 +	}
 +
  	actions ObjectAction
  	{
 -		"%$(toolset)_PATH%\bin\icl.exe" /EHsc /W4 /WX /Wport /Qwd981,444,280,383,909,304,167 /I"%$(msvc)_PATH%\include" /I"%$(toolset)_PATH%\include" /c $(>) /Fo$(<) /nologo $(CCFLAGS)
 +		"%$(toolset)_PATH%\bin\icl.exe" /W4 /WX /Wport /Qwd981,444,280,383,909,304,167 /I"%$(msvc)_PATH%\include" /I"%$(toolset)_PATH%\include" /c $(>) /Fo$(<) /nologo $(CCFLAGS)
  	}
  	actions LibraryAction
 @@ -104,6 +125,8 @@ else if ( $(toolset) = "ic8" )  }
  else if ( $(toolset:I=^dmc) )
  {
 +	CCFLAGS += -D$(defines) ;
 +
  	if ( $(configuration) = "debug" )
  	{
  		CCFLAGS += -D_DEBUG ;
 @@ -113,9 +136,14 @@ else if ( $(toolset:I=^dmc) )  		CCFLAGS += -DNDEBUG ;
  	}
 +	if ( !(PUGIXML_NO_EXCEPTIONS in $(defines)) )
 +	{
 +		CCFLAGS += -Ae ;
 +	}
 +
  	actions ObjectAction
  	{
 -		"%$(toolset)_PATH%\bin\dmc.exe" -c -f -wx -Ae $(>) -o$(<)
 +		"%$(toolset)_PATH%\bin\dmc.exe" -c -f -wx $(>) -o$(<)
  	}
  	actions LibraryAction
 | 
