summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'dev-util/codeblocks')
-rw-r--r--dev-util/codeblocks/codeblocks-20.03-r7.ebuild97
-rw-r--r--dev-util/codeblocks/files/codeblocks-20.03_fix_DoxyBlocks_startup_segfault.patch61
2 files changed, 158 insertions, 0 deletions
diff --git a/dev-util/codeblocks/codeblocks-20.03-r7.ebuild b/dev-util/codeblocks/codeblocks-20.03-r7.ebuild
new file mode 100644
index 000000000000..a3c08cf9ffa1
--- /dev/null
+++ b/dev-util/codeblocks/codeblocks-20.03-r7.ebuild
@@ -0,0 +1,97 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+WX_GTK_VER="3.0-gtk3"
+
+inherit autotools flag-o-matic wxwidgets xdg
+
+DESCRIPTION="The open source, cross platform, free C, C++ and Fortran IDE"
+HOMEPAGE="https://codeblocks.org/"
+LICENSE="GPL-3"
+SLOT="0"
+KEYWORDS="~amd64 ~ppc ~x86"
+SRC_URI="mirror://sourceforge/${PN}/${P}.tar.xz
+ https://dev.gentoo.org/~leio/distfiles/${P}-fortran.tar.xz
+ https://dev.gentoo.org/~leio/distfiles/${P}-fortran-update-v1.7.tar.xz
+ https://dev.gentoo.org/~leio/distfiles/${P}-fortran-update-v1.8.tar.xz
+ https://dev.gentoo.org/~leio/distfiles/${P}-codecompletion-symbolbrowser-update.tar.xz
+"
+
+# USE="fortran" enables FortranProject plugin (updated to v1.8 2021-05-29 [r230])
+# that is delivered with Code::Blocks 20.03 source code.
+# https://sourceforge.net/projects/fortranproject
+# https://cbfortran.sourceforge.io
+
+IUSE="contrib debug fortran"
+
+BDEPEND="virtual/pkgconfig"
+
+RDEPEND="app-arch/zip
+ dev-libs/glib:2
+ >=dev-libs/tinyxml-2.6.2-r3
+ >=dev-util/astyle-3.1-r2:0/3.1
+ x11-libs/gtk+:3
+ x11-libs/wxGTK:${WX_GTK_VER}[X]
+ contrib? (
+ app-admin/gamin
+ app-arch/bzip2
+ app-text/hunspell:=
+ dev-libs/boost:=
+ dev-libs/libgamin
+ media-libs/fontconfig
+ sys-libs/zlib
+ )"
+
+DEPEND="${RDEPEND}
+ x11-base/xorg-proto"
+
+PATCHES=(
+ "${FILESDIR}"/${P}-env.patch
+ "${WORKDIR}"/patches/
+ "${FILESDIR}"/${P}_fix_DoxyBlocks_startup_segfault.patch
+ )
+
+src_prepare() {
+ default
+ # Force to use bundled Squirrel-3.1 (patched version is used by upstream) due to it's API was changed
+ sed -i '/PKG_CHECK_MODULES(\[SQUIRREL\]/c\HAVE_SQUIRREL=no' configure.ac || die # Bug 884601
+ eautoreconf
+}
+
+src_configure() {
+ # Bug 858338
+ append-flags -fno-strict-aliasing
+
+ setup-wxwidgets
+
+ # USE="contrib -fortran" setup:
+ use fortran || CONF_WITH_LST=$(use_with contrib contrib-plugins all,-FortranProject)
+ # USE="contrib fortran" setup:
+ use fortran && CONF_WITH_LST=$(use_with contrib contrib-plugins all)
+ # USE="-contrib fortran" setup:
+ use contrib || CONF_WITH_LST=$(use_with fortran contrib-plugins FortranProject)
+
+ local myeconfargs=(
+ --disable-pch
+ $(use_with contrib boost-libdir "${ESYSROOT}/usr/$(get_libdir)")
+ $(use_enable debug)
+ ${CONF_WITH_LST}
+ )
+
+ econf "${myeconfargs[@]}"
+}
+
+src_install() {
+ default
+ find "${ED}" -type f -name '*.la' -delete || die
+}
+
+pkg_postinst() {
+ xdg_pkg_postinst
+}
+
+pkg_postrm() {
+ xdg_pkg_postrm
+}
diff --git a/dev-util/codeblocks/files/codeblocks-20.03_fix_DoxyBlocks_startup_segfault.patch b/dev-util/codeblocks/files/codeblocks-20.03_fix_DoxyBlocks_startup_segfault.patch
new file mode 100644
index 000000000000..d641dcb75f83
--- /dev/null
+++ b/dev-util/codeblocks/files/codeblocks-20.03_fix_DoxyBlocks_startup_segfault.patch
@@ -0,0 +1,61 @@
+Upstream patch: https://sourceforge.net/p/codeblocks/code/12074/
+Upstream issue: https://sourceforge.net/p/codeblocks/tickets/839/
+Gentoo issue: https://bugs.gentoo.org/925955
+
+--- a/src/plugins/contrib/DoxyBlocks/DoxyBlocks.cpp
++++ b/src/plugins/contrib/DoxyBlocks/DoxyBlocks.cpp
+@@ -101,8 +101,8 @@
+
+ // constructor
+ DoxyBlocks::DoxyBlocks() :
+- m_pToolbar(0l),
+- m_DoxyBlocksLog(0l),
++ m_pToolbar(nullptr),
++ m_DoxyBlocksLog(nullptr),
+ m_LogPageIndex(0),
+ m_bAutoVersioning(false)
+ {
+@@ -234,8 +234,10 @@
+ */
+ void DoxyBlocks::OnUpdateUI(wxUpdateUIEvent& WXUNUSED(event))
+ {
+- if(Manager::Get()->GetProjectManager()->GetProjects()->GetCount() == 0){
+- m_pToolbar->Enable(false);
++ if (Manager::Get()->GetProjectManager()->GetProjects()->GetCount() == 0)
++ {
++ if (m_pToolbar)
++ m_pToolbar->Enable(false);
+ wxMenuBar *menuBar = Manager::Get()->GetAppFrame()->GetMenuBar();
+ menuBar->FindItem(ID_MENU_DOXYWIZARD)->Enable(false);
+ menuBar->FindItem(ID_MENU_EXTRACTPROJECT)->Enable(false);
+@@ -264,14 +266,15 @@
+ Manager::Get()->ProcessEvent(evt);
+ }
+ }
+- m_DoxyBlocksLog = 0;
+-}
+-
+-cbConfigurationPanel *DoxyBlocks::GetConfigurationPanel(wxWindow *parent)
++ m_DoxyBlocksLog = nullptr;
++}
++
++cbConfigurationPanel* DoxyBlocks::GetConfigurationPanel(wxWindow *parent)
+ {
+ //create and display the configuration dialog for your plugin
+- if(!IsAttached()){
+- return 0;
++ if (!IsAttached())
++ {
++ return nullptr;
+ }
+
+ // Get the version string before instantiating the panel so that it is recorded before
+@@ -346,7 +349,7 @@
+
+ cbConfigurationPanel* DoxyBlocks::GetProjectConfigurationPanel(wxWindow* /*parent*/, cbProject* /*project*/)
+ {
+- return 0;
++ return nullptr;
+ }
+
+ void DoxyBlocks::OnConfigure(wxCommandEvent & WXUNUSED(event))