commit:     a4c858127655bd6543d301f40a24200f2b592b57
Author:     Sam James <sam <AT> gentoo <DOT> org>
AuthorDate: Wed Mar 10 04:51:12 2021 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Wed Mar 10 04:51:12 2021 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=a4c85812

dev-embedded/libftdi: add upstream CMake patch

Closes: https://bugs.gentoo.org/775116
Signed-off-by: Sam James <sam <AT> gentoo.org>

 .../libftdi/files/libftdi-1.5-cmake-cxx.patch      | 46 +++++++++++
 dev-embedded/libftdi/libftdi-1.5-r3.ebuild         | 96 ++++++++++++++++++++++
 2 files changed, 142 insertions(+)

diff --git a/dev-embedded/libftdi/files/libftdi-1.5-cmake-cxx.patch 
b/dev-embedded/libftdi/files/libftdi-1.5-cmake-cxx.patch
new file mode 100644
index 00000000000..a04aee1cf1d
--- /dev/null
+++ b/dev-embedded/libftdi/files/libftdi-1.5-cmake-cxx.patch
@@ -0,0 +1,46 @@
+https://bugs.gentoo.org/766818
+
+From cdb28383402d248dbc6062f4391b038375c52385 Mon Sep 17 00:00:00 2001
+From: Fabrice Fontaine <fontaine.fabr...@gmail.com>
+Date: Fri, 17 Jul 2020 21:25:03 +0200
+Subject: [PATCH] CMakeLists.txt: fix paths when FTDIPP is set
+
+Use the same project name (i.e. libftdi1 and not libftdipp1) when FTDIPP
+is enabled as suggested by Aurelien Jarno in
+http://developer.intra2net.com/mailarchive/html/libftdi/2020/msg00044.html
+
+Without this change, the libftdi1.pc config file defines the include
+path as /usr/local/include/libftdipp1 while the ftdi.h file is actually
+installed in /usr/local/include/libftdi1
+
+This is an issue for example for libsigrok which will fail on:
+
+In file included from src/hardware/asix-sigma/protocol.c:27:
+src/hardware/asix-sigma/protocol.h:28:10: fatal error: ftdi.h: No such file or 
directory
+   28 | #include <ftdi.h>
+      |          ^~~~~~~~
+
+Fixes:
+ - 
http://autobuild.buildroot.org/results/1427f44e36752c337791597fab47a1889552a2fe
+
+Signed-off-by: Fabrice Fontaine <fontaine.fabr...@gmail.com>
+---
+ CMakeLists.txt |    2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 5aecafc..3b0b87c 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -136,7 +136,7 @@ endif ()
+ 
+ add_subdirectory(src)
+ if ( FTDIPP )
+-  project(libftdipp1 C CXX)
++  project(libftdi1 C CXX)
+   add_subdirectory(ftdipp)
+ endif ()
+ if ( PYTHON_BINDINGS )
+-- 
+1.7.1
+

diff --git a/dev-embedded/libftdi/libftdi-1.5-r3.ebuild 
b/dev-embedded/libftdi/libftdi-1.5-r3.ebuild
new file mode 100644
index 00000000000..43542c3f4d8
--- /dev/null
+++ b/dev-embedded/libftdi/libftdi-1.5-r3.ebuild
@@ -0,0 +1,96 @@
+# Copyright 1999-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+PYTHON_COMPAT=( python3_{7..9} )
+inherit cmake python-single-r1
+
+MY_P="${PN}1-${PV}"
+if [[ ${PV} == 9999* ]] ; then
+       inherit git-r3
+       EGIT_REPO_URI="git://developer.intra2net.com/${PN}"
+else
+       
SRC_URI="https://www.intra2net.com/en/developer/${PN}/download/${MY_P}.tar.bz2";
+       KEYWORDS="~amd64 ~arm ~arm64 ~mips ~ppc ~ppc64 ~sparc ~x86"
+fi
+
+DESCRIPTION="Userspace access to FTDI USB interface chips"
+HOMEPAGE="https://www.intra2net.com/en/developer/libftdi/";
+S="${WORKDIR}/${MY_P}"
+
+LICENSE="LGPL-2"
+SLOT="1"
+IUSE="cxx doc examples python test tools"
+RESTRICT="!test? ( test )"
+REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )"
+
+BDEPEND="
+       doc? ( app-doc/doxygen )
+       python? ( dev-lang/swig )"
+RDEPEND="
+       virtual/libusb:1
+       cxx? ( dev-libs/boost )
+       python? ( ${PYTHON_DEPS} )
+       tools? (
+               !<dev-embedded/ftdi_eeprom-1.0
+               dev-libs/confuse:=
+       )"
+DEPEND="${RDEPEND}
+       test? ( dev-libs/boost )
+"
+
+PATCHES=(
+       "${FILESDIR}"/${P}-tests-no-cxx.patch
+       "${FILESDIR}"/${P}-cmake-cxx.patch
+)
+
+pkg_setup() {
+       use python && python-single-r1_pkg_setup
+}
+
+src_configure() {
+       local mycmakeargs=(
+               -DFTDIPP=$(usex cxx)
+               -DDOCUMENTATION=$(usex doc)
+               -DEXAMPLES=$(usex examples)
+               -DPYTHON_BINDINGS=$(usex python)
+               -DBUILD_TESTS=$(usex test)
+               -DFTDI_EEPROM=$(usex tools)
+               -DCMAKE_SKIP_BUILD_RPATH=ON
+               -DSTATICLIBS=OFF
+       )
+       cmake_src_configure
+}
+
+src_test() {
+       cd "${BUILD_DIR}/test" || die
+       LD_LIBRARY_PATH="${BUILD_DIR}/src" ./test_libftdi1 -l all || die
+}
+
+src_install() {
+       cmake_src_install
+
+       # Fix up pkgconfig files
+       # bug #766818
+       if use cxx ; then
+               sed -i -e "s/libftdipp1/libftdi1/" 
"${ED}"/usr/$(get_libdir)/pkgconfig/libftdi1.pc || die
+               sed -i -e "s/libftdi1/libftdipp1/" 
"${ED}"/usr/$(get_libdir)/pkgconfig/libftdipp1.pc || die
+       fi
+
+       use python && python_optimize
+       dodoc AUTHORS ChangeLog README TODO
+
+       if use doc ; then
+               # Clean up crap man pages. #356369
+               rm -vf "${BUILD_DIR}"/doc/man/man3/_* || die
+
+               doman "${BUILD_DIR}"/doc/man/man3/*
+               dodoc -r "${BUILD_DIR}"/doc/html
+       fi
+
+       if use examples ; then
+               docinto examples
+               dodoc examples/*.c
+       fi
+}

Reply via email to