summaryrefslogtreecommitdiff
path: root/Jamfile.jam
blob: 1d20b86f73d865c2285695d5c09cf4983ac95bbf (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
# 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" ;
}

# remove empty define
defines -= "" ;

# options
if ( $(defines) )
{
	BUILD = build/$(toolset)/$(defines:J=_)/$(configuration) ;
}
else
{
	BUILD = build/$(toolset)/standard/$(configuration) ;
}

if ( $(toolset:I=^mingw) )
{
	CCFLAGS = -fprofile-arcs -ftest-coverage ;
	LDFLAGS = -fprofile-arcs ;
	GCOVFLAGS = -n ;

	if ( $(toolset) = mingw44 )
	{
		GCOVFLAGS += -o $(BUILD)/src ; # because stupid gcov can't find files via relative paths any more
	}
}

# rules
include "Jamrules.jam" ;

# targets
Library pugixml : src/pugixml.cpp src/pugixpath.cpp ;
Application tests : tests/main.cpp [ Glob tests : test_*.cpp ] : pugixml ;
Test run_tests : tests ;
Coverage coverage : run_tests ;