1SUMMARY="C++ Common Libraries"
2DESCRIPTION="Abseil is an open-source collection of C++ code (compliant to \
3C++11) designed to augment the C++ standard library."
4HOMEPAGE="https://abseil.io"
5COPYRIGHT="2017-2022 The Abseil Authors"
6LICENSE="Apache v2"
7REVISION="1"
8SOURCE_URI="http://github.com/abseil/abseil-cpp/archive/$portVersion/abseil-$portVersion.tar.gz"
9CHECKSUM_SHA256="91ac87d30cc6d79f9ab974c51874a704de9c2647c40f6932597329a282217ba8"
10SOURCE_DIR="abseil-cpp-$portVersion"
11PATCHES="abseil_cpp-$portVersion.patchset"
12
13ARCHITECTURES="all !x86_gcc2"
14SECONDARY_ARCHITECTURES="x86"
15
16libVersion="2206.0.0"
17libVersionCompat="$libVersion compat >= $libVersion"
18libs="
19bad_optional_access bad_variant_access bad_any_cast_impl base city \
20civil_time cord cord_internal cordz_functions cordz_handle cordz_info \
21cordz_sample_token debugging_internal demangle_internal examine_stack \
22exponential_biased failure_signal_handler flags flags_commandlineflag \
23flags_commandlineflag_internal flags_config flags_internal flags_marshalling \
24flags_parse flags_private_handle_accessor flags_program_name flags_reflection \
25flags_usage flags_usage_internal graphcycles_internal hash hashtablez_sampler \
26int128 leak_check log_severity low_level_hash malloc_internal \
27periodic_sampler random_distributions random_internal_distribution_test_util \
28random_internal_platform random_internal_pool_urbg random_internal_randen \
29random_internal_randen_hwaes random_internal_randen_hwaes_impl \
30random_internal_randen_slow random_internal_seed_material \
31random_seed_gen_exception random_seed_sequences raw_hash_set \
32raw_logging_internal scoped_set_env spinlock_wait stacktrace status statusor \
33str_format_internal strerror strings strings_internal symbolize \
34synchronization throw_delegate time time_zone"
35PROVIDES="
36	abseil_cpp.2022$secondaryArchSuffix = $portVersion
37	"
38for lib in $libs; do
39	PROVIDES+="
40		lib:libabsl_$lib$secondaryArchSuffix = $libVersionCompat"
41done
42REQUIRES="
43	haiku$secondaryArchSuffix
44	lib:libstdc++$secondaryArchSuffix
45	"
46
47PROVIDES_devel="
48	abseil_cpp.2022${secondaryArchSuffix}_devel = $portVersion
49	"
50for lib in $libs; do
51	PROVIDES_devel+="
52		devel:libabsl_$lib$secondaryArchSuffix = $libVersionCompat"
53done
54REQUIRES_devel="
55	abseil_cpp.2022$secondaryArchSuffix == $portVersion base
56	"
57CONFLICTS_devel="
58	abseil_cpp${secondaryArchSuffix}_devel
59	"
60
61BUILD_REQUIRES="
62	haiku${secondaryArchSuffix}_devel
63	"
64BUILD_PREREQUIRES="
65	cmd:cmake
66	cmd:gcc$secondaryArchSuffix
67	cmd:make
68	cmd:pkg_config$secondaryArchSuffix
69	"
70
71debugList=()
72for lib in $libs; do
73	debugList+=("$libDir"/libabsl_$lib.so.$libVersion)
74done
75defineDebugInfoPackage abseil_cpp.2022$secondaryArchSuffix "${debugList[@]}"
76
77BUILD()
78{
79	cmake -B build -S . $cmakeDirArgs \
80		-DCMAKE_BUILD_TYPE=RelWithDebInfo \
81		-DCMAKE_CXX_FLAGS="-DNDEBUG" \
82		-DCMAKE_CXX_STANDARD=17 \
83		-DBUILD_SHARED_LIBS=ON \
84		-DCMAKE_POSITION_INDEPENDENT_CODE=ON
85	make -C build $jobArgs
86}
87
88INSTALL()
89{
90	make -C build install PREFIX=$prefix
91
92	for lib in $libs; do
93		prepareInstalledDevelLibs libabsl_$lib
94	done
95
96	fixPkgconfig
97
98	# devel package
99	packageEntries devel \
100		$developDir \
101		$libDir/cmake
102}
103