1SUMMARY="A set of libraries for the C++ programming language"
2DESCRIPTION="Boost is a set of libraries for the��C++ programming language \
3that provide support for tasks and structures such as linear algebra, \
4pseudorandom number generation, multithreading, image processing, regular \
5expressions, and unit testing. It contains over eighty individual libraries."
6HOMEPAGE="https://www.boost.org/"
7SOURCE_URI="https://boostorg.jfrog.io/artifactory/main/release/$portVersion/source/boost_${portVersion//./_}.tar.bz2"
8CHECKSUM_SHA256="8f32d4617390d1c2d16f26a27ab60d97807b35440d45891fa340fc2648b04406"
9REVISION="6"
10LICENSE="Boost v1.0"
11COPYRIGHT="1998-2018 Beman Dawes, David Abrahams, Rene Rivera, et al."
12SOURCE_DIR="boost_${portVersion//./_}"
13PATCHES="boost-$portVersion.patchset"
14
15ARCHITECTURES="all !x86_gcc2 ?x86"
16SECONDARY_ARCHITECTURES="x86"
17
18libVersion="$portVersion compat >= 1.69.0"
19
20PROVIDES="
21	boost169$secondaryArchSuffix = $portVersion
22	lib:libboost_atomic$secondaryArchSuffix = $libVersion
23	lib:libboost_chrono$secondaryArchSuffix = $libVersion
24	lib:libboost_container$secondaryArchSuffix = $libVersion
25	lib:libboost_context$secondaryArchSuffix = $libVersion
26	lib:libboost_contract$secondaryArchSuffix = $libVersion
27	lib:libboost_coroutine$secondaryArchSuffix = $libVersion
28	lib:libboost_date_time$secondaryArchSuffix = $libVersion
29	lib:libboost_filesystem$secondaryArchSuffix = $libVersion
30	lib:libboost_graph$secondaryArchSuffix = $libVersion
31	lib:libboost_iostreams$secondaryArchSuffix = $libVersion
32	lib:libboost_locale$secondaryArchSuffix = $libVersion
33	lib:libboost_log_setup$secondaryArchSuffix = $libVersion
34	lib:libboost_log$secondaryArchSuffix = $libVersion
35	lib:libboost_math_c99$secondaryArchSuffix = $libVersion
36	lib:libboost_math_c99f$secondaryArchSuffix = $libVersion
37	lib:libboost_math_tr1$secondaryArchSuffix = $libVersion
38	lib:libboost_math_tr1f$secondaryArchSuffix = $libVersion
39	lib:libboost_prg_exec_monitor$secondaryArchSuffix = $libVersion
40	lib:libboost_program_options$secondaryArchSuffix = $libVersion
41	lib:libboost_random$secondaryArchSuffix = $libVersion
42	lib:libboost_regex$secondaryArchSuffix = $libVersion
43	lib:libboost_serialization$secondaryArchSuffix = $libVersion
44	lib:libboost_stacktrace_basic$secondaryArchSuffix = $libVersion
45	lib:libboost_stacktrace_noop$secondaryArchSuffix = $libVersion
46	lib:libboost_system$secondaryArchSuffix = $libVersion
47	lib:libboost_thread$secondaryArchSuffix = $libVersion
48	lib:libboost_timer$secondaryArchSuffix = $libVersion
49	lib:libboost_type_erasure$secondaryArchSuffix = $libVersion
50	lib:libboost_unit_test_framework$secondaryArchSuffix = $libVersion
51	lib:libboost_wave$secondaryArchSuffix = $libVersion
52	lib:libboost_wserialization$secondaryArchSuffix = $libVersion
53	"
54REQUIRES="
55	haiku$secondaryArchSuffix
56	lib:libbz2$secondaryArchSuffix
57	lib:libicudata$secondaryArchSuffix
58	lib:libicui18n$secondaryArchSuffix
59	lib:libicuuc$secondaryArchSuffix
60	lib:libz$secondaryArchSuffix
61	"
62
63# List of devel entries matching an actual library (for use in prepareInstalledDevelLibs)
64# Boost also provides header-only libraries (because templates)
65devel_libs="
66	devel:libboost_atomic$secondaryArchSuffix = $libVersion
67	devel:libboost_chrono$secondaryArchSuffix = $libVersion
68	devel:libboost_container$secondaryArchSuffix = $libVersion
69	devel:libboost_context$secondaryArchSuffix = $libVersion
70	devel:libboost_contract$secondaryArchSuffix = $libVersion
71	devel:libboost_coroutine$secondaryArchSuffix = $libVersion
72	devel:libboost_date_time$secondaryArchSuffix = $libVersion
73	devel:libboost_exception$secondaryArchSuffix = $libVersion
74	devel:libboost_filesystem$secondaryArchSuffix = $libVersion
75	devel:libboost_graph$secondaryArchSuffix = $libVersion
76	devel:libboost_iostreams$secondaryArchSuffix = $libVersion
77	devel:libboost_locale$secondaryArchSuffix = $libVersion
78	devel:libboost_log_setup$secondaryArchSuffix = $libVersion
79	devel:libboost_log$secondaryArchSuffix = $libVersion
80	devel:libboost_math_c99$secondaryArchSuffix = $libVersion
81	devel:libboost_math_c99f$secondaryArchSuffix = $libVersion
82	devel:libboost_math_tr1$secondaryArchSuffix = $libVersion
83	devel:libboost_math_tr1f$secondaryArchSuffix = $libVersion
84	devel:libboost_prg_exec_monitor$secondaryArchSuffix = $libVersion
85	devel:libboost_program_options$secondaryArchSuffix = $libVersion
86	devel:libboost_random$secondaryArchSuffix = $libVersion
87	devel:libboost_regex$secondaryArchSuffix = $libVersion
88	devel:libboost_serialization$secondaryArchSuffix = $libVersion
89	devel:libboost_stacktrace_basic$secondaryArchSuffix = $libVersion
90	devel:libboost_stacktrace_noop$secondaryArchSuffix = $libVersion
91	devel:libboost_system$secondaryArchSuffix = $libVersion
92	devel:libboost_test_exec_monitor$secondaryArchSuffix = $libVersion
93	devel:libboost_thread$secondaryArchSuffix = $libVersion
94	devel:libboost_timer$secondaryArchSuffix = $libVersion
95	devel:libboost_type_erasure$secondaryArchSuffix = $libVersion
96	devel:libboost_unit_test_framework$secondaryArchSuffix = $libVersion
97	devel:libboost_wave$secondaryArchSuffix = $libVersion
98	devel:libboost_wserialization$secondaryArchSuffix = $libVersion
99	"
100
101PROVIDES_devel="
102	boost169${secondaryArchSuffix}_devel = $portVersion
103	$devel_libs
104	devel:libboost_config$secondaryArchSuffix = $libVersion
105	"
106
107REQUIRES_devel="
108	boost169$secondaryArchSuffix == $portVersion base
109	"
110
111BUILD_REQUIRES="
112	haiku${secondaryArchSuffix}_devel >= r1~alpha4_pm_hrev51470
113	devel:libbz2$secondaryArchSuffix
114	devel:libicudata$secondaryArchSuffix >= 74
115	devel:libicui18n$secondaryArchSuffix >= 74
116	devel:libicuuc$secondaryArchSuffix >= 74
117	devel:libz$secondaryArchSuffix
118	"
119
120BUILD_PREREQUIRES="
121	cmd:gcc$secondaryArchSuffix
122	cmd:ld$secondaryArchSuffix
123	cmd:sed
124	cmd:which
125	"
126
127defineDebugInfoPackage boost169$secondaryArchSuffix \
128	"$libDir"/libboost_atomic.so.$portVersion \
129	"$libDir"/libboost_chrono.so.$portVersion \
130	"$libDir"/libboost_container.so.$portVersion \
131	"$libDir"/libboost_context.so.$portVersion \
132	"$libDir"/libboost_contract.so.$portVersion \
133	"$libDir"/libboost_coroutine.so.$portVersion \
134	"$libDir"/libboost_date_time.so.$portVersion \
135	"$libDir"/libboost_filesystem.so.$portVersion \
136	"$libDir"/libboost_graph.so.$portVersion \
137	"$libDir"/libboost_iostreams.so.$portVersion \
138	"$libDir"/libboost_locale.so.$portVersion \
139	"$libDir"/libboost_log_setup.so.$portVersion \
140	"$libDir"/libboost_log.so.$portVersion \
141	"$libDir"/libboost_math_c99.so.$portVersion \
142	"$libDir"/libboost_math_c99f.so.$portVersion \
143	"$libDir"/libboost_math_tr1.so.$portVersion \
144	"$libDir"/libboost_math_tr1f.so.$portVersion \
145	"$libDir"/libboost_prg_exec_monitor.so.$portVersion \
146	"$libDir"/libboost_program_options.so.$portVersion \
147	"$libDir"/libboost_random.so.$portVersion \
148	"$libDir"/libboost_regex.so.$portVersion \
149	"$libDir"/libboost_serialization.so.$portVersion \
150	"$libDir"/libboost_stacktrace_basic.so.$portVersion \
151	"$libDir"/libboost_stacktrace_noop.so.$portVersion \
152	"$libDir"/libboost_system.so.$portVersion \
153	"$libDir"/libboost_thread.so.$portVersion \
154	"$libDir"/libboost_timer.so.$portVersion \
155	"$libDir"/libboost_type_erasure.so.$portVersion \
156	"$libDir"/libboost_unit_test_framework.so.$portVersion \
157	"$libDir"/libboost_wave.so.$portVersion \
158	"$libDir"/libboost_wserialization.so.$portVersion
159
160BUILD()
161{
162	./bootstrap.sh \
163		--prefix=$prefix \
164		--exec-prefix=$binDir \
165		--libdir=$libDir \
166		--includedir=$includeDir
167
168	./b2 -q $jobArgs \
169		--without-mpi \
170		--enable-threads=posix \
171		--enable-thread-local-alloc \
172		--enable-parallel-mark \
173		inlining=on \
174		threading=multi \
175		variant=release \
176		link=shared \
177		runtime-link=shared \
178		--without-python
179}
180
181INSTALL()
182{
183	./b2 -q $jobArgs \
184		--without-mpi \
185		--enable-threads=posix \
186		--enable-thread-local-alloc \
187		--enable-parallel-mark \
188		inlining=on \
189		threading=multi \
190		variant=release \
191		link=shared \
192		runtime-link=shared \
193		--without-python \
194		install
195
196	rm $libDir/libboost_{chrono,timer,system}.a
197
198	prepareInstalledDevelLibs `echo "$devel_libs" | sed -n \
199		-e "s/devel:\(.*\)$secondaryArchSuffix =.*/\1/p"`
200
201	packageEntries devel $developDir
202}
203
204TEST()
205{
206	cd status
207	../bjam $jobArgs
208}
209