dev-libs: Build libfmt

BUG=b:177290952
TEST=CQ

Change-Id: Ia7688d7934cc48bc4ad1295c3ccb69f1540e8473
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/overlays/portage-stable/+/2947924
Tested-by: Po-Hsien Wang <pwang@chromium.org>
Auto-Submit: Po-Hsien Wang <pwang@chromium.org>
Reviewed-by: Ilja H. Friedel <ihf@chromium.org>
Reviewed-by: Chad Versace <chadversary@chromium.org>
Commit-Queue: Ilja H. Friedel <ihf@chromium.org>
Commit-Queue: Chad Versace <chadversary@chromium.org>
diff --git a/dev-libs/libfmt/Manifest b/dev-libs/libfmt/Manifest
new file mode 100644
index 0000000..82e92ce
--- /dev/null
+++ b/dev-libs/libfmt/Manifest
@@ -0,0 +1 @@
+DIST libfmt-7.0.3.tar.gz 740047 BLAKE2B d12d6f59bcea5b4385c4d9ff5c563860cb9275d34d5747d9f8b95664aaa499661500b630d1f621698a7a3f8431326ac5a5273e6883d070aab7cb9aa84b0bcd41 SHA512 26afe55255414e27d58c2389fcc8643b64adc04ecc3604f87024e6421706833cbad8ee4caf514dfb7e88da4162ab3e5ff8ff81b83b5f2fb66e9959e4d1bf0f9a
diff --git a/dev-libs/libfmt/OWNERS b/dev-libs/libfmt/OWNERS
new file mode 100644
index 0000000..fe7a0cd
--- /dev/null
+++ b/dev-libs/libfmt/OWNERS
@@ -0,0 +1,3 @@
+include chromiumos/overlays/chromiumos-overlay
+
+pwang@chromium.org
diff --git a/dev-libs/libfmt/libfmt-7.0.3.ebuild b/dev-libs/libfmt/libfmt-7.0.3.ebuild
new file mode 100644
index 0000000..16f013b
--- /dev/null
+++ b/dev-libs/libfmt/libfmt-7.0.3.ebuild
@@ -0,0 +1,36 @@
+# Copyright 1999-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+CMAKE_ECLASS=cmake
+inherit cmake-multilib
+
+DESCRIPTION="Small, safe and fast formatting library"
+HOMEPAGE="https://github.com/fmtlib/fmt"
+
+LICENSE="MIT"
+IUSE="test"
+SLOT="0/$(ver_cut 1)"
+
+if [[ ${PV} == *9999 ]] ; then
+	EGIT_REPO_URI="https://github.com/fmtlib/fmt.git"
+	inherit git-r3
+else
+	SRC_URI="https://github.com/fmtlib/fmt/archive/${PV}.tar.gz -> ${P}.tar.gz"
+	KEYWORDS="*"
+	S="${WORKDIR}/fmt-${PV}"
+fi
+
+DEPEND=""
+RDEPEND=""
+RESTRICT="!test? ( test )"
+
+multilib_src_configure() {
+	local mycmakeargs=(
+		-DFMT_CMAKE_DIR="$(get_libdir)/cmake/fmt"
+		-DFMT_LIB_DIR="$(get_libdir)"
+		-DFMT_TEST=$(usex test)
+	)
+	cmake_src_configure
+}
diff --git a/dev-libs/libfmt/libfmt-9999.ebuild b/dev-libs/libfmt/libfmt-9999.ebuild
new file mode 100644
index 0000000..6b6db65
--- /dev/null
+++ b/dev-libs/libfmt/libfmt-9999.ebuild
@@ -0,0 +1,36 @@
+# Copyright 1999-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+CMAKE_ECLASS=cmake
+inherit cmake-multilib
+
+DESCRIPTION="Small, safe and fast formatting library"
+HOMEPAGE="https://github.com/fmtlib/fmt"
+
+LICENSE="MIT"
+IUSE="test"
+SLOT="0/$(ver_cut 1)"
+
+if [[ ${PV} == *9999 ]] ; then
+	EGIT_REPO_URI="https://github.com/fmtlib/fmt.git"
+	inherit git-r3
+else
+	SRC_URI="https://github.com/fmtlib/fmt/archive/${PV}.tar.gz -> ${P}.tar.gz"
+	KEYWORDS="~*"
+	S="${WORKDIR}/fmt-${PV}"
+fi
+
+DEPEND=""
+RDEPEND=""
+RESTRICT="!test? ( test )"
+
+multilib_src_configure() {
+	local mycmakeargs=(
+		-DFMT_CMAKE_DIR="$(get_libdir)/cmake/fmt"
+		-DFMT_LIB_DIR="$(get_libdir)"
+		-DFMT_TEST=$(usex test)
+	)
+	cmake_src_configure
+}
diff --git a/dev-libs/libfmt/metadata.xml b/dev-libs/libfmt/metadata.xml
new file mode 100644
index 0000000..8c4896c
--- /dev/null
+++ b/dev-libs/libfmt/metadata.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+	<maintainer type="person">
+		<email>candrews@gentoo.org</email>
+		<name>Craig Andrews</name>
+	</maintainer>
+	<upstream>
+		<bugs-to>https://github.com/fmtlib/fmt/issues</bugs-to>
+		<remote-id type="github">fmtlib/fmt</remote-id>
+	</upstream>
+</pkgmetadata>