You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
gentoo-overlay/sci-electronics/kicad/kicad-99999999.ebuild

183 lines
5.0 KiB

# Copyright 1999-2012 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/sci-electronics/kicad/kicad-99999999.ebuild,v 1.9 2012/07/13 15:29:34 calchan Exp $
# rafaelmartins: Please try to keep the live ebuild synchronized with
# the latest snapshot ebuild. e.g.:
# cp kicad-YYYYMMDD_pXXXX.ebuild kicad-99999999.ebuild
EAPI="3"
WX_GTK_VER="2.8"
inherit cmake-utils wxwidgets fdo-mime gnome2-utils bzr
DESCRIPTION="Electronic Schematic and PCB design tools."
HOMEPAGE="http://kicad.sourceforge.net"
SRC_URI=""
LICENSE="GPL-2"
SLOT="0"
KEYWORDS=""
if [[ "${PV}" != "99999999" ]]; then
KEYWORDS="~amd64 ~ppc ~ppc64 ~x86"
fi
IUSE="dev-doc debug doc examples minimal python"
CDEPEND="x11-libs/wxGTK:2.8[X,opengl,gnome]"
DEPEND="${CDEPEND}
>=dev-util/cmake-2.6.0
>=dev-libs/boost-1.40[python?]
app-arch/xz-utils
dev-doc? ( app-doc/doxygen )"
RDEPEND="${CDEPEND}
sys-libs/zlib
sci-electronics/electronics-menu"
src_unpack() {
if [[ "${PV}" != "99999999" ]]; then
EBZR_REVISION="${PV#*_p}"
fi
EBZR_REPO_URI="lp:~kicad-testing-committers/kicad/testing" bzr_fetch
if [[ "${PV}" = "99999999" ]]; then
EBZR_REVISION=""
else
local date="${PV%_p*}"
EBZR_REVISION="before:${date:0:4}-${date:4:2}-${date:6:2},23:59:59"
fi
# FIXME: we need to send patches for bzr.eclass, to avoid the weird
# declarations of ${P} below.
if ! use minimal; then
EBZR_REPO_URI="lp:~kicad-lib-committers/kicad/library" \
EBZR_PROJECT="kicad-library" \
P="${P}/kicad-library" \
EBZR_CACHE_DIR="kicad-library" \
bzr_fetch
fi
if use doc; then
EBZR_REPO_URI="lp:~kicad-developers/kicad/doc" \
EBZR_PROJECT="kicad-doc" \
P="${P}/kicad-doc" \
EBZR_CACHE_DIR="kicad-doc" \
bzr_fetch
fi
}
src_prepare() {
sed -i \
-e '/add_subdirectory(template)/ a \
add_subdirectory(kicad-doc)\
add_subdirectory(kicad-library)' \
-e 's/create_svn_version_header()/#create_svn_version_header()/' \
-e 's/ -O2 / /' \
CMakeLists.txt || die 'sed failed'
sed -i \
-e 's/Scientific;Development/Engineering;Electronics/' \
resources/linux/mime/applications/*.desktop || die 'sed failed'
# Use native boost
sed -i -e '/Boost/s/^#check_find_package/check_find_package/' \
-e '/Boost/s/^#find_package/find_package/' CMakeLists.txt || die "sed failed"
# Add important doc files
sed -i -e 's/INSTALL.txt/AUTHORS.txt CHANGELOG.txt README.txt TODO.txt/' CMakeLists.txt || die "sed failed"
# Fix desktop files
rm resources/linux/mime/applications/eeschema.desktop
sed -i -e 's/Development;//' resources/linux/mime/applications/kicad.desktop || die "sed failed"
# Handle optional minimal install
if use minimal ; then
sed -i -e '/add_subdirectory(template)/d' \
-e '/add_subdirectory(kicad-library)/d' CMakeLists.txt || die "sed failed"
fi
# Add documentation and fix necessary code if requested
if use doc ; then
sed -i -e "s/subdirs.Add( wxT( \"kicad\" ) );/subdirs.Add( wxT( \"${PF}\" ) );/" \
-e '/subdirs.Add( _T( "help" ) );/d' common/edaappl.cpp || die "sed failed"
else
sed -i -e '/add_subdirectory(kicad-doc)/d' CMakeLists.txt || die "sed failed"
fi
# Install examples in the right place if requested
if use examples ; then
sed -i -e 's:${KICAD_DATA}/demos:${KICAD_DOCS}/examples:' CMakeLists.txt || die "sed failed"
else
sed -i -e '/add_subdirectory(demos)/d' CMakeLists.txt || die "sed failed"
fi
}
src_configure() {
need-wxwidgets unicode
mycmakeargs="${mycmakeargs}
-DKICAD_MINIZIP=OFF
-DKICAD_CYRILLIC=ON
-DwxUSE_UNICODE=ON
-DKICAD_GOST=OFF
-DKICAD_AUIMANAGER=OFF
-DKICAD_AUITOOLBAR=OFF
-DKICAD_DOCS=/usr/share/doc/${PF}
-DKICAD_HELP=/usr/share/doc/${PF}
$(cmake-utils_use python KICAD_PYTHON)"
if [[ "${PV}" = "99999999" ]]; then
mycmakeargs="${mycmakeargs} -DKICAD_TESTING_VERSION=ON"
else
mycmakeargs="${mycmakeargs} -DKICAD_STABLE_VERSION=ON"
fi
cmake-utils_src_configure
}
src_compile() {
cmake-utils_src_compile
use dev-doc && doxygen Doxyfile
}
src_install() {
cmake-utils_src_install
if use dev-doc ; then
insinto /usr/share/doc/${PF}
doins uncrustify.cfg
cd Documentation
doins -r GUI_Translation_HOWTO.pdf guidelines/UIpolicies.txt doxygen/doxygen
fi
}
pkg_preinst() {
gnome2_icon_savelist
}
pkg_postinst() {
fdo-mime_desktop_database_update
fdo-mime_mime_database_update
gnome2_icon_cache_update
if use minimal ; then
ewarn "If the schematic and/or board editors complain about missing libraries when you"
ewarn "open old projects, you will have to take one or more of the following actions :"
ewarn "- Install the missing libraries manually."
ewarn "- Remove the libraries from the 'Libs and Dir' preferences."
ewarn "- Fix the libraries' locations in the 'Libs and Dir' preferences."
ewarn "- Emerge kicad without the 'minimal' USE flag."
elog
fi
elog "You may want to emerge media-gfx/wings if you want to create 3D models of components."
}
pkg_postrm() {
fdo-mime_desktop_database_update
fdo-mime_mime_database_update
gnome2_icon_cache_update
}