summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'sci-electronics/kicad/kicad-20120119_p3256.ebuild')
-rw-r--r--sci-electronics/kicad/kicad-20120119_p3256.ebuild190
1 files changed, 190 insertions, 0 deletions
diff --git a/sci-electronics/kicad/kicad-20120119_p3256.ebuild b/sci-electronics/kicad/kicad-20120119_p3256.ebuild
new file mode 100644
index 000000000000..bc68890ee1dc
--- /dev/null
+++ b/sci-electronics/kicad/kicad-20120119_p3256.ebuild
@@ -0,0 +1,190 @@
+# 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-20120119_p3256.ebuild,v 1.1 2012/02/19 04:43:33 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]"
+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
+}