summaryrefslogtreecommitdiff
path: root/Jamroot.jam
blob: 8587aaacf6946020ad80740de36f27e01e3c41dd (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
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
using pkg-config ;
import pkg-config ;
import testing ;
import lex ;
import sequence ;
import glsl ;

pkg-config.import sdl2 : : <link>shared ;
pkg-config.import freetype2 : : <link>shared ;
pkg-config.import glib-2.0 : : <link>shared ;
pkg-config.import mxml : : <link>shared ;
pkg-config.import assimp : : <link>shared ;
lib pthread : : <link>shared ;
lib OpenMeshCore : : <link>shared ;

variant coverage : debug ;
project i-like-trains : requirements
	<cxxstd>23
	<linkflags>-Wl,-z,defs
	<variant>release:<lto>on-thin
	<variant>profile:<lto>on-thin
	<variant>coverage:<coverage>on
	<toolset>tidy:<enable>all
	<toolset>tidy:<exclude>bin/link-static/lib/jsonParse.cpp
	<toolset>tidy:<checkxx>boost-*
	<toolset>tidy:<checkxx>bugprone-*
	<toolset>tidy:<xcheckxx>bugprone-easily-swappable-parameters
	<toolset>tidy:<checkxx>clang-*
	<toolset>tidy:<xcheckxx>clang-analyzer-cplusplus.NewDeleteLeaks
	<toolset>tidy:<checkxx>misc-*
	<toolset>tidy:<xcheckxx>misc-non-private-member-variables-in-classes
	<toolset>tidy:<checkxx>modernize-*
	<toolset>tidy:<xcheckxx>modernize-use-trailing-return-type
	<toolset>tidy:<checkxx>hicpp-*
	<toolset>tidy:<xcheckxx>hicpp-signed-bitwise
	<toolset>tidy:<xcheckxx>hicpp-named-parameter
	<toolset>tidy:<xcheckxx>hicpp-no-array-decay
	<toolset>tidy:<checkxx>performance-*
	<toolset>tidy:<comments>no
	<toolset>tidy:<mapping>iwyu.json
	<toolset>tidy:<librarydef>gnu
	<toolset>tidy:<librarydef>posix
	<toolset>tidy:<librarydef>opengl
	<toolset>tidy:<librarydef>sdl
	<toolset>tidy:<librarydef>std
	<toolset>tidy:<define>TIDY
	;

exe iliketrains :
	application/main.cpp
	:
	<library>ilt
	;

explicit main ;
always main ;
run iliketrains : -- : [ sequence.insertion-sort [ glob-tree-ex res : *.* ] ] : : main ;

lib ilt :
	[ glob-tree *.cpp *.?s *.t?s : application bin test thirdparty ]
	[ lib generated : [ glob-tree *.ll *.c : bin thirdparty ] :
		<include>.
		<include>lib
		<link>static
		<use>glib-2.0
		<cflags>-fPIC
		<warnings>off
		<warnings-as-errors>off
	]
	:
	<define>GLM_FORCE_SWIZZLE
	<define>GLM_ENABLE_EXPERIMENTAL
	<toolset>gcc,<variant>debug:<warnings>pedantic
	<toolset>clang,<variant>debug:<warnings>extra
	<variant>debug:<warnings-as-errors>on
	<variant>debug:<cflags>-Wnon-virtual-dtor
	<variant>debug:<cflags>-Wcast-align
	<variant>debug:<cflags>-Wunused
	<variant>debug:<cflags>-Woverloaded-virtual
	<variant>debug:<cflags>-Wconversion
	<variant>debug:<cflags>-Wsign-conversion
	<variant>debug:<cflags>-Wnull-dereference
	<variant>debug:<cflags>-Wdouble-promotion
	<variant>debug:<cflags>-Wformat=2
	<toolset>gcc,<variant>debug:<cflags>-Wold-style-cast
	<toolset>gcc,<variant>debug:<cflags>-Wduplicated-cond
	<toolset>gcc,<variant>debug:<cflags>-Wduplicated-branches
	<toolset>gcc,<variant>debug:<cflags>-Wlogical-op
	<toolset>gcc,<variant>debug:<cflags>-Wuseless-cast
	<include>.
	<include>lib
	<library>thirdparty/<variant>release
	<implicit-dependency>thirdparty
	<library>sdl2
	<library>thirdparty//imguisdl2
	<library>freetype2
	<library>glib-2.0
	<library>mxml
	<library>assimp
	<library>pthread
	<library>OpenMeshCore
	: :
	<define>GLM_ENABLE_EXPERIMENTAL
	<include>.
	<include>lib
	<implicit-dependency>thirdparty
	<library>OpenMeshCore
	;

build-project test ;