Added icc toolset support for Linux/MacOS X

git-svn-id: http://pugixml.googlecode.com/svn/trunk@823 99668b35-9821-0410-8761-19e4c4f06640
This commit is contained in:
arseny.kapoulkine 2011-10-08 04:14:39 +00:00
parent 696a0ea588
commit 5c02ac5645

View File

@ -211,81 +211,136 @@ else if ( $(toolset:I=^msvc) )
} }
else if ( $(toolset:I=^ic) ) else if ( $(toolset:I=^ic) )
{ {
if ( $(toolset) = ic8 || $(toolset) = ic9 ) if ( $(OS) = NT )
{ {
msvc = "msvc71" ; if ( $(toolset) = ic8 || $(toolset) = ic9 )
} {
else msvc = "msvc71" ;
{ }
msvc = "msvc8" ; else
} {
msvc = "msvc8" ;
}
if ( $(toolset) = ic11 ) if ( $(toolset) = ic11 )
{ {
postfix = "\\ia32" ; postfix = "\\ia32" ;
} }
else if ( $(toolset) = ic11_x64 ) else if ( $(toolset) = ic11_x64 )
{ {
postfix = "\\intel64" ; postfix = "\\intel64" ;
} }
else else
{ {
postfix = "" ; postfix = "" ;
} }
if ( $(toolset:I=_x64$) ) if ( $(toolset:I=_x64$) )
{ {
msvc_postfix = "\\amd64" ; msvc_postfix = "\\amd64" ;
LDFLAGS += /MACHINE:X64 ; LDFLAGS += /MACHINE:X64 ;
} }
else else
{ {
msvc_postfix = "" ; msvc_postfix = "" ;
} }
rule GetCFlags CONFIG : DEFINES rule GetCFlags CONFIG : DEFINES
{ {
local RESULT = /D$(DEFINES) ; local RESULT = /D$(DEFINES) ;
RESULT += /W3 /WX /Qvec_report0 ; RESULT += /W3 /WX /Qvec_report0 ;
if ( $(toolset) != ic8 ) if ( $(toolset) != ic8 )
{ {
RESULT += /fp:precise ; RESULT += /fp:precise ;
} }
if ( $(CONFIG) = "debug" ) if ( $(CONFIG) = "debug" )
{ {
RESULT += /D_DEBUG /Od /MTd ; RESULT += /D_DEBUG /Od /MTd ;
} }
else else
{ {
RESULT += /DNDEBUG /Ox /MT ; RESULT += /DNDEBUG /Ox /MT ;
} }
if ( ! ( PUGIXML_NO_EXCEPTIONS in $(DEFINES) ) ) if ( ! ( PUGIXML_NO_EXCEPTIONS in $(DEFINES) ) )
{ {
RESULT += /EHsc ; RESULT += /EHsc ;
} }
return $(RESULT) ; return $(RESULT) ;
} }
actions ObjectAction actions ObjectAction
{ {
set PATH=%$(msvc)_PATH%\bin set PATH=%$(msvc)_PATH%\bin
"%$(toolset)_PATH%\bin$(postfix)\icl.exe" /I"%$(msvc)_PATH%\include" /I"%$(msvc)_PATH%\PlatformSDK\Include" /I"%$(toolset)_PATH%\include" /c $(>) /Fo$(<) /nologo $(CCFLAGS) "%$(toolset)_PATH%\bin$(postfix)\icl.exe" /I"%$(msvc)_PATH%\include" /I"%$(msvc)_PATH%\PlatformSDK\Include" /I"%$(toolset)_PATH%\include" /c $(>) /Fo$(<) /nologo $(CCFLAGS)
} }
actions LibraryAction actions LibraryAction
{ {
"%$(msvc)_PATH%\bin\lib.exe" /NOLOGO /OUT:$(<) $(>) "%$(msvc)_PATH%\bin\lib.exe" /NOLOGO /OUT:$(<) $(>)
} }
actions LinkAction actions LinkAction
{ {
"%$(msvc)_PATH%\bin\link.exe" /SUBSYSTEM:CONSOLE /NOLOGO /OUT:$(<) $(>) /LIBPATH:"%$(toolset)_PATH%\lib$(postfix)" /LIBPATH:"%$(msvc)_PATH%\lib$(msvc_postfix)" /LIBPATH:"%$(msvc)_PATH%\PlatformSDK\lib$(msvc_postfix)" $(LDFLAGS) "%$(msvc)_PATH%\bin\link.exe" /SUBSYSTEM:CONSOLE /NOLOGO /OUT:$(<) $(>) /LIBPATH:"%$(toolset)_PATH%\lib$(postfix)" /LIBPATH:"%$(msvc)_PATH%\lib$(msvc_postfix)" /LIBPATH:"%$(msvc)_PATH%\PlatformSDK\lib$(msvc_postfix)" $(LDFLAGS)
} }
}
else
{
rule GetCFlags CONFIG : DEFINES
{
local RESULT = -D$(DEFINES) ;
RESULT += -fp-model strict ;
RESULT += -Wall -Werror -Wcheck ;
RESULT += -Wformat -Wformat-security -Wmissing-declarations -Wmissing-prototypes -Wstrict-aliasing ;
RESULT += -Wstrict-prototypes -Wpointer-arith -Wuninitialized -Wdeprecated -Wabi ;
RESULT += -Wcast-qual -Wunused-function -Wunknown-pragmas -Wmain -Wcomment -Wconversion ;
RESULT += -Wreturn-type -Wextra-tokens -Wpragma-once -Wshadow -Woverloaded-virtual -Wtrigraphs ;
RESULT += -Wmultichar -Woverflow -Wwrite-strings -Wsign-compare -Wp64 -Wshorten-64-to-32 ;
if ( $(fulldebug) )
{
RESULT += -g ;
}
if ( $(CONFIG) = "debug" )
{
RESULT += -D_DEBUG ;
}
else
{
RESULT += -DNDEBUG -O3 ;
}
if ( PUGIXML_NO_EXCEPTIONS in $(DEFINES) )
{
RESULT += -fno-exceptions ;
}
return $(RESULT) ;
}
actions ObjectAction
{
icc -c $(>) -o $(<) $(CCFLAGS)
}
actions LibraryAction
{
ar rcs $(<) $(>)
}
actions LinkAction
{
icc $(>) -o $(<) $(LDFLAGS)
}
}
} }
else if ( $(toolset:I=^dmc) ) else if ( $(toolset:I=^dmc) )
{ {