+++ /dev/null
-diff -Naur kicad-4.0.2-orig/common/system/libcontext.cpp kicad-4.0.2/common/system/libcontext.cpp\r
---- kicad-4.0.2-orig/common/system/libcontext.cpp 2016-06-16 22:30:58.000000000 -0700\r
-+++ kicad-4.0.2/common/system/libcontext.cpp 2016-06-16 22:35:46.654719468 -0700\r
-@@ -13,7 +13,7 @@\r
- http://www.boost.org/LICENSE_1_0.txt)\r
-\r
- */\r
--#include "libcontext.h"\r
-+#include <system/libcontext.h>\r
- #if defined(LIBCONTEXT_PLATFORM_windows_i386) && defined(LIBCONTEXT_COMPILER_gcc)\r
- __asm (\r
- ".text\n"\r
-diff -Naur kicad-4.0.2-orig/CMakeLists.txt kicad-4.0.2/CMakeLists.txt\r
---- kicad-4.0.2-orig/CMakeLists.txt 2016-02-13 13:14:42.000000000 -0800\r
-+++ kicad-4.0.2/CMakeLists.txt 2016-06-11 01:11:25.623484908 -0700\r
-@@ -561,7 +561,7 @@\r
- # Download boost and possibly build parts of it\r
- #################################################\r
- if( KICAD_SKIP_BOOST )\r
-- find_package( Boost 1.54.0 REQUIRED COMPONENTS context date_time filesystem iostreams locale\r
-+ find_package( Boost 1.54.0 REQUIRED COMPONENTS date_time filesystem iostreams locale\r
- program_options regex system thread )\r
- \r
- if( NOT Boost_FOUND )\r
-diff -Naur kicad-4.0.2-orig/common/CMakeLists.txt kicad-4.0.2/common/CMakeLists.txt\r
---- kicad-4.0.2-orig/common/CMakeLists.txt 2016-02-13 13:14:42.000000000 -0800\r
-+++ kicad-4.0.2/common/CMakeLists.txt 2016-06-11 01:10:04.886830434 -0700\r
-@@ -256,6 +256,8 @@\r
- view/view_item.cpp\r
- view/view_group.cpp\r
- \r
-+ system/libcontext.cpp\r
-+\r
- math/math_util.cpp\r
- \r
- tool/tool_action.cpp\r
-diff -Naur kicad-4.0.2-orig/include/tool/coroutine.h kicad-4.0.2/include/tool/coroutine.h\r
---- kicad-4.0.2-orig/include/tool/coroutine.h 2016-02-13 13:14:42.000000000 -0800\r
-+++ kicad-4.0.2/include/tool/coroutine.h 2016-06-11 01:07:06.035378422 -0700\r
-@@ -27,8 +27,7 @@\r
- \r
- #include <cstdlib>\r
- \r
--#include <boost/context/fcontext.hpp>\r
--#include <boost/version.hpp>\r
-+#include <system/libcontext.h>\r
- \r
- #include "delegate.h"\r
- \r
-@@ -92,10 +91,8 @@\r
- if( m_saved )\r
- delete m_saved;\r
- \r
--#if BOOST_VERSION >= 105600\r
- if( m_self )\r
- delete m_self;\r
--#endif\r
- \r
- if( m_stack )\r
- free( m_stack );\r
-@@ -156,13 +153,9 @@\r
- assert( m_saved == NULL );\r
- \r
- m_args = &aArgs;\r
--#if BOOST_VERSION >= 105600\r
-- m_self = new boost::context::fcontext_t();\r
-- *m_self = boost::context::make_fcontext( sp, m_stackSize, callerStub );\r
--#else\r
-- m_self = boost::context::make_fcontext( sp, m_stackSize, callerStub );\r
--#endif\r
-- m_saved = new boost::context::fcontext_t();\r
-+ m_self = new fcontext_t();\r
-+ *m_self = make_fcontext( sp, m_stackSize, callerStub );\r
-+ m_saved = new fcontext_t();\r
- \r
- m_running = true;\r
- // off we go!\r
-@@ -222,14 +215,10 @@\r
- }\r
- \r
- ///> Wrapper for jump_fcontext to assure compatibility between different boost versions\r
-- static inline intptr_t jump(boost::context::fcontext_t* aOld, boost::context::fcontext_t* aNew,\r
-+ static inline intptr_t jump(fcontext_t* aOld, fcontext_t* aNew,\r
- intptr_t aP, bool aPreserveFPU = true )\r
- {\r
--#if BOOST_VERSION >= 105600\r
-- return boost::context::jump_fcontext( aOld, *aNew, aP, aPreserveFPU );\r
--#else\r
-- return boost::context::jump_fcontext( aOld, aNew, aP, aPreserveFPU );\r
--#endif\r
-+ return jump_fcontext( aOld, *aNew, aP, aPreserveFPU );\r
- }\r
- \r
- template <typename T>\r
-@@ -252,10 +241,10 @@\r
- ReturnType m_retVal;\r
- \r
- ///< saved caller context\r
-- boost::context::fcontext_t* m_saved;\r
-+ fcontext_t* m_saved;\r
- \r
- ///< saved coroutine context\r
-- boost::context::fcontext_t* m_self;\r
-+ fcontext_t* m_self;\r
- \r
- ///< coroutine stack\r
- void* m_stack;\r
+++ /dev/null
-# Copyright 1999-2018 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=5
-PYTHON_COMPAT=( python2_7 )
-
-WX_GTK_VER="3.0"
-
-inherit cmake-utils eutils flag-o-matic gnome2-utils python-single-r1 wxwidgets vcs-snapshot versionator xdg
-
-DESCRIPTION="Electronic Schematic and PCB design tools."
-HOMEPAGE="http://www.kicad-pcb.org"
-LIBCONTEXT_COMMIT="3d92a1a50f4749b5a92131a957c9615473be85b4"
-
-SERIES=$(get_version_component_range 1-2)
-
-SRC_URI="https://launchpad.net/${PN}/${SERIES}/${PV}/+download/${P}.tar.xz
- !minimal? (
- http://downloads.kicad-pcb.org/libraries/${PN}-footprints-${PV}.tar.gz
- http://downloads.kicad-pcb.org/libraries/kicad-library-${PV}.tar.gz
- )
- i18n? ( https://github.com/KiCad/${PN}-i18n/archive/${PV}.tar.gz -> ${P}-i18n.tar.gz )
- https://github.com/twlostow/libcontext/archive/${LIBCONTEXT_COMMIT}.tar.gz -> ${PN}-libcontext.tar.gz"
-
-LICENSE="GPL-2+ GPL-3+ Boost-1.0"
-SLOT="0"
-KEYWORDS="amd64 x86"
-IUSE="debug doc examples github i18n libressl minimal +python"
-LANGS="bg ca cs de el es fi fr hu it ja ko nl pl pt ru sk sl sv zh-CN"
-for lang in ${LANGS} ; do
- IUSE="${IUSE} l10n_${lang}"
-done
-unset lang
-
-REQUIRED_USE="
- python? ( ${PYTHON_REQUIRED_USE} )"
-
-COMMON_DEPEND="x11-libs/wxGTK:${WX_GTK_VER}[X,opengl]
- python? (
- dev-python/wxpython:${WX_GTK_VER}[opengl,${PYTHON_USEDEP}]
- ${PYTHON_DEPS}
- )
- >=dev-libs/boost-1.56[nls,threads,python?]
- github? (
- libressl? ( dev-libs/libressl:0 )
- !libressl? ( dev-libs/openssl:0 )
- )
- media-libs/glew:0=
- media-libs/freeglut
- media-libs/mesa
- sys-libs/zlib
- x11-libs/cairo"
-DEPEND="${COMMON_DEPEND}
- doc? ( app-doc/doxygen )
- i18n? ( virtual/libintl )
- python? ( dev-lang/swig:0 )"
-RDEPEND="${COMMON_DEPEND}
- sci-electronics/electronics-menu"
-
-pkg_setup() {
- python-single-r1_pkg_setup
-}
-
-src_prepare() {
- xdg_src_prepare
-
- # Add separated out libcontext files and patch source to use them
- mkdir -p "${S}/common/system/" || die
- mkdir -p "${S}/include/system/" || die
- cp "${WORKDIR}/${PN}-libcontext/libcontext.cpp" "${S}/common/system/libcontext.cpp" || die
- cp "${WORKDIR}/${PN}-libcontext/libcontext.h" "${S}/include/system/libcontext.h" || die
- # Path source to use new "built in" libcontext. Also patch libcontext.cpp to have correct include file.
- # Path must be applied after new libcontext files have been copied to the kicad source directory.
- epatch "${FILESDIR}/${P}-boost-context.patch"
-
- # remove all the non unix file endings
- edos2unix $(find "${S}" -type f -name "*.desktop")
-
- # Remove cvpcb desktop file while it does nothing
- rm "${WORKDIR}/${P}/resources/linux/mime/applications/cvpcb.desktop" || die
-
- # Handle optional minimal install.
- if use minimal; then
- # remove templates as they are not needed to run binaries
- sed -e '/add_subdirectory( template )/d' -i CMakeLists.txt || die
- else
- # create a link to the parts library in the main project folder
- ln -s "${WORKDIR}/kicad-library-${PV}" "${S}/${PN}-library" || die
- # create a link to the footprints library and add cmake build rule for it
- ln -s "${WORKDIR}/${PN}-footprints-${PV}" "${S}/${PN}-footprints" || die
- cp "${FILESDIR}/${PN}-footprints-cmakelists.txt" "${WORKDIR}/${PN}-footprints-${PV}/CMakeLists.txt" || die
- # add the libraries directory to cmake as a subproject to build
- sed "/add_subdirectory( bitmaps_png )/a add_subdirectory( ${PN}-library )" -i CMakeLists.txt || die
- # add the footprints directory to cmake as a subproject to build
- sed "/add_subdirectory( ${PN}-library )/a add_subdirectory( ${PN}-footprints )" -i CMakeLists.txt || die
- # remove duplicate uninstall directions for the library module
- sed '/make uninstall/,/# /d' -i ${PN}-library/CMakeLists.txt || die
- fi
-
- # Add internationalization for the GUI
- if use i18n; then
- # create a link to the translations library in the main project folder
- ln -s "${WORKDIR}/${P}-i18n" "${S}/${PN}-i18n" || die
- # Remove unused languages. Project generates only languages specified in the
- # file in LINGUAS in the subproject folder. By default all languages are added
- # so we sed out the unused ones based on the user l10n_* settings.
- local lang
- for lang in ${LANGS}; do
- if ! use l10n_${lang}; then
- lang="${lang//-/_}"
- sed "/${lang}/d" -i ${PN}-i18n/LINGUAS || die
- fi
- done
- # cmakelists does not respect our build dir variables, so make it point to the right location
- sed "s|\${CMAKE_BINARY_DIR}|${WORKDIR}/${P}_build|g" -i ${PN}-i18n/CMakeLists.txt || die
- # we also make from the master project so the source dir is understood incorretly, replace that too
- sed "s|\${CMAKE_SOURCE_DIR}/\${LANG}|\${CMAKE_SOURCE_DIR}/${PN}-i18n/\${LANG}|g" -i ${PN}-i18n/CMakeLists.txt || die
- # add the translations directory to cmake as a subproject to build
- sed "/add_subdirectory( bitmaps_png )/a add_subdirectory( ${PN}-i18n )" -i CMakeLists.txt || die
- # remove duplicate uninstall directions for the translation module
- sed '/make uninstall/,$d' -i ${PN}-i18n/CMakeLists.txt || die
- fi
-
- # Install examples in the right place if requested
- if use examples; then
- # install demos into the examples folder too
- sed -e 's:${KICAD_DATA}/demos:${KICAD_DOCS}/examples:' -i CMakeLists.txt || die
- else
- # remove additional demos/examples as its not strictly required to run the binaries
- sed -e '/add_subdirectory( demos )/d' -i CMakeLists.txt || die
- fi
-
- # Add important missing doc files
- sed -e 's/INSTALL.txt/AUTHORS.txt CHANGELOG.txt README.txt TODO.txt/' -i CMakeLists.txt || die
-}
-
-src_configure() {
- local mycmakeargs=(
- -DPYTHON_DEST="$(python_get_sitedir)"
- -DPYTHON_EXECUTABLE="${PYTHON}"
- -DPYTHON_INCLUDE_DIR="$(python_get_includedir)"
- -DPYTHON_LIBRARY="$(python_get_library_path)"
- -DKICAD_DOCS="/usr/share/doc/${PF}"
- -DKICAD_HELP="/usr/share/doc/${PF}/help"
- -DKICAD_REPO_NAME="stable"
- -DKICAD_BUILD_VERSION="${PV}"
- -DwxUSE_UNICODE=ON
- -DKICAD_SKIP_BOOST=ON
- $(cmake-utils_use github BUILD_GITHUB_PLUGIN)
- $(cmake-utils_use python KICAD_SCRIPTING)
- $(cmake-utils_use python KICAD_SCRIPTING_MODULES)
- $(cmake-utils_use python KICAD_SCRIPTING_WXPYTHON)
- $(usex i18n "-DKICAD_I18N_UNIX_STRICT_PATH=1" "")
- )
- if use debug; then
- append-cxxflags "-DDEBUG"
- append-cflags "-DDEBUG"
- fi
- cmake-utils_src_configure
-}
-
-src_compile() {
- cmake-utils_src_compile
- if use doc; then
- doxygen Doxyfile || die
- fi
-}
-
-src_install() {
- cmake-utils_src_install
- use python && python_optimize
- if use doc ; then
- dodoc uncrustify.cfg
- cd Documentation || die
- dodoc -r GUI_Translation_HOWTO.pdf guidelines/UIpolicies.txt doxygen/.
- fi
-}
-
-pkg_preinst() {
- xdg_pkg_preinst
- gnome2_icon_savelist
-}
-
-pkg_postinst() {
- xdg_pkg_postinst
- 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 ${PN} without the 'minimal' USE flag."
- fi
- elog ""
- elog "You may want to emerge media-gfx/wings if you want to create 3D models of components."
- elog "For help and extended documentation emerge app-doc/kicad-doc."
-}
-
-pkg_postrm() {
- xdg_pkg_postrm
- gnome2_icon_cache_update
-}