3 # This is free software, licensed under the GNU General Public License v2.
4 # See /LICENSE for more information.
7 include $(TOPDIR
)/rules.mk
13 PKG_SOURCE
:=$(PKG_NAME
)-$(PKG_VERSION
).src.
tar.xz
14 PKG_SOURCE_URL
:=https
://github.com
/llvm
/llvm-project
/releases
/download
/llvmorg-
$(PKG_VERSION
)
15 PKG_HASH
:=270f8a3f176f1981b0f6ab8aa556720988872ec2b48ed3b605d0ced8d09156c7
16 PKG_BUILD_DIR
:=$(BUILD_DIR
)/$(PKG_NAME
)-$(PKG_VERSION
).src
18 PKG_MAINTAINER
:=Rosen Penev
<rosenp@gmail.com
>
20 PKG_LICENSE_FILES
:=LICENSE.txt
23 PKG_BUILD_DEPENDS
:=libcxxabi
24 CMAKE_BINARY_SUBDIR
:=build
26 include $(INCLUDE_DIR
)/package.mk
27 include $(INCLUDE_DIR
)/cmake.mk
33 URL
:=https
://libcxx.llvm.org
/
34 DEPENDS
:=+libatomic
+libpthread
37 define Package
/libcxx
/description
38 libc
++ is an implementation of the C
++ standard library
, targeting C
++11, C
++14 and above.
42 -DLIBCXX_CXX_ABI
="libcxxabi" \
43 -DLIBCXX_ENABLE_ASSERTIONS
=OFF \
44 -DLIBCXX_ENABLE_EXPERIMENTAL_LIBRARY
=OFF \
45 -DLIBCXX_INCLUDE_BENCHMARKS
=OFF \
46 -DLIBCXX_INCLUDE_DOCS
=OFF \
47 -DLIBCXX_INCLUDE_TESTS
=OFF \
48 -DLIBCXX_LIBDIR_SUFFIX
="" \
49 -DLIBCXX_STANDALONE_BUILD
=ON \
50 -DLIBCXX_HAS_MUSL_LIBC
=$(if
$(CONFIG_USE_MUSL
),ON
,OFF
)
52 TARGET_CXXFLAGS
+= -D_LIBCPP_DISABLE_DEPRECATION_WARNINGS
-Wno-attributes
-flto
53 TARGET_LDFLAGS
+= -Wl
,--gc-sections
,--as-needed
55 define Build
/InstallDev
56 $(call Build
/InstallDev
/cmake
,$(1))
57 $(CP
) files
/g
++-libcxx
$(TOOLCHAIN_DIR
)/bin
/
58 $(SED
) 's,CXX,$(TARGET_CXX),g' $(TOOLCHAIN_DIR
)/bin
/g
++-libcxx
61 define Package
/libcxx
/install
62 $(INSTALL_DIR
) $(1)/usr
/lib
63 $(CP
) $(PKG_INSTALL_DIR
)/usr
/lib
/libc
++.so.
* $(1)/usr
/lib
/
66 $(eval
$(call BuildPackage
,libcxx
))