Added MSVC building

git-svn-id: http://pugixml.googlecode.com/svn/trunk@186 99668b35-9821-0410-8761-19e4c4f06640
This commit is contained in:
arseny.kapoulkine 2009-10-28 20:08:43 +00:00
parent 9216c82cfd
commit 2a14a3b4c9
2 changed files with 92 additions and 18 deletions

View File

@ -1,17 +1,40 @@
# Latest jamplus is needed to use this
# Targets:
# pugixml - build pugixml library
# tests - build pugixml test suite
# run_tests - run pugixml test suite
# coverage - get test suite coverage
# Options:
# toolset=name - select toolset
# supported toolsets: mingw*, msvc*
# default toolset/configuration
if ( ! $(toolset) )
{
exit You should specify a toolset ;
}
if ( ! $(configuration) )
{
configuration = "debug" ;
}
# options
BUILD = build/$(toolset)/$(configuration) ;
if ( $(toolset) = "mingw" )
{
CCFLAGS = -fprofile-arcs -ftest-coverage ;
LDFLAGS = -fprofile-arcs ;
GCOVFLAGS = -n ;
}
# rules
include "Jamrules.jam" ;
BUILD = build/mingw/debug ;
CCFLAGS = -fprofile-arcs -ftest-coverage ;
LDFLAGS = -fprofile-arcs ;
GCOVFLAGS = -n ;
# targets
Library pugixml : src/pugixml.cpp src/pugixpath.cpp ;
Application tests : tests/main.cpp [ Glob tests : test_*.cpp ] : pugixml ;
Test run_tests : tests ;

View File

@ -1,23 +1,74 @@
# Rules for Jamfile.jam
actions ObjectAction
if ( $(toolset:I=^mingw) )
{
%MINGW_PATH%\bin\gcc -W -Wall -Wextra -Werror -pedantic -c $(>) -o $(<) $(CCFLAGS)
}
if ( $(configuration) = "debug" )
{
CCFLAGS += -D_DEBUG ;
}
else
{
CCFLAGS += -DNDEBUG -O3 ;
}
actions LibraryAction
{
%MINGW_PATH%\bin\ar rc $(<) $(>)
actions ObjectAction
{
%$(toolset)_PATH%\bin\gcc -W -Wall -Wextra -Werror -pedantic -c $(>) -o $(<) $(CCFLAGS)
}
actions LibraryAction
{
%$(toolset)_PATH%\bin\ar rc $(<) $(>)
}
actions LinkAction
{
%$(toolset)_PATH%\bin\g++ $(>) -o $(<) $(LDFLAGS)
}
actions CoverageAction
{
%$(toolset)_PATH%\bin\gcov $(>:\\) $(GCOVFLAGS) | perl tests/gcov-filter.pl
}
}
actions LinkAction
else if ( $(toolset:I^=msvc) )
{
%MINGW_PATH%\bin\g++ $(>) -o $(<) $(LDFLAGS)
}
if ( $(configuration) = "debug" )
{
CCFLAGS += /D_DEBUG /MTd ;
}
else
{
CCFLAGS += /DNDEBUG /Ox /MT ;
}
actions CoverageAction
{
%MINGW_PATH%\bin\gcov $(>:\\) $(GCOVFLAGS) | perl tests/gcov-filter.pl
if ( $(toolset) != msvc6 )
{
CCFLAGS += /Wp64 /W4 ;
}
else
{
CCFLAGS += /W3 ; # lots of warnings at W4 in standard library
}
actions ObjectAction
{
%$(toolset)_PATH%\bin\cl.exe /EHsc /WX /I%$(toolset)_PATH%\include /c $(>) /Fo$(<) /nologo $(CCFLAGS)
}
actions LibraryAction
{
%$(toolset)_PATH%\bin\lib.exe /NOLOGO /OUT:$(<) $(>)
}
actions LinkAction
{
%$(toolset)_PATH%\bin\link.exe /SUBSYSTEM:CONSOLE /NOLOGO /OUT:$(<) $(>) /LIBPATH:%$(toolset)_PATH%\lib /LIBPATH:%$(toolset)_PATH%\PlatformSDK\lib $(LDFLAGS)
}
actions CoverageAction
{
}
}
actions RunAction