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="430ae8354789de4fd19ee52f3b1f739e1fba576f0aded0897c3c2bc00fb38778"
9REVISION="9"
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.70.0"
19
20PROVIDES="
21	boost170$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:libiconv$secondaryArchSuffix
58	lib:libicudata$secondaryArchSuffix
59	lib:libicui18n$secondaryArchSuffix
60	lib:libicuuc$secondaryArchSuffix
61	lib:libz$secondaryArchSuffix
62	"
63
64# List of devel entries matching an actual library (for use in prepareInstalledDevelLibs)
65# Boost also provides header-only libraries (because templates)
66devel_libs="
67	devel:libboost_atomic$secondaryArchSuffix = $libVersion
68	devel:libboost_chrono$secondaryArchSuffix = $libVersion
69	devel:libboost_container$secondaryArchSuffix = $libVersion
70	devel:libboost_context$secondaryArchSuffix = $libVersion
71	devel:libboost_contract$secondaryArchSuffix = $libVersion
72	devel:libboost_coroutine$secondaryArchSuffix = $libVersion
73	devel:libboost_date_time$secondaryArchSuffix = $libVersion
74	devel:libboost_exception$secondaryArchSuffix = $libVersion
75	devel:libboost_filesystem$secondaryArchSuffix = $libVersion
76	devel:libboost_graph$secondaryArchSuffix = $libVersion
77	devel:libboost_iostreams$secondaryArchSuffix = $libVersion
78	devel:libboost_locale$secondaryArchSuffix = $libVersion
79	devel:libboost_log_setup$secondaryArchSuffix = $libVersion
80	devel:libboost_log$secondaryArchSuffix = $libVersion
81	devel:libboost_math_c99$secondaryArchSuffix = $libVersion
82	devel:libboost_math_c99f$secondaryArchSuffix = $libVersion
83	devel:libboost_math_tr1$secondaryArchSuffix = $libVersion
84	devel:libboost_math_tr1f$secondaryArchSuffix = $libVersion
85	devel:libboost_prg_exec_monitor$secondaryArchSuffix = $libVersion
86	devel:libboost_program_options$secondaryArchSuffix = $libVersion
87	devel:libboost_random$secondaryArchSuffix = $libVersion
88	devel:libboost_regex$secondaryArchSuffix = $libVersion
89	devel:libboost_serialization$secondaryArchSuffix = $libVersion
90	devel:libboost_stacktrace_basic$secondaryArchSuffix = $libVersion
91	devel:libboost_stacktrace_noop$secondaryArchSuffix = $libVersion
92	devel:libboost_system$secondaryArchSuffix = $libVersion
93	devel:libboost_test_exec_monitor$secondaryArchSuffix = $libVersion
94	devel:libboost_thread$secondaryArchSuffix = $libVersion
95	devel:libboost_timer$secondaryArchSuffix = $libVersion
96	devel:libboost_type_erasure$secondaryArchSuffix = $libVersion
97	devel:libboost_unit_test_framework$secondaryArchSuffix = $libVersion
98	devel:libboost_wave$secondaryArchSuffix = $libVersion
99	devel:libboost_wserialization$secondaryArchSuffix = $libVersion
100	"
101
102PROVIDES_devel="
103	boost170${secondaryArchSuffix}_devel = $portVersion
104	$devel_libs
105	devel:libboost_config$secondaryArchSuffix = $libVersion
106	"
107REQUIRES_devel="
108	boost170$secondaryArchSuffix == $portVersion base
109	"
110CONFLICTS_devel="
111	boost169${secondaryArchSuffix}_devel
112	"
113
114BUILD_REQUIRES="
115	haiku${secondaryArchSuffix}_devel >= r1~alpha4_pm_hrev51470
116	devel:libbz2$secondaryArchSuffix
117	devel:libiconv$secondaryArchSuffix
118	devel:libicudata$secondaryArchSuffix >= 74
119	devel:libicui18n$secondaryArchSuffix >= 74
120	devel:libicuuc$secondaryArchSuffix >= 74
121	devel:libz$secondaryArchSuffix
122	"
123
124BUILD_PREREQUIRES="
125	cmd:gcc$secondaryArchSuffix
126	cmd:ld$secondaryArchSuffix
127	cmd:find
128	cmd:sed
129	cmd:which
130	"
131
132defineDebugInfoPackage boost170$secondaryArchSuffix \
133	"$libDir"/libboost_atomic.so.$portVersion \
134	"$libDir"/libboost_chrono.so.$portVersion \
135	"$libDir"/libboost_container.so.$portVersion \
136	"$libDir"/libboost_context.so.$portVersion \
137	"$libDir"/libboost_contract.so.$portVersion \
138	"$libDir"/libboost_coroutine.so.$portVersion \
139	"$libDir"/libboost_date_time.so.$portVersion \
140	"$libDir"/libboost_filesystem.so.$portVersion \
141	"$libDir"/libboost_graph.so.$portVersion \
142	"$libDir"/libboost_iostreams.so.$portVersion \
143	"$libDir"/libboost_locale.so.$portVersion \
144	"$libDir"/libboost_log_setup.so.$portVersion \
145	"$libDir"/libboost_log.so.$portVersion \
146	"$libDir"/libboost_math_c99.so.$portVersion \
147	"$libDir"/libboost_math_c99f.so.$portVersion \
148	"$libDir"/libboost_math_tr1.so.$portVersion \
149	"$libDir"/libboost_math_tr1f.so.$portVersion \
150	"$libDir"/libboost_prg_exec_monitor.so.$portVersion \
151	"$libDir"/libboost_program_options.so.$portVersion \
152	"$libDir"/libboost_random.so.$portVersion \
153	"$libDir"/libboost_regex.so.$portVersion \
154	"$libDir"/libboost_serialization.so.$portVersion \
155	"$libDir"/libboost_stacktrace_basic.so.$portVersion \
156	"$libDir"/libboost_stacktrace_noop.so.$portVersion \
157	"$libDir"/libboost_system.so.$portVersion \
158	"$libDir"/libboost_thread.so.$portVersion \
159	"$libDir"/libboost_timer.so.$portVersion \
160	"$libDir"/libboost_type_erasure.so.$portVersion \
161	"$libDir"/libboost_unit_test_framework.so.$portVersion \
162	"$libDir"/libboost_wave.so.$portVersion \
163	"$libDir"/libboost_wserialization.so.$portVersion
164
165BUILD()
166{
167	./bootstrap.sh \
168		--prefix=$prefix \
169		--exec-prefix=$binDir \
170		--libdir=$libDir \
171		--includedir=$includeDir
172
173	./b2 -q $jobArgs \
174		--without-mpi \
175		--enable-threads=posix \
176		--enable-thread-local-alloc \
177		--enable-parallel-mark \
178		inlining=on \
179		threading=multi \
180		variant=release \
181		link=shared \
182		runtime-link=shared \
183		--without-python
184}
185
186INSTALL()
187{
188	./b2 -q $jobArgs \
189		--without-mpi \
190		--enable-threads=posix \
191		--enable-thread-local-alloc \
192		--enable-parallel-mark \
193		inlining=on \
194		threading=multi \
195		variant=release \
196		link=shared \
197		runtime-link=shared \
198		--without-python \
199		install
200
201	prepareInstalledDevelLibs `echo "$devel_libs" | sed -n \
202		-e "s/devel:\(.*\)$secondaryArchSuffix =.*/\1/p"`
203
204	# Correct boost cmake static files
205	# https://github.com/boostorg/boost_install/issues/49
206	for i in $(find $libDir/cmake -name "libboost_*-variant-static.cmake"); do
207		echo "Replacing LIBDIR in $i";
208		sed -i "s%\${_BOOST_LIBDIR}%$prefix/$relativeDevelopLibDir%g" $i;
209	done;
210
211	packageEntries devel \
212		$developDir \
213		$libDir/cmake
214}
215
216TEST()
217{
218	cd status
219	../bjam $jobArgs
220}
221