Skip to content

Commit

Permalink
dev-embedded/libftdi: add upstream CMake patch
Browse files Browse the repository at this point in the history
Closes: https://bugs.gentoo.org/775116
Signed-off-by: Sam James <[email protected]>
  • Loading branch information
thesamesam committed Mar 10, 2021
1 parent ad49fd8 commit a4c8581
Show file tree
Hide file tree
Showing 2 changed files with 142 additions and 0 deletions.
46 changes: 46 additions & 0 deletions dev-embedded/libftdi/files/libftdi-1.5-cmake-cxx.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
https://bugs.gentoo.org/766818

From cdb28383402d248dbc6062f4391b038375c52385 Mon Sep 17 00:00:00 2001
From: Fabrice Fontaine <[email protected]>
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 <[email protected]>
---
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

96 changes: 96 additions & 0 deletions dev-embedded/libftdi/libftdi-1.5-r3.ebuild
Original file line number Diff line number Diff line change
@@ -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
}

0 comments on commit a4c8581

Please sign in to comment.