From c3b188ee5269e4942f4e50df0b39fe680cb8d9ff Mon Sep 17 00:00:00 2001 From: Igor Ulyanov Date: Sun, 29 Dec 2013 15:35:15 +0400 Subject: kicad ebuild --- sci-electronics/kicad/kicad-99999999-r2.ebuild | 194 +++++++++++++++++++++++++ sci-electronics/kicad/metadata.xml | 16 ++ 2 files changed, 210 insertions(+) create mode 100644 sci-electronics/kicad/kicad-99999999-r2.ebuild create mode 100644 sci-electronics/kicad/metadata.xml diff --git a/sci-electronics/kicad/kicad-99999999-r2.ebuild b/sci-electronics/kicad/kicad-99999999-r2.ebuild new file mode 100644 index 0000000..425975f --- /dev/null +++ b/sci-electronics/kicad/kicad-99999999-r2.ebuild @@ -0,0 +1,194 @@ +# Copyright 1999-2013 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: $ + +# rafaelmartins: Please try to keep the live ebuild synchronized with +# the latest snapshot ebuild. e.g.: +# cp kicad-YYYYMMDD_pXXXX.ebuild kicad-99999999-r1.ebuild + +EAPI="5" +PYTHON_COMPAT=( python2_7 ) + +WX_GTK_VER="2.8" + +inherit cmake-utils wxwidgets fdo-mime gnome2-utils bzr python-r1 flag-o-matic + +DESCRIPTION="Electronic Schematic and PCB design tools." +HOMEPAGE="http://www.kicad-pcb.org" + +SRC_URI="" + +LICENSE="GPL-2" +SLOT="0" +EBZR_REPO_URI="lp:kicad" + +KEYWORDS="" +if [[ "${PV}" != "99999999" ]]; then + KEYWORDS="~amd64 ~ppc ~ppc64 ~x86" +fi + +IUSE="dev-doc debug doc examples minimal python nanometr gost sexpr" + +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" + +pkg_setup() { + python_set_active_version 2 +} + +src_unpack() { + if [[ "${PV}" != "99999999" ]]; then + EBZR_REVISION="${PV#*_p}" + fi + bzr_src_unpack + + 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() { + if use amd64;then + append-cxxflags -fPIC + fi + need-wxwidgets unicode + + mycmakeargs="${mycmakeargs} + -DKICAD_MINIZIP=OFF + -DKICAD_CYRILLIC=ON + -DwxUSE_UNICODE=ON + $(cmake-utils_use gost KICAD_GOST) + $(cmake-utils_use nanometr USE_PCBNEW_NANOMETRES) + $(cmake-utils_use sexpr USE_PCBNEW_SEXPR_FILE_FORMAT) + -DKICAD_AUIMANAGER=OFF + -DKICAD_AUITOOLBAR=OFF + $(cmake-utils_use python KICAD_SCRIPTING) + $(cmake-utils_use python KICAD_SCRIPTING_MODULES) + -DKICAD_DOCS=/usr/share/doc/${PF} + -DKICAD_HELP=/usr/share/doc/${PF}" + + if [[ "${PV}" = "99999999" ]]; then + mycmakeargs="${mycmakeargs} -DKICAD_TESTING_VERSION=ON" + echo "======Testing=====" + else + mycmakeargs="${mycmakeargs} -DKICAD_STABLE_VERSION=ON" + fi + + cmake-utils_src_configure +} + +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 +} diff --git a/sci-electronics/kicad/metadata.xml b/sci-electronics/kicad/metadata.xml new file mode 100644 index 0000000..4dfe3c6 --- /dev/null +++ b/sci-electronics/kicad/metadata.xml @@ -0,0 +1,16 @@ + + + + + Kicad is an open source (GPL) software for the creation of electronic + schematic diagrams and printed circuit board artwork. + + + Install developer documentation (requires + app-doc/doxygen) + Kicad scripting + pcbnew nanometres + Kicad gost + pcbnew sexpr file format + + \ No newline at end of file -- cgit v1.2.3-65-gdbad