diff --git a/pisi-index.xml b/pisi-index.xml index b3c8388e1f..b575aebc19 100644 --- a/pisi-index.xml +++ b/pisi-index.xml @@ -56067,6 +56067,95 @@ to create header files and sources from protocol files. + + + codeblocks + http://www.codeblocks.org/ + + Pisi Linux Community + admins@pisilinux.org + + GPLv3 + app:gui + programming.environment + A free C++ IDE built to meet the most demanding needs of its users + C++ için bütünleşik geliştirme araçlarını barındıran özgür yazılım + Code::Blocks is a free C++ IDE built to meet the most demanding needs of its users. It is designed to be very extensible and fully configurable. + Code::Blocks, yazılımcıların en çok ihtiyaç duydukları özellikleri sağlayan, tamamen kişiselleştirilebilen ve geliştirilebilen C++ editörüdür. + codeblocks + https://downloads.sourceforge.net/codeblocks/codeblocks_17.12.tar.xz + + fontconfig-devel + hunspell-devel + boost-devel + gamin-devel + wxGTK-devel + glib2-devel + gtk3-devel + wxGTK3 + + + codeblocks-17.12-scripting.patch + + programming/environment/codeblocks/pspec.xml + + + codeblocks + A free C++ IDE built to meet the most demanding needs of its users + + wxGTK-common + fontconfig + hunspell + wxBase + wxGTK3 + wxGTK + gamin + glib2 + gtk3 + + + /usr/share/applications + /usr/share/codeblocks + /usr/share/appdata + /usr/share/pixmaps + /usr/share/icons + /usr/share/mime + /usr/bin + /usr/share/doc + /usr/share/man + /usr/lib + + + + codeblocks-devel + Development files of codeblocks + codeblocks paketlerine ait geliştirme dosyaları + codeblocks-devel, codeblocks için geliştirme dosyalarını içerir. + + codeblocks + + + /usr/include + /usr/lib/pkgconfig + + + + + 2020-02-24 + 17.12 + Version bump. + Blue Devil + bluedevil@sctzine.com + + + 2017-05-10 + 16.01 + First release. + Erdinç Gültekin + admins@pisilinux.org + + + ant diff --git a/pisi-index.xml.sha1sum b/pisi-index.xml.sha1sum index 4e73f73a01..d4f25559cf 100644 --- a/pisi-index.xml.sha1sum +++ b/pisi-index.xml.sha1sum @@ -1 +1 @@ -c5474654124e9674eae911d116703253328886e9 \ No newline at end of file +df0ccb9e2fe0bdfee376ef3a1499fda3e38699e4 \ No newline at end of file diff --git a/pisi-index.xml.xz b/pisi-index.xml.xz index 469ad10950..ce2fc886b3 100644 Binary files a/pisi-index.xml.xz and b/pisi-index.xml.xz differ diff --git a/pisi-index.xml.xz.sha1sum b/pisi-index.xml.xz.sha1sum index 40c52cda0b..ce2336675e 100644 --- a/pisi-index.xml.xz.sha1sum +++ b/pisi-index.xml.xz.sha1sum @@ -1 +1 @@ -d1152d5b45ead75682834ac77ce14d5ed7148591 \ No newline at end of file +6795b958a62077d3a078491b370b9535cbf04618 \ No newline at end of file diff --git a/programming/environment/codeblocks/actions.py b/programming/environment/codeblocks/actions.py new file mode 100644 index 0000000000..1c5c56166c --- /dev/null +++ b/programming/environment/codeblocks/actions.py @@ -0,0 +1,39 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- +# +# Licensed under the GNU General Public License, version 3. +# See the file http://www.gnu.org/licenses/gpl.txt + +from pisi.actionsapi import shelltools +from pisi.actionsapi import autotools +from pisi.actionsapi import pisitools +from pisi.actionsapi import get + + +def setup(): + shelltools.system("./bootstrap") + #autotools.autoreconf("-vif") + #plugins = "AutoVersioning,BrowseTracker,byogames,Cccc,CppCheck,cbkoders,codesnippets,codestat,copystrings,dragscroll,envvars,headerfixup,help,hexeditor,incsearch,keybinder,MouseSap,profiler,regex,exporter,symtab,Valgrind" + # suppress compiler warnings + pisitools.cflags.add("-Wno-unused-result") + pisitools.cxxflags.add("-Wno-unused-result -Wno-deprecated-declarations -Wno-stringop-overflow") + autotools.configure("--with-wx-config=/usr/bin/wx-config-gtk3 \ + --with-contrib-plugins=all \ + --enable-unicode\ + ") + + # disable rpath + pisitools.dosed("libtool", "^hardcode_libdir_flag_spec=.*", "hardcode_libdir_flag_spec=\"\"") + pisitools.dosed("libtool", "^runpath_var=LD_RUN_PATH", "runpath_var=DIE_RPATH_DIE") + + # fix unused direct dependency analysis + pisitools.dosed("libtool", " -shared ", " -Wl,-O1,--as-needed -shared ") + + +def build(): + autotools.make() + +def install(): + autotools.install() + + pisitools.dodoc("COPYING", "README") \ No newline at end of file diff --git a/programming/environment/codeblocks/files/codeblocks-17.12-scripting.patch b/programming/environment/codeblocks/files/codeblocks-17.12-scripting.patch new file mode 100644 index 0000000000..6b52d2c9fb --- /dev/null +++ b/programming/environment/codeblocks/files/codeblocks-17.12-scripting.patch @@ -0,0 +1,51 @@ +From 22a4af265c78c2d0000c7f234d15b8bf5ff8b2c4 Mon Sep 17 00:00:00 2001 +From: fuscated +Date: Wed, 12 Jun 2019 19:11:23 +0000 +Subject: [PATCH] * UI: Fix crash if the list in Settings->Scripting is empty + (ticket 842) + +git-svn-id: https://svn.code.sf.net/p/codeblocks/code/trunk@11739 2a5c6006-c6dd-42ca-98ab-0921f2732cef +--- + src/src/scriptingsettingsdlg.cpp | 25 ++++++++++++++++--------- + 1 file changed, 16 insertions(+), 9 deletions(-) + +diff --git a/src/src/scriptingsettingsdlg.cpp b/src/src/scriptingsettingsdlg.cpp +index 5cb23aaf4..a7f58f0cb 100644 +--- a/src/src/scriptingsettingsdlg.cpp ++++ b/src/src/scriptingsettingsdlg.cpp +@@ -101,16 +101,23 @@ void ScriptingSettingsDlg::UpdateState() + wxListCtrl* list = XRCCTRL(*this, "chkStartupScripts", wxListCtrl); + long sel = list->GetNextItem(-1, wxLIST_NEXT_ALL, wxLIST_STATE_SELECTED); + +- bool en = sel != -1; +- +- const ScriptEntry& se = m_ScriptsVector[sel]; ++ bool hasSelection = false; ++ bool enabled = false; ++ bool registered = false; ++ if (sel >= 0 && sel < long(m_ScriptsVector.size())) ++ { ++ const ScriptEntry& se = m_ScriptsVector[sel]; ++ enabled = se.enabled; ++ registered = se.registered; ++ hasSelection = true; ++ } + +- XRCCTRL(*this, "btnDelete", wxButton)->Enable(en); +- XRCCTRL(*this, "chkEnableScript", wxCheckBox)->Enable(en); +- XRCCTRL(*this, "txtScript", wxTextCtrl)->Enable(en && se.enabled); +- XRCCTRL(*this, "btnBrowseScript", wxButton)->Enable(en && se.enabled); +- XRCCTRL(*this, "chkRegisterScript", wxCheckBox)->Enable(en && se.enabled); +- XRCCTRL(*this, "txtScriptMenu", wxTextCtrl)->Enable(en && se.enabled && se.registered); ++ XRCCTRL(*this, "btnDelete", wxButton)->Enable(hasSelection); ++ XRCCTRL(*this, "chkEnableScript", wxCheckBox)->Enable(hasSelection); ++ XRCCTRL(*this, "txtScript", wxTextCtrl)->Enable(hasSelection && enabled); ++ XRCCTRL(*this, "btnBrowseScript", wxButton)->Enable(hasSelection && enabled); ++ XRCCTRL(*this, "chkRegisterScript", wxCheckBox)->Enable(hasSelection && enabled); ++ XRCCTRL(*this, "txtScriptMenu", wxTextCtrl)->Enable(hasSelection && enabled && registered); + } + + void ScriptingSettingsDlg::FillTrusts() +-- +2.21.0 + diff --git a/programming/environment/codeblocks/files/desktop.patch b/programming/environment/codeblocks/files/desktop.patch new file mode 100644 index 0000000000..7ab6150eb1 --- /dev/null +++ b/programming/environment/codeblocks/files/desktop.patch @@ -0,0 +1,12 @@ +Index: src/mime/codeblocks.desktop +=================================================================== +--- src/mime/codeblocks.desktop.orig ++++ src/mime/codeblocks.desktop +@@ -3,6 +3,7 @@ Version=1.0 + Type=Application + Name=Code::Blocks IDE + Comment=Configurable and extensible IDE ++Comment[tr]=Yapılandırılabilir ve eklentilerle genişletilebilir IDE + Exec=codeblocks %F + Icon=codeblocks + Terminal=false diff --git a/programming/environment/codeblocks/files/pisilinux-debuggergdb.patch b/programming/environment/codeblocks/files/pisilinux-debuggergdb.patch new file mode 100644 index 0000000000..1ead3f7885 --- /dev/null +++ b/programming/environment/codeblocks/files/pisilinux-debuggergdb.patch @@ -0,0 +1,127 @@ +--- codeblocks-12.11release8629-orig/src/plugins/debuggergdb/gdb_driver.cpp 2012-11-23 20:58:15.000000000 +0200 ++++ codeblocks-12.11release8629/src/plugins/debuggergdb/gdb_driver.cpp 2013-01-23 00:16:51.780265717 +0200 +@@ -213,105 +213,6 @@ + m_pTarget = target; + } + +-void GDB_driver::Prepare(bool isConsole, int printElements) +-{ +- // default initialization +- +- // for the possibility that the program to be debugged is compiled under Cygwin +- if (platform::windows) +- DetectCygwinMount(); +- +- // make sure we 're using the prompt that we know and trust ;) +- QueueCommand(new DebuggerCmd(this, wxString(_T("set prompt ")) + FULL_GDB_PROMPT)); +- +- // debugger version +- QueueCommand(new DebuggerCmd(this, _T("show version"))); +- // no confirmation +- QueueCommand(new DebuggerCmd(this, _T("set confirm off"))); +- // no wrapping lines +- QueueCommand(new DebuggerCmd(this, _T("set width 0"))); +- // no pagination +- QueueCommand(new DebuggerCmd(this, _T("set height 0"))); +- // allow pending breakpoints +- QueueCommand(new DebuggerCmd(this, _T("set breakpoint pending on"))); +- // show pretty function names in disassembly +- QueueCommand(new DebuggerCmd(this, _T("set print asm-demangle on"))); +- // unwind stack on signal +- QueueCommand(new DebuggerCmd(this, _T("set unwindonsignal on"))); +- // disalbe result string truncations +- QueueCommand(new DebuggerCmd(this, wxString::Format(wxT("set print elements %d"), printElements))); +- +- if (platform::windows && isConsole) +- QueueCommand(new DebuggerCmd(this, _T("set new-console on"))); +- +- flavour = m_pDBG->GetActiveConfigEx().GetDisassemblyFlavorCommand(); +- QueueCommand(new DebuggerCmd(this, flavour)); +- +- if (m_pDBG->GetActiveConfigEx().GetFlag(DebuggerConfiguration::CatchExceptions)) +- { +- m_catchThrowIndex = -1; +- // catch exceptions +- QueueCommand(new GdbCmd_SetCatch(this, wxT("throw"), &m_catchThrowIndex)); +- } +- +- // define all scripted types +- m_Types.Clear(); +- InitializeScripting(); +- +- // pass user init-commands +- wxString init = m_pDBG->GetActiveConfigEx().GetInitCommands(); +- Manager::Get()->GetMacrosManager()->ReplaceMacros(init); +- // commands are passed in one go, in case the user defines functions in there +- // or else it would lock up... +- QueueCommand(new DebuggerCmd(this, init)); +-// wxArrayString initCmds = GetArrayFromString(init, _T('\n')); +-// for (unsigned int i = 0; i < initCmds.GetCount(); ++i) +-// { +-// QueueCommand(new DebuggerCmd(this, initCmds[i])); +-// } +- +- // add search dirs +- for (unsigned int i = 0; i < m_Dirs.GetCount(); ++i) +- QueueCommand(new GdbCmd_AddSourceDir(this, m_Dirs[i])); +- +- // set arguments +- if (!m_Args.IsEmpty()) +- QueueCommand(new DebuggerCmd(this, _T("set args ") + m_Args)); +- +- RemoteDebugging* rd = GetRemoteDebuggingInfo(); +- +- // send additional gdb commands before establishing remote connection +- if (rd) +- { +- if (!rd->additionalCmdsBefore.IsEmpty()) +- { +- wxArrayString initCmds = GetArrayFromString(rd->additionalCmdsBefore, _T('\n')); +- for (unsigned int i = 0; i < initCmds.GetCount(); ++i) +- QueueCommand(new DebuggerCmd(this, initCmds[i])); +- } +- } +- +- // if performing remote debugging, now is a good time to try and connect to the target :) +- if (rd && rd->IsOk()) +- { +- if (rd->connType == RemoteDebugging::Serial) +- QueueCommand(new GdbCmd_RemoteBaud(this, rd->serialBaud)); +- QueueCommand(new GdbCmd_RemoteTarget(this, rd)); +- } +- +- // run per-target additional commands (remote debugging) +- // moved after connection to remote target (if any) +- if (rd) +- { +- if (!rd->additionalCmds.IsEmpty()) +- { +- wxArrayString initCmds = GetArrayFromString(rd->additionalCmds, _T('\n')); +- for (unsigned int i = 0; i < initCmds.GetCount(); ++i) +- QueueCommand(new DebuggerCmd(this, initCmds[i])); +- } +- } +-} +- + // remote debugging + RemoteDebugging* GDB_driver::GetRemoteDebuggingInfo() + { +@@ -629,17 +530,6 @@ + QueueCommand(new DebuggerInfoCmd(this, _T("info signals"), _("Signals handling"))); + } + +-void GDB_driver::EnableCatchingThrow(bool enable) +-{ +- if (enable) +- QueueCommand(new GdbCmd_SetCatch(this, wxT("throw"), &m_catchThrowIndex)); +- else if (m_catchThrowIndex != -1) +- { +- QueueCommand(new DebuggerCmd(this, wxString::Format(wxT("delete %d"), m_catchThrowIndex))); +- m_catchThrowIndex = -1; +- } +-} +- + void GDB_driver::SwitchThread(size_t threadIndex) + { + ResetCursor(); + diff --git a/programming/environment/codeblocks/files/pisilinux-plugin-wx.patch b/programming/environment/codeblocks/files/pisilinux-plugin-wx.patch new file mode 100644 index 0000000000..940b423a70 --- /dev/null +++ b/programming/environment/codeblocks/files/pisilinux-plugin-wx.patch @@ -0,0 +1,75 @@ +--- codeblocks-12.11release8629-orig/src/plugins/debuggergdb/parsewatchvalue.cpp 2012-11-23 20:58:15.000000000 +0200 ++++ codeblocks-12.11release8629/src/plugins/debuggergdb/parsewatchvalue.cpp 2013-01-22 22:03:44.591542259 +0200 +@@ -64,7 +64,7 @@ + }; + + wxRegEx regexRepeatedChars(wxT("^((\\\\'.{1,6}\\\\')|('.{1,6}'))[ \\t]()"), +-#ifndef __WXMAC__ ++#ifdef wxHAS_REGEX_ADVANCED + wxRE_ADVANCED); + #else + wxRE_EXTENDED); +--- codeblocks-12.11release8629-orig/src/plugins/debuggergdb/gdb_commands.h 2012-11-23 20:58:15.000000000 +0200 ++++ codeblocks-12.11release8629/src/plugins/debuggergdb/gdb_commands.h 2013-01-22 22:22:52.220502525 +0200 +@@ -201,13 +201,13 @@ + //static wxRegEx reStepI(_T("\x1a\x1a.*?:([0-9]*):([0-9]*):(.*?):(.*)")); + //static wxRegEx reStepI(_T("\x1a\x1a(([a-zA-Z]:)?.*?):([0-9]*):([0-9]*):(middle|beg):(.*)")); + static wxRegEx reStepI(wxT("(((.*)[a-zA-Z]:)?.*)?:(\\d+):(middle|beg):(.*)"), +-#ifndef __WXMAC__ ++#ifdef wxHAS_REGEX_ADVANCED + wxRE_ADVANCED); + #else + wxRE_EXTENDED); + #endif + static wxRegEx reStepI2(_T("\\A(0x[A-Fa-f0-9]+)\\s+(\\d+)\\s+in (.*)"), +-#ifndef __WXMAC__ ++#ifdef wxHAS_REGEX_ADVANCED + wxRE_ADVANCED); + #else + wxRE_EXTENDED); +@@ -216,7 +216,7 @@ + static wxRegEx reStepI4(_T("^(0x[A-Fa-f0-9]+) in (.*)? at (.*)")); + + static wxRegEx reNextI(_T("\x1a\x1a(([a-zA-Z]:)?.*?):([0-9]*):([0-9]*):(middle|beg):(.*)"), +-#ifndef __WXMAC__ ++#ifdef wxHAS_REGEX_ADVANCED + wxRE_ADVANCED); + #else + wxRE_EXTENDED); +@@ -627,36 +627,6 @@ + }; + + /** +- * Command to setup an exception breakpoint (for a throw or a catch). +- */ +-class GdbCmd_SetCatch : public DebuggerCmd +-{ +- wxString m_type; +- int *m_resultIndex; +- wxRegEx m_regExp; +- public: +- GdbCmd_SetCatch(DebuggerDriver *driver, const wxString &type, int *resultIndex) : +- DebuggerCmd(driver), +- m_type(type), +- m_resultIndex(resultIndex), +- m_regExp(wxT("^Catchpoint[ \\t]([0-9]+)[ \\t]\\(") + type + wxT("\\)$"), wxRE_ADVANCED) +- { +- m_Cmd = wxT("catch ") + type; +- } +- +- void ParseOutput(const wxString& output) +- { +- if (m_regExp.Matches(output)) +- { +- long index; +- m_regExp.GetMatch(output, 1).ToLong(&index); +- *m_resultIndex = index; +- } +- } +-}; +- +- +-/** + * Command that notifies the debugger plugin that the debuggee has been continued + */ + class GdbCmd_Continue : public DebuggerContinueBaseCmd diff --git a/programming/environment/codeblocks/files/pisilinux-wx.patch b/programming/environment/codeblocks/files/pisilinux-wx.patch new file mode 100644 index 0000000000..998c869d41 --- /dev/null +++ b/programming/environment/codeblocks/files/pisilinux-wx.patch @@ -0,0 +1,80 @@ +Index: src/sdk/macrosmanager.cpp +=================================================================== +--- src/sdk/macrosmanager.cpp (revision 7665) ++++ src/sdk/macrosmanager.cpp (working copy) +@@ -86,19 +86,19 @@ + m_RE_IfSp.Compile(_T("[^=!<>]+|(([^=!<>]+)[ ]*(=|==|!=|>|<|>=|<=)[ ]*([^=!<>]+))"), wxRE_EXTENDED | wxRE_NEWLINE); + m_RE_Script.Compile(_T("(\\[\\[(.*)\\]\\])"), wxRE_EXTENDED | wxRE_NEWLINE); + m_RE_ToAbsolutePath.Compile(_T("\\$TO_ABSOLUTE_PATH{([^}]*)}"), +-#ifndef __WXMAC__ ++#ifdef wxHAS_REGEX_ADVANCED + wxRE_ADVANCED); + #else + wxRE_EXTENDED); + #endif + m_RE_To83Path.Compile(_T("\\$TO_83_PATH{([^}]*)}"), +-#ifndef __WXMAC__ ++#ifdef wxHAS_REGEX_ADVANCED + wxRE_ADVANCED); + #else + wxRE_EXTENDED); + #endif + m_RE_RemoveQuotes.Compile(_T("\\$REMOVE_QUOTES{([^}]*)}"), +-#ifndef __WXMAC__ ++#ifdef wxHAS_REGEX_ADVANCED + wxRE_ADVANCED); + #else + wxRE_EXTENDED); +Index: src/plugins/contrib/ToolsPlus/PipedProcessCtrl.cpp +=================================================================== +--- src/plugins/contrib/ToolsPlus/PipedProcessCtrl.cpp (revision 7665) ++++ src/plugins/contrib/ToolsPlus/PipedProcessCtrl.cpp (working copy) +@@ -206,7 +206,12 @@ + + void PipedProcessCtrl::ParseLinks(int lineno, int lastline) + { +- wxRegEx re(m_linkregex,wxRE_ADVANCED|wxRE_NEWLINE); ++ #ifdef wxHAS_REGEX_ADVANCED ++ wxRegEx re(m_linkregex,wxRE_ADVANCED|wxRE_NEWLINE); ++ #else ++ wxRegEx re(m_linkregex,wxRE_EXTENDED|wxRE_NEWLINE); ++ #endif ++ + while(linenoGetTextRange(start,end+1); + + //retrieve the file and line number parts of the link +- wxRegEx re(m_linkregex,wxRE_ADVANCED|wxRE_NEWLINE); ++ #ifdef wxHAS_REGEX_ADVANCED ++ wxRegEx re(m_linkregex,wxRE_ADVANCED|wxRE_NEWLINE); ++ #else ++ wxRegEx re(m_linkregex,wxRE_EXTENDED|wxRE_NEWLINE); ++ #endif + wxString file; + long line; + if(!re.Matches(text)) +Index: src/plugins/contrib/DoxyBlocks/Expressions.h +=================================================================== +--- src/plugins/contrib/DoxyBlocks/Expressions.h (revision 7665) ++++ src/plugins/contrib/DoxyBlocks/Expressions.h (working copy) +@@ -84,7 +84,7 @@ + "([^)]*)?" // The function's parameters. + "\\)" // The closing parenthesis. + ), +-#ifndef __WXMAC__ ++#ifdef wxHAS_REGEX_ADVANCED + wxRE_ADVANCED); + #else + wxRE_EXTENDED); +@@ -104,7 +104,7 @@ + "([^)]*)?" // The function's parameters. + "\\)" // The closing parenthesis. + ), +-#ifndef __WXMAC__ ++#ifdef wxHAS_REGEX_ADVANCED + wxRE_ADVANCED); + #else + wxRE_EXTENDED); diff --git a/programming/environment/codeblocks/pspec.xml b/programming/environment/codeblocks/pspec.xml new file mode 100644 index 0000000000..ea3017ce26 --- /dev/null +++ b/programming/environment/codeblocks/pspec.xml @@ -0,0 +1,111 @@ + + + + + codeblocks + http://www.codeblocks.org/ + + Pisi Linux Community + admins@pisilinux.org + + programming.environment + GPLv3 + codeblocks + app:gui + A free C++ IDE built to meet the most demanding needs of its users + Code::Blocks is a free C++ IDE built to meet the most demanding needs of its users. It is designed to be very extensible and fully configurable. + https://downloads.sourceforge.net/codeblocks/codeblocks_17.12.tar.xz + + fontconfig-devel + hunspell-devel + boost-devel + gamin-devel + wxGTK-devel + glib2-devel + gtk3-devel + wxGTK3 + + + + + codeblocks-17.12-scripting.patch + + + + + + codeblocks + A free C++ IDE built to meet the most demanding needs of its users + + wxGTK-common + fontconfig + hunspell + wxBase + wxGTK3 + wxGTK + gamin + glib2 + gtk3 + + + + /usr/share/applications + /usr/share/codeblocks + /usr/share/appdata + /usr/share/pixmaps + /usr/share/icons + /usr/share/mime + /usr/bin + /usr/share/doc + /usr/share/man + /usr/lib + + + + + codeblocks-devel + Development files of codeblocks + + codeblocks + + + /usr/include + /usr/lib/pkgconfig + + + + + + 2020-02-24 + 17.12 + Version bump. + Blue Devil + bluedevil@sctzine.com + + + 2017-05-10 + 16.01 + First release. + Erdinç Gültekin + admins@pisilinux.org + + + \ No newline at end of file diff --git a/programming/environment/codeblocks/translations.xml b/programming/environment/codeblocks/translations.xml new file mode 100644 index 0000000000..c020a80114 --- /dev/null +++ b/programming/environment/codeblocks/translations.xml @@ -0,0 +1,14 @@ + + + + codeblocks + C++ için bütünleşik geliştirme araçlarını barındıran özgür yazılım + Code::Blocks, yazılımcıların en çok ihtiyaç duydukları özellikleri sağlayan, tamamen kişiselleştirilebilen ve geliştirilebilen C++ editörüdür. + + + + codeblocks-devel + codeblocks paketlerine ait geliştirme dosyaları + codeblocks-devel, codeblocks için geliştirme dosyalarını içerir. + + \ No newline at end of file