<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.codeblocks.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Alpha</id>
	<title>Code::Blocks - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.codeblocks.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Alpha"/>
	<link rel="alternate" type="text/html" href="https://wiki.codeblocks.org/index.php/Special:Contributions/Alpha"/>
	<updated>2026-04-20T14:02:34Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.35.0</generator>
	<entry>
		<id>https://wiki.codeblocks.org/index.php?title=WxSmith_tutorial:_Hello_world&amp;diff=9201</id>
		<title>WxSmith tutorial: Hello world</title>
		<link rel="alternate" type="text/html" href="https://wiki.codeblocks.org/index.php?title=WxSmith_tutorial:_Hello_world&amp;diff=9201"/>
		<updated>2017-01-09T00:17:20Z</updated>

		<summary type="html">&lt;p&gt;Alpha: Stop entire page from being in italics&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:wxSmith Documentation]]&lt;br /&gt;
= Tutorial 1. &amp;quot;Hello, World!&amp;quot; =&lt;br /&gt;
&lt;br /&gt;
In this first tutorial, we will use wxSmith to put the words &amp;quot;Hello, World!&amp;quot; on the screen. Ever since the appearance of ''The C Programming Language'' in 1978, writing such a program has been the traditional first step in learning nearly every computer language.  &lt;br /&gt;
&lt;br /&gt;
Before we start, you must either compile wxWidgets or download precompiled binaries and header files. These steps are described on the wiki pages mentioned here:&lt;br /&gt;
* Windows users should see the wiki page:[[Compiling wxWidgets 2.8.6 to develop Code::Blocks (MSW)]] or [[Installing Code::Blocks from source on Windows]] or [[WxWindowsQuickRef]]. There are two ways to install the wxWidgets libraries, You can download the wxWidgets source and compile it yourself, or you can download the wxPack from [http://wxpack.sourceforge.net/] and install it. The wxPack contains a pre-compiled wxWidgets library, so you can save a lot of time by that route. &lt;br /&gt;
&lt;br /&gt;
*Ubuntu Linux users can install wxWidgets from the Ubuntu repositories. Be sure to install also '''build-essential''' to get the C++ compiler.&lt;br /&gt;
&lt;br /&gt;
We will assume that you have wxWidgets ready and working with Code::Blocks. You should probably create a directory with a name something like CBProjects for saving your work on these tutorials. Each tutorial will be a separate &amp;quot;project&amp;quot; and will occupy a file in this directory. &lt;br /&gt;
&lt;br /&gt;
After downloading and installing Code::Blocks, double-click its icon on the desktop to start it. Here is the Code::Blocks opening window:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:1a.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Click &amp;quot;Create a New Project&amp;quot; and then find and double-click the wxWidgets Project icon, pointed to by the cursor in the screenshot below. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:wxs_tut01_002.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The next screen is a &amp;quot;Welcome&amp;quot; screen. Unless you just enjoy being welcomed by the program, you will check the box which eliminates it on future startups. &lt;br /&gt;
&lt;br /&gt;
The next screen looks like this:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:wxs_tut01_003.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Select wxWidgets 2.8x and click the &amp;quot;Next &amp;gt;&amp;quot; button at the bottom of the screen. &lt;br /&gt;
&lt;br /&gt;
That brings you to the window where you specify the Project title and folder where you want to save the project.  Other fields are then filled automatically.  I chose “Plain” as the Project title and the other fields then adjusted to look like this:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:1c.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Then click the “Next &amp;gt;” button at the bottom.&lt;br /&gt;
The next screen, shown below, allows you to mark your work with your identity. Fill in what you wish.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:1d.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
That brings up the window for choosing the GUI builder you want to use, wxSmith or FormBuilder. We choose, of course, wxSmith.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:1e.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Click the &amp;quot;Next&amp;quot; button at the bottom. &lt;br /&gt;
&lt;br /&gt;
The next screen specifies what C++ compiler we want to use and whether we want a debug build (with extra code for debugging) or a smaller release build for use by others.  We will go for the GNU CPP compiler and  both build options, to be put in separate subfolders.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:1f.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The final screen of this sort asks whether we want to use the standard, default, configuration or to use Advanced options.  We will take the default.  But, at the bottom, we choose to “Create and use precompiled headers&amp;quot; which speeds up compilations after the first.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:1g.png]]&lt;br /&gt;
&lt;br /&gt;
In wxWidgets 3.0.2 the screen looks like this.  [[User:WardXmodem|WardXmodem]] 21:38, 20 May 2015 (CEST)&lt;br /&gt;
&lt;br /&gt;
[[Image:1g_3.0.2.png]]&lt;br /&gt;
&lt;br /&gt;
On the form where we chose the directory for saving the project, we chose a real directory, but that choice may lead to problems when you want to compile your project on other computers. Another choice is to use the '''Global Variable system'''. To open the dialog below or modify or change this global variable, you should click on the Code::Blocks main menu item '''Settings | Global variables'''. That brings up the Global Variables Editor. &lt;br /&gt;
&lt;br /&gt;
When you use it, the location of the wxWidgets library is read from the variable you supply. This means that the location of the wxWidgets directory is not hard-coded inside your project, but is stored inside the global configuration of Code::Blocks. When your project is opened on a different computer, it will use that comoputer's configuration. The easiest option to use this global variable is to leave ''$(#wx)'' which means to use the global variable named ''wx''. This name is reserved for wxWidgets and should be chosen in most cases.&lt;br /&gt;
&lt;br /&gt;
When you use the global variable for the first time, it will ask for the wxWidgets directory. The only thing you need to do here is to enter a valid location in ''base'' field. This is required only for the first time since Code::Blocks will automatically use this setting for other projects you create.&lt;br /&gt;
&lt;br /&gt;
==Overview of the Interactive Development Environment (IDE)==&lt;br /&gt;
&lt;br /&gt;
At the end of this preliminary sequence of forms we come to the Code::Blocks main IDE window. It should look something like this:&lt;br /&gt;
&lt;br /&gt;
[[Image:1h.png]]&lt;br /&gt;
&lt;br /&gt;
In the middle of the right side of the window, under the word “Plainframe.wxs”,  is a panel&lt;br /&gt;
with two square icons on the left; the one on the left brings up the menu bar editor while the one on the right brings up the status bar editor. We will return to the menu bar editor in the next tutorial. Below this panel and looking like a field of dots is the Editor window, where we will see both the GUI forms which we build and the C++ code we write.  In the lower left corner of the whole window is the Properties/Events window, which will allow us to set properties of the component we are working on or to pick events, such as “OnClick” , to which we need to respond. To show properties, click on the left icon; to show events, click on the right icon marked {} to suggest C++ code.&lt;br /&gt;
  &lt;br /&gt;
Above the Properties/Events window is the Management window with three tabs, Projects, Symbols, and Resources. If all three tabs are not visible, drag the right border of the window to the right to reveal all three. (A “resource” in wxSmith parlance usually means a “form” or &amp;quot;window&amp;quot;.) Above the Management window  is a panel with several small but useful icons ([[Image:build-etc-icons.png]]) to &lt;br /&gt;
*Build the program, or&lt;br /&gt;
*Run it, or &lt;br /&gt;
*Build and run it, or&lt;br /&gt;
*Rebuild it, or &lt;br /&gt;
*Abort it.&amp;lt;br /&amp;gt;&lt;br /&gt;
When you run the cursor over them, the tool tips will tell you which is which. &lt;br /&gt;
 &lt;br /&gt;
Now look back to the Editor window. First of all, note that the window can be configured to use different colors,fonts and font sizes. Click &amp;quot;Settings ...&amp;quot; on the Code::Blocks main menu, and then &amp;quot;Editor&amp;quot;. The screens are more or less self-explanatory.&lt;br /&gt;
&lt;br /&gt;
Now back to the Editor window. Across the top you see three black square called drag handles.  They have been set to cover a space larger than can be seen, but scrolling down reveals the whole field.&lt;br /&gt;
 &lt;br /&gt;
As an experienced programmer, you know there has got to be some code somewhere but you don't see it.  To reveal it, double left click in the field of dots.  Presto, there is the C++ code, and the *PlainMain.cpp tab has appeared above it.  Clicking back on the Plainframe.wxs should return you to the view of the form, still the field of dots. (Again, it is important to have CB 10.04 or later.)  In fact, we still have not seen all of the code.  In particular, you will search in vain for the all-important OnInit() routine that starts the program.  You can find it, however, by clicking Search | Find in Files  and searching for OnInit with the scope of the search set to be “Project files”.  The search finds it, sure enough, in PlainApp.cpp and opens this module in the Editor window.&lt;br /&gt;
&lt;br /&gt;
==== ''The following discussion on having to add close() is no longer true, at least at Code::Blocks 13.12, wxWidgets 3.0.2.  '' ====&lt;br /&gt;
 &lt;br /&gt;
We don't need OnInit right now, but we do need to make a change in PlainMain.cpp. Click on it in the bar above the editor, and its code appears in the editor. &lt;br /&gt;
&lt;br /&gt;
Sometimes a program has a lot to do when the user clicks the close icon in the program's title bar, so wxSmith generates a frame for writing the code for those actions but it provides no code. Consequently, if we ran our program just as initially written by wxSmith, we won't be able to close it by just clicking that icon. To fix that inconvenient problem, find the spot in the code with these lines:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
void PlainFrame::OnClose(wxCloseEvent&amp;amp; event)&lt;br /&gt;
{&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Add the call to the Close() function so that the spot looks like this:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
void PlainFrame::OnClose(wxCloseEvent&amp;amp; event)&lt;br /&gt;
{&lt;br /&gt;
    Close();&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
(''I found it had to be Destroy() not Close()   [[User:WardXmodem|WardXmodem]] 04:43, 24 September 2013 (CEST)'')&lt;br /&gt;
&lt;br /&gt;
(''use event.Skip(TRUE); instead of Close(); or Destroy(). (Some) later tutorials correctly reference this.  [[User:Ensnarer|Ensnarer]] 03.08.2015'')&lt;br /&gt;
&lt;br /&gt;
Remember to make this change immediately whenever you start a new project.&lt;br /&gt;
&lt;br /&gt;
==== ''End of old &amp;quot;have to add close()&amp;quot; section.  With newer releases the following is done for you:'' ==== &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
void PlainFrame::OnQuit(wxCommandEvent&amp;amp; event)&lt;br /&gt;
{&lt;br /&gt;
    Close();&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[User:WardXmodem|WardXmodem]] 22:43, 20 May 2015 (CEST)&lt;br /&gt;
==== End of updated close() information. ====&lt;br /&gt;
&lt;br /&gt;
You can now build and run this super-simple program. To do so, you can do any one of three equivalent things:&amp;lt;br /&amp;gt;&lt;br /&gt;
* in the top menu bar, click Build | Build and run.&lt;br /&gt;
* find and click the icon that looks like a right-pointing triangle in front of a cogwheel. Hovering the mouse pointer over it will show the tool tip “Build and run”.&lt;br /&gt;
* tap the F9 key.&lt;br /&gt;
&lt;br /&gt;
If all goes well, you will see a window come up with a menu of two items: “File” and “Help”.  Try the “Help” menu item first.  Then you can use  “File | Quit” or the exit icon on the title bar to exit the program. &lt;br /&gt;
&lt;br /&gt;
''If you are using Ubuntu and get no main menu bar when you run this program, you have fallen victim to [https://bugs.launchpad.net/ubuntu/+source/wxwidgets2.8/+bug/662077 Ubuntu bug 662077]. Beginning with release 10.10, Ubuntu releases have had a bug causing programs built with wxSmith to fail to show their main menu bar. If this bug affects you, you may want to uninstall appmenu-gtk. You do that by clicking Applications | Software Sources, then using the search window to find appmenu-gtk. Clicking on it will allow you to choose to remove it.''&lt;br /&gt;
&lt;br /&gt;
Well, so far we have a program that runs and quits, but it does not yet display &amp;quot;Hello, World!&amp;quot;. That's next.&lt;br /&gt;
&lt;br /&gt;
== Hello, World! ==&lt;br /&gt;
&lt;br /&gt;
We now turn to the classic first program, namely getting the words “Hello, World!” onto the screen. The text could be added directly into the frame, as in GUI designers for a single operating sytem; but we need to learn to use sizers for cross-platform programming. What are sizers? &lt;br /&gt;
&lt;br /&gt;
If you have been working with Java or Qt, you may remember something called Layout managers. The implementation in wxWidgets differs a little but does almost the same thing. &lt;br /&gt;
&lt;br /&gt;
When adding components into windows you must somehow specify their position and size. wxWidgets tries to automate this process, and it uses sizers to do so. They automatically position and size window components, and they can also set the size of the window so that everything fits inside. &lt;br /&gt;
&lt;br /&gt;
Sizers have one big advantage over direct placement of components. When you write cross-platform applications, you cannot assume that fonts, buttons, and so on have the same size on different operating systems. This problem can even occur on the same platform when using different window themes. When you use sizers, you don't have to worry about those problems. All sizing and placement is done automatically. Moreover, sizers can even reposition and resize window components when the main window changes size. &lt;br /&gt;
&lt;br /&gt;
With that background, let's get started. When you look at the wxSmith editor, you'll notice that the area of the window is surrounded by eight black boxes or drag handles. &lt;br /&gt;
&lt;br /&gt;
[[Image:wxs_tut01_009.png]]&lt;br /&gt;
&lt;br /&gt;
These drag handles surround the currently selected item. In our case it's a whole window. Adding new components to the window is simply done by clicking on one of the buttons in the palette at the bottom of the editor and then clicking somewhere on the resource. As you can see here,&lt;br /&gt;
&lt;br /&gt;
[[Image:wxs_tut01_010.png]]&lt;br /&gt;
&lt;br /&gt;
when you keep your mouse cursor over a component in the palette, it will show its name. That feature may help you find components until you become familiar with their icons. &lt;br /&gt;
&lt;br /&gt;
Let's add a new wxPanel component to our window; it is the fourth icon from the left on the standard tab. You will see that when you click the wxPanel item and then move the cursor over the editor, some part of the editor will change color. That's intentional and is used to show where on the window the new item will be added.&lt;br /&gt;
 &lt;br /&gt;
After the wxPanel is in place, you will notice that the background color of the window has changed to light gray. Now our window will look much more like other windows. Note that currently the selection changed to the added panel but since its size is equal to the frame's, it's hard to find out what's really selected. To make sure that wxPanel is selected, click somewhere on the light gray area of our window (Note to Linux users: wxFrame and wxPanel usually have the same background so it may look like nothing has changed; you may ensure that there's a wxPanel by looking into the resource browser). &lt;br /&gt;
&lt;br /&gt;
If you want to see the selection exactly or select items that overlap, you can use the resource browser. To show it, click on the resources tab located in the same place where the project browser is: &lt;br /&gt;
&lt;br /&gt;
[[Image:wxs_tut01_011.png]]&lt;br /&gt;
&lt;br /&gt;
The resource tab consists of two parts. The first is the resource tree which shows the structure of your resources and the second one is the property browser which is common in GUI designers. Inside the resource tree you can find the currently selected item. In our case it is the wxPanel class we added before. The selected item also shows the name of this item: Panel1. This name is basically the variable which can be used to access this component in your code.&lt;br /&gt;
&lt;br /&gt;
We added a new component by selecting the place for it. This is wxSmith's default behavior. However, there is another mode of adding items. In this mode, the new item is added right after you click on the palette's button. The position of the new item is relative to the current selection - just like a cursor in text editors. Basically we can add new items into three different positions relative to the selection:&lt;br /&gt;
* Before the selected widget&lt;br /&gt;
* After the selected widget&lt;br /&gt;
* Into the selected widget.&lt;br /&gt;
This insertion mode can be changed by clicking one of the four &amp;quot;placement&amp;quot; buttons on the right side of the editor:&lt;br /&gt;
&lt;br /&gt;
[[Image:wxs_tut01_012.png]]&lt;br /&gt;
&lt;br /&gt;
The uppermost is the mode we used - &amp;quot;point by mouse&amp;quot;.  The next one means &amp;quot;add into&amp;quot;, followed by &amp;quot;add before&amp;quot;, and the last one means &amp;quot;add after&amp;quot;. The current mode is shown by a red check mark on the button. &lt;br /&gt;
&lt;br /&gt;
Sometimes a few selection modes are disabled because they are not valid for the currently selected item. For example, you cannot add any component into the wxButton component since wxWidgets declares it as one that cannot have child components. Similarly, when the main component (the window) is selected, you won't be able to add anything after it or before it. &lt;br /&gt;
&lt;br /&gt;
Ooops! I said we would use sizers and then forgot all about them! We have to get rid of that wxPanel. Select the panel and then click on the red X button just below the four buttons we have been describing. It looks like this:&lt;br /&gt;
&lt;br /&gt;
[[Image:wxs_tut01_014.png]]&lt;br /&gt;
&lt;br /&gt;
When you click this button, it deletes the current selection, so if the panel didn't disappear, make sure it's selected and click the button again. Now we should have returned to the state at the beginning. &lt;br /&gt;
&lt;br /&gt;
To use sizers, first we have to add a sizer into the main frame and then add the wxPanel into it. &lt;br /&gt;
Sizers are available in the Layout tab on the palette. Switch to it and select wxBoxSizer:&lt;br /&gt;
&lt;br /&gt;
[[Image:wxs_tut01_013.png]]&lt;br /&gt;
&lt;br /&gt;
This sizer tries to position items in one line, either horizontal or vertical. Horizontal is the default, and we will use it. &lt;br /&gt;
&lt;br /&gt;
After adding the sizer, two things have changed. The first is that our window now has a red border. This means that there is a sizer attached to it. When you look into the resource browser, you will also see that the sizer has been added. (You may need to click on the editor area to refresh the selection on the resource browser.) The second change is that the size of the window has shrunk to a small box. That is as it should be because the sizer is responsible for resizing the window to be no bigger than necessary to be visible and accommodate its components, and so far there are no components. &lt;br /&gt;
&lt;br /&gt;
Now let's add our wxPanel. Make sure that you add it into the sizer, not into the main frame. After you do so, you will see something like this:&lt;br /&gt;
&lt;br /&gt;
[[Image:wxs_tut01_015.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Here we can see our panel surrounded by drag boxes. There's also some dark gray border around it (it won't be visible on Linux). Each component added into the sizer can be surrounded by such a border. It's useful when you want to have spacing between components. But in our case we should get rid of it to get a better looking window. To do so, we will have to change a property inside the property browser. Search for border size and change it from 5 to 0:&lt;br /&gt;
&lt;br /&gt;
[[Image:wxs_tut01_016.png]]&lt;br /&gt;
&lt;br /&gt;
Now when we have our panel adjusted, we can finally add the &amp;quot;Hello world&amp;quot; text. Since we will also use sizers to manage items added into wxPanel, we have to repeat the addition of wxBoxSizer into wxPanel. After the sizer is in its place, switch back into the '''Standard''' tab on the palette and add a wxStaticText control:&lt;br /&gt;
&lt;br /&gt;
[[Image:wxs_tut01_017.png]]&lt;br /&gt;
&lt;br /&gt;
With an eye to the future and for practice with adding components, let's add also a button next to the wxStaticText. First, click on wxButton. If you still have the &amp;quot;point by mouse&amp;quot; insertion mode turned on, then when you put the mouse over the wxStaticText component half of that component will be colored in light blue. When the left half of the text is highlighted, the new item will be added before the existing component; and when the right half is highlighted, the new component will be added after the existing one. Let's add the button after the text. Now we should have this content: &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:wxs_tut01_018.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Now let's finally set our &amp;quot;Hello, World!&amp;quot; text. The wxStaticText control which we added before has the text &amp;quot;Label&amp;quot; on it. It is the default text set to all newly created wxStaticText classes. We will change it using the property browser similarly to changing the border size in the wxPanel class. To do so, select the wxStaticText component in our window, then find the Label property in the property browser and change it to &amp;quot;Hello, World!&amp;quot;:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:Wxs_tut01_019.png]]&lt;br /&gt;
&lt;br /&gt;
If you want two or more lines of text on the wxStaticText control. click on the &amp;quot;...&amp;quot; button at the right end of the “Label” line or put &amp;quot;\n&amp;quot; inside the text, as in C formats.&lt;br /&gt;
&lt;br /&gt;
At this point, you can click the &amp;quot;Build and run&amp;quot; and the program should run and show the magic words in the static text control. We could quit in triumph at this point, but the button we have put on the form is still a dud; clicking on it will do nothing. Let's give it a function. &lt;br /&gt;
&lt;br /&gt;
Before going further, we need to deal with a question you may be asking. Why did we, after putting a box sizer onto our main window, proceed to put a wxPanel into it and then put another box sizer onto the panel? What is the point of the panel? Why not just put our two buttons into the first box sizer and eliminate the panel and second box sizer? The answer is that the panel gives us control of the background. We didn't use it, but it is often useful to be able to control it. In fact, these first three steps will be used in structuring every window used in these tutorials. To review, these three steps are: &lt;br /&gt;
* Put a box sizer on the window&lt;br /&gt;
* Put a panel into the first box of the sizer&lt;br /&gt;
* Put a sizer of some sort onto the panel.&lt;br /&gt;
&lt;br /&gt;
== Responding to the Click of a Button ==&lt;br /&gt;
&lt;br /&gt;
Since buttons usually cause something to happen when clicked, let's make our button close the window. The first thing we should do is to change the text shown on the button to tell the user what the button does. It is done just as in the case of the wxStaticText widget. Select the button, find &amp;quot;Label&amp;quot; in the property browser and set it to &amp;quot;Close&amp;quot; (or anything you like). &lt;br /&gt;
&lt;br /&gt;
The second thing is to assign an event handler to this button. Basically, event handlers are functions which are called when some &amp;quot;event&amp;quot; occurs. In our case instead of &amp;quot;event&amp;quot; we could say more descriptively &amp;quot; a click on the button&amp;quot; because that is what we want to process. Like other GUI designers, wxSmith can automatically generate the framework code for such handlers. To bring up that ability, switch the property browser to the event browser by clicking on  the second icon at the top of the property browser. The icon looks like {} to suggest C++ code.&lt;br /&gt;
&lt;br /&gt;
[[Image:1Event_Icon.png]]&lt;br /&gt;
&lt;br /&gt;
After you click on this icon, you will see all events supported by the currently selected component. The wxButton class supports only one event, the EVT_BUTTON event, so only this one is shown. When you click on this event and drop down the combo box, you will see the available options and handlers for this event:&lt;br /&gt;
&lt;br /&gt;
[[Image:Wxs_tut01_021.png]]&lt;br /&gt;
&lt;br /&gt;
If you select '''-- None --''' no handler function will be automatically assigned to this event. (But it may always be set manually.) Selecting '''-- Add new handler --''' will generate a frame for the code of the new handler function. Below are shown other event handlers known to wxSmith which can be assigned to this event. We can see here OnQuit and OnAbout. Those handlers were created by wizard. We could use the OnQuit handler, but to see what happens, let's write our own handler. Select the '''Add new handler''' option. You will be asked for a name for the handler. This name is simply the name of the function which will be called as a reaction to this event. wxSmith will suggest the name OnButton1Click, and we may as well use it.&lt;br /&gt;
&lt;br /&gt;
When you enter a new handler name, wxSmith will generate the framing code of a new handler function by that name, open the program file with the proper source code and put the cursor inside the handler function. (You may need to scroll up or down to show the line with cursor.) This function is a member of the class we have been building, so it can access all of functions in that class, including the one called '''Close()''', which was created by the wizard. So when we want to close our window we just call the '''Close()''' function. The result looks like this:&lt;br /&gt;
&lt;br /&gt;
[[Image:Wxs_tut01_022.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Build and run our project. It should show our &amp;quot;Hello, World!&amp;quot; text and our &amp;quot;Close&amp;quot; button. Click the Close button, and it should close. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This is end of this first tutorial, I hope that you followed it easily and are beginning to feel comfortable with Code::Blocks and wxSmith. &lt;br /&gt;
&lt;br /&gt;
The tutorial was originally written by BYO, the creator of wxSmith. It was revised in March 2012 by Grouch to take account of changes in Code::Blocks, add a few clarifications, and change the accent in the English from youthful Polish to elderly American.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;'''[[WxSmith tutorials|Index]] | [[Wxsmith tutorial: Working with items|Next]]'''&amp;lt;/center&amp;gt;&lt;/div&gt;</summary>
		<author><name>Alpha</name></author>
	</entry>
	<entry>
		<id>https://wiki.codeblocks.org/index.php?title=Announcement_for_plugins/patches&amp;diff=9142</id>
		<title>Announcement for plugins/patches</title>
		<link rel="alternate" type="text/html" href="https://wiki.codeblocks.org/index.php?title=Announcement_for_plugins/patches&amp;diff=9142"/>
		<updated>2016-02-01T21:04:45Z</updated>

		<summary type="html">&lt;p&gt;Alpha: link more recent clang work&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Code::Blocks Plugins]]&lt;br /&gt;
=== HowTo announce a new plugin/patch or similar ===&lt;br /&gt;
&lt;br /&gt;
''Please read carefully:''&lt;br /&gt;
&lt;br /&gt;
This WiKi section is to announce:&lt;br /&gt;
* a new plugin that is '''not''' within the contrib folder of the SVN repository&lt;br /&gt;
* a patch that is '''not''' a bugfix or similar and/or will '''not''' be applied to the SVN repository (e.g. because it's very specific)&lt;br /&gt;
* a new lexer/template that is '''not''' completed or approved and/or will '''not''' be added to the SVN&lt;br /&gt;
&lt;br /&gt;
If a plugin/patch/lexer/template is moved to the repository don't forget to remove it from here! This section is intended to '''collect''' the information about available plugins/patches/lexerers/templates in one place. So the announcement should be short and clear. It should (however) include at least the following content:&lt;br /&gt;
* Name of the plugin/patch/lexer/template and purpose&amp;lt;BR&amp;gt;&lt;br /&gt;
* Version (state) and date of last update (or release in the first place)&amp;lt;BR&amp;gt;&lt;br /&gt;
* Link to a thread (to be created) in the developers (plugin) forum for discussion of features, bugs, wishlist etc.&amp;lt;BR&amp;gt;&lt;br /&gt;
* A link where the '''most up-to-date''' version can be downloaded (e.g. in the forum).&amp;lt;BR&amp;gt;&lt;br /&gt;
The best way may be to copy the section from the '''template''' plugin/patch/lexer/template and update it with your information. This will ensure consistency in the best way! Read the article [[How to add another announcement]] to read how to change the WiKi accordingly.&lt;br /&gt;
&lt;br /&gt;
=== Patch announcements ===&lt;br /&gt;
&lt;br /&gt;
So far there are no new patches.&lt;br /&gt;
&lt;br /&gt;
* [[Template for patch announcement]] (Read this before posting a new patch!)&lt;br /&gt;
&lt;br /&gt;
=== Plugin announcements ===&lt;br /&gt;
&lt;br /&gt;
These are the user-contributed plugins:&lt;br /&gt;
&lt;br /&gt;
* [[Replace in Files]] (MortenMacFly)&lt;br /&gt;
* [[Tab versus Space]] (MortenMacFly)&lt;br /&gt;
* [[Edit Project]] (Killerbot)&lt;br /&gt;
* [[Matching Brace]] (Killerbot)&lt;br /&gt;
* [[Library Finder]] (byo)&lt;br /&gt;
* [[Environment Variables Editor]] (MortenMacFly)&lt;br /&gt;
* [[ThreadSearch]] (Dje)&lt;br /&gt;
* [[Code Snippets plugin]] (Artoj/Pecan)&lt;br /&gt;
* [[Interpreted Languages plugin]] (dmoore) ** OBSOLETE **&lt;br /&gt;
* [[Shell Extensions plugin]] (dmoore)&lt;br /&gt;
* [[Python plugin]] (dmoore)&lt;br /&gt;
* [[FindBrokenFiles scripted plugin]] (MortenMacFly)&lt;br /&gt;
* [[wxTranslatePluginForCB scripted plugin]] (LETARTARE)&lt;br /&gt;
* [[QtPregenForCB plugin]] (LETARTARE)&lt;br /&gt;
* [[AutoVersioning]] (JGM)&lt;br /&gt;
* [[DragScroll plugin]]&lt;br /&gt;
* [[BrowseTracker plugin]]&lt;br /&gt;
* [[FortranProject plugin]]&lt;br /&gt;
* [[cbDiff plugin]]&lt;br /&gt;
* [[Project Exporter]]&lt;br /&gt;
* [[GitBlocks]] (tomolt)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* [/index.php/topic,13723.msg92518.html#msg92518 Bazaar] Bazaar version control (via Tools menu)&lt;br /&gt;
* [http://code.google.com/p/blackdoc/ BlackDoc] Derive project documentation in &amp;quot;BlackDoc&amp;quot; format&lt;br /&gt;
* [/index.php/topic,10901.0.html cbNSIS] Frontend for NSIS (Nullsoft installer system)&lt;br /&gt;
* [http://code.google.com/p/cbtortoisesvn CBTortoiseSVN] (SVN version control, working partially)&lt;br /&gt;
* [/index.php/topic,14184.0.html cbvcs] &amp;quot;Generic&amp;quot; version control, working partially&lt;br /&gt;
* [https://github.com/Lalaland/ClangComplete ClangComplete] Code-completion plugin using Clang (also see: [/index.php/topic,18785.0.html here] and [/index.php/topic,20623.0.html here])&lt;br /&gt;
* [/index.php/topic,14339.0.html CodePaste] Pase code on platforms like Pastebin&lt;br /&gt;
* [/index.php/topic,15915.0.html CompileOnDemand] Compile a file automatically if it has changed&lt;br /&gt;
* [/index.php/topic,8568.0.html ColorCoder] Frontend to setup/compute colour code to be used in source code&lt;br /&gt;
* [/index.php/topic,16885.0.html CDB Debugger] Integration with the CDB debugger&lt;br /&gt;
* [/index.php/topic,16512.0.html EditorConfig] Use cross IDE coding styles (also see http://editorconfig.org/)&lt;br /&gt;
* (Other) [/index.php/topic,16517.0.html EditorConfig]&lt;br /&gt;
* [https://github.com/ywx/FormatFortranIndentPlugin FormatFortranIndent] Indent Fortran code correctly - best with [[Fortran Project plugin|FortranProject plugin]]&lt;br /&gt;
* [/index.php/topic,13348.0.html InnoSetup] Frontend for InnoSetup installer system&lt;br /&gt;
* [/index.php/topic,16470.0.html ListToolbox] Parse, manipulate, and format lists of text&lt;br /&gt;
* [/index.php/topic,16935.0.html PythonCodeCompletion] Code completion for Python&lt;br /&gt;
* [/index.php/topic,16635.0.html PythonDebugger] Integrated Python debugging&lt;br /&gt;
* [/index.php/topic,16249.0.html Semantic highlight] (In progress)&lt;br /&gt;
* [/index.php/topic,7063.0.html SVNInside] (SVN version control, working, but partially crashing C::B)&lt;br /&gt;
* [http://sourceforge.net/projects/xpmeditor/ XPM Editor] Graphical editor inside C::B&lt;br /&gt;
* [https://github.com/earlgrey-bis/cb-OpenFilesListPlus OpenFilesListPlus] Enhanced version of OpenFilesList plugin&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* [[Template for plugin announcement]] (Read this before posting a new plugin!)&lt;br /&gt;
&lt;br /&gt;
=== Lexer/Templates announcements ===&lt;br /&gt;
&lt;br /&gt;
* [[d_source File wizard]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* [[Template for lexer/template announcement]] (Read this before posting a new lexer/template!)&lt;/div&gt;</summary>
		<author><name>Alpha</name></author>
	</entry>
	<entry>
		<id>https://wiki.codeblocks.org/index.php?title=Main_Page&amp;diff=9140</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://wiki.codeblocks.org/index.php?title=Main_Page&amp;diff=9140"/>
		<updated>2016-01-29T19:58:35Z</updated>

		<summary type="html">&lt;p&gt;Alpha: Update to 16.01&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOEDITSECTION__ __NOTOC__&lt;br /&gt;
{{Layout_box1|1=&lt;br /&gt;
[[Image:cb_splash.png|left]]&lt;br /&gt;
'''Welcome to the official Wiki for Code::Blocks'''&amp;lt;br&amp;gt;&lt;br /&gt;
[https://www.codeblocks.org Code::Blocks] is a free, open-source, cross-platform [[wikipedia:Integrated Development Environment|IDE]]. Using a plugin architecture, its capabilities and features are defined by the provided plugins.&amp;lt;br&amp;gt;&lt;br /&gt;
Currently, [https://www.codeblocks.org Code::Blocks] is oriented towards C/C++/Fortran.&lt;br /&gt;
The Code::Blocks team does not take responsibility for the content nor accuracy of these pages.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;Wiki Editors: In order to login to edit pages, you must create an account on the [/ forums]. Use the same username and password for the wiki. Read the [[Help:Contents|Help]] for editing guidelines. Look in the [[CodeBlocks:Community_Portal|community portal]] for things to do.&lt;br /&gt;
&amp;lt;/small&amp;gt;&lt;br /&gt;
&amp;lt;br clear=&amp;quot;all&amp;quot; /&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{|width=&amp;quot;100%&amp;quot; background-color=&amp;quot;transparent&amp;quot; &lt;br /&gt;
|width=&amp;quot;60%&amp;quot; valign=&amp;quot;top&amp;quot;|&lt;br /&gt;
&amp;lt;!-- LEFT --&amp;gt;&lt;br /&gt;
&amp;lt;!-- Did you know that using Layout_box2 here instead of &amp;lt;div&amp;gt; breaks the inner table? Strange... --&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color: #dfeefb; border: 1px dotted #010101; margin: 5px; padding: 5px;&amp;quot;&amp;gt;&lt;br /&gt;
{|align=&amp;quot;center&amp;quot; style=&amp;quot;background:transparent&amp;quot; cellspacing=&amp;quot;5&amp;quot;&lt;br /&gt;
&lt;br /&gt;
|valign=&amp;quot;top&amp;quot; align=&amp;quot;center&amp;quot; colspan=&amp;quot;2&amp;quot;|&lt;br /&gt;
=== How do I... ===&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|align=&amp;quot;center&amp;quot;|&lt;br /&gt;
'''[[Installing_Code::Blocks|...install Code::Blocks?]]'''&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;font-size:.9em&amp;quot;&amp;gt;&lt;br /&gt;
[[Installing_the_latest_official_version_of_Code::Blocks_on_Windows|Windows]] &amp;amp;middot;&lt;br /&gt;
[[Installing_Code::Blocks#Ubuntu|Ubuntu]] &amp;amp;middot;&lt;br /&gt;
[[Installing_Code::Blocks#Mac_OS_X|Mac OS X]] &amp;amp;middot;&lt;br /&gt;
[[Installing_Code::Blocks#Fedora|Fedora]] &amp;amp;middot;&lt;br /&gt;
[[Installing_Code::Blocks|more...]]&lt;br /&gt;
&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|align=&amp;quot;center&amp;quot;|&lt;br /&gt;
'''[[Installing_a_supported_compiler|...set up a compiler in Code::Blocks?]]'''&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;font-size:.9em&amp;quot;&amp;gt;&lt;br /&gt;
[[Installing_a_supported_compiler#MinGW.2FGCC|MinGW]] &amp;amp;middot;&lt;br /&gt;
[[Installing_a_supported_compiler#Microsoft_Visual_C.2B.2B|MS Visual C++]] &amp;amp;middot;&lt;br /&gt;
[[Installing_a_supported_compiler|more...]]&lt;br /&gt;
&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|align=&amp;quot;center&amp;quot;|&lt;br /&gt;
'''[[Creating a new project|...create a new project?]]'''&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;font-size:.9em&amp;quot;&amp;gt;&lt;br /&gt;
[[Creating a new project#Changing file composition|Add files]] &amp;amp;middot;&lt;br /&gt;
[[Creating a new project#Modifying build options|Build options]] &amp;amp;middot;&lt;br /&gt;
[[Creating a new project#Virtual Targets|Virtual Targets]] &amp;amp;middot;&lt;br /&gt;
[[Creating a new project|more...]]&lt;br /&gt;
&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|align=&amp;quot;center&amp;quot;|&lt;br /&gt;
'''[[Debugging_with_Code::Blocks|...debug my program?]]'''&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|align=&amp;quot;center&amp;quot;|&lt;br /&gt;
'''[[FAQ-Settings#Q: How do I make Code::Blocks portable?|...make Code::Blocks portable?]]'''&lt;br /&gt;
&lt;br /&gt;
|align=&amp;quot;center&amp;quot;|&lt;br /&gt;
'''[[User_documentation#Third-party_libraries|...use a 3rd-party library?]]'''&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;font-size:.9em&amp;quot;&amp;gt;&lt;br /&gt;
[[Using_wxWidgets|wxWidgets]] &amp;amp;middot;&lt;br /&gt;
[[Using_Boost|Boost]] &amp;amp;middot;&lt;br /&gt;
[[Using_SDL_with_Code::Blocks|SDL]] &amp;amp;middot;&lt;br /&gt;
[[User_documentation#Third-party_libraries|more...]]&lt;br /&gt;
&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Layout_box3|1=&lt;br /&gt;
== Table of Contents ==&lt;br /&gt;
&amp;lt;span style=&amp;quot;font-size:.9em&amp;quot;&amp;gt;''Main article: [[Code::Blocks Documentation]]''&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== [[User documentation]] ===&lt;br /&gt;
:Articles for Code::Blocks users&lt;br /&gt;
&lt;br /&gt;
=== [[FAQ]] ===&lt;br /&gt;
:Frequently Asked Questions&lt;br /&gt;
&lt;br /&gt;
=== [[Feature List]] ===&lt;br /&gt;
:An index of Code::Blocks' useful features&lt;br /&gt;
&lt;br /&gt;
=== [[Code::Blocks Plugins]] ===&lt;br /&gt;
:Plugins extend Code::Blocks' functionality&lt;br /&gt;
&lt;br /&gt;
=== [[Off-site documentation]] ===&lt;br /&gt;
:Links to external documentation&lt;br /&gt;
&lt;br /&gt;
=== [[Developer documentation]] ===&lt;br /&gt;
:Articles for developers of Code::Blocks itself&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
|width=&amp;quot;40%&amp;quot; valign=&amp;quot;top&amp;quot;|&lt;br /&gt;
&amp;lt;!-- RIGHT --&amp;gt;&lt;br /&gt;
{{Layout_box4|1=&lt;br /&gt;
=== Download Code::Blocks ===&lt;br /&gt;
* Latest official release: [https://www.codeblocks.org/downloads/26 16.01]&lt;br /&gt;
* [/index.php?board=20.0 Nightly builds] (updated each night)&lt;br /&gt;
* [[Compiled_packages_of_Code::Blocks|Official and third-party binaries]] (for various distributions)&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Layout_box2|1=&lt;br /&gt;
=== Other resources ===&lt;br /&gt;
* [https://www.codeblocks.org Main website]&lt;br /&gt;
* [ Community forums]&lt;br /&gt;
* [irc://irc.freenode.net/codeblocks IRC channel] and [http://webchat.freenode.net/?channels=codeblocks IRC channel web access]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Layout_box2|1=&lt;br /&gt;
=== Development ===&lt;br /&gt;
[[Image:Chk.png]][[Roadmap]] &lt;br /&gt;
* [[Developer documentation]]&lt;br /&gt;
* [http://sourceforge.net/projects/codeblocks/ Project page at Sourceforge]&lt;br /&gt;
* '''Bugs''': browse or submit [http://sourceforge.net/p/codeblocks/tickets/search/?q=_type%3ABug_Report+or+_type%3AUndefined bugs] or browse [http://alpha0010.github.io/cb-history/bugs.html old bugs]&lt;br /&gt;
* '''Features''': browse or submit [http://sourceforge.net/p/codeblocks/tickets/search/?q=_type%3AFeature_Request+or+_type%3AUndefined features] or browse [http://alpha0010.github.io/cb-history/features.html old features]&lt;br /&gt;
* '''Patches''': browse or submit [http://sourceforge.net/p/codeblocks/tickets/search/?q=_type%3APatch+or+_type%3AUndefined patches] or browse [http://alpha0010.github.io/cb-history/patches.html old patches]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Layout_box3|1=&lt;br /&gt;
=== Supported compilers ===&lt;br /&gt;
* [http://gcc.gnu.org/ GNU GCC (incl. G77)] (Linux)&lt;br /&gt;
* [http://www.mingw.org MinGW GCC (incl. G77)] (Win32)&lt;br /&gt;
* [http://mspgcc.sourceforge.net MSP430 GCC] (Win32)&lt;br /&gt;
* [http://www.hightec-rt.com TriCore and PowerPC GCC] (Win32, Linux)&lt;br /&gt;
* [http://developer.apple.com/tools/ Apple GCC (Xcode)] (Mac OS X)&lt;br /&gt;
&amp;lt;!-- Tested and working with Microsoft PSDK for Windows 2003 R2 and CodeBlocks b3577 --&amp;gt;&lt;br /&gt;
* [http://xona.com/2004/06/29.html Microsoft Visual C++ Toolkit 2003] (Win32) &lt;br /&gt;
* [http://msdn.microsoft.com/vstudio/express/visualc/download/ Microsoft Visual C++ 2005] (Win32)&lt;br /&gt;
* [http://edn.embarcadero.com/article/20633 Borland's C++ Compiler 5.5] (Win32)&lt;br /&gt;
* [http://www.digitalmars.com/ DigitalMars C/C++] (Win32)&lt;br /&gt;
* [http://openwatcom.org/index.php/Main_Page OpenWatcom] (Win32)&lt;br /&gt;
* [https://software.intel.com/en-us/c-compilers Intel C++ compiler] (Win32)&lt;br /&gt;
* [http://sdcc.sourceforge.net/ Small Device C Compiler (SDCC)]&lt;br /&gt;
* [http://dlang.org/ Digital Mars D]&lt;br /&gt;
* [http://dgcc.sourceforge.net/ GDC D Compiler]&lt;br /&gt;
* [https://github.com/ldc-developers/ldc/ LLVM D Compiler]&lt;br /&gt;
}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;[https://www.codeblocks.org/about.shtml The Code::Blocks team]&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;[[Special:Allpages|Index]]&amp;lt;/center&amp;gt;&lt;/div&gt;</summary>
		<author><name>Alpha</name></author>
	</entry>
	<entry>
		<id>https://wiki.codeblocks.org/index.php?title=MinGW_installation&amp;diff=8844</id>
		<title>MinGW installation</title>
		<link rel="alternate" type="text/html" href="https://wiki.codeblocks.org/index.php?title=MinGW_installation&amp;diff=8844"/>
		<updated>2015-09-25T04:15:59Z</updated>

		<summary type="html">&lt;p&gt;Alpha: Update install recommendation&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:User Documentation]]&lt;br /&gt;
==Install the MinGW Bundled Package==&lt;br /&gt;
The fastest way to set up a working compiler is to install '''packages of recent GCC releases targeting the MinGW compiler system''', from [http://www.tdragon.net/recentgcc/ TDM-MinGW installer ]. The Code::Blocks team recommends TDM builds of MinGW.&lt;br /&gt;
&lt;br /&gt;
If you want to download each packages yourself, you can follow the chapters below.&lt;br /&gt;
&lt;br /&gt;
==Using the MinGW installer==&lt;br /&gt;
Note: At the present time, it is still best to download the packages by hand, as the installers are not production quality (unless you really feel unsure about unpacking a couple of archives).&lt;br /&gt;
&lt;br /&gt;
Also, the installer reportedly does not work on Windows Vista, follow the [[MinGW_installation#GCC_3.4.5_manual_install | manual installation instructions]].&amp;lt;br /&amp;gt;&lt;br /&gt;
''(In general, MinGW is not confirmed to work for any Windows Vista betas or RCs)''&lt;br /&gt;
&lt;br /&gt;
'''MinGW has been confirmed working in Windows Vista Business!''' Thanks to [http://aarongiles.com/?p=199 Aaron Giles' Solving the Windows Vista Build Issues] for the solution.&lt;br /&gt;
In summary, the MinGW folder must be &amp;quot;a directory immediately off the root of your hard disk for some reason. So c:\mingw works fine, but c:\tools\mingw won’t.&amp;quot; (You can use mklink to symbolic-link the folder, which also works). Secondly, set the GCC_EXEC_PREFIX environment variable to the MinGW root folder. Finally, add %GCC_EXEC_PREFIX%\libexec\gcc\mingw32\3.4.5 and %GCC_EXEC_PREFIX%\lib\bin to the PATH environment variable.&lt;br /&gt;
&lt;br /&gt;
'''A HowTo exists [[Installing_MinGW_with_Vista | here]]'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
MinGW Installer 5.02 allows to choose the SF mirror while 5.03 does not (automatically picks one randomly).&lt;br /&gt;
&lt;br /&gt;
MinGW Installer 5.0.x are broken because of changes done by sf.net; please use the MinGW Installer 5.1.x&lt;br /&gt;
&lt;br /&gt;
Installers allows to downloads/installs &amp;quot;previous&amp;quot;, &amp;quot;current&amp;quot; and &amp;quot;candidate&amp;quot; mingw packages.&lt;br /&gt;
&lt;br /&gt;
*[http://prdownloads.sourceforge.net/mingw/MinGW-5.0.2.exe MinGW Installer 5.0.2]&lt;br /&gt;
*[http://prdownloads.sourceforge.net/mingw/MinGW-5.0.3.exe MinGW Installer 5.0.3]&lt;br /&gt;
*[http://prdownloads.sourceforge.net/mingw/MinGW-5.1.3.exe MinGW Installer 5.1.3]&lt;br /&gt;
&lt;br /&gt;
'''Note that the MinGW version number is not related to the actual compiler version.'''&lt;br /&gt;
&lt;br /&gt;
Note that the installer applications require an internet connection and will download the actual MinGW packages at the time of installation.&lt;br /&gt;
&lt;br /&gt;
The required MinGW Components are &amp;quot;MinGW Base Tools&amp;quot;, &amp;quot;g++ compiler&amp;quot; and &amp;quot;MinGW make&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
==GCC 3.4.5 manual install==&lt;br /&gt;
This is the &amp;quot;candidate&amp;quot; release of MinGW, so it is not considered &amp;quot;stable&amp;quot; officially.&amp;lt;br /&amp;gt;Personally, I have not had any kind of problem with this release.&lt;br /&gt;
&lt;br /&gt;
To do a manual install, simply download the desired files and extract them all into the same directory. If you have WinZip, PowerArchiver, or any other similar program, this is as easy as selecting all the archives simultaneously and choosing &amp;quot;unpack here&amp;quot; from the context menu.&lt;br /&gt;
&lt;br /&gt;
For clarity, I recommend to put MinGW into C:\MinGW, but almost any other locations should do equally well. Avoid pathnames with spaces or exotic characters, as this may confuse some commandline tools (most notably &amp;lt;tt&amp;gt;gdb&amp;lt;/tt&amp;gt;).&lt;br /&gt;
===Base system with C++===&lt;br /&gt;
*[http://prdownloads.sf.net/mingw/gcc-core-3.4.5-20060117-1.tar.gz http://prdownloads.sf.net/mingw/gcc-core-3.4.5-20060117-1.tar.gz]&lt;br /&gt;
*[http://prdownloads.sf.net/mingw/gcc-g%2B%2B-3.4.5-20060117-1.tar.gz http://prdownloads.sf.net/mingw/gcc-g++-3.4.5-20060117-1.tar.gz]&lt;br /&gt;
*[http://prdownloads.sf.net/mingw/mingw-runtime-3.9.tar.gz http://prdownloads.sf.net/mingw/mingw-runtime-3.9.tar.gz]&lt;br /&gt;
*[http://prdownloads.sf.net/mingw/mingw-utils-0.3.tar.gz http://prdownloads.sf.net/mingw/mingw-utils-0.3.tar.gz]&lt;br /&gt;
*[http://prdownloads.sf.net/mingw/w32api-3.6.tar.gz http://prdownloads.sf.net/mingw/w32api-3.6.tar.gz]&lt;br /&gt;
*[http://prdownloads.sf.net/mingw/binutils-2.17.50-20060824-1.tar.gz http://prdownloads.sf.net/mingw/binutils-2.17.50-20060824-1.tar.gz]&lt;br /&gt;
*[http://prdownloads.sf.net/mingw/mingw32-make-3.81-1.tar.gz http://prdownloads.sf.net/mingw/mingw32-make-3.81-1.tar.gz]&lt;br /&gt;
&lt;br /&gt;
===Optionally:===&lt;br /&gt;
====Fortran77 compiler====&lt;br /&gt;
*[http://prdownloads.sf.net/mingw/gcc-g77-3.4.5-20060117-1.tar.gz http://prdownloads.sf.net/mingw/gcc-g77-3.4.5-20060117-1.tar.gz]&lt;br /&gt;
====gdb debugger====&lt;br /&gt;
*[http://prdownloads.sf.net/mingw/gdb-6.3-2.exe http://prdownloads.sf.net/mingw/gdb-6.3-2.exe]&lt;br /&gt;
====Other developer tools====&lt;br /&gt;
=====UnxUtils=====&lt;br /&gt;
Ports of the most often used Unix utilities. Note that some tools in UnxUtils are quite a bit outdated, so make sure you &amp;lt;u&amp;gt;do not&amp;lt;/u&amp;gt; overwrite already existing MinGW files with their UnxUtils counterparts.&lt;br /&gt;
*[http://prdownloads.sf.net/unxutils/UnxUtils.zip UnxUtils]&lt;br /&gt;
*[http://prdownloads.sf.net/unxutils/UnxUpdates.zip UnxUtils-Latest-Updates]&lt;br /&gt;
&lt;br /&gt;
=====GnuWin32=====&lt;br /&gt;
''More recent'' versions of commonly used Unix utilities. Also: utilities not found in UnxUtils at all.&lt;br /&gt;
*[http://prdownloads.sf.net/gnuwin32/coreutils-5.3.0-bin.zip coreutils-5.3.0]&lt;br /&gt;
*[http://prdownloads.sf.net/gnuwin32/zip-2.3-3-bin.zip zip-2.3.3] or [ftp://ftp.info-zip.org/pub/infozip/win32/zip300xn-x64.zip zip-3.0.0]&lt;br /&gt;
*[http://prdownloads.sf.net/gnuwin32/tar-1.13-1-bin.zip tar-1.13-1]&lt;br /&gt;
*[http://prdownloads.sf.net/gnuwin32/gzip-1.3.5-3-bin.zip gzip-1.3.5]&lt;br /&gt;
*[http://prdownloads.sf.net/gnuwin32/bzip2-1.0.3-1-bin.zip bzip2-1.0.0-1]&lt;br /&gt;
*[http://prdownloads.sf.net/gnuwin32/autoconf-2.59-bin.zip autoconf-2.59]&lt;br /&gt;
*[http://prdownloads.sf.net/gnuwin32/automake-1.9.4-bin.zip automake-1.9.4]&lt;br /&gt;
*[http://prdownloads.sf.net/gnuwin32/bison-2.1-bin.zip bison-2.1 (includes m4)]&lt;br /&gt;
*[http://prdownloads.sf.net/gnuwin32/flex-2.5.4a-1-bin.zip flex-2.5.4a]&lt;br /&gt;
*[http://prdownloads.sf.net/gnuwin32/gperf-3.0.1-bin.zip gperf-3.0.1]&lt;br /&gt;
*[http://prdownloads.sf.net/gnuwin32/diffutils-2.8.7-1-bin.zip diffutils-2.8.7]&lt;br /&gt;
*[http://prdownloads.sf.net/gnuwin32/patch-2.5.9-6-bin.zip patch-2.5.9-6] &amp;lt;br&amp;gt; Note: The version 2.5.9 of patch from GnuWin32 seems to have a problem with unified diffs&lt;br /&gt;
*[http://prdownloads.sf.net/gnuwin32/grep-2.5.1a-bin.zip grep-2.5.1]&lt;br /&gt;
*[http://prdownloads.sf.net/gnuwin32/sed-4.1.4-bin.zip sed-4.1.4]&lt;br /&gt;
*[http://prdownloads.sf.net/gnuwin32/hextools-1.0-bin.zip hextools-1.0]&lt;br /&gt;
*[http://prdownloads.sf.net/gnuwin32/findutils-4.2.20-2-bin.zip findutils-4.2.20]&lt;br /&gt;
*[http://prdownloads.sf.net/gnuwin32/less-394-bin.zip less 3.94]&lt;br /&gt;
*[http://prdownloads.sf.net/gnuwin32/which-2.16-4.exe which 2.16-4]&lt;br /&gt;
*[http://prdownloads.sf.net/mingw/wget-1.9.1-mingwPORT.tar.bz2 wget-1.9.1]&lt;br /&gt;
*[http://www.gimp.org/~tml/gimp/win32/gettext-0.14.5.zip gettext-0.14.5]&lt;br /&gt;
*[http://www.gimp.org/~tml/gimp/win32/gettext-dev-0.14.5.zip gettext-dev-0.14.5]&lt;br /&gt;
&lt;br /&gt;
Dependencies:&lt;br /&gt;
*[http://prdownloads.sf.net/gnuwin32/pcre-6.4-1-bin.zip pcre-6.4.1 (needed by grep and less)]&lt;br /&gt;
*[http://prdownloads.sf.net/gnuwin32/libintl-0.14.4-bin.zip libintl-0.14.4 (needed by most tools)]&lt;br /&gt;
*[http://prdownloads.sf.net/gnuwin32/libiconv-1.9.2-1-bin.zip libiconv-1.9.2-1 (needed by most tools)]&lt;br /&gt;
&lt;br /&gt;
==Resulting Folder Layout==&lt;br /&gt;
[[Image:Lay.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==GCC 3.4.4 manual install==&lt;br /&gt;
Some people have reported various problems with gcc version 3.4.4, so it may be worth a consideration to use the either the 3.4.5 or 3.4.2 releases until a build from the 4.x branch is available.&amp;lt;br /&amp;gt;Personally, I have not had any kind of problem with either 3.4.4 or 3.4.5.&lt;br /&gt;
===Base system with C++===&lt;br /&gt;
*[http://prdownloads.sf.net/mingw/gcc-core-3.4.4-20050522-1.tar.gz http://prdownloads.sf.net/mingw/gcc-core-3.4.4-20050522-1.tar.gz]&lt;br /&gt;
*[http://prdownloads.sf.net/mingw/gcc-g%2B%2B-3.4.4-20050522-1.tar.gz http://prdownloads.sf.net/mingw/gcc-g++-3.4.4-20050522-1.tar.gz]&lt;br /&gt;
*[http://prdownloads.sf.net/mingw/mingw-runtime-3.9.tar.gz http://prdownloads.sf.net/mingw/mingw-runtime-3.9.tar.gz]&lt;br /&gt;
*[http://prdownloads.sf.net/mingw/mingw-utils-0.3.tar.gz http://prdownloads.sf.net/mingw/mingw-utils-0.3.tar.gz]&lt;br /&gt;
*[http://prdownloads.sf.net/mingw/w32api-3.5.tar.gz http://prdownloads.sf.net/mingw/w32api-3.5.tar.gz]&lt;br /&gt;
*[http://prdownloads.sf.net/mingw/binutils-2.17.50-20060824-1.tar.gz http://prdownloads.sf.net/mingw/binutils-2.17.50-20060824-1.tar.gz]&lt;br /&gt;
*[http://prdownloads.sf.net/mingw/mingw32-make-3.80.0-3.tar.gz http://prdownloads.sf.net/mingw/mingw32-make-3.80.0-3.tar.gz]&lt;br /&gt;
&lt;br /&gt;
===Optionally:===&lt;br /&gt;
====gdb debugger====&lt;br /&gt;
*[http://prdownloads.sf.net/mingw/gdb-6.3-2.exe http://prdownloads.sf.net/mingw/gdb-6.3-2.exe]&lt;br /&gt;
====Objective-C====&lt;br /&gt;
*[http://prdownloads.sf.net/mingw/gcc-objc-3.4.4-20050522-1.tar.gz http://prdownloads.sf.net/mingw/gcc-objc-3.4.4-20050522-1.tar.gz]&lt;br /&gt;
====Native Java (experimental)====&lt;br /&gt;
*[http://prdownloads.sf.net/mingw/gcc-java-3.4.4-20050522-1.tar.gz http://prdownloads.sf.net/mingw/gcc-java-3.4.4-20050522-1.tar.gz]&lt;br /&gt;
====Fortran-77====&lt;br /&gt;
*[http://prdownloads.sf.net/mingw/gcc-g77-3.4.4-20050522-1.tar.gz http://prdownloads.sf.net/mingw/gcc-g77-3.4.4-20050522-1.tar.gz]&lt;br /&gt;
====Ada====&lt;br /&gt;
*[http://prdownloads.sf.net/mingw/gcc-ada-3.4.4-20050522-1.tar.gz http://prdownloads.sf.net/mingw/gcc-ada-3.4.4-20050522-1.tar.gz]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Other MinGW links==&lt;br /&gt;
[http://www.equation.com/servlet/equation.cmd?fa=fortran Unofficial MinGW package From Equation.com]&lt;/div&gt;</summary>
		<author><name>Alpha</name></author>
	</entry>
	<entry>
		<id>https://wiki.codeblocks.org/index.php?title=Fortran_Project_plugin&amp;diff=7895</id>
		<title>Fortran Project plugin</title>
		<link rel="alternate" type="text/html" href="https://wiki.codeblocks.org/index.php?title=Fortran_Project_plugin&amp;diff=7895"/>
		<updated>2015-08-01T13:46:14Z</updated>

		<summary type="html">&lt;p&gt;Alpha: Update link to FP homepage.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Code::Blocks 3rd Party Plugins]]&lt;br /&gt;
{{Infobox_Plugin|&lt;br /&gt;
  name = FortranProject |&lt;br /&gt;
  logo = [[File:Generic-plugin.png]] |&lt;br /&gt;
  developer = Darius Markauskas |&lt;br /&gt;
  maintainer = |&lt;br /&gt;
  version = 1.2&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
FortranProject plugin makes C::B more useful for Fortran programmers. It adds a symbol browser and code completion for Fortran files. Source code and pre-built binaries can be downloaded from the [http://cbfortran.sourceforge.net Fortran Project homepage] .&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
* [[Fortran support in Code::Blocks|Fortran support in Code::Blocks]]&lt;/div&gt;</summary>
		<author><name>Alpha</name></author>
	</entry>
	<entry>
		<id>https://wiki.codeblocks.org/index.php?title=Main_Page&amp;diff=7847</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://wiki.codeblocks.org/index.php?title=Main_Page&amp;diff=7847"/>
		<updated>2015-02-15T19:22:35Z</updated>

		<summary type="html">&lt;p&gt;Alpha: add filters to bug/feature/patch links&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOEDITSECTION__ __NOTOC__&lt;br /&gt;
{{Layout_box1|1=&lt;br /&gt;
[[Image:cb_splash.png|left]]&lt;br /&gt;
'''Welcome to the official Wiki for Code::Blocks'''&amp;lt;br&amp;gt;&lt;br /&gt;
[https://www.codeblocks.org Code::Blocks] is a free, open-source, cross-platform [[wikipedia:Integrated Development Environment|IDE]]. Using a plugin architecture, its capabilities and features are defined by the provided plugins.&amp;lt;br&amp;gt;&lt;br /&gt;
Currently, [https://www.codeblocks.org Code::Blocks] is oriented towards C/C++/Fortran.&lt;br /&gt;
The Code::Blocks team does not take responsibility for the content nor accuracy of these pages.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;Wiki Editors: In order to login to edit pages, you must create an account on the [/ forums]. Use the same username and password for the wiki. Read the [[Help:Contents|Help]] for editing guidelines. Look in the [[CodeBlocks:Community_Portal|community portal]] for things to do.&lt;br /&gt;
&amp;lt;/small&amp;gt;&lt;br /&gt;
&amp;lt;br clear=&amp;quot;all&amp;quot; /&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{|width=&amp;quot;100%&amp;quot; background-color=&amp;quot;transparent&amp;quot; &lt;br /&gt;
|width=&amp;quot;60%&amp;quot; valign=&amp;quot;top&amp;quot;|&lt;br /&gt;
&amp;lt;!-- LEFT --&amp;gt;&lt;br /&gt;
&amp;lt;!-- Did you know that using Layout_box2 here instead of &amp;lt;div&amp;gt; breaks the inner table? Strange... --&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color: #dfeefb; border: 1px dotted #010101; margin: 5px; padding: 5px;&amp;quot;&amp;gt;&lt;br /&gt;
{|align=&amp;quot;center&amp;quot; style=&amp;quot;background:transparent&amp;quot; cellspacing=&amp;quot;5&amp;quot;&lt;br /&gt;
&lt;br /&gt;
|valign=&amp;quot;top&amp;quot; align=&amp;quot;center&amp;quot; colspan=&amp;quot;2&amp;quot;|&lt;br /&gt;
=== How do I... ===&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|align=&amp;quot;center&amp;quot;|&lt;br /&gt;
'''[[Installing_Code::Blocks|...install Code::Blocks?]]'''&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;font-size:.9em&amp;quot;&amp;gt;&lt;br /&gt;
[[Installing_the_latest_official_version_of_Code::Blocks_on_Windows|Windows]] &amp;amp;middot;&lt;br /&gt;
[[Installing_Code::Blocks#Ubuntu|Ubuntu]] &amp;amp;middot;&lt;br /&gt;
[[Installing_Code::Blocks#Mac_OS_X|Mac OS X]] &amp;amp;middot;&lt;br /&gt;
[[Installing_Code::Blocks#Fedora|Fedora]] &amp;amp;middot;&lt;br /&gt;
[[Installing_Code::Blocks|more...]]&lt;br /&gt;
&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|align=&amp;quot;center&amp;quot;|&lt;br /&gt;
'''[[Installing_a_supported_compiler|...set up a compiler in Code::Blocks?]]'''&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;font-size:.9em&amp;quot;&amp;gt;&lt;br /&gt;
[[Installing_a_supported_compiler#MinGW.2FGCC|MinGW]] &amp;amp;middot;&lt;br /&gt;
[[Installing_a_supported_compiler#Microsoft_Visual_C.2B.2B|MS Visual C++]] &amp;amp;middot;&lt;br /&gt;
[[Installing_a_supported_compiler|more...]]&lt;br /&gt;
&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|align=&amp;quot;center&amp;quot;|&lt;br /&gt;
'''[[Creating a new project|...create a new project?]]'''&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;font-size:.9em&amp;quot;&amp;gt;&lt;br /&gt;
[[Creating a new project#Changing file composition|Add files]] &amp;amp;middot;&lt;br /&gt;
[[Creating a new project#Modifying build options|Build options]] &amp;amp;middot;&lt;br /&gt;
[[Creating a new project#Virtual Targets|Virtual Targets]] &amp;amp;middot;&lt;br /&gt;
[[Creating a new project|more...]]&lt;br /&gt;
&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|align=&amp;quot;center&amp;quot;|&lt;br /&gt;
'''[[Debugging_with_Code::Blocks|...debug my program?]]'''&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|align=&amp;quot;center&amp;quot;|&lt;br /&gt;
'''[[FAQ-Settings#Q: How do I make Code::Blocks portable?|...make Code::Blocks portable?]]'''&lt;br /&gt;
&lt;br /&gt;
|align=&amp;quot;center&amp;quot;|&lt;br /&gt;
'''[[User_documentation#Third-party_libraries|...use a 3rd-party library?]]'''&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;font-size:.9em&amp;quot;&amp;gt;&lt;br /&gt;
[[Using_wxWidgets|wxWidgets]] &amp;amp;middot;&lt;br /&gt;
[[Using_Boost|Boost]] &amp;amp;middot;&lt;br /&gt;
[[Using_SDL_with_Code::Blocks|SDL]] &amp;amp;middot;&lt;br /&gt;
[[User_documentation#Third-party_libraries|more...]]&lt;br /&gt;
&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Layout_box3|1=&lt;br /&gt;
== Table of Contents ==&lt;br /&gt;
&amp;lt;span style=&amp;quot;font-size:.9em&amp;quot;&amp;gt;''Main article: [[Code::Blocks Documentation]]''&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== [[User documentation]] ===&lt;br /&gt;
:Articles for Code::Blocks users&lt;br /&gt;
&lt;br /&gt;
=== [[FAQ]] ===&lt;br /&gt;
:Frequently Asked Questions&lt;br /&gt;
&lt;br /&gt;
=== [[Feature List]] ===&lt;br /&gt;
:An index of Code::Blocks' useful features&lt;br /&gt;
&lt;br /&gt;
=== [[Code::Blocks Plugins]] ===&lt;br /&gt;
:Plugins extend Code::Blocks' functionality&lt;br /&gt;
&lt;br /&gt;
=== [[Off-site documentation]] ===&lt;br /&gt;
:Links to external documentation&lt;br /&gt;
&lt;br /&gt;
=== [[Developer documentation]] ===&lt;br /&gt;
:Articles for developers of Code::Blocks itself&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
|width=&amp;quot;40%&amp;quot; valign=&amp;quot;top&amp;quot;|&lt;br /&gt;
&amp;lt;!-- RIGHT --&amp;gt;&lt;br /&gt;
{{Layout_box4|1=&lt;br /&gt;
=== Download Code::Blocks ===&lt;br /&gt;
* Latest official release: [https://www.codeblocks.org/downloads/26 13.12]&lt;br /&gt;
* [/index.php?board=20.0 Nightly builds] (updated each night)&lt;br /&gt;
* [[Compiled_packages_of_Code::Blocks|Official and third-party binaries]] (for various distributions)&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Layout_box2|1=&lt;br /&gt;
=== Other resources ===&lt;br /&gt;
* [https://www.codeblocks.org Main website]&lt;br /&gt;
* [ Community forums]&lt;br /&gt;
* [irc://irc.freenode.net/codeblocks IRC channel] and [http://webchat.freenode.net/?channels=codeblocks IRC channel web access]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Layout_box2|1=&lt;br /&gt;
=== Development ===&lt;br /&gt;
[[Image:Chk.png]][[Roadmap]] &lt;br /&gt;
* [[Developer documentation]]&lt;br /&gt;
* [http://sourceforge.net/projects/codeblocks/ Project page at Sourceforge]&lt;br /&gt;
* '''Bugs''': browse or submit [http://sourceforge.net/p/codeblocks/tickets/search/?q=_type%3ABug_Report+or+_type%3AUndefined bugs] or browse [http://alpha0010.github.io/cb-history/bugs.html old bugs]&lt;br /&gt;
* '''Features''': browse or submit [http://sourceforge.net/p/codeblocks/tickets/search/?q=_type%3AFeature_Request+or+_type%3AUndefined features] or browse [http://alpha0010.github.io/cb-history/features.html old features]&lt;br /&gt;
* '''Patches''': browse or submit [http://sourceforge.net/p/codeblocks/tickets/search/?q=_type%3APatch+or+_type%3AUndefined patches] or browse [http://alpha0010.github.io/cb-history/patches.html old patches]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Layout_box3|1=&lt;br /&gt;
=== Supported compilers ===&lt;br /&gt;
* [http://gcc.gnu.org/ GNU GCC (incl. G77)] (Linux)&lt;br /&gt;
* [http://www.mingw.org MinGW GCC (incl. G77)] (Win32)&lt;br /&gt;
* [http://mspgcc.sourceforge.net MSP430 GCC] (Win32)&lt;br /&gt;
* [http://www.hightec-rt.com TriCore GCC] (Win32, Linux)&lt;br /&gt;
* [http://www.hightec-rt.com PowerPC GCC] (Win32, Linux)&lt;br /&gt;
* [http://developer.apple.com/tools/ Apple GCC (Xcode)] (Mac OS X)&lt;br /&gt;
&amp;lt;!-- Tested and working with Microsoft PSDK for Windows 2003 R2 and CodeBlocks b3577 --&amp;gt;&lt;br /&gt;
* [http://xona.com/2004/06/29.html Microsoft Visual C++ Toolkit 2003] (Win32) &lt;br /&gt;
* [http://msdn.microsoft.com/vstudio/express/visualc/download/ Microsoft Visual C++ 2005] (Win32)&lt;br /&gt;
* [http://edn.embarcadero.com/article/20633 Borland's C++ Compiler 5.5] (Win32)&lt;br /&gt;
* [http://www.digitalmars.com/ DigitalMars C/C++] (Win32)&lt;br /&gt;
* [http://openwatcom.org/index.php/Main_Page OpenWatcom] (Win32)&lt;br /&gt;
* [http://www.intel.com/cd/software/products/asmo-na/eng/compilers/219754.htm Intel C++ compiler] (Win32)&lt;br /&gt;
* [http://sdcc.sourceforge.net/ Small Device C Compiler (SDCC)]&lt;br /&gt;
* [http://www.digitalmars.com/d/dcompiler.html Digital Mars D]&lt;br /&gt;
* [http://dgcc.sourceforge.net/ GDC D Compiler]&lt;br /&gt;
* [http://dsource.org/projects/ldc/ LLVM D Compiler]&lt;br /&gt;
}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;[https://www.codeblocks.org/about.shtml The Code::Blocks team]&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;[[Special:Allpages|Index]]&amp;lt;/center&amp;gt;&lt;/div&gt;</summary>
		<author><name>Alpha</name></author>
	</entry>
	<entry>
		<id>https://wiki.codeblocks.org/index.php?title=Developer_documentation&amp;diff=7818</id>
		<title>Developer documentation</title>
		<link rel="alternate" type="text/html" href="https://wiki.codeblocks.org/index.php?title=Developer_documentation&amp;diff=7818"/>
		<updated>2015-01-22T18:42:08Z</updated>

		<summary type="html">&lt;p&gt;Alpha: add link to online sdk docs&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Code::Blocks Documentation]]&lt;br /&gt;
[[Category:Developer Documentation]]&lt;br /&gt;
{{Layout_box2|1=&lt;br /&gt;
'''Official Code repository Subversion'''&amp;lt;br/&amp;gt;&lt;br /&gt;
* Web-interface by ViewVC: http://sourceforge.net/p/codeblocks/code/log/&lt;br /&gt;
* Subversion URL: &amp;lt;nowiki&amp;gt;svn://svn.code.sf.net/p/codeblocks/code/trunk&amp;lt;/nowiki&amp;gt; or &amp;lt;nowiki&amp;gt;http://svn.code.sf.net/p/codeblocks/code/trunk&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Mirror by biplab''' (Read-only; refreshed every 10 minutes.)&lt;br /&gt;
* Subversion URL: &amp;lt;nowiki&amp;gt;svn://cb.biplab.in/codeblocks/trunk&amp;lt;/nowiki&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
* Web-interface: http://cb.biplab.in/websvn/&lt;br /&gt;
* Git URL: git://cb.biplab.in/codeblocks.git&lt;br /&gt;
* Web-interface:http://cb.biplab.in/cgit/&lt;br /&gt;
&lt;br /&gt;
'''Mirror by Jens''' (Read-only; refreshed every 10 minutes.)&lt;br /&gt;
* Web-interface: http://cgit.jenslody.de/&lt;br /&gt;
* Git URL: git://jenslody.de/git/codeblocks&lt;br /&gt;
* the above Web-interface link contains many other mirrors such as wxWidgets trunk, git mirror, and git mirror of codeblocks.github&lt;br /&gt;
&lt;br /&gt;
'''Mirror by Obf''' (Read-only; refreshed manually.)&lt;br /&gt;
* Web-interface: https://github.com/obfuscated/codeblocks_sf&lt;br /&gt;
* Git URL: see the above page.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Articles for Code::Blocks developers.'''&lt;br /&gt;
&lt;br /&gt;
* '''&amp;lt;u&amp;gt;Documentation&amp;lt;/u&amp;gt;'''&lt;br /&gt;
:[https://www.codeblocks.org/manual.shtml User's manual] in various formats and languages.&lt;br /&gt;
:Also see http://developer.berlios.de/projects/codeblocks/ (under the downloads section).&lt;br /&gt;
:Checkout the SDK documentation at http://developer.berlios.de/project/showfiles.php?group_id=5358 as CHM file(s).&lt;br /&gt;
:Browse SDK documentation at http://alpha0010.github.io/cb-docs/ as html.&lt;br /&gt;
&lt;br /&gt;
* Compile the complete Code::Blocks from sources on '''[[Installing Code::Blocks from source on Windows|Windows]]''' and '''[[Installing Code::Blocks from source on Linux|Linux]]'''&lt;br /&gt;
&lt;br /&gt;
* '''[[Compile Code::Blocks plugins based on a nightly]]''' without the need to compile wxWidgets or the Code::Blocks core.&lt;br /&gt;
&lt;br /&gt;
* '''[http://launchpad.net/products/codeblocks/ Translation]'''&lt;br /&gt;
:Code::Blocks uses Launchpad to coordinate translation efforts.&lt;br /&gt;
&lt;br /&gt;
* '''[[Coding style]]'''&lt;br /&gt;
:The source code formatting style used in the Code::Blocks' source.&lt;br /&gt;
&lt;br /&gt;
* '''[[Creating a custom lexer for Code::Blocks editor]]'''&lt;br /&gt;
:How to add support for new syntax lighting schemes.&lt;br /&gt;
&lt;br /&gt;
* '''[[Creating a patch to submit to BerliOS (Patch Tracker)]]'''&lt;br /&gt;
:Creating a diff file and then submitting it to the patch tracker.&lt;br /&gt;
&lt;br /&gt;
* '''[[Unicode Standards]]'''&lt;br /&gt;
:Information about unicode standards and how unicode is handled in Code::Blocks' source code.&lt;br /&gt;
&lt;br /&gt;
* '''[[Various development tips]]'''&lt;br /&gt;
:List of various development tips for Code::Blocks.&lt;br /&gt;
&lt;br /&gt;
* '''[[Scripting Code::Blocks]]'''&lt;br /&gt;
:Information about scripting Code::Blocks with [http://www.squirrel-lang.org/ Squirrel].&lt;br /&gt;
&lt;br /&gt;
* '''[[A short overview about Code::Blocks architecture]]'''&lt;br /&gt;
:Information about the architecture of Code::Blocks.&lt;br /&gt;
&lt;br /&gt;
* '''[[Code::Blocks SDK events]]'''&lt;br /&gt;
:Information about the Code::Blocks SDK events and how to work with them.&lt;br /&gt;
&lt;br /&gt;
* '''[[File formats description]]'''&lt;br /&gt;
:Description of the format of each file Code::Blocks produces.&lt;br /&gt;
&lt;br /&gt;
* '''[[Version control]]'''&lt;br /&gt;
:Tips and trick for working with our version control system.&lt;br /&gt;
&lt;br /&gt;
== Plug-In development ==&lt;br /&gt;
&lt;br /&gt;
* [[Creating a simple &amp;quot;Hello World&amp;quot; plugin]]&lt;br /&gt;
* [[Creating a Plug-in which modifies CB's Menus]]&lt;br /&gt;
* [[Creating a plugin that actually does something]]&lt;br /&gt;
* [[Linking the plugin to a Nightly Build]]&lt;br /&gt;
* [[Managing Plug-in Resources]]&lt;br /&gt;
&lt;br /&gt;
* [[Research on doing a Plug-in for embedded help in CB]]&lt;br /&gt;
&lt;br /&gt;
* [[wxSmith extensions]]&lt;br /&gt;
* [[Code::Completion Rewrite]] and [[Code Completion plugin]] and [[Code Completion Design]]&lt;br /&gt;
&lt;br /&gt;
== Scripting ==&lt;br /&gt;
&lt;br /&gt;
Using scripting to extend Code::Blocks' functionality&lt;br /&gt;
&lt;br /&gt;
* [[Wizard scripts|Creating a new project wizard]]&lt;br /&gt;
&lt;br /&gt;
== Developing C::B with Git ==&lt;br /&gt;
For devs who want to use Git to develop C::B, here are some steps to follow, especially you need to correctly set the SVN and GIT properties so that you can make your local git commits back to the official SVN repo. See [/index.php/topic,16096.msg128152.html#msg128152 Re: Read-only Git, SVN Repo for Code::Blocks], also stahta01 has a nice instruction about how to use git, see [/index.php/topic,19533.msg133422.html#msg133422 Development How to use a Code::Blocks Git Repo].&lt;br /&gt;
&lt;br /&gt;
If you want to create a SVN style patch from git, see: [/index.php/topic,19391.msg132530.html#msg132530 This forum post].&lt;br /&gt;
&lt;br /&gt;
== Debugging C::B ==&lt;br /&gt;
&lt;br /&gt;
* When C::B crashed, it will generate a call-stack file &amp;quot;codeblocks.RPT&amp;quot;, at the crash point, this is a text file, you can open it, if your C::B contains the debug information, it will have file and line information about each call. If it is a stripped version, but you have the debug version of C::B, you can try to run the [/index.php/topic,13129.msg88254.html#msg88254 Debugging made easier], this is a address2line UI interface works under Windows.&lt;br /&gt;
* You can debug C::B under C::B (with the debugger plugin), also, you can link C::B to the debug version of wxWidgets library, so you can see whether a bug is located in C::B source code or wxWidgets' source code, see here: [/index.php/topic,17316.msg130972.html#msg130972 patch to build C::B against wx debug library]&lt;/div&gt;</summary>
		<author><name>Alpha</name></author>
	</entry>
	<entry>
		<id>https://wiki.codeblocks.org/index.php?title=Creating_a_patch_to_submit_(Patch_Tracker)&amp;diff=7767</id>
		<title>Creating a patch to submit (Patch Tracker)</title>
		<link rel="alternate" type="text/html" href="https://wiki.codeblocks.org/index.php?title=Creating_a_patch_to_submit_(Patch_Tracker)&amp;diff=7767"/>
		<updated>2014-10-26T19:50:48Z</updated>

		<summary type="html">&lt;p&gt;Alpha: Note about git-svn use.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Developer Documentation]]&lt;br /&gt;
== Introduction ==&lt;br /&gt;
You want to contribute to Code::Blocks? - Thank you! That is really appreciated. Hence you can help us even more if you read the following paragraphs carefully.&lt;br /&gt;
&lt;br /&gt;
First of all please make sure the feature you are implementing is not already implemented in the &amp;quot;nightly builds&amp;quot; of Code::Blocks ([/index.php/board,20.0.html /index.php/board,20.0.html]). Furthermore browse through the list of available patches at the Code::Blocks project page at SourceForge (see section &amp;quot;Patch submission&amp;quot; below on how to gain access). If you are unsure, don't hesitate to ask in the forum ([ ]) for advise.&lt;br /&gt;
&lt;br /&gt;
You can make it easier for the developers to integrate your patches if you follow the advices of this page. Patches can be created in different formats. The format that is used by Code::Blocks is called a &amp;quot;unified diff&amp;quot;. Hence 3rd party tools may still create a different patch format although it may be labelled as &amp;quot;unified diff&amp;quot;. To avoid unnecessary incompatibilities the best way to provide a patch is to '''use the Subversion (SVN) diff''' (using the command line tool or a SVN GUI application).&lt;br /&gt;
&lt;br /&gt;
== What is required? ==&lt;br /&gt;
Not too much, you might already have the required tools installed.&lt;br /&gt;
You'll need a subversion client software. You can download a current version for your OS at the Subversion project webpage here: [http://subversion.tigris.org http://subversion.tigris.org]. If you want to apply or test your patches you'll also need either '''svn''' version ≥ 1.7.0 or the '''patch''' program; you can download patch and find more information about it at the [http://www.gnu.org/software/patch/ GNU patch website]. &lt;br /&gt;
&lt;br /&gt;
It is a good idea to apply your code to the most up-to-date sources of Code::Blocks as they are available at the SVN repository. You'll find the instructions how to obtain the sources here: [https://www.codeblocks.org/downloads/7 https://www.codeblocks.org/downloads/7]. Once you've created your local sandbox you can start integrating your changes into it. Thus you may modify existing files or add new ones. When you have finished please make sure you've verified your implementation (feature(s)) work properly. Now it's time to create the patch.&lt;br /&gt;
&lt;br /&gt;
== Patch creation ==&lt;br /&gt;
If you have added new files you first have to register them with your sandbox. Thus go into the directory you've added new files and type at the command line:&lt;br /&gt;
: &amp;lt;tt&amp;gt;svn add filename(s)&amp;lt;/tt&amp;gt;&lt;br /&gt;
...whereas &amp;quot;filename(s)&amp;quot; needs to be replaced with the files you've added. Of course if you are not using the command line version of SVN you can easily use the &amp;quot;Add&amp;quot; feature of your prefered SVN GUI. If you've completed adding all your new files to your sandbox you are ready to create the patch.&lt;br /&gt;
&lt;br /&gt;
First of all go to the top-level directory of your sandbox (the first directory that has a hidden &amp;quot;.svn&amp;quot; folder with content). This is done because the patch file generated by the following command is relative to the directory where it's performed. This is the command to create the patch file:&lt;br /&gt;
: &amp;lt;tt&amp;gt;svn diff &amp;gt; my.patch&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can change the name of the patch (''my.patch'' in the example) with a more descriptive name but make sure you leave the file extension &amp;quot;.patch&amp;quot; as this avoids conflicts while submitting the patch. The creation of the ''difference file'' (the patch file) may take some time, please be patient.&lt;br /&gt;
&lt;br /&gt;
Once the patch file is created please make sure it contains content! Otherwise make sure you followed the steps above or ask in the forum ([ ]) for support.&lt;br /&gt;
&lt;br /&gt;
''Note: if the created patch is much larger than expected (it should be similar in size to the amount of code you changed/added) it is likely that extraneous white space changes are being picked up. In this case, please use the following command to create the patch file:''&lt;br /&gt;
: &amp;lt;tt&amp;gt;svn diff -x -w &amp;gt; my.patch&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you are using git or git-svn and sending to someone with an svn setup, the output can be more easily handled with either [/index.php/topic,19391.msg132530.html#msg132530 this script] or one of&lt;br /&gt;
: &amp;lt;tt&amp;gt;git diff --no-prefix &amp;gt; my.patch&amp;lt;/tt&amp;gt;&lt;br /&gt;
: &amp;lt;tt&amp;gt;svn patch my.patch --strip 1&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Patch application and testing ===&lt;br /&gt;
In order to apply a patch you need the patch program ([http://gnuwin32.sourceforge.net/packages/patch.htm Windows] [http://savannah.gnu.org/projects/patch/ Linux]). Make sure you are in the same directory the patch was created and then type the following command:&lt;br /&gt;
: &amp;lt;tt&amp;gt;patch --unified --strip=0 --forward --input=my.patch&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Or, if you are using svn version ≥ 1.7.0, the command:&lt;br /&gt;
: &amp;lt;tt&amp;gt;svn patch my.patch&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This will perform some checks and then will patch your files using the difference information saved in the patch file (''my.patch'' in the example).&lt;br /&gt;
&lt;br /&gt;
'''Important note:''' If you are working under Windows you may have to convert the patch file to dos line-ending format. You can do that using &amp;quot;unix2dos my.patch&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
== Patch submission ==&lt;br /&gt;
By now you are ready to submit your work to the Patch Tracker at [https://sourceforge.net/p/codeblocks/tickets/?source=navbar Tickets] - the developer platform for Code::Blocks. If you haven't done so already, you need to register with Sourceforge to gain the right to submit patches to projects. The membership is free and appreciated. Select the &amp;quot;Tickests&amp;quot; section ([https://sourceforge.net/p/codeblocks/tickets/?source=navbar Tickets]) of the Code::Blocks project page. Click on &amp;quot;Submit A Patch&amp;quot; and fill out the form that appears. For now you only need to select a category for your patch, a '''descriptive''' summary and the patch itself. Make sure you enable the checkbox &amp;quot;Upload Patch&amp;quot; and provide the patch file you've just created. Then you are ready for submission - click on the &amp;quot;Submit patch&amp;quot; button on the bottom of the page.&lt;br /&gt;
&lt;br /&gt;
You should now see the current list of patches with your patch at the top. Please note you can add additional comments or updates to your patch by simply clicking on the patch in the list and fill out the form that appears.&lt;br /&gt;
&lt;br /&gt;
'''Thank you very much for your submission!'''&lt;/div&gt;</summary>
		<author><name>Alpha</name></author>
	</entry>
	<entry>
		<id>https://wiki.codeblocks.org/index.php?title=Compiler_options_file&amp;diff=7756</id>
		<title>Compiler options file</title>
		<link rel="alternate" type="text/html" href="https://wiki.codeblocks.org/index.php?title=Compiler_options_file&amp;diff=7756"/>
		<updated>2014-06-24T23:59:29Z</updated>

		<summary type="html">&lt;p&gt;Alpha: Add proposed updates for the compiler options file format to take advantage of wxPropGrid&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Code::Blocks Documentation]]&lt;br /&gt;
[[Category:Developer Documentation]]&lt;br /&gt;
Format for storing compiler options in editable XML.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;CodeBlocks_compiler_options extends=&amp;quot;gcc&amp;quot;&amp;gt;&lt;br /&gt;
[...]&lt;br /&gt;
&amp;lt;/CodeBlocks_compiler_options&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
I am a Code::Blocks compiler options file.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;extends=&amp;quot;&amp;lt;/tt&amp;gt;&amp;lt;id&amp;gt;&amp;lt;tt&amp;gt;&amp;quot;&amp;lt;/tt&amp;gt; (optional)&lt;br /&gt;
* Load the corresponding &amp;lt;tt&amp;gt;options_&amp;lt;/tt&amp;gt;&amp;lt;id&amp;gt;&amp;lt;tt&amp;gt;.xml&amp;lt;/tt&amp;gt; file first (use if this compiler is almost the same, with only a few altered programs or added switches, for example).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;if platform=&amp;quot;windows&amp;quot;&amp;gt;&lt;br /&gt;
[...]&lt;br /&gt;
&amp;lt;/if&amp;gt;&lt;br /&gt;
&amp;lt;else&amp;gt;&lt;br /&gt;
[...]&lt;br /&gt;
&amp;lt;/else&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Standard &amp;lt;tt&amp;gt;if&amp;lt;/tt&amp;gt; statement; contents of &amp;lt;tt&amp;gt;if&amp;lt;/tt&amp;gt; block is evaluated if the &amp;lt;tt&amp;gt;if&amp;lt;/tt&amp;gt; statement is true, otherwise the &amp;lt;tt&amp;gt;else&amp;lt;/tt&amp;gt; block is evaluated (the &amp;lt;tt&amp;gt;else&amp;lt;/tt&amp;gt; block is optional). Nesting is allowed.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;platform=&amp;quot;&amp;lt;/tt&amp;gt;&amp;lt;os&amp;gt;&amp;lt;tt&amp;gt;&amp;quot;&amp;lt;/tt&amp;gt;. &amp;lt;os&amp;gt; is one of:&lt;br /&gt;
* &amp;lt;tt&amp;gt;windows&lt;br /&gt;
* macosx&lt;br /&gt;
* linux&lt;br /&gt;
* freebsd&lt;br /&gt;
* netbsd&lt;br /&gt;
* openbsd&lt;br /&gt;
* darwin&lt;br /&gt;
* solaris&lt;br /&gt;
* unix&amp;lt;/tt&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;if exec=&amp;quot;bison -h&amp;quot;&amp;gt;&lt;br /&gt;
[...]&lt;br /&gt;
&amp;lt;/if&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
True if the the command &amp;lt;tt&amp;gt;exec&amp;lt;/tt&amp;gt; can be run.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;if exec=&amp;quot;C -dumpversion&amp;quot;&lt;br /&gt;
    regex=&amp;quot;^4\.[3-9]|^[5-9]\.[0-9]&amp;quot;&lt;br /&gt;
    default=&amp;quot;true&amp;quot;&amp;gt;&lt;br /&gt;
[...]&lt;br /&gt;
&amp;lt;/if&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
If the text before the first space in &amp;lt;tt&amp;gt;exec&amp;lt;/tt&amp;gt; is one of:&lt;br /&gt;
* &amp;lt;tt&amp;gt;C&lt;br /&gt;
* CPP&lt;br /&gt;
* LD&lt;br /&gt;
* LIB&lt;br /&gt;
* WINDRES&lt;br /&gt;
* MAKE&amp;lt;/tt&amp;gt;&lt;br /&gt;
it will be replaced with the name of the corresponding executable.&lt;br /&gt;
&lt;br /&gt;
True if &amp;lt;tt&amp;gt;regex&amp;lt;/tt&amp;gt; matches the command's output (in this case, version number &amp;lt;tt&amp;gt;&amp;gt;=&amp;lt;/tt&amp;gt; 4.3.0).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;default&amp;lt;/tt&amp;gt; is used if the command fails to execute (optional).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;Program name=&amp;quot;C&amp;quot; value=&amp;quot;mingw32-gcc.exe&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Give the name of an executable&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;name=&amp;quot;&amp;lt;/tt&amp;gt;&amp;lt;prog&amp;gt;&amp;lt;tt&amp;gt;&amp;quot;&amp;lt;/tt&amp;gt;.  &amp;lt;prog&amp;gt; is one of:&lt;br /&gt;
* &amp;lt;tt&amp;gt;C&lt;br /&gt;
* CPP&lt;br /&gt;
* LD&lt;br /&gt;
* DBGconfig&lt;br /&gt;
* LIB&lt;br /&gt;
* WINDRES&lt;br /&gt;
* MAKE&lt;br /&gt;
value=&amp;quot;&amp;lt;/tt&amp;gt;&amp;lt;exec&amp;gt;&amp;lt;tt&amp;gt;&amp;quot;&amp;lt;/tt&amp;gt; (actual name of the executable).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;Switch name=&amp;quot;includeDirs&amp;quot; value=&amp;quot;-I&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Switches controlling compiler constants.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;name=&amp;quot;&amp;lt;/tt&amp;gt;&amp;lt;opt&amp;gt;&amp;lt;tt&amp;gt;&amp;quot;&amp;lt;/tt&amp;gt;.  &amp;lt;opt&amp;gt; is one of:&lt;br /&gt;
* &amp;lt;tt&amp;gt;includeDirs&lt;br /&gt;
* libDirs&lt;br /&gt;
* linkLibs&lt;br /&gt;
* defines&lt;br /&gt;
* genericSwitch&lt;br /&gt;
* objectExtension&lt;br /&gt;
* forceFwdSlashes&amp;lt;/tt&amp;gt;. &amp;lt;tt&amp;gt;value&amp;lt;/tt&amp;gt; is one of &amp;lt;tt&amp;gt;true&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;false&lt;br /&gt;
* forceLinkerUseQuotes&amp;lt;/tt&amp;gt;. &amp;lt;tt&amp;gt;value&amp;lt;/tt&amp;gt; is one of &amp;lt;tt&amp;gt;true&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;false&lt;br /&gt;
* forceCompilerUseQuotes&amp;lt;/tt&amp;gt;. &amp;lt;tt&amp;gt;value&amp;lt;/tt&amp;gt; is one of &amp;lt;tt&amp;gt;true&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;false&lt;br /&gt;
* needDependencies&amp;lt;/tt&amp;gt;. &amp;lt;tt&amp;gt;value&amp;lt;/tt&amp;gt; is one of &amp;lt;tt&amp;gt;true&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;false&lt;br /&gt;
* logging&amp;lt;/tt&amp;gt;.  &amp;lt;tt&amp;gt;value&amp;lt;/tt&amp;gt; is one of:&lt;br /&gt;
** &amp;lt;tt&amp;gt;default&amp;lt;/tt&amp;gt; (same as &amp;lt;tt&amp;gt;full&amp;lt;/tt&amp;gt;)&lt;br /&gt;
** &amp;lt;tt&amp;gt;full&lt;br /&gt;
** simple&lt;br /&gt;
** none&lt;br /&gt;
* libPrefix&lt;br /&gt;
* libExtension&lt;br /&gt;
* linkerNeedsLibPrefix&amp;lt;/tt&amp;gt;. &amp;lt;tt&amp;gt;value&amp;lt;/tt&amp;gt; is one of &amp;lt;tt&amp;gt;true&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;false&lt;br /&gt;
* linkerNeedsLibExtension&amp;lt;/tt&amp;gt;. &amp;lt;tt&amp;gt;value&amp;lt;/tt&amp;gt; is one of &amp;lt;tt&amp;gt;true&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;false&lt;br /&gt;
* supportsPCH&amp;lt;/tt&amp;gt;. &amp;lt;tt&amp;gt;value&amp;lt;/tt&amp;gt; is one of &amp;lt;tt&amp;gt;true&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;false&lt;br /&gt;
* PCHExtension&lt;br /&gt;
* UseFlatObjects&amp;lt;/tt&amp;gt;. &amp;lt;tt&amp;gt;value&amp;lt;/tt&amp;gt; is one of &amp;lt;tt&amp;gt;true&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;false&lt;br /&gt;
* UseFullSourcePaths&amp;lt;/tt&amp;gt;. &amp;lt;tt&amp;gt;value&amp;lt;/tt&amp;gt; is one of &amp;lt;tt&amp;gt;true&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;false&lt;br /&gt;
* Use83Paths&amp;lt;/tt&amp;gt;. &amp;lt;tt&amp;gt;value&amp;lt;/tt&amp;gt; is one of &amp;lt;tt&amp;gt;true&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;false&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;Option name=&amp;quot;Profile code when executed&amp;quot;&lt;br /&gt;
        option=&amp;quot;-pg&amp;quot;&lt;br /&gt;
        additionalLibs=&amp;quot;-pg -lgmon&amp;quot;&lt;br /&gt;
        category=&amp;quot;Profiling&amp;quot;&lt;br /&gt;
        checkAgainst=&amp;quot;-O -O1 -O2 -O3 -Os&amp;quot;&lt;br /&gt;
        checkMessage=&amp;quot;You have optimizations enabled. This is Not A Good Thing(tm) when producing debugging symbols...&amp;quot;&lt;br /&gt;
        supersedes=&amp;quot;-s&amp;quot;&lt;br /&gt;
        exclusive=&amp;quot;true&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Definition of a compiler flag.&lt;br /&gt;
* &amp;lt;tt&amp;gt;name&amp;lt;/tt&amp;gt;. Human readable description of the flag.&lt;br /&gt;
* &amp;lt;tt&amp;gt;option&amp;lt;/tt&amp;gt;. Flags to be sent to the compiler (optional).&lt;br /&gt;
* &amp;lt;tt&amp;gt;additionalLibs&amp;lt;/tt&amp;gt;. Flags to be sent to the linker (optional).&lt;br /&gt;
* &amp;lt;tt&amp;gt;category&amp;lt;/tt&amp;gt;. The category this flag is in (optional; defaults to &amp;quot;General&amp;quot;).&lt;br /&gt;
* &amp;lt;tt&amp;gt;checkAgainst&amp;lt;/tt&amp;gt;. Show a warning message if any of these flags are enabled (optional).&lt;br /&gt;
* &amp;lt;tt&amp;gt;checkMessage&amp;lt;/tt&amp;gt;. Warning message to show upon conflict (optional).&lt;br /&gt;
* &amp;lt;tt&amp;gt;superseds&amp;lt;/tt&amp;gt;. Automatically disable the list of superseded flags if this flag is enabled (optional).&lt;br /&gt;
* &amp;lt;tt&amp;gt;exclusive&amp;lt;/tt&amp;gt;. Disable all other flags in this category if this flag is enabled. Is one of &amp;lt;tt&amp;gt;true&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;false&amp;lt;/tt&amp;gt; (optional).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;Category name=&amp;quot;CPU architecture tuning&amp;quot;&lt;br /&gt;
          exclusive=&amp;quot;true&amp;quot;&amp;gt;&lt;br /&gt;
[...]&lt;br /&gt;
&amp;lt;/Category&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;tt&amp;gt;name=&amp;quot;&amp;lt;/tt&amp;gt;&amp;lt;cat&amp;gt;&amp;lt;tt&amp;gt;&amp;quot;&amp;lt;/tt&amp;gt;. Any flags (&amp;lt;code&amp;gt;&amp;lt;Option [...] /&amp;gt;&amp;lt;/code&amp;gt;) contained in here that lack the &amp;lt;tt&amp;gt;category&amp;lt;/tt&amp;gt; attribute will be treated as category &amp;lt;cat&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;exclusive&amp;lt;/tt&amp;gt;. Is one of &amp;lt;tt&amp;gt;true&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;false&amp;lt;/tt&amp;gt;. Any flags (&amp;lt;code&amp;gt;&amp;lt;Option [...] /&amp;gt;&amp;lt;/code&amp;gt;) contained in here that lack the &amp;lt;tt&amp;gt;exclusive&amp;lt;/tt&amp;gt; attribute will be treated as this. (Optional.)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;Common name=&amp;quot;optimization&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Load options from a common file.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;name=&amp;quot;&amp;lt;/tt&amp;gt;&amp;lt;file&amp;gt;&amp;lt;tt&amp;gt;&amp;quot;&amp;lt;/tt&amp;gt;&lt;br /&gt;
* Loads &amp;lt;tt&amp;gt;options_common_&amp;lt;/tt&amp;gt;&amp;lt;file&amp;gt;&amp;lt;tt&amp;gt;.xml&amp;lt;/tt&amp;gt; (file syntax is exactly the same as this file).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;Command name=&amp;quot;CompileObject&amp;quot;&lt;br /&gt;
         value=&amp;quot;$compiler $options $includes -c $file -o $object&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Definitions for forming compiler commands.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;name=&amp;quot;&amp;lt;/tt&amp;gt;&amp;lt;cmd&amp;gt;&amp;lt;tt&amp;gt;&amp;quot;&amp;lt;/tt&amp;gt;. &amp;lt;cmd&amp;gt; is one of:&lt;br /&gt;
* &amp;lt;tt&amp;gt;CompileObject&lt;br /&gt;
* GenDependencies&lt;br /&gt;
* CompileResource&lt;br /&gt;
* LinkExe&lt;br /&gt;
* LinkConsoleExe&lt;br /&gt;
* LinkDynamic&lt;br /&gt;
* LinkStatic&lt;br /&gt;
* LinkNative&amp;lt;/tt&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;Command name=&amp;quot;CompileObject&amp;quot;&lt;br /&gt;
         value=&amp;quot;bison -v -d $file -o $file_dir/$file_name.parser.cc&amp;quot;&lt;br /&gt;
         ext=&amp;quot;y&amp;quot;&lt;br /&gt;
         gen=&amp;quot;$file_dir/$file_name.parser.cc;$file_dir/$file_name.parser.hh&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Additional commands can be added to each category with a file extension filter.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;ext=&amp;quot;&amp;lt;/tt&amp;gt;&amp;lt;exts&amp;gt;&amp;lt;tt&amp;gt;&amp;quot;&amp;lt;/tt&amp;gt;. &amp;lt;exts&amp;gt; is a semicolon separated list of file extensions (without the leading &amp;lt;tt&amp;gt;&amp;quot;.&amp;quot;&amp;lt;/tt&amp;gt; period).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;gen=&amp;quot;&amp;lt;/tt&amp;gt;&amp;lt;files&amp;gt;&amp;lt;tt&amp;gt;&amp;quot;&amp;lt;/tt&amp;gt;. &amp;lt;files&amp;gt; is a semicolon separated list of generated files to be further processed (optional).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;RegEx name=&amp;quot;Info line&amp;quot;&lt;br /&gt;
       type=&amp;quot;info&amp;quot;&lt;br /&gt;
       msg=&amp;quot;1;2;4&amp;quot;&lt;br /&gt;
       file=&amp;quot;2&amp;quot;&lt;br /&gt;
       line=&amp;quot;3&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;![CDATA[(In file) ([][{}() \t#%$~[:alnum:]&amp;amp;_:+/\.-]+):([0-9]+)(\.[0-9]+.*:)*]]&amp;gt;&lt;br /&gt;
&amp;lt;/RegEx&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Definitions for regular expressions to parse compiler output.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;name=&amp;quot;&amp;lt;/tt&amp;gt;&amp;lt;label&amp;gt;&amp;lt;tt&amp;gt;&amp;quot;&amp;lt;/tt&amp;gt;. &amp;lt;label&amp;gt; is the name this regex will be listed as.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;type=&amp;quot;&amp;lt;/tt&amp;gt;&amp;lt;tp&amp;gt;&amp;lt;tt&amp;gt;&amp;quot;&amp;lt;/tt&amp;gt;. &amp;lt;tp&amp;gt; is one of&lt;br /&gt;
* &amp;lt;tt&amp;gt;normal&lt;br /&gt;
* warning&lt;br /&gt;
* error&lt;br /&gt;
* info&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;msg=&amp;quot;&amp;lt;/tt&amp;gt;&amp;lt;nums&amp;gt;&amp;lt;tt&amp;gt;&amp;quot;&amp;lt;/tt&amp;gt;. &amp;lt;nums&amp;gt; is a semicolon separated list of indices (minimum one, maximum three) for the locations of messages within the regex.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;file=&amp;quot;&amp;lt;/tt&amp;gt;&amp;lt;num&amp;gt;&amp;lt;tt&amp;gt;&amp;quot;&amp;lt;/tt&amp;gt;. &amp;lt;num&amp;gt; is the index of the regex which gives the relevant file (optional).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;line=&amp;quot;&amp;lt;/tt&amp;gt;&amp;lt;num&amp;gt;&amp;lt;tt&amp;gt;&amp;quot;&amp;lt;/tt&amp;gt;. &amp;lt;num&amp;gt; is the index of the regex which gives the relevant line number (optional).&lt;br /&gt;
&lt;br /&gt;
The contents is the regex (use of a &amp;lt;tt&amp;gt;CDATA&amp;lt;/tt&amp;gt; section is not required).&lt;br /&gt;
&lt;br /&gt;
==Proposed Updates==&lt;br /&gt;
See: [/index.php/topic,19032.0.html Use wxPropGrid for compiler flags]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot; highlight=&amp;quot;3-5&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;Option name=&amp;quot;Intel Pentium (MMX)&amp;quot;&lt;br /&gt;
        option=&amp;quot;-march=pentium-mmx&amp;quot;&lt;br /&gt;
        type=&amp;quot;string&amp;quot;&lt;br /&gt;
        default=&amp;quot;pentium-mmx&amp;quot;&lt;br /&gt;
        compose=&amp;quot;-march=$(ENTRY)&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
For &amp;lt;tt&amp;gt;type=&amp;quot;string&amp;quot;&amp;lt;/tt&amp;gt;, a free text editor is presented.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;default=&amp;quot;&amp;lt;/tt&amp;gt;&amp;lt;str&amp;gt;&amp;lt;tt&amp;gt;&amp;quot;&amp;lt;/tt&amp;gt;. &amp;lt;str&amp;gt; is the default text for the editor textbox.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;compose=&amp;quot;&amp;lt;/tt&amp;gt;&amp;lt;str&amp;gt;&amp;lt;tt&amp;gt;&amp;quot;&amp;lt;/tt&amp;gt;. &amp;lt;str&amp;gt; is the template for generating the compile command. All occurrences of &amp;lt;tt&amp;gt;$(ENTRY)&amp;lt;/tt&amp;gt; are replaced with the content of the textbox. (Extensions: all occurrences of &amp;lt;tt&amp;gt;$(ENTRY_QUOTE)&amp;lt;/tt&amp;gt; are replaced with the content of the textbox, and quoted/escaped as needed; &amp;lt;tt&amp;gt;$(ENTRY_STRIP)&amp;lt;/tt&amp;gt; is replaced with the textbox content, all whitespace removed.)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot; highlight=&amp;quot;4-10&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;Option name=&amp;quot;Link time optimization&amp;quot;&lt;br /&gt;
        option=&amp;quot;-flto&amp;quot;&lt;br /&gt;
        additionalLibs=&amp;quot;-flto -O2&amp;quot;&lt;br /&gt;
        type=&amp;quot;integer&amp;quot;&lt;br /&gt;
        default=&amp;quot;1&amp;quot;&lt;br /&gt;
        min=&amp;quot;1&amp;quot;&lt;br /&gt;
        max=&amp;quot;16&amp;quot;&lt;br /&gt;
        label=&amp;quot;Parallel link jobs&amp;quot;&lt;br /&gt;
        compose=&amp;quot;-flto&amp;quot;&lt;br /&gt;
        composeLib=&amp;quot;-flto=$(ENTRY) -02&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
For &amp;lt;tt&amp;gt;type=&amp;quot;integer&amp;quot;&amp;lt;/tt&amp;gt;, a spin dial is presented.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;default=&amp;quot;&amp;lt;/tt&amp;gt;&amp;lt;int&amp;gt;&amp;lt;tt&amp;gt;&amp;quot;&amp;lt;/tt&amp;gt;. &amp;lt;int&amp;gt; is the starting value.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;min=&amp;quot;&amp;lt;/tt&amp;gt;&amp;lt;int&amp;gt;&amp;lt;tt&amp;gt;&amp;quot;&amp;lt;/tt&amp;gt;. &amp;lt;int&amp;gt; the minimum allowed value.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;max=&amp;quot;&amp;lt;/tt&amp;gt;&amp;lt;int&amp;gt;&amp;lt;tt&amp;gt;&amp;quot;&amp;lt;/tt&amp;gt;. &amp;lt;int&amp;gt; the maximum allowed value.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;label=&amp;quot;&amp;lt;/tt&amp;gt;&amp;lt;str&amp;gt;&amp;lt;tt&amp;gt;&amp;quot;&amp;lt;/tt&amp;gt;. &amp;lt;str&amp;gt; descriptive information (displayed as a tooltip? or maybe a label next to it?).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;compose=&amp;quot;&amp;lt;/tt&amp;gt;&amp;lt;str&amp;gt;&amp;lt;tt&amp;gt;&amp;quot;&amp;lt;/tt&amp;gt;. &amp;lt;str&amp;gt; is the template for generating the compile command. All occurrences of &amp;lt;tt&amp;gt;$(ENTRY)&amp;lt;/tt&amp;gt; are replaced with the value of the spin control.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;composeLib=&amp;quot;&amp;lt;/tt&amp;gt;&amp;lt;str&amp;gt;&amp;lt;tt&amp;gt;&amp;quot;&amp;lt;/tt&amp;gt;. &amp;lt;str&amp;gt; is the template for generating the link command. All occurrences of &amp;lt;tt&amp;gt;$(ENTRY)&amp;lt;/tt&amp;gt; are replaced with the value of the spin control.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot; highlight=&amp;quot;3&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;Option name=&amp;quot;Intel i386&amp;quot;&lt;br /&gt;
        option=&amp;quot;-march=i386&amp;quot;&lt;br /&gt;
        type=&amp;quot;boolean&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
For &amp;lt;tt&amp;gt;type=&amp;quot;boolean&amp;quot;&amp;lt;/tt&amp;gt;, a standard checkbox is supplied (this is default behavior if no &amp;lt;tt&amp;gt;type&amp;lt;/tt&amp;gt; is specified).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot; highlight=&amp;quot;2,5-7&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;Combo comboId=&amp;quot;architecture&amp;quot;&lt;br /&gt;
       label=&amp;quot;Generate code for:&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;Option name=&amp;quot;Generate code for Intel i386&amp;quot;&lt;br /&gt;
        option=&amp;quot;-march=i386&amp;quot;&lt;br /&gt;
        type=&amp;quot;combo&amp;quot;&lt;br /&gt;
        comboId=&amp;quot;architecture&amp;quot;&lt;br /&gt;
        label=&amp;quot;Intel i386&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;tt&amp;gt;&amp;lt;Combo [...]/&amp;gt;&amp;lt;/tt&amp;gt; defines a combo select box with &amp;lt;tt&amp;gt;label=&amp;quot;&amp;lt;/tt&amp;gt;&amp;lt;str&amp;gt;&amp;lt;tt&amp;gt;&amp;quot;&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
For &amp;lt;tt&amp;gt;type=&amp;quot;combo&amp;quot;&amp;lt;/tt&amp;gt;, an entry is added to a combo select box.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;comboId=&amp;quot;&amp;lt;/tt&amp;gt;&amp;lt;str&amp;gt;&amp;lt;tt&amp;gt;&amp;quot;&amp;lt;/tt&amp;gt;. &amp;lt;str&amp;gt; is the id of the combo box to add this command to.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;label=&amp;quot;&amp;lt;/tt&amp;gt;&amp;lt;str&amp;gt;&amp;lt;tt&amp;gt;&amp;quot;&amp;lt;/tt&amp;gt;. &amp;lt;str&amp;gt; is the text to name this entry in the combo box's list. (If not supplied, &amp;lt;tt&amp;gt;name=&amp;quot;&amp;lt;/tt&amp;gt;&amp;lt;str&amp;gt;&amp;lt;tt&amp;gt;&amp;quot;&amp;lt;/tt&amp;gt; is used instead.)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
All of these proposed changes maintain both forwards and backwards compatibility. The new attributes will be ignored by older versions of Code::Blocks. Any entry which does not contain the required fields for this updated format can be rendered as &amp;lt;tt&amp;gt;type=&amp;quot;boolean&amp;quot;&amp;lt;/tt&amp;gt; to read older files, with no loss of information. [[User:Alpha|Alpha]] 01:59, 25 June 2014 (CEST)&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
* [[Compiler file]]&lt;br /&gt;
* [/index.php/topic,16463.0.html XML based compilers]&lt;/div&gt;</summary>
		<author><name>Alpha</name></author>
	</entry>
	<entry>
		<id>https://wiki.codeblocks.org/index.php?title=WxSmith_tutorial:_Hello_world&amp;diff=7729</id>
		<title>WxSmith tutorial: Hello world</title>
		<link rel="alternate" type="text/html" href="https://wiki.codeblocks.org/index.php?title=WxSmith_tutorial:_Hello_world&amp;diff=7729"/>
		<updated>2014-03-13T19:18:32Z</updated>

		<summary type="html">&lt;p&gt;Alpha: Add link to Ubuntu bug 662077 page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:wxSmith Documentation]]&lt;br /&gt;
= Tutorial 1. &amp;quot;Hello, World!&amp;quot; =&lt;br /&gt;
&lt;br /&gt;
In this first tutorial, we will use wxSmith to put the words &amp;quot;Hello, World!&amp;quot; on the screen. Ever since the appearance of ''The C Programming Language'' in 1978, writing such a program has been the traditional first step in learning nearly every computer language.  &lt;br /&gt;
&lt;br /&gt;
Before we start, you must either compile wxWidgets or download precompiled binaries and header files. These steps are described on the wiki pages mentioned here:&lt;br /&gt;
* Windows users should see the wiki page:[[Compiling wxWidgets 2.8.6 to develop Code::Blocks (MSW)]] or [[Installing Code::Blocks from source on Windows]] or [[WxWindowsQuickRef]]. There are two ways to install the wxWidgets libraries, You can download the wxWidgets source and compile it yourself, or you can download the wxPack from [http://wxpack.sourceforge.net/] and install it. The wxPack contains a pre-compiled wxWidgets library, so you can save a lot of time by that route. &lt;br /&gt;
&lt;br /&gt;
*Ubuntu Linux users can install wxWidgets from the Ubuntu repositories. Be sure to install also '''build-essential''' to get the C++ compiler.&lt;br /&gt;
&lt;br /&gt;
We will assume that you have wxWidgets ready and working with Code::Blocks. You should probably create a directory with a name something like CBProjects for saving your work on these tutorials. Each tutorial will be a separate &amp;quot;project&amp;quot; and will occupy a file in this directory. &lt;br /&gt;
&lt;br /&gt;
After downloading and installing Code::Blocks, double-click its icon on the desktop to start it. Here is the Code::Blocks opening window:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:1a.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Click &amp;quot;Create a New Project&amp;quot; and then find and double-click the wxWidgets Project icon, pointed to by the cursor in the screenshot below. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:wxs_tut01_002.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The next screen is a &amp;quot;Welcome&amp;quot; screen. Unless you just enjoy being welcomed by the program, you will check the box which eliminates it on future startups. &lt;br /&gt;
&lt;br /&gt;
The next screen looks like this:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:wxs_tut01_003.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Select wxWidgets 2.8x and click the &amp;quot;Next &amp;gt;&amp;quot; button at the bottom of the screen. &lt;br /&gt;
&lt;br /&gt;
That brings you to the window where you specify the Project title and folder where you want to save the project.  Other fields are then filled automatically.  I chose “Plain” as the Project title and the other fields then adjusted to look like this:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:1c.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Then click the “Next &amp;gt;” button at the bottom.&lt;br /&gt;
The next screen, shown below, allows you to mark your work with your identity. Fill in what you wish.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:1d.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
That brings up the window for choosing the GUI builder you want to use, wxSmith or FormBuilder. We choose, of course, wxSmith.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:1e.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Click the &amp;quot;Next&amp;quot; button at the bottom. &lt;br /&gt;
&lt;br /&gt;
The next screen specifies what C++ compiler we want to use and whether we want a debug build (with extra code for debugging) or a smaller release build for use by others.  We will go for the GNU CPP compiler and  both build options, to be put in separate subfolders.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:1f.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The final screen of this sort asks whether we want to use the standard, default, configuration or to use Advanced options.  We will take the default.  But, at the bottom, we choose to “Create and use precompiled headers&amp;quot; which speeds up compilations after the first.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:1g.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On the form where we chose the directory for saving the project, we chose a real directory, but that choice may lead to problems when you want to compile your project on other computers. Another choice is to use the '''Global Variable system'''. To open the dialog below or modify or change this global variable, you should click on the Code::Blocks main menu item '''Settings | Global variables'''. That brings up the Global Variables Editor. &lt;br /&gt;
&lt;br /&gt;
When you use it, the location of the wxWidgets library is read from the variable you supply. This means that the location of the wxWidgets directory is not hard-coded inside your project, but is stored inside the global configuration of Code::Blocks. When your project is opened on a different computer, it will use that comoputer's configuration. The easiest option to use this global variable is to leave ''$(#wx)'' which means to use the global variable named ''wx''. This name is reserved for wxWidgets and should be chosen in most cases.&lt;br /&gt;
&lt;br /&gt;
When you use the global variable for the first time, it will ask for the wxWidgets directory. The only thing you need to do here is to enter a valid location in ''base'' field. This is required only for the first time since Code::Blocks will automatically use this setting for other projects you create.&lt;br /&gt;
&lt;br /&gt;
==Overview of the Interactive Development Environment (IDE)==&lt;br /&gt;
&lt;br /&gt;
At the end of this preliminary sequence of forms we come to the Code::Blocks main IDE window. It should look something like this:&lt;br /&gt;
&lt;br /&gt;
[[Image:1h.png]]&lt;br /&gt;
&lt;br /&gt;
In the middle of the right side of the window, under the word “Plainframe.wxs”,  is a panel with two square icons on the left; the one on the left brings up the menu bar editor while the one on the right brings up the status bar editor. We will return to the menu bar editor in the next tutorial. Below this panel and looking like a field of dots is the Editor window, where we will see both the GUI forms which we build and the C++ code we write.  In the lower left corner of the whole window is the Properties/Events window, which will allow us to set properties of the component we are working on or to pick events, such as “OnClick” , to which we need to respond. To show properties, click on the left icon; to show events, click on the right icon marked {} to suggest C++ code.&lt;br /&gt;
  &lt;br /&gt;
Above the Properties/Events window is the Management window with three tabs, Projects, Symbols, and Resources. If all three tabs are not visible, drag the right border of the window to the right to reveal all three. (A “resource” in wxSmith parlance usually means a “form” or &amp;quot;window&amp;quot;.) Above the Management window  is a panel with several small but useful icons to &lt;br /&gt;
*Build the program, or&lt;br /&gt;
*Run it, or &lt;br /&gt;
*Build and run it, or&lt;br /&gt;
*Rebuild it, or &lt;br /&gt;
*Abort it.&amp;lt;br /&amp;gt;&lt;br /&gt;
When you run the cursor over them, the tool tips will tell you which is which. &lt;br /&gt;
 &lt;br /&gt;
Now look back to the Editor window. First of all, note that the window can be configured to use different colors,fonts and font sizes. Click &amp;quot;Settings ...&amp;quot; on the Code::Blocks main menu, and then &amp;quot;Editor&amp;quot;. The screens are more or less self-explanatory.&lt;br /&gt;
&lt;br /&gt;
Now back to the Editor window. Across the top you see three black square called drag handles.  They have been set to cover a space larger than can be seen, but scrolling down reveals the whole field.&lt;br /&gt;
 &lt;br /&gt;
As an experienced programmer, you know there has got to be some code somewhere but you don't see it.  To reveal it, double left click in the field of dots.  Presto, there is the C++ code, and the *PlainMain.cpp tab has appeared above it.  Clicking back on the Plainframe.wxs should return you to the view of the form, still the field of dots. (Again, it is important to have CB 10.04 or later.)  In fact, we still have not seen all of the code.  In particular, you will search in vain for the all-important OnInit() routine that starts the program.  You can find it, however, by clicking Search | Find in Files  and searching for OnInit with the scope of the search set to be “Project files”.  The search finds it, sure enough, in PlainApp.cpp and opens this module in the Editor window.&lt;br /&gt;
 &lt;br /&gt;
We don't need OnInit right now, but we do need to make a change in PlainMain.cpp. Click on it in the bar above the editor, and its code appears in the editor. &lt;br /&gt;
&lt;br /&gt;
Sometimes a program has a lot to do when the user clicks the close icon in the program's title bar, so wxSmith generates a frame for writing the code for those actions but it provides no code. Consequently, if we ran our program just as initially written by wxSmith, we won't be able to close it by just clicking that icon. To fix that inconvenient problem, find the spot in the code with these lines:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
void PlainFrame::OnClose(wxCloseEvent&amp;amp; event)&lt;br /&gt;
{&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Add the call to the Close() function so that the spot looks like this:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
void PlainFrame::OnClose(wxCloseEvent&amp;amp; event)&lt;br /&gt;
{&lt;br /&gt;
    Close();&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
(''I found it had to be Destroy() not Close()   [[User:WardXmodem|WardXmodem]] 04:43, 24 September 2013 (CEST)'')&lt;br /&gt;
&lt;br /&gt;
Remember to make this change immediately whenever you start a new project.&lt;br /&gt;
&lt;br /&gt;
You can now build and run this super-simple program. To do so, you can do any one of three equivalent things:&amp;lt;br /&amp;gt;&lt;br /&gt;
* in the top menu bar, click Build | Build and run.&lt;br /&gt;
* find and click the icon that looks like a right-pointing triangle in front of a cogwheel. Hovering the mouse pointer over it will show the tool tip “Build and run”.&lt;br /&gt;
* tap the F9 key.&lt;br /&gt;
&lt;br /&gt;
If all goes well, you will see a window come up with a menu of two items: “File” and “Help”.  Try the “Help” menu item first.  Then you can use  “File | Quit” or the exit icon on the title bar to exit the program. &lt;br /&gt;
&lt;br /&gt;
''If you are using Ubuntu and get no main menu bar when you run this program, you have fallen victim to [https://bugs.launchpad.net/ubuntu/+source/wxwidgets2.8/+bug/662077 Ubuntu bug 662077]. Beginning with release 10.10, Ubuntu releases have had a bug causing programs built with wxSmith to fail to show their main menu bar. If this bug affects you, you may want to uninstall appmenu-gtk. You do that by clicking Applications | Software Sources, then using the search window to find appmenu-gtk. Clicking on it will allow you to choose to remove it.''&lt;br /&gt;
&lt;br /&gt;
Well, so far we have a program that runs and quits, but it does not yet display &amp;quot;Hello, World!&amp;quot;. That's next.&lt;br /&gt;
&lt;br /&gt;
== Hello, World! ==&lt;br /&gt;
&lt;br /&gt;
We now turn to the classic first program, namely getting the words “Hello, World!” onto the screen. The text could be added directly into the frame, as in GUI designers for a single operating sytem; but we need to learn to use sizers for cross-platform programming. What are sizers? &lt;br /&gt;
&lt;br /&gt;
If you have been working with Java or Qt, you may remember something called Layout managers. The implementation in wxWidgets differs a little but does almost the same thing. &lt;br /&gt;
&lt;br /&gt;
When adding components into windows you must somehow specify their position and size. wxWidgets tries to automate this process, and it uses sizers to do so. They automatically position and size window components, and they can also set the size of the window so that everything fits inside. &lt;br /&gt;
&lt;br /&gt;
Sizers have one big advantage over direct placement of components. When you write cross-platform applications, you cannot assume that fonts, buttons, and so on have the same size on different operating systems. This problem can even occur on the same platform when using different window themes. When you use sizers, you don't have to worry about those problems. All sizing and placement is done automatically. Moreover, sizers can even reposition and resize window components when the main window changes size. &lt;br /&gt;
&lt;br /&gt;
With that background, let's get started. When you look at the wxSmith editor, you'll notice that the area of the window is surrounded by eight black boxes or drag handles. &lt;br /&gt;
&lt;br /&gt;
[[Image:wxs_tut01_009.png]]&lt;br /&gt;
&lt;br /&gt;
These drag handles surround the currently selected item. In our case it's a whole window. Adding new components to the window is simply done by clicking on one of the buttons in the palette at the bottom of the editor and then clicking somewhere on the resource. As you can see here,&lt;br /&gt;
&lt;br /&gt;
[[Image:wxs_tut01_010.png]]&lt;br /&gt;
&lt;br /&gt;
when you keep your mouse cursor over a component in the palette, it will show its name. That feature may help you find components until you become familiar with their icons. &lt;br /&gt;
&lt;br /&gt;
Let's add a new wxPanel component to our window; it is the fourth icon from the left on the standard tab. You will see that when you click the wxPanel item and then move the cursor over the editor, some part of the editor will change color. That's intentional and is used to show where on the window the new item will be added.&lt;br /&gt;
 &lt;br /&gt;
After the wxPanel is in place, you will notice that the background color of the window has changed to light gray. Now our window will look much more like other windows. Note that currently the selection changed to the added panel but since its size is equal to the frame's, it's hard to find out what's really selected. To make sure that wxPanel is selected, click somewhere on the light gray area of our window (Note to Linux users: wxFrame and wxPanel usually have the same background so it may look like nothing has changed; you may ensure that there's a wxPanel by looking into the resource browser). &lt;br /&gt;
&lt;br /&gt;
If you want to see the selection exactly or select items that overlap, you can use the resource browser. To show it, click on the resources tab located in the same place where the project browser is: &lt;br /&gt;
&lt;br /&gt;
[[Image:wxs_tut01_011.png]]&lt;br /&gt;
&lt;br /&gt;
The resource tab consists of two parts. The first is the resource tree which shows the structure of your resources and the second one is the property browser which is common in GUI designers. Inside the resource tree you can find the currently selected item. In our case it is the wxPanel class we added before. The selected item also shows the name of this item: Panel1. This name is basically the variable which can be used to access this component in your code.&lt;br /&gt;
&lt;br /&gt;
We added a new component by selecting the place for it. This is wxSmith's default behavior. However, there is another mode of adding items. In this mode, the new item is added right after you click on the palette's button. The position of the new item is relative to the current selection - just like a cursor in text editors. Basically we can add new items into three different positions relative to the selection:&lt;br /&gt;
* Before the selected widget&lt;br /&gt;
* After the selected widget&lt;br /&gt;
* Into the selected widget.&lt;br /&gt;
This insertion mode can be changed by clicking one of the four &amp;quot;placement&amp;quot; buttons on the right side of the editor:&lt;br /&gt;
&lt;br /&gt;
[[Image:wxs_tut01_012.png]]&lt;br /&gt;
&lt;br /&gt;
The uppermost is the mode we used - &amp;quot;point by mouse&amp;quot;.  The next one means &amp;quot;add into&amp;quot;, followed by &amp;quot;add before&amp;quot;, and the last one means &amp;quot;add after&amp;quot;. The current mode is shown by a red check mark on the button. &lt;br /&gt;
&lt;br /&gt;
Sometimes a few selection modes are disabled because they are not valid for the currently selected item. For example, you cannot add any component into the wxButton component since wxWidgets declares it as one that cannot have child components. Similarly, when the main component (the window) is selected, you won't be able to add anything after it or before it. &lt;br /&gt;
&lt;br /&gt;
Ooops! I said we would use sizers and then forgot all about them! We have to get rid of that wxPanel. Select the panel and then click on the red X button just below the four buttons we have been describing. It looks like this:&lt;br /&gt;
&lt;br /&gt;
[[Image:wxs_tut01_014.png]]&lt;br /&gt;
&lt;br /&gt;
When you click this button, it deletes the current selection, so if the panel didn't disappear, make sure it's selected and click the button again. Now we should have returned to the state at the beginning. &lt;br /&gt;
&lt;br /&gt;
To use sizers, first we have to add a sizer into the main frame and then add the wxPanel into it. &lt;br /&gt;
Sizers are available in the Layout tab on the palette. Switch to it and select wxBoxSizer:&lt;br /&gt;
&lt;br /&gt;
[[Image:wxs_tut01_013.png]]&lt;br /&gt;
&lt;br /&gt;
This sizer tries to position items in one line, either horizontal or vertical. Horizontal is the default, and we will use it. &lt;br /&gt;
&lt;br /&gt;
After adding the sizer, two things have changed. The first is that our window now has a red border. This means that there is a sizer attached to it. When you look into the resource browser, you will also see that the sizer has been added. (You may need to click on the editor area to refresh the selection on the resource browser.) The second change is that the size of the window has shrunk to a small box. That is as it should be because the sizer is responsible for resizing the window to be no bigger than necessary to be visible and accommodate its components, and so far there are no components. &lt;br /&gt;
&lt;br /&gt;
Now let's add our wxPanel. Make sure that you add it into the sizer, not into the main frame. After you do so, you will see something like this:&lt;br /&gt;
&lt;br /&gt;
[[Image:wxs_tut01_015.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Here we can see our panel surrounded by drag boxes. There's also some dark gray border around it (it won't be visible on Linux). Each component added into the sizer can be surrounded by such a border. It's useful when you want to have spacing between components. But in our case we should get rid of it to get a better looking window. To do so, we will have to change a property inside the property browser. Search for border size and change it from 5 to 0:&lt;br /&gt;
&lt;br /&gt;
[[Image:wxs_tut01_016.png]]&lt;br /&gt;
&lt;br /&gt;
Now when we have our panel adjusted, we can finally add the &amp;quot;Hello world&amp;quot; text. Since we will also use sizers to manage items added into wxPanel, we have to repeat the addition of wxBoxSizer into wxPanel. After the sizer is in its place, switch back into the '''Standard''' tab on the palette and add a wxStaticText control:&lt;br /&gt;
&lt;br /&gt;
[[Image:wxs_tut01_017.png]]&lt;br /&gt;
&lt;br /&gt;
With an eye to the future and for practice with adding components, let's add also a button next to the wxStaticText. First, click on wxButton. If you still have the &amp;quot;point by mouse&amp;quot; insertion mode turned on, then when you put the mouse over the wxStaticText component half of that component will be colored in light blue. When the left half of the text is highlighted, the new item will be added before the existing component; and when the right half is highlighted, the new component will be added after the existing one. Let's add the button after the text. Now we should have this content: &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:wxs_tut01_018.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Now let's finally set our &amp;quot;Hello, World!&amp;quot; text. The wxStaticText control which we added before has the text &amp;quot;Label&amp;quot; on it. It is the default text set to all newly created wxStaticText classes. We will change it using the property browser similarly to changing the border size in the wxPanel class. To do so, select the wxStaticText component in our window, then find the Label property in the property browser and change it to &amp;quot;Hello, World!&amp;quot;:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:Wxs_tut01_019.png]]&lt;br /&gt;
&lt;br /&gt;
If you want two or more lines of text on the wxStaticText control. click on the &amp;quot;...&amp;quot; button at the right end of the “Label” line or put &amp;quot;\n&amp;quot; inside the text, as in C formats.&lt;br /&gt;
&lt;br /&gt;
At this point, you can click the &amp;quot;Build and run&amp;quot; and the program should run and show the magic words in the static text control. We could quit in triumph at this point, but the button we have put on the form is still a dud; clicking on it will do nothing. Let's give it a function. &lt;br /&gt;
&lt;br /&gt;
Before going further, we need to deal with a question you may be asking. Why did we, after putting a box sizer onto our main window, proceed to put a wxPanel into it and then put another box sizer onto the panel? What is the point of the panel? Why not just put our two buttons into the first box sizer and eliminate the panel and second box sizer? The answer is that the panel gives us control of the background. We didn't use it, but it is often useful to be able to control it. In fact, these first three steps will be used in structuring every window used in these tutorials. To review, these three steps are: &lt;br /&gt;
* Put a box sizer on the window&lt;br /&gt;
* Put a panel into the first box of the sizer&lt;br /&gt;
* Put a sizer of some sort onto the panel.&lt;br /&gt;
&lt;br /&gt;
== Responding to the Click of a Button ==&lt;br /&gt;
&lt;br /&gt;
Since buttons usually cause something to happen when clicked, let's make our button close the window. The first thing we should do is to change the text shown on the button to tell the user what the button does. It is done just as in the case of the wxStaticText widget. Select the button, find &amp;quot;Label&amp;quot; in the property browser and set it to &amp;quot;Close&amp;quot; (or anything you like). &lt;br /&gt;
&lt;br /&gt;
The second thing is to assign an event handler to this button. Basically, event handlers are functions which are called when some &amp;quot;event&amp;quot; occurs. In our case instead of &amp;quot;event&amp;quot; we could say more descriptively &amp;quot; a click on the button&amp;quot; because that is what we want to process. Like other GUI designers, wxSmith can automatically generate the framework code for such handlers. To bring up that ability, switch the property browser to the event browser by clicking on  the second icon at the top of the property browser. The icon looks like {} to suggest C++ code.&lt;br /&gt;
&lt;br /&gt;
[[Image:1Event_Icon.png]]&lt;br /&gt;
&lt;br /&gt;
After you click on this icon, you will see all events supported by the currently selected component. The wxButton class supports only one event, the EVT_BUTTON event, so only this one is shown. When you click on this event and drop down the combo box, you will see the available options and handlers for this event:&lt;br /&gt;
&lt;br /&gt;
[[Image:Wxs_tut01_021.png]]&lt;br /&gt;
&lt;br /&gt;
If you select '''-- None --''' no handler function will be automatically assigned to this event. (But it may always be set manually.) Selecting '''-- Add new handler --''' will generate a frame for the code of the new handler function. Below are shown other event handlers known to wxSmith which can be assigned to this event. We can see here OnQuit and OnAbout. Those handlers were created by wizard. We could use the OnQuit handler, but to see what happens, let's write our own handler. Select the '''Add new handler''' option. You will be asked for a name for the handler. This name is simply the name of the function which will be called as a reaction to this event. wxSmith will suggest the name OnButton1Click, and we may as well use it.&lt;br /&gt;
&lt;br /&gt;
When you enter a new handler name, wxSmith will generate the framing code of a new handler function by that name, open the program file with the proper source code and put the cursor inside the handler function. (You may need to scroll up or down to show the line with cursor.) This function is a member of the class we have been building, so it can access all of functions in that class, including the one called '''Close()''', which was created by the wizard. So when we want to close our window we just call the '''Close()''' function. The result looks like this:&lt;br /&gt;
&lt;br /&gt;
[[Image:Wxs_tut01_022.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Build and run our project. It should show our &amp;quot;Hello, World!&amp;quot; text and our &amp;quot;Close&amp;quot; button. Click the Close button, and it should close. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This is end of this first tutorial, I hope that you followed it easily and are beginning to feel comfortable with Code::Blocks and wxSmith. &lt;br /&gt;
&lt;br /&gt;
The tutorial was originally written by BYO, the creator of wxSmith. It was revised in March 2012 by Grouch to take account of changes in Code::Blocks, add a few clarifications, and change the accent in the English from youthful Polish to elderly American.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;'''[[WxSmith tutorials|Index]] | [[Wxsmith tutorial: Working with items|Next]]'''&amp;lt;/center&amp;gt;&lt;/div&gt;</summary>
		<author><name>Alpha</name></author>
	</entry>
	<entry>
		<id>https://wiki.codeblocks.org/index.php?title=Creating_a_new_project&amp;diff=7511</id>
		<title>Creating a new project</title>
		<link rel="alternate" type="text/html" href="https://wiki.codeblocks.org/index.php?title=Creating_a_new_project&amp;diff=7511"/>
		<updated>2013-02-12T02:00:30Z</updated>

		<summary type="html">&lt;p&gt;Alpha: Fixed grammar.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category: User Documentation]]&lt;br /&gt;
This page is a guide to many of the beginning (and some intermediate) features of the creation and modification of a Code::Blocks project. If this is your first experience with Code::Blocks, here is a good starting point.&lt;br /&gt;
==The project wizard==&lt;br /&gt;
Launch the Project Wizard through ''File-&amp;gt;New-&amp;gt;Project...'' to start a new project. Here there are many pre-configured templates for various types of projects, including the option to create custom templates. Select '''Console application''', as this is the most common for general purposes, an click '''Go'''.&lt;br /&gt;
&lt;br /&gt;
[[File:ProjectWizard.png]]&lt;br /&gt;
&lt;br /&gt;
''Note: red text instead of black text below any of the icons signifies it is using a customized [[Wizard scripts|wizard script]].''&lt;br /&gt;
&lt;br /&gt;
The console application wizard will appear next. Continue through the menus, selecting '''C++''' when prompted for a language. In the next screen, give the project a name and type or select a destination folder. As seen below, Code::Blocks will generate the remaining entries from these two.&lt;br /&gt;
&lt;br /&gt;
[[File:ConsoleApplication.png]]&lt;br /&gt;
&lt;br /&gt;
Finally, the wizard will ask if this project should use the default compiler (normally GCC) and the two default builds: '''Debug''' and '''Release'''. All of these settings are fine. Press finish and the project will be generated. The main window will turn gray, but that is not a problem, the source file needs only to be opened. In the '''Projects''' tab of the '''Management''' pane on the left expand the folders and double click on the source file '''main.cpp''' to open it in the editor.&lt;br /&gt;
&lt;br /&gt;
[[File:SelectSource.png]]&lt;br /&gt;
&lt;br /&gt;
This file contains the following standard code.&lt;br /&gt;
&lt;br /&gt;
''main.cpp''&lt;br /&gt;
&amp;lt;source lang=&amp;quot;cpp&amp;quot; line&amp;gt;&lt;br /&gt;
#include &amp;lt;iostream&amp;gt;&lt;br /&gt;
&lt;br /&gt;
using namespace std;&lt;br /&gt;
&lt;br /&gt;
int main()&lt;br /&gt;
{&lt;br /&gt;
    cout &amp;lt;&amp;lt; &amp;quot;Hello world!&amp;quot; &amp;lt;&amp;lt; endl;&lt;br /&gt;
    return 0;&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
==Changing file composition==&lt;br /&gt;
A single source file is of little uses in programs of any useful complexity. In order to handle this, Code::Blocks has several very simple methods of adding additional files to the project.&lt;br /&gt;
===Adding a blank file===&lt;br /&gt;
In this example, we will be splitting the function&lt;br /&gt;
&lt;br /&gt;
''main.cpp''&lt;br /&gt;
&amp;lt;source lang=&amp;quot;cpp&amp;quot; line start=&amp;quot;7&amp;quot;&amp;gt;&lt;br /&gt;
    cout &amp;lt;&amp;lt; &amp;quot;Hello world!&amp;quot; &amp;lt;&amp;lt; endl;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
into a separate file.&lt;br /&gt;
&lt;br /&gt;
''Note: it is generally improper programming style to create a function this small; it is done here to give a simple example.''&lt;br /&gt;
&lt;br /&gt;
To add the new file to the project, bring up the file template wizard through either ''File-&amp;gt;New-&amp;gt;File...'' or ''Main Toolbar-&amp;gt;New file (button)-&amp;gt;File...''&lt;br /&gt;
&lt;br /&gt;
[[File:NewFile.png]]&lt;br /&gt;
&lt;br /&gt;
Select '''C/C++ source''' and click '''Go'''. Continue through the following dialogs very much like the original project creation, selecting '''C++''' when prompted for a language. On the final page, you will be presented with several options. The first box will determine the new filename and location (as noted, the full path is required). You may optionally use the '''...''' button to bring up a file browser window to save the file's location. Checking '''Add file to active project''' will store the filename in the '''Sources''' folder of the '''Projects''' tab of the '''Management''' panel. Checking any of the build targets will alert Code::Blocks that the file should be compiled and linked into the selected target(s). This can be useful if, for example, the file contains debug specific code, as it will allow the inclusion to (or exclusion from) the appropriate build target(s). In this example, however, the hello function is of key importance, and is required in each target, so select all the boxes and click '''Finish''' to generate the file.&lt;br /&gt;
&lt;br /&gt;
[[File:Hello.cpp.png]]&lt;br /&gt;
&lt;br /&gt;
The newly created file should open automatically; if it does not, open it by double clicking on its file in the '''Projects''' tab of the '''Management''' panel. Now add in code for the function '''main.cpp''' will call.&lt;br /&gt;
&lt;br /&gt;
''hello.cpp''&lt;br /&gt;
&amp;lt;source lang=&amp;quot;cpp&amp;quot; line&amp;gt;&lt;br /&gt;
#include &amp;lt;iostream&amp;gt;&lt;br /&gt;
&lt;br /&gt;
using namespace std;&lt;br /&gt;
&lt;br /&gt;
void hello()&lt;br /&gt;
{&lt;br /&gt;
    cout &amp;lt;&amp;lt; &amp;quot;Hello world!&amp;quot; &amp;lt;&amp;lt; endl;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
===Adding a pre-existing file===&lt;br /&gt;
Now that the &amp;lt;code&amp;gt;hello()&amp;lt;/code&amp;gt; function is in a separate file, the function must be declared for '''main.cpp''' to use it. Launch a plain text editor (for example Notepad or Gedit), and add the following code.&lt;br /&gt;
&lt;br /&gt;
''hello.h''&lt;br /&gt;
&amp;lt;source lang=&amp;quot;cpp&amp;quot; line&amp;gt;&lt;br /&gt;
#ifndef HELLO_H_INCLUDED&lt;br /&gt;
#define HELLO_H_INCLUDED&lt;br /&gt;
&lt;br /&gt;
void hello();&lt;br /&gt;
&lt;br /&gt;
#endif // HELLO_H_INCLUDED&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Save this file as a header ('''hello.h''') in the same directory as the other source files in this project. Back in Code::Blocks, click ''Project-&amp;gt;Add files...'' to open a file browser. Here you may select one or multiple files (using combinations of ''Ctrl'' and ''Shift''). (The option ''Project-&amp;gt;Add files recursively...'' will search through all the subdirectories in the given folder, selecting the relevant files for inclusion.)  Select '''hello.h''', and click '''Open''' to bring up a dialog requesting to which build targets the file(s) should belong. For this example, select both targets.&lt;br /&gt;
&lt;br /&gt;
[[File:TargetBelonging.png]]&lt;br /&gt;
&lt;br /&gt;
''Note: if the current project has only one build target, this dialog will be skipped.''&lt;br /&gt;
&lt;br /&gt;
Returning to the main source ('''main.cpp''') include the header file and replace the &amp;lt;code&amp;gt;cout&amp;lt;/code&amp;gt; function to match the new setup of the project.&lt;br /&gt;
&lt;br /&gt;
''main.cpp''&lt;br /&gt;
&amp;lt;source lang=&amp;quot;cpp&amp;quot; line&amp;gt;&lt;br /&gt;
#include &amp;quot;hello.h&amp;quot;&lt;br /&gt;
&lt;br /&gt;
int main()&lt;br /&gt;
{&lt;br /&gt;
    hello();&lt;br /&gt;
    return 0;&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
Press ''Ctrl-F9'', ''Build-&amp;gt;Build'', or ''Compiler Toolbar-&amp;gt;Build (button - the gear)'' to compile the project. If the following output is generated in the build log (in the bottom panel) then all steps were followed correctly.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;tt&amp;gt;-------------- Build: Debug in HelloWorld ---------------&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Compiling: main.cpp&amp;lt;br&amp;gt;&lt;br /&gt;
Compiling: hello.cpp&amp;lt;br&amp;gt;&lt;br /&gt;
Linking console executable: bin\Debug\HelloWorld.exe&amp;lt;br&amp;gt;&lt;br /&gt;
Output size is 923.25 KB&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;''Process terminated with status 0 (0 minutes, 0 seconds)''&amp;lt;br&amp;gt;&lt;br /&gt;
''0 errors, 0 warnings (0 minutes, 0 seconds)''&amp;lt;/span&amp;gt;&amp;lt;/tt&amp;gt;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The executable may now be run by either clicking the ''Run'' button or hitting ''Ctrl-F10''.&lt;br /&gt;
&lt;br /&gt;
''Note: the option ''F9'' (for build and run) combines these commands, and may be more useful in some situations.''&lt;br /&gt;
&lt;br /&gt;
See [[the build process of Code::Blocks]] for what occurs behind the scenes during a compile.&lt;br /&gt;
===Removing a file===&lt;br /&gt;
Using the above steps, add a new C++ source file, '''useless.cpp''', to the project. Removing this unneeded file from the project is straightforward. Simply right-click on '''useless.cpp''' in the '''Projects''' tab of the '''Management''' pane and select '''Remove file from project'''.&lt;br /&gt;
&lt;br /&gt;
[[File:RemoveFile.png]]&lt;br /&gt;
&lt;br /&gt;
''Note: removing a file from a project does '''not''' physically delete it; Code::Blocks only removes it from the project management.''&lt;br /&gt;
&lt;br /&gt;
==Modifying build options==&lt;br /&gt;
Build targets have come up several times so far. Changing between the two default generated ones - '''Debug''' and '''Release''' - can simply be done through the drop-down list on the '''Compiler Toolbar'''. Each of these targets has the ability to be a different type (for example: static library; console application), contain a different set of source files, custom variables, different build flags (for example: debug symbols ''-p''; size optimization ''-Os''; link time optimization ''-flto''), and several other options.&lt;br /&gt;
&lt;br /&gt;
[[File:TargetSelect.png]]&lt;br /&gt;
&lt;br /&gt;
Open ''Project-&amp;gt;Properties...'' to access the main properties of the active project, '''HelloWorld'''. Most of the settings on the first tab, '''Project settings''', are rarely changed. '''Title:''' allows the name of the project to be changed. If '''Platforms:''' is changed to something other than its default '''All''', Code:Blocks will only allow the project to build on the selected targets. This is useful if, for example, the source code contains Windows API, and would therefore be invalid anywhere but Windows (or any other operating system specific situations). The '''Makefile:''' options are used only if the project should use a makefile instead of Code::Blocks' internal build system (see [[Code::Blocks and Makefiles]] for further details).&lt;br /&gt;
===Adding a new build target===&lt;br /&gt;
Switch to the '''Build targets''' tab. Click '''Add''' to create a new build target and name it '''Release Small'''. The highlight in the left hand column should automatically switch to the new target (if not, click on it to change the focus). As the default setting for '''Type:''' -  &amp;quot;GUI application&amp;quot; - is incorrect for the '''HelloWorld''' program, change it to &amp;quot;Console application&amp;quot; via the drop-down list. The output filename '''HelloWorld.exe''' is fine except in that it will cause the executable to be output in the main directory. Add the path &amp;quot;bin\ReleaseSmall\&amp;quot; (Windows) or &amp;quot;bin/ReleaseSmall/&amp;quot; (Linux) in front of it to change the directory (it is a relative path from the root of the project). The '''Execution working dir:''' refers to where the program will be executed when '''Run''' or '''Build and run''' are selected. The default setting &amp;quot;.&amp;quot; is fine (it refers to the project's directory). The '''Objects output dir:''' needs to be changed to &amp;quot;obj\ReleaseSmall\&amp;quot; (Windows) or &amp;quot;obj/ReleaseSmall/&amp;quot; (Linux) in order to be consistent with the remainder of the project. The '''Build target files:''' currently has nothing selected. This is a problem, as nothing will be compiled if this target is built. Check all the boxes.&lt;br /&gt;
&lt;br /&gt;
[[File:TargetOptions.png]]&lt;br /&gt;
&lt;br /&gt;
The next step is to change the target's settings. Click '''Build options...''' to access the settings. The first tab the comes up has a series of compiler flags accessible through check boxes. Select &amp;quot;Strip all symbols from binary&amp;quot; and &amp;quot;Optimize generated code for size&amp;quot;. The flags here contain many of the more common options, however, custom arguments may be passed. Switch to the '''Other options''' sub-tab and add the following switches.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;-fno-rtti&amp;lt;br&amp;gt;&lt;br /&gt;
-fno-exceptions&amp;lt;br&amp;gt;&lt;br /&gt;
-ffunction-sections&amp;lt;br&amp;gt;&lt;br /&gt;
-fdata-sections&amp;lt;br&amp;gt;&lt;br /&gt;
-flto&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now switch to the '''Linker settings''' tab. The '''Link libraries:''' box provides a spot to add various libraries (for example, ''wxmsw28u'' for the Windows Unicode version of the [[Compiling wxWidgets 2.8.6 to develop Code::Blocks (MSW)|wxWidgets]] monolithic dll). This program does not require any such libraries. The custom switches from the previous step require their link-time counterparts. Add&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;-flto&amp;lt;br&amp;gt;&lt;br /&gt;
-Os&amp;lt;br&amp;gt;&lt;br /&gt;
-Wl,--gc-sections&amp;lt;br&amp;gt;&lt;br /&gt;
-shared-libgcc&amp;lt;br&amp;gt;&lt;br /&gt;
-shared-libstdc++&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
to the '''Other linker options:''' tab. (For further details on what these switches do, see the GCC documentation on [http://gcc.gnu.org/onlinedocs/gcc-4.5.3/gcc/Optimize-Options.html optimization options] and [http://gcc.gnu.org/onlinedocs/gcc-4.5.3/gcc/Link-Options.html linker options].)&lt;br /&gt;
&lt;br /&gt;
===Virtual Targets===&lt;br /&gt;
Click '''OK''' to accept these changes and return to the previous dialog. Now that there are two release builds, it will take two separate runs of '''Build''' or '''Build and run''' to compile both. Fortunately, Code::Blocks provides the option to chain multiple builds together. Click '''Virtual targets...''', then '''Add'''. Name the virtual target '''Releases''' and click '''OK'''. In the right-hand '''Build targets contained''' box, select both '''Release''' and '''Release small'''. Close out of this box and hit '''OK''' on the main window.&lt;br /&gt;
&lt;br /&gt;
[[File:VirtualTargets.png]]&lt;br /&gt;
&lt;br /&gt;
The virtual target '''Releases''' will now be available from the '''Compiler Toolbar'''; building this should result in the following output.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt;tt&amp;gt;-------------- Build: Release in HelloWorld ---------------&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Compiling: main.cpp&amp;lt;br&amp;gt;&lt;br /&gt;
Compiling: hello.cpp&amp;lt;br&amp;gt;&lt;br /&gt;
Linking console executable: bin\Release\HelloWorld.exe&amp;lt;br&amp;gt;&lt;br /&gt;
Output size is 457.50 KB&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;nowiki&amp;gt;&amp;lt;/nowiki&amp;gt;-------------- Build: Release Small in HelloWorld ---------------&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Compiling: main.cpp&amp;lt;br&amp;gt;&lt;br /&gt;
Compiling: hello.cpp&amp;lt;br&amp;gt;&lt;br /&gt;
Linking console executable: bin\ReleaseSmall\HelloWorld.exe&amp;lt;br&amp;gt;&lt;br /&gt;
Output size is 8.00 KB&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;''Process terminated with status 0 (0 minutes, 1 seconds)''&amp;lt;br&amp;gt;&lt;br /&gt;
''0 errors, 0 warnings (0 minutes, 1 seconds)''&amp;lt;/span&amp;gt;&amp;lt;/tt&amp;gt;&amp;lt;/small&amp;gt;&lt;/div&gt;</summary>
		<author><name>Alpha</name></author>
	</entry>
	<entry>
		<id>https://wiki.codeblocks.org/index.php?title=Code::Blocks_Plugins&amp;diff=7456</id>
		<title>Code::Blocks Plugins</title>
		<link rel="alternate" type="text/html" href="https://wiki.codeblocks.org/index.php?title=Code::Blocks_Plugins&amp;diff=7456"/>
		<updated>2012-12-28T15:56:38Z</updated>

		<summary type="html">&lt;p&gt;Alpha: Added new plugins (todo: write the plugin pages).&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category: User Documentation]]&lt;br /&gt;
== General ==&lt;br /&gt;
&lt;br /&gt;
Code::Blocks' features can be extend by using '''plugins''', most of them listed on this page. There are generally three types of plugins:&lt;br /&gt;
# Core plugins - developed and maintained by the core C::B team.&lt;br /&gt;
# Contrib plugins - developed and maintained by the community and proven to be very valuable. So they are integrated into the C::B SVN.&lt;br /&gt;
# 3rd party plugins - developed and maintained by the community but not (yet?) in the C::B repository. Theses plugins often have their own repository or are being posted (including the source code) in the forums.&lt;br /&gt;
&lt;br /&gt;
'''If you are looking for plugins:'''&lt;br /&gt;
# Look in the official release. Notice that the installer / package manager might require you to enable some of the plugins specifically. So READ carefully.&lt;br /&gt;
# Search the forums for announcements, especially the forums at [/index.php/board,14.0.html].&lt;br /&gt;
# There might be information on the WiKi concerning other plugins on this page and '''[[Announcement_for_plugins/patches|here]]'''.&lt;br /&gt;
&lt;br /&gt;
For Windows users, the default behavior of the current installer (10.05) does '''not''' install contrib plugins. You need to manually check the &amp;quot;contrib plugin&amp;quot; checkbox when asked for selected components to install. There is no way to install them manually afterwards.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''If you are developing plugins:'''&lt;br /&gt;
Surely you can work with plugin as you like, but here are some suggestions:&lt;br /&gt;
* Announce them in the plugin development board in the forums - including the (initial) source code at [/index.php/board,14.0.html].&lt;br /&gt;
&lt;br /&gt;
OR&lt;br /&gt;
&lt;br /&gt;
* Setup your own webpage (or use a file sharing platform) and post the link to the sources/binaries/svn access in the plugin development board in the forums at [/index.php/board,14.0.html].&lt;br /&gt;
&lt;br /&gt;
OR&lt;br /&gt;
&lt;br /&gt;
* Setup a repository, probably at BerliOS or SourceForge, post the link to the sources/binaries/svn access in the plugin development board in the forums at [/index.php/board,14.0.html]. Notice: This is very convenient as attachments in our forum might be deleted from time to time. So it is not safe to post source code in the forums.&lt;br /&gt;
&lt;br /&gt;
THEN&lt;br /&gt;
&lt;br /&gt;
# Enter the plugins description on this page.&lt;br /&gt;
# Announce the plugin '''[[Announcement_for_plugins/patches|here]]''' using '''[[Template_for_plugin_announcement|this]]''' template.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Core Plugins ==&lt;br /&gt;
&lt;br /&gt;
The core plugins are installed by default and offer the basic functions of Code::Blocks. The core plugins are maintained / developed by the official development team.&lt;br /&gt;
&lt;br /&gt;
'''[[Abbreviations plugin|Abbreviations]]'''&lt;br /&gt;
:Code::Blocks AutoComplete plugin.&lt;br /&gt;
&lt;br /&gt;
'''[[Autosave plugin|Autosave]]'''&lt;br /&gt;
&lt;br /&gt;
:Saves project files between intervals.&lt;br /&gt;
&lt;br /&gt;
'''[[Class Wizard plugin|Class Wizard]]'''&lt;br /&gt;
&lt;br /&gt;
:Provides wizard for creating new classes.&lt;br /&gt;
&lt;br /&gt;
'''[[Code Completion plugin|Code Completion]]'''&lt;br /&gt;
&lt;br /&gt;
:Provides code completion functionality and class browser.&lt;br /&gt;
&lt;br /&gt;
'''[[Compiler plugin|Compiler]]'''&lt;br /&gt;
&lt;br /&gt;
:Provides support for various compilers in one interface.&lt;br /&gt;
&lt;br /&gt;
'''[[Debugger plugin|Debugger]]'''&lt;br /&gt;
&lt;br /&gt;
:Provides support for various debuggers in one interface.&lt;br /&gt;
&lt;br /&gt;
'''[[File Extension Handler plugin|File Extensions Handler]]'''&lt;br /&gt;
&lt;br /&gt;
:Adds extra file extension handlers.&lt;br /&gt;
&lt;br /&gt;
'''[[Header Guard plugin|Header Guard]]''' ''(Disabled by default.)''&lt;br /&gt;
&lt;br /&gt;
:Create header guards (if needed) on file save.&lt;br /&gt;
&lt;br /&gt;
'''[[LogHacker plugin|LogHacker]]''' ''(Disabled by default.)''&lt;br /&gt;
&lt;br /&gt;
:Manipulate loggers.&lt;br /&gt;
&lt;br /&gt;
'''[[ModPoller plugin|ModPoller]]''' ''(Disabled by default.)''&lt;br /&gt;
&lt;br /&gt;
:Frequently check for external modification.&lt;br /&gt;
&lt;br /&gt;
'''[[Open Files List plugin|Open Files List]]'''&lt;br /&gt;
&lt;br /&gt;
:Manages a list of all opened files (editors).&lt;br /&gt;
&lt;br /&gt;
'''[[Projects Importer plugin|Projects Importer]]'''&lt;br /&gt;
&lt;br /&gt;
:Imports projects from other IDE's, e.g. MS Visual Studio and DevC++.&lt;br /&gt;
&lt;br /&gt;
'''[[Scripted Wizard plugin|Scripted Wizard]]'''&lt;br /&gt;
&lt;br /&gt;
:Provides scripted wizard functionality.&lt;br /&gt;
&lt;br /&gt;
'''[[Source Code Formatter plugin|Source Code Formatter]]''' (AStyle)&lt;br /&gt;
&lt;br /&gt;
:Formats source code files with specific style.&lt;br /&gt;
&lt;br /&gt;
'''[[Tidycmt plugin|Tidycmt]]''' ''(Disabled by default.)''&lt;br /&gt;
&lt;br /&gt;
:Formats comments on file save.&lt;br /&gt;
&lt;br /&gt;
'''[[To-Do List plugin|To-Do List]]'''&lt;br /&gt;
&lt;br /&gt;
:Adds to-do items to source code.&lt;br /&gt;
&lt;br /&gt;
'''[[WinXP Look'n'Feel plugin|WinXP Look'n'Feel]]'''&lt;br /&gt;
&lt;br /&gt;
:Creates manifest file which enables the version 6.0 of the Common Controls on Windows XP.&lt;br /&gt;
&lt;br /&gt;
== Contrib Plugins ==&lt;br /&gt;
&lt;br /&gt;
The user-''contrib''uted plugins are not installed by default and offer extended functionality for Code::Blocks. The contrib plugins are maintained / developed by third-party developers.&lt;br /&gt;
&lt;br /&gt;
'''[[Aligner plugin|Aligner]]'''&lt;br /&gt;
&lt;br /&gt;
:Code alignment.&lt;br /&gt;
&lt;br /&gt;
'''[[AutoVersioning plugin|Auto Versioning]]'''&lt;br /&gt;
&lt;br /&gt;
:Helps you keep track of your project version and status.&lt;br /&gt;
&lt;br /&gt;
'''[[Browse Tracker plugin|Browse Tracker]]'''&lt;br /&gt;
&lt;br /&gt;
:Browse to previous source positions.&lt;br /&gt;
&lt;br /&gt;
'''[[C::B Games plugin|C::B Games]]'''&lt;br /&gt;
&lt;br /&gt;
:Games in a integrated development environment? You bet.&lt;br /&gt;
&lt;br /&gt;
'''[[CCCC plugin|CCCC]]'''&lt;br /&gt;
&lt;br /&gt;
:Integrates CCCC tool for measurement of source code metrics (http://sourceforge.net/projects/cccc/) into Code::Blocks.&lt;br /&gt;
&lt;br /&gt;
'''[[Code Profiler plugin|Code Profiler]]'''&lt;br /&gt;
&lt;br /&gt;
:Provides graphical interface to GNU GProf profiler.&lt;br /&gt;
&lt;br /&gt;
'''[[Code Snippets plugin|Code Snippets]]'''&lt;br /&gt;
&lt;br /&gt;
:Manages small pieces of code (i.e. snippets).&lt;br /&gt;
&lt;br /&gt;
'''[[Code Statistics plugin|Code Statistics]]'''&lt;br /&gt;
&lt;br /&gt;
:Shows various statistics from source code files.&lt;br /&gt;
&lt;br /&gt;
'''[[Copy Strings to Clipboard plugin|Copy Strings to Clipboard]]'''&lt;br /&gt;
&lt;br /&gt;
:Copies literal strings from the current editor to clipboard.&lt;br /&gt;
&lt;br /&gt;
'''[[CppCheck plugin|CppCheck]]'''&lt;br /&gt;
&lt;br /&gt;
:Integrates the static code analyzer Cppcheck into Code::Blocks.&lt;br /&gt;
&lt;br /&gt;
'''[[Cscope plugin|Cscope]]'''&lt;br /&gt;
&lt;br /&gt;
:Integrates Cscope (http://cscope.sourceforge.net/) into Code::Blocks.&lt;br /&gt;
&lt;br /&gt;
'''[[DevPak Installer plugin|DevPak Installer]]'''&lt;br /&gt;
&lt;br /&gt;
:Installs and updates DevC++ DevPaks.&lt;br /&gt;
&lt;br /&gt;
'''[[DoxyBlocks plugin|DoxyBlocks]]'''&lt;br /&gt;
&lt;br /&gt;
:This plugin provides doxygen integration for Code::Blocks.&lt;br /&gt;
&lt;br /&gt;
'''[[DragScroll plugin|DragScroll]]'''&lt;br /&gt;
&lt;br /&gt;
:Enables dragging and scrolling with mouse.&lt;br /&gt;
&lt;br /&gt;
'''[[EditorConfig plugin|EditorConfig]]'''&lt;br /&gt;
&lt;br /&gt;
:This plugin implements the http://EditorConfig.org/ file format.&lt;br /&gt;
&lt;br /&gt;
'''[[Editor Tweaks plugin|Editor Tweaks]]'''&lt;br /&gt;
&lt;br /&gt;
:This plugin provides some additional tweaks for Code::Blocks editor.&lt;br /&gt;
&lt;br /&gt;
'''[[Environment Variables plugin|Environment Variables]]'''&lt;br /&gt;
&lt;br /&gt;
:Sets environment variables within the focus of Code::Blocks.&lt;br /&gt;
&lt;br /&gt;
'''[[File Manager plugin|File Manager]]'''&lt;br /&gt;
&lt;br /&gt;
:This plugin provides a simple file manager as a tab in the Code::Blocks management pane.&lt;br /&gt;
&lt;br /&gt;
'''[[Header Fixup plugin|Header Fixup]]'''&lt;br /&gt;
&lt;br /&gt;
:Adds missing includes/forward declarations to C++ source files.&lt;br /&gt;
&lt;br /&gt;
'''[[Help plugin|Help]]'''&lt;br /&gt;
&lt;br /&gt;
:Integrates third-party help files to the interface.&lt;br /&gt;
&lt;br /&gt;
'''[[HexEditor plugin|HexEditor]]'''&lt;br /&gt;
&lt;br /&gt;
:Opens files in a Code::Blocks integrated HexEditor.&lt;br /&gt;
&lt;br /&gt;
'''[[Incremental Search plugin|Incremental Search]]'''&lt;br /&gt;
&lt;br /&gt;
:Searches and highlights a marked text incrementally within the open editor.&lt;br /&gt;
&lt;br /&gt;
'''[[Keyboard Shortcuts plugin|Keyboard Shortcuts]]'''&lt;br /&gt;
&lt;br /&gt;
:Manages menu shortcuts.&lt;br /&gt;
&lt;br /&gt;
'''[[Koders plugin|Koders]]'''&lt;br /&gt;
&lt;br /&gt;
:Queries the Koders webpage for keywords.&lt;br /&gt;
&lt;br /&gt;
'''[[Library finder plugin|Library finder]]'''&lt;br /&gt;
&lt;br /&gt;
:Tool for automatically searching for installed libraries, and adding them to the project.&lt;br /&gt;
&lt;br /&gt;
'''[[NassiShneiderman plugin|NassiShneiderman]]'''&lt;br /&gt;
&lt;br /&gt;
:Allows the creation of Nassi Shneiderman diagrams within Code::Blocks.&lt;br /&gt;
&lt;br /&gt;
'''[[RegEx Testbed plugin|RegEx Testbed]]'''&lt;br /&gt;
&lt;br /&gt;
:Regular expressions testbed.&lt;br /&gt;
&lt;br /&gt;
'''[[ReopenEditor plugin|ReopenEditor]]'''&lt;br /&gt;
&lt;br /&gt;
:Reopen a closed editor via hotkey, menu-item, or from a list.&lt;br /&gt;
&lt;br /&gt;
'''[[SmartIndent plugin|SmartIndent]]'''&lt;br /&gt;
&lt;br /&gt;
:A suite of plugins that supply smart indenting for various languages.&lt;br /&gt;
&lt;br /&gt;
'''[[Source Exporter plugin|Source Exporter]]'''&lt;br /&gt;
&lt;br /&gt;
:Exports source code files to other formats such as HTML and PDF.&lt;br /&gt;
&lt;br /&gt;
'''[[SpellChecker plugin|SpellChecker]]'''&lt;br /&gt;
&lt;br /&gt;
:A plugin to check the spelling of strings and comments.&lt;br /&gt;
&lt;br /&gt;
'''[[Symbol Table plugin|Symbol Table]]'''&lt;br /&gt;
&lt;br /&gt;
:A simple graphical interface to the GNU symbol table displayer (nm).&lt;br /&gt;
&lt;br /&gt;
'''[[ThreadSearch plugin|ThreadSearch]]'''&lt;br /&gt;
&lt;br /&gt;
:Multi-threaded 'Search in files' with preview window.&lt;br /&gt;
&lt;br /&gt;
'''[[Tools+ plugin|Tools+]]'''&lt;br /&gt;
&lt;br /&gt;
:Creation and management of custom tools.&lt;br /&gt;
&lt;br /&gt;
'''[[Valgrind plugin|Valgrind]]'''&lt;br /&gt;
&lt;br /&gt;
:Valgrind analysis tools integration. (Valgrind does not run on Windows)&lt;br /&gt;
&lt;br /&gt;
'''[[wxSmith plugin|wxSmith]]'''&lt;br /&gt;
&lt;br /&gt;
:RAD tool for creating wxWidgets dialogs.&lt;br /&gt;
&lt;br /&gt;
== 3rd Party Plugins ==&lt;br /&gt;
&lt;br /&gt;
3rd party plugins - developed and maintained by the community but not (yet?) in the C::B repository. The contrib plugins are maintained / developed by third-party developers.&lt;br /&gt;
&lt;br /&gt;
'''[[DisplayEvents plugin|DisplayEvents]]'''&lt;br /&gt;
&lt;br /&gt;
:Display events that are registered with &amp;lt;tt&amp;gt;RegisterEventSink&amp;lt;/tt&amp;gt;, in the Code::Blocks Debug log.&lt;br /&gt;
&lt;br /&gt;
'''[[Fortran Project plugin|Fortran Project]]'''&lt;br /&gt;
&lt;br /&gt;
:This plugin provides symbol browser and code-completion for Fortran files.&lt;br /&gt;
&lt;br /&gt;
'''[[IPDefend Toolkit plugin|IPDefend Toolkit]]'''&lt;br /&gt;
&lt;br /&gt;
:This plugin enables creation of a licensed application in an easy way. Available at [http://www.comsytec.com/ipdefend.php]&lt;br /&gt;
&lt;br /&gt;
'''[[KeyMacs plugin|KeyMacs]]'''&lt;br /&gt;
&lt;br /&gt;
:KeyMacs (or Keyboard Macros) plugin enables Recording, Playback, and editing of keystroke macros.&lt;br /&gt;
&lt;br /&gt;
'''[[OccurrenceHighlighter plugin|OccurrenceHighlighter]]'''&lt;br /&gt;
&lt;br /&gt;
:This plugin highlights all occurrences of keywords on a list.&lt;br /&gt;
&lt;br /&gt;
'''[[Rss::Blocks plugin|Rss::Blocks]]'''&lt;br /&gt;
&lt;br /&gt;
:This plugin is an rss feeds reader. Available at [http://sourceforge.net/projects/rssblocks/ sourceforge/rssblocks]&lt;br /&gt;
&lt;br /&gt;
'''[[TRACE32 Debugger plugin|TRACE32 Debugger]]'''&lt;br /&gt;
&lt;br /&gt;
:Extends the Debugger plugin of Code::Blocks to work with the TRACE32 Debuggers. TRACE32 documentation &amp;quot;int_codeblock.pdf&amp;quot; and debuggert32.cbplugin are located on the enclosed SW CD on purchase of TRACE32&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If you have questions -&amp;gt; ask in the [/index.php/board,14.0.html forums].&lt;/div&gt;</summary>
		<author><name>Alpha</name></author>
	</entry>
	<entry>
		<id>https://wiki.codeblocks.org/index.php?title=Languages_supported_by_Code::Blocks_lexers&amp;diff=7455</id>
		<title>Languages supported by Code::Blocks lexers</title>
		<link rel="alternate" type="text/html" href="https://wiki.codeblocks.org/index.php?title=Languages_supported_by_Code::Blocks_lexers&amp;diff=7455"/>
		<updated>2012-12-26T17:49:26Z</updated>

		<summary type="html">&lt;p&gt;Alpha: Updated.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Developer Documentation]]&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;1&amp;quot; cellspacing=&amp;quot;0&amp;quot; style=&amp;quot;font-size: 85%; border: gray solid 1px; border-collapse: collapse; text-align: center; width: 50%; table-layout: fixed;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background: #ececec;&amp;quot;&lt;br /&gt;
! style=&amp;quot;width: 12em&amp;quot; | Language&lt;br /&gt;
! [https://www.codeblocks.org/ Code::Blocks]&lt;br /&gt;
! [http://www.scintilla.org/SciTE.html SciTE]&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;text-align: left; background: #ececec;&amp;quot; | Ada&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
! style=&amp;quot;text-align: left; background: #ececec;&amp;quot; | AngelScript (using the C++ lexer)&lt;br /&gt;
| {{yes}}{{refun|CodeFolding}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
! style=&amp;quot;text-align: left; background: #ececec;&amp;quot; | ANS.1 MIB definition files&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}{{refun|CodeFolding}}&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
! style=&amp;quot;text-align: left; background: #ececec;&amp;quot; | APDL&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
! style=&amp;quot;text-align: left; background: #ececec;&amp;quot; | Assembler (NASM, MASM)&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
! style=&amp;quot;text-align: left; background: #ececec;&amp;quot; | Assembler (Hitachi, using the C++ lexer)&lt;br /&gt;
| {{yes}} (Why it uses the C++ lexer????)&lt;br /&gt;
| {{no}}&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
! style=&amp;quot;text-align: left; background: #ececec;&amp;quot; | AutoIt&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}{{refun|CodeFolding}}&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
! style=&amp;quot;text-align: left; background: #ececec;&amp;quot; | Avenue&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}{{refun|CodeFolding}}&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
! style=&amp;quot;text-align: left; background: #ececec;&amp;quot; | Baan&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}{{refun|CodeFolding}}&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
! style=&amp;quot;text-align: left; background: #ececec;&amp;quot; | Bash&lt;br /&gt;
| {{yes}}{{refun|CodeFolding}}&lt;br /&gt;
| {{yes}}{{refun|CodeFolding}}&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
! style=&amp;quot;text-align: left; background: #ececec;&amp;quot; | Batch (MS-DOS)&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
! style=&amp;quot;text-align: left; background: #ececec;&amp;quot; | BlitzBasic&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}{{refun|CodeFolding}}&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
! style=&amp;quot;text-align: left; background: #ececec;&amp;quot; | Bullant&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}{{refun|CodeFolding}}&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-  &lt;br /&gt;
! style=&amp;quot;text-align: left; background: #ececec;&amp;quot; | C/C++&lt;br /&gt;
| {{yes}}{{refun|CodeFolding}}&lt;br /&gt;
| {{yes}}{{refun|CodeFolding}}&lt;br /&gt;
|- &lt;br /&gt;
&lt;br /&gt;
|-  &lt;br /&gt;
! style=&amp;quot;text-align: left; background: #ececec;&amp;quot; | Caml&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
|- &lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
! style=&amp;quot;text-align: left; background: #ececec;&amp;quot; | C# (using the C++ lexer)&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}{{refun|CodeFolding}}&lt;br /&gt;
|- &lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
! style=&amp;quot;text-align: left; background: #ececec;&amp;quot; | Clarion&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}{{refun|CodeFolding}}&lt;br /&gt;
|- &lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
! style=&amp;quot;text-align: left; background: #ececec;&amp;quot; | CMake&lt;br /&gt;
| {{yes}}{{refun|CodeFolding}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
|- &lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
! style=&amp;quot;text-align: left; background: #ececec;&amp;quot; | conf (Apache)&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}{{refun|CodeFolding}}&lt;br /&gt;
|- &lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
! style=&amp;quot;text-align: left; background: #ececec;&amp;quot; | CSound&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}{{refun|CodeFolding}}&lt;br /&gt;
|- &lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
! style=&amp;quot;text-align: left; background: #ececec;&amp;quot; | CSS&lt;br /&gt;
| {{yes}}{{refun|CodeFolding}}&lt;br /&gt;
| {{yes}}{{refun|CodeFolding}}&lt;br /&gt;
|- &lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
! style=&amp;quot;text-align: left; background: #ececec;&amp;quot; | D&lt;br /&gt;
| {{yes}}{{refun|CodeFolding}}&lt;br /&gt;
| {{yes}}{{refun|CodeFolding}}&lt;br /&gt;
|- &lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
! style=&amp;quot;text-align: left; background: #ececec;&amp;quot; | diff files&lt;br /&gt;
| {{yes}}{{refun|CodeFolding}}&lt;br /&gt;
| {{yes}}{{refun|CodeFolding}}&lt;br /&gt;
|- &lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
! style=&amp;quot;text-align: left; background: #ececec;&amp;quot; | E-Script&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}{{refun|CodeFolding}}&lt;br /&gt;
|- &lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
! style=&amp;quot;text-align: left; background: #ececec;&amp;quot; | Eiffel&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}{{refun|CodeFolding}}&lt;br /&gt;
|- &lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
! style=&amp;quot;text-align: left; background: #ececec;&amp;quot; | Erlang&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}{{refun|CodeFolding}}&lt;br /&gt;
|- &lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
! style=&amp;quot;text-align: left; background: #ececec;&amp;quot; | Flagship (Clipper / XBase)&lt;br /&gt;
| {{yes}}{{refun|CodeFolding}}&lt;br /&gt;
| {{yes}}{{refun|CodeFolding}}&lt;br /&gt;
|- &lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
! style=&amp;quot;text-align: left; background: #ececec;&amp;quot; | Flash (ActionScript)&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}{{refun|CodeFolding}}&lt;br /&gt;
|- &lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
! style=&amp;quot;text-align: left; background: #ececec;&amp;quot; | Fortran&lt;br /&gt;
| {{yes}}{{refun|CodeFolding}}&lt;br /&gt;
| {{yes}}{{refun|CodeFolding}}&lt;br /&gt;
|- &lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
! style=&amp;quot;text-align: left; background: #ececec;&amp;quot; | Forth&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}{{refun|CodeFolding}}&lt;br /&gt;
|- &lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
! style=&amp;quot;text-align: left; background: #ececec;&amp;quot; | GameMonkey script&lt;br /&gt;
| {{yes}}{{refun|CodeFolding}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
|- &lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
! style=&amp;quot;text-align: left; background: #ececec;&amp;quot; | Haskell&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
|- &lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
! style=&amp;quot;text-align: left; background: #ececec;&amp;quot; | HTML&lt;br /&gt;
| {{yes}}{{refun|CodeFolding}}&lt;br /&gt;
| {{yes}}{{refun|CodeFolding}}&lt;br /&gt;
|- &lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
! style=&amp;quot;text-align: left; background: #ececec;&amp;quot; | HTML with embedded JavaScript, VBScript, PHP and ASP&lt;br /&gt;
| {{yes}}{{refun|CodeFolding}}&lt;br /&gt;
| {{yes}}{{refun|CodeFolding}}&lt;br /&gt;
|- &lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
! style=&amp;quot;text-align: left; background: #ececec;&amp;quot; | GameMonkey Script (using the C++ lexer)&lt;br /&gt;
| {{yes}}{{refun|CodeFolding}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
|- &lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
! style=&amp;quot;text-align: left; background: #ececec;&amp;quot; | Gui4Cli&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}{{refun|CodeFolding}}&lt;br /&gt;
|- &lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
! style=&amp;quot;text-align: left; background: #ececec;&amp;quot; | IDL (both MSIDL and XPIDL)&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}{{refun|CodeFolding}}&lt;br /&gt;
|- &lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
! style=&amp;quot;text-align: left; background: #ececec;&amp;quot; | Java&lt;br /&gt;
| {{yes}}{{refun|CodeFolding}}&lt;br /&gt;
| {{yes}}{{refun|CodeFolding}}&lt;br /&gt;
|- &lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
! style=&amp;quot;text-align: left; background: #ececec;&amp;quot; | JavaScript&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}{{refun|CodeFolding}}&lt;br /&gt;
|- &lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
! style=&amp;quot;text-align: left; background: #ececec;&amp;quot; | Lisp&lt;br /&gt;
| {{yes}}{{refun|CodeFolding}}&lt;br /&gt;
| {{yes}}{{refun|CodeFolding}}&lt;br /&gt;
|- &lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
! style=&amp;quot;text-align: left; background: #ececec;&amp;quot; | LOT&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}{{refun|CodeFolding}}&lt;br /&gt;
|- &lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
! style=&amp;quot;text-align: left; background: #ececec;&amp;quot; | Lout&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}{{refun|CodeFolding}}&lt;br /&gt;
|- &lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
! style=&amp;quot;text-align: left; background: #ececec;&amp;quot; | Lua&lt;br /&gt;
| {{yes}}{{refun|CodeFolding}}&lt;br /&gt;
| {{yes}}{{refun|CodeFolding}}&lt;br /&gt;
|- &lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
! style=&amp;quot;text-align: left; background: #ececec;&amp;quot; | Make&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
|- &lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
! style=&amp;quot;text-align: left; background: #ececec;&amp;quot; | Matlab&lt;br /&gt;
| {{yes}}{{refun|CodeFolding}}&lt;br /&gt;
| {{yes}}{{refun|CodeFolding}}&lt;br /&gt;
|- &lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
! style=&amp;quot;text-align: left; background: #ececec;&amp;quot; | Metapost&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
|- &lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
! style=&amp;quot;text-align: left; background: #ececec;&amp;quot; | MMIXAL&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
|- &lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
! style=&amp;quot;text-align: left; background: #ececec;&amp;quot; | Motorola 68k&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
|- &lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
! style=&amp;quot;text-align: left; background: #ececec;&amp;quot; | MSSQL&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
|- &lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
! style=&amp;quot;text-align: left; background: #ececec;&amp;quot; | nnCron&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
|- &lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
! style=&amp;quot;text-align: left; background: #ececec;&amp;quot; | NSIS&lt;br /&gt;
| {{yes}}{{refun|CodeFolding}}&lt;br /&gt;
| {{yes}}{{refun|CodeFolding}}&lt;br /&gt;
|- &lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
! style=&amp;quot;text-align: left; background: #ececec;&amp;quot; | nVidia cg (using the C++ lexer)&lt;br /&gt;
| {{yes}}{{refun|CodeFolding}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
|- &lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
! style=&amp;quot;text-align: left; background: #ececec;&amp;quot; | Objective C&lt;br /&gt;
| {{yes}}{{refun|CodeFolding}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
|- &lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
! style=&amp;quot;text-align: left; background: #ececec;&amp;quot; | Objective Caml&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}{{refun|CodeFolding}}&lt;br /&gt;
|- &lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
! style=&amp;quot;text-align: left; background: #ececec;&amp;quot; | Ogre Compositor script (using the C++ lexer)&lt;br /&gt;
| {{yes}}{{refun|CodeFolding}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
|- &lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
! style=&amp;quot;text-align: left; background: #ececec;&amp;quot; | Ogre Material script (using the C++ lexer)&lt;br /&gt;
| {{yes}}{{refun|CodeFolding}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
|- &lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
! style=&amp;quot;text-align: left; background: #ececec;&amp;quot; | OpenGL Shading Language (using the C++ lexer)&lt;br /&gt;
| {{yes}}{{refun|CodeFolding}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
|- &lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
! style=&amp;quot;text-align: left; background: #ececec;&amp;quot; | Octave&lt;br /&gt;
| {{yes}}{{refun|CodeFolding}}&lt;br /&gt;
| {{yes}}{{refun|CodeFolding}}&lt;br /&gt;
|- &lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
! style=&amp;quot;text-align: left; background: #ececec;&amp;quot; | Pascal/Delphi&lt;br /&gt;
| {{yes}}{{refun|CodeFolding}}&lt;br /&gt;
| {{yes}}{{refun|CodeFolding}}&lt;br /&gt;
|- &lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
! style=&amp;quot;text-align: left; background: #ececec;&amp;quot; | Perl&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}{{refun|CodeFolding}}&lt;br /&gt;
|- &lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
! style=&amp;quot;text-align: left; background: #ececec;&amp;quot; | PostScript&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}{{refun|CodeFolding}}&lt;br /&gt;
|- &lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
! style=&amp;quot;text-align: left; background: #ececec;&amp;quot; | POV-Ray&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}{{refun|CodeFolding}}&lt;br /&gt;
|- &lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
! style=&amp;quot;text-align: left; background: #ececec;&amp;quot; | PowerBasic&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}{{refun|CodeFolding}}&lt;br /&gt;
|- &lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
! style=&amp;quot;text-align: left; background: #ececec;&amp;quot; | Properties &lt;br /&gt;
| {{yes}}{{refun|CodeFolding}}&lt;br /&gt;
| {{yes}}{{refun|CodeFolding}}&lt;br /&gt;
|- &lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
! style=&amp;quot;text-align: left; background: #ececec;&amp;quot; | PureBasic&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}{{refun|CodeFolding}}&lt;br /&gt;
|- &lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
! style=&amp;quot;text-align: left; background: #ececec;&amp;quot; | Python&lt;br /&gt;
| {{yes}}{{refun|CodeFolding}}&lt;br /&gt;
| {{yes}}{{refun|CodeFolding}}&lt;br /&gt;
|- &lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
! style=&amp;quot;text-align: left; background: #ececec;&amp;quot; | Rebol&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}{{refun|CodeFolding}}&lt;br /&gt;
|- &lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
! style=&amp;quot;text-align: left; background: #ececec;&amp;quot; | Ruby&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}{{refun|CodeFolding}}&lt;br /&gt;
|- &lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
! style=&amp;quot;text-align: left; background: #ececec;&amp;quot; | Scheme&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}{{refun|CodeFolding}}&lt;br /&gt;
|- &lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
! style=&amp;quot;text-align: left; background: #ececec;&amp;quot; | scriptol&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}{{refun|CodeFolding}}&lt;br /&gt;
|- &lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
! style=&amp;quot;text-align: left; background: #ececec;&amp;quot; | Smalltalk&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
|- &lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
! style=&amp;quot;text-align: left; background: #ececec;&amp;quot; | Specman E&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}{{refun|CodeFolding}}&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
! style=&amp;quot;text-align: left; background: #ececec;&amp;quot; | Spice&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}{{refun|CodeFolding}}&lt;br /&gt;
|- &lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
! style=&amp;quot;text-align: left; background: #ececec;&amp;quot; | SQL and PLSQL&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
|- &lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
! style=&amp;quot;text-align: left; background: #ececec;&amp;quot; | Squirrel&lt;br /&gt;
| {{yes}}{{refun|CodeFolding}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
|- &lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
! style=&amp;quot;text-align: left; background: #ececec;&amp;quot; | TADS3&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}{{refun|CodeFolding}}&lt;br /&gt;
|- &lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
! style=&amp;quot;text-align: left; background: #ececec;&amp;quot; | TeX and LaTeX&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}&lt;br /&gt;
|- &lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
! style=&amp;quot;text-align: left; background: #ececec;&amp;quot; | Tcl/Tk &lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}{{refun|CodeFolding}}&lt;br /&gt;
|- &lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
! style=&amp;quot;text-align: left; background: #ececec;&amp;quot; | VB and VBScript&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{yes}}{{refun|CodeFolding}}&lt;br /&gt;
|- &lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
! style=&amp;quot;text-align: left; background: #ececec;&amp;quot; | Verilog&lt;br /&gt;
| {{yes}}{{refun|CodeFolding}}&lt;br /&gt;
| {{yes}}{{refun|CodeFolding}}&lt;br /&gt;
|- &lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
! style=&amp;quot;text-align: left; background: #ececec;&amp;quot; | VHDL&lt;br /&gt;
| {{yes}}{{refun|CodeFolding}}&lt;br /&gt;
| {{yes}}{{refun|CodeFolding}}&lt;br /&gt;
|- &lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
! style=&amp;quot;text-align: left; background: #ececec;&amp;quot; | XBase&lt;br /&gt;
| {{yes}}&lt;br /&gt;
| {{no}}&lt;br /&gt;
|- &lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
! style=&amp;quot;text-align: left; background: #ececec;&amp;quot; | XML&lt;br /&gt;
| {{yes}}{{refun|CodeFolding}}&lt;br /&gt;
| {{yes}}{{refun|CodeFolding}}&lt;br /&gt;
|- &lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
! style=&amp;quot;text-align: left; background: #ececec;&amp;quot; | YAML&lt;br /&gt;
| {{no}}&lt;br /&gt;
| {{yes}}{{refun|CodeFolding}}&lt;br /&gt;
|- &lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
*{{note|CodeFolding}} Supports code-folding.&lt;/div&gt;</summary>
		<author><name>Alpha</name></author>
	</entry>
	<entry>
		<id>https://wiki.codeblocks.org/index.php?title=Compiler_plugin&amp;diff=7450</id>
		<title>Compiler plugin</title>
		<link rel="alternate" type="text/html" href="https://wiki.codeblocks.org/index.php?title=Compiler_plugin&amp;diff=7450"/>
		<updated>2012-12-19T15:49:14Z</updated>

		<summary type="html">&lt;p&gt;Alpha: XML branch merged.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Code::Blocks Core Plugins]]&lt;br /&gt;
{{Infobox_Plugin|&lt;br /&gt;
  name = Compiler |&lt;br /&gt;
  logo = [[File:Compiler.png]] |&lt;br /&gt;
  developer = Yiannis Mandravellos |&lt;br /&gt;
  maintainer = |&lt;br /&gt;
  version = 0.99&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
The '''Compiler''' plugin is an interface to various compilers:&lt;br /&gt;
* GNU GCC compiler&lt;br /&gt;
* Microsoft Visual C++ Free Toolkit 2003&lt;br /&gt;
* Borland C++ Compiler 5.5&lt;br /&gt;
&lt;br /&gt;
==Compiler toolbar==&lt;br /&gt;
&lt;br /&gt;
The icons in the Compiler toolbar have the following meanings: &lt;br /&gt;
&lt;br /&gt;
; [[File:Compile.png|Build]] Ctrl-F9 : Compile (and link, if applicable) the active build target of the current project. If no project is open, Code::Blocks will attempt compilation of the active file in the editor.&lt;br /&gt;
&lt;br /&gt;
; [[File:Run.png|Run]] Ctrl-F10 : Run the executable output of the active build target of the current project. If no project is open, Code::Blocks will attempt to run the executable output of the active file in the editor.&lt;br /&gt;
&lt;br /&gt;
; [[File:CompileRun.png|Build and run]] F9 : Compile (and link, if applicable) the active build target of the current project and run the output. If no project is open, Code::Blocks will attempt to compile the active file in the editor, then run its output.&lt;br /&gt;
&lt;br /&gt;
; [[File:Rebuild.png|Rebuild]] Ctrl-F11 : Clean (delete) all the object files and compiled output of the active build target of the current project, then compile (and link, if applicable) cleaned target. This function requires an active project.&lt;br /&gt;
&lt;br /&gt;
; [[File:Stop.png|Abort]] : Stop a compilation before it has completed. This function requires an active project.&lt;br /&gt;
&lt;br /&gt;
; [[File:TargetSelect.png]] : Change the active build target of the current project.&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
Development documents:&lt;br /&gt;
* [[Compiler file]]&lt;br /&gt;
* [[Compiler options file]]&lt;/div&gt;</summary>
		<author><name>Alpha</name></author>
	</entry>
	<entry>
		<id>https://wiki.codeblocks.org/index.php?title=Compiler_options_file&amp;diff=7449</id>
		<title>Compiler options file</title>
		<link rel="alternate" type="text/html" href="https://wiki.codeblocks.org/index.php?title=Compiler_options_file&amp;diff=7449"/>
		<updated>2012-12-19T15:47:21Z</updated>

		<summary type="html">&lt;p&gt;Alpha: XML branch merged.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Code::Blocks Documentation]]&lt;br /&gt;
[[Category:Developer Documentation]]&lt;br /&gt;
Format for storing compiler options in editable XML.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;CodeBlocks_compiler_options extends=&amp;quot;gcc&amp;quot;&amp;gt;&lt;br /&gt;
[...]&lt;br /&gt;
&amp;lt;/CodeBlocks_compiler_options&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
I am a Code::Blocks compiler options file.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;extends=&amp;quot;&amp;lt;/tt&amp;gt;&amp;lt;id&amp;gt;&amp;lt;tt&amp;gt;&amp;quot;&amp;lt;/tt&amp;gt; (optional)&lt;br /&gt;
* Load the corresponding &amp;lt;tt&amp;gt;options_&amp;lt;/tt&amp;gt;&amp;lt;id&amp;gt;&amp;lt;tt&amp;gt;.xml&amp;lt;/tt&amp;gt; file first (use if this compiler is almost the same, with only a few altered programs or added switches, for example).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;if platform=&amp;quot;windows&amp;quot;&amp;gt;&lt;br /&gt;
[...]&lt;br /&gt;
&amp;lt;/if&amp;gt;&lt;br /&gt;
&amp;lt;else&amp;gt;&lt;br /&gt;
[...]&lt;br /&gt;
&amp;lt;/else&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Standard &amp;lt;tt&amp;gt;if&amp;lt;/tt&amp;gt; statement; contents of &amp;lt;tt&amp;gt;if&amp;lt;/tt&amp;gt; block is evaluated if the &amp;lt;tt&amp;gt;if&amp;lt;/tt&amp;gt; statement is true, otherwise the &amp;lt;tt&amp;gt;else&amp;lt;/tt&amp;gt; block is evaluated (the &amp;lt;tt&amp;gt;else&amp;lt;/tt&amp;gt; block is optional). Nesting is allowed.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;platform=&amp;quot;&amp;lt;/tt&amp;gt;&amp;lt;os&amp;gt;&amp;lt;tt&amp;gt;&amp;quot;&amp;lt;/tt&amp;gt;. &amp;lt;os&amp;gt; is one of:&lt;br /&gt;
* &amp;lt;tt&amp;gt;windows&lt;br /&gt;
* macosx&lt;br /&gt;
* linux&lt;br /&gt;
* freebsd&lt;br /&gt;
* netbsd&lt;br /&gt;
* openbsd&lt;br /&gt;
* darwin&lt;br /&gt;
* solaris&lt;br /&gt;
* unix&amp;lt;/tt&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;if exec=&amp;quot;bison -h&amp;quot;&amp;gt;&lt;br /&gt;
[...]&lt;br /&gt;
&amp;lt;/if&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
True if the the command &amp;lt;tt&amp;gt;exec&amp;lt;/tt&amp;gt; can be run.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;if exec=&amp;quot;C -dumpversion&amp;quot;&lt;br /&gt;
    regex=&amp;quot;^4\.[3-9]|^[5-9]\.[0-9]&amp;quot;&lt;br /&gt;
    default=&amp;quot;true&amp;quot;&amp;gt;&lt;br /&gt;
[...]&lt;br /&gt;
&amp;lt;/if&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
If the text before the first space in &amp;lt;tt&amp;gt;exec&amp;lt;/tt&amp;gt; is one of:&lt;br /&gt;
* &amp;lt;tt&amp;gt;C&lt;br /&gt;
* CPP&lt;br /&gt;
* LD&lt;br /&gt;
* LIB&lt;br /&gt;
* WINDRES&lt;br /&gt;
* MAKE&amp;lt;/tt&amp;gt;&lt;br /&gt;
it will be replaced with the name of the corresponding executable.&lt;br /&gt;
&lt;br /&gt;
True if &amp;lt;tt&amp;gt;regex&amp;lt;/tt&amp;gt; matches the command's output (in this case, version number &amp;lt;tt&amp;gt;&amp;gt;=&amp;lt;/tt&amp;gt; 4.3.0).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;default&amp;lt;/tt&amp;gt; is used if the command fails to execute (optional).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;Program name=&amp;quot;C&amp;quot; value=&amp;quot;mingw32-gcc.exe&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Give the name of an executable&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;name=&amp;quot;&amp;lt;/tt&amp;gt;&amp;lt;prog&amp;gt;&amp;lt;tt&amp;gt;&amp;quot;&amp;lt;/tt&amp;gt;.  &amp;lt;prog&amp;gt; is one of:&lt;br /&gt;
* &amp;lt;tt&amp;gt;C&lt;br /&gt;
* CPP&lt;br /&gt;
* LD&lt;br /&gt;
* DBGconfig&lt;br /&gt;
* LIB&lt;br /&gt;
* WINDRES&lt;br /&gt;
* MAKE&lt;br /&gt;
value=&amp;quot;&amp;lt;/tt&amp;gt;&amp;lt;exec&amp;gt;&amp;lt;tt&amp;gt;&amp;quot;&amp;lt;/tt&amp;gt; (actual name of the executable).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;Switch name=&amp;quot;includeDirs&amp;quot; value=&amp;quot;-I&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Switches controlling compiler constants.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;name=&amp;quot;&amp;lt;/tt&amp;gt;&amp;lt;opt&amp;gt;&amp;lt;tt&amp;gt;&amp;quot;&amp;lt;/tt&amp;gt;.  &amp;lt;opt&amp;gt; is one of:&lt;br /&gt;
* &amp;lt;tt&amp;gt;includeDirs&lt;br /&gt;
* libDirs&lt;br /&gt;
* linkLibs&lt;br /&gt;
* defines&lt;br /&gt;
* genericSwitch&lt;br /&gt;
* objectExtension&lt;br /&gt;
* forceFwdSlashes&amp;lt;/tt&amp;gt;. &amp;lt;tt&amp;gt;value&amp;lt;/tt&amp;gt; is one of &amp;lt;tt&amp;gt;true&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;false&lt;br /&gt;
* forceLinkerUseQuotes&amp;lt;/tt&amp;gt;. &amp;lt;tt&amp;gt;value&amp;lt;/tt&amp;gt; is one of &amp;lt;tt&amp;gt;true&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;false&lt;br /&gt;
* forceCompilerUseQuotes&amp;lt;/tt&amp;gt;. &amp;lt;tt&amp;gt;value&amp;lt;/tt&amp;gt; is one of &amp;lt;tt&amp;gt;true&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;false&lt;br /&gt;
* needDependencies&amp;lt;/tt&amp;gt;. &amp;lt;tt&amp;gt;value&amp;lt;/tt&amp;gt; is one of &amp;lt;tt&amp;gt;true&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;false&lt;br /&gt;
* logging&amp;lt;/tt&amp;gt;.  &amp;lt;tt&amp;gt;value&amp;lt;/tt&amp;gt; is one of:&lt;br /&gt;
** &amp;lt;tt&amp;gt;default&amp;lt;/tt&amp;gt; (same as &amp;lt;tt&amp;gt;full&amp;lt;/tt&amp;gt;)&lt;br /&gt;
** &amp;lt;tt&amp;gt;full&lt;br /&gt;
** simple&lt;br /&gt;
** none&lt;br /&gt;
* libPrefix&lt;br /&gt;
* libExtension&lt;br /&gt;
* linkerNeedsLibPrefix&amp;lt;/tt&amp;gt;. &amp;lt;tt&amp;gt;value&amp;lt;/tt&amp;gt; is one of &amp;lt;tt&amp;gt;true&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;false&lt;br /&gt;
* linkerNeedsLibExtension&amp;lt;/tt&amp;gt;. &amp;lt;tt&amp;gt;value&amp;lt;/tt&amp;gt; is one of &amp;lt;tt&amp;gt;true&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;false&lt;br /&gt;
* supportsPCH&amp;lt;/tt&amp;gt;. &amp;lt;tt&amp;gt;value&amp;lt;/tt&amp;gt; is one of &amp;lt;tt&amp;gt;true&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;false&lt;br /&gt;
* PCHExtension&lt;br /&gt;
* UseFlatObjects&amp;lt;/tt&amp;gt;. &amp;lt;tt&amp;gt;value&amp;lt;/tt&amp;gt; is one of &amp;lt;tt&amp;gt;true&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;false&lt;br /&gt;
* UseFullSourcePaths&amp;lt;/tt&amp;gt;. &amp;lt;tt&amp;gt;value&amp;lt;/tt&amp;gt; is one of &amp;lt;tt&amp;gt;true&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;false&lt;br /&gt;
* Use83Paths&amp;lt;/tt&amp;gt;. &amp;lt;tt&amp;gt;value&amp;lt;/tt&amp;gt; is one of &amp;lt;tt&amp;gt;true&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;false&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;Option name=&amp;quot;Profile code when executed&amp;quot;&lt;br /&gt;
        option=&amp;quot;-pg&amp;quot;&lt;br /&gt;
        additionalLibs=&amp;quot;-pg -lgmon&amp;quot;&lt;br /&gt;
        category=&amp;quot;Profiling&amp;quot;&lt;br /&gt;
        checkAgainst=&amp;quot;-O -O1 -O2 -O3 -Os&amp;quot;&lt;br /&gt;
        checkMessage=&amp;quot;You have optimizations enabled. This is Not A Good Thing(tm) when producing debugging symbols...&amp;quot;&lt;br /&gt;
        supersedes=&amp;quot;-s&amp;quot;&lt;br /&gt;
        exclusive=&amp;quot;true&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Definition of a compiler flag.&lt;br /&gt;
* &amp;lt;tt&amp;gt;name&amp;lt;/tt&amp;gt;. Human readable description of the flag.&lt;br /&gt;
* &amp;lt;tt&amp;gt;option&amp;lt;/tt&amp;gt;. Flags to be sent to the compiler (optional).&lt;br /&gt;
* &amp;lt;tt&amp;gt;additionalLibs&amp;lt;/tt&amp;gt;. Flags to be sent to the linker (optional).&lt;br /&gt;
* &amp;lt;tt&amp;gt;category&amp;lt;/tt&amp;gt;. The category this flag is in (optional; defaults to &amp;quot;General&amp;quot;).&lt;br /&gt;
* &amp;lt;tt&amp;gt;checkAgainst&amp;lt;/tt&amp;gt;. Show a warning message if any of these flags are enabled (optional).&lt;br /&gt;
* &amp;lt;tt&amp;gt;checkMessage&amp;lt;/tt&amp;gt;. Warning message to show upon conflict (optional).&lt;br /&gt;
* &amp;lt;tt&amp;gt;superseds&amp;lt;/tt&amp;gt;. Automatically disable the list of superseded flags if this flag is enabled (optional).&lt;br /&gt;
* &amp;lt;tt&amp;gt;exclusive&amp;lt;/tt&amp;gt;. Disable all other flags in this category if this flag is enabled. Is one of &amp;lt;tt&amp;gt;true&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;false&amp;lt;/tt&amp;gt; (optional).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;Category name=&amp;quot;CPU architecture tuning&amp;quot;&lt;br /&gt;
          exclusive=&amp;quot;true&amp;quot;&amp;gt;&lt;br /&gt;
[...]&lt;br /&gt;
&amp;lt;/Category&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;tt&amp;gt;name=&amp;quot;&amp;lt;/tt&amp;gt;&amp;lt;cat&amp;gt;&amp;lt;tt&amp;gt;&amp;quot;&amp;lt;/tt&amp;gt;. Any flags (&amp;lt;code&amp;gt;&amp;lt;Option [...] /&amp;gt;&amp;lt;/code&amp;gt;) contained in here that lack the &amp;lt;tt&amp;gt;category&amp;lt;/tt&amp;gt; attribute will be treated as category &amp;lt;cat&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;exclusive&amp;lt;/tt&amp;gt;. Is one of &amp;lt;tt&amp;gt;true&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;false&amp;lt;/tt&amp;gt;. Any flags (&amp;lt;code&amp;gt;&amp;lt;Option [...] /&amp;gt;&amp;lt;/code&amp;gt;) contained in here that lack the &amp;lt;tt&amp;gt;exclusive&amp;lt;/tt&amp;gt; attribute will be treated as this. (Optional.)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;Common name=&amp;quot;optimization&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Load options from a common file.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;name=&amp;quot;&amp;lt;/tt&amp;gt;&amp;lt;file&amp;gt;&amp;lt;tt&amp;gt;&amp;quot;&amp;lt;/tt&amp;gt;&lt;br /&gt;
* Loads &amp;lt;tt&amp;gt;options_common_&amp;lt;/tt&amp;gt;&amp;lt;file&amp;gt;&amp;lt;tt&amp;gt;.xml&amp;lt;/tt&amp;gt; (file syntax is exactly the same as this file).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;Command name=&amp;quot;CompileObject&amp;quot;&lt;br /&gt;
         value=&amp;quot;$compiler $options $includes -c $file -o $object&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Definitions for forming compiler commands.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;name=&amp;quot;&amp;lt;/tt&amp;gt;&amp;lt;cmd&amp;gt;&amp;lt;tt&amp;gt;&amp;quot;&amp;lt;/tt&amp;gt;. &amp;lt;cmd&amp;gt; is one of:&lt;br /&gt;
* &amp;lt;tt&amp;gt;CompileObject&lt;br /&gt;
* GenDependencies&lt;br /&gt;
* CompileResource&lt;br /&gt;
* LinkExe&lt;br /&gt;
* LinkConsoleExe&lt;br /&gt;
* LinkDynamic&lt;br /&gt;
* LinkStatic&lt;br /&gt;
* LinkNative&amp;lt;/tt&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;Command name=&amp;quot;CompileObject&amp;quot;&lt;br /&gt;
         value=&amp;quot;bison -v -d $file -o $file_dir/$file_name.parser.cc&amp;quot;&lt;br /&gt;
         ext=&amp;quot;y&amp;quot;&lt;br /&gt;
         gen=&amp;quot;$file_dir/$file_name.parser.cc;$file_dir/$file_name.parser.hh&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Additional commands can be added to each category with a file extension filter.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;ext=&amp;quot;&amp;lt;/tt&amp;gt;&amp;lt;exts&amp;gt;&amp;lt;tt&amp;gt;&amp;quot;&amp;lt;/tt&amp;gt;. &amp;lt;exts&amp;gt; is a semicolon separated list of file extensions (without the leading &amp;lt;tt&amp;gt;&amp;quot;.&amp;quot;&amp;lt;/tt&amp;gt; period).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;gen=&amp;quot;&amp;lt;/tt&amp;gt;&amp;lt;files&amp;gt;&amp;lt;tt&amp;gt;&amp;quot;&amp;lt;/tt&amp;gt;. &amp;lt;files&amp;gt; is a semicolon separated list of generated files to be further processed (optional).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;RegEx name=&amp;quot;Info line&amp;quot;&lt;br /&gt;
       type=&amp;quot;info&amp;quot;&lt;br /&gt;
       msg=&amp;quot;1;2;4&amp;quot;&lt;br /&gt;
       file=&amp;quot;2&amp;quot;&lt;br /&gt;
       line=&amp;quot;3&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;![CDATA[(In file) ([][{}() \t#%$~[:alnum:]&amp;amp;_:+/\.-]+):([0-9]+)(\.[0-9]+.*:)*]]&amp;gt;&lt;br /&gt;
&amp;lt;/RegEx&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Definitions for regular expressions to parse compiler output.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;name=&amp;quot;&amp;lt;/tt&amp;gt;&amp;lt;label&amp;gt;&amp;lt;tt&amp;gt;&amp;quot;&amp;lt;/tt&amp;gt;. &amp;lt;label&amp;gt; is the name this regex will be listed as.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;type=&amp;quot;&amp;lt;/tt&amp;gt;&amp;lt;tp&amp;gt;&amp;lt;tt&amp;gt;&amp;quot;&amp;lt;/tt&amp;gt;. &amp;lt;tp&amp;gt; is one of&lt;br /&gt;
* &amp;lt;tt&amp;gt;normal&lt;br /&gt;
* warning&lt;br /&gt;
* error&lt;br /&gt;
* info&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;msg=&amp;quot;&amp;lt;/tt&amp;gt;&amp;lt;nums&amp;gt;&amp;lt;tt&amp;gt;&amp;quot;&amp;lt;/tt&amp;gt;. &amp;lt;nums&amp;gt; is a semicolon separated list of indices (minimum one, maximum three) for the locations of messages within the regex.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;file=&amp;quot;&amp;lt;/tt&amp;gt;&amp;lt;num&amp;gt;&amp;lt;tt&amp;gt;&amp;quot;&amp;lt;/tt&amp;gt;. &amp;lt;num&amp;gt; is the index of the regex which gives the relevant file (optional).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;line=&amp;quot;&amp;lt;/tt&amp;gt;&amp;lt;num&amp;gt;&amp;lt;tt&amp;gt;&amp;quot;&amp;lt;/tt&amp;gt;. &amp;lt;num&amp;gt; is the index of the regex which gives the relevant line number (optional).&lt;br /&gt;
&lt;br /&gt;
The contents is the regex (use of a &amp;lt;tt&amp;gt;CDATA&amp;lt;/tt&amp;gt; section is not required).&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
* [[Compiler file]]&lt;br /&gt;
* [/index.php/topic,16463.0.html XML based compilers]&lt;/div&gt;</summary>
		<author><name>Alpha</name></author>
	</entry>
	<entry>
		<id>https://wiki.codeblocks.org/index.php?title=Compiler_file&amp;diff=7448</id>
		<title>Compiler file</title>
		<link rel="alternate" type="text/html" href="https://wiki.codeblocks.org/index.php?title=Compiler_file&amp;diff=7448"/>
		<updated>2012-12-19T15:40:56Z</updated>

		<summary type="html">&lt;p&gt;Alpha: XML branch merged.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Code::Blocks Documentation]]&lt;br /&gt;
[[Category:Developer Documentation]]&lt;br /&gt;
Format for defining compiler interfaces using only XML (in conjunction with [[Compiler options file]]s).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;CodeBlocks_compiler name=&amp;quot;Digital Mars Compiler&amp;quot;&lt;br /&gt;
                     id=&amp;quot;dmc&amp;quot;&lt;br /&gt;
                     weight=&amp;quot;24&amp;quot;&lt;br /&gt;
                     platform=&amp;quot;windows&amp;quot;&amp;gt;&lt;br /&gt;
[...]&lt;br /&gt;
&amp;lt;/CodeBlocks_compiler&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
I am a Code::Blocks compiler file.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;name=&amp;quot;&amp;lt;/tt&amp;gt;&amp;lt;txt&amp;gt;&amp;lt;tt&amp;gt;&amp;quot;&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;txt&amp;gt; is the descriptive name that will be shown to the user for this compiler.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;id=&amp;quot;&amp;lt;/tt&amp;gt;&amp;lt;id&amp;gt;&amp;lt;tt&amp;gt;&amp;quot;&amp;lt;/tt&amp;gt;&lt;br /&gt;
* Lowercase sequence of letters, numbers, underscores, and/or hyphens (it must, however, start with a letter) which is used internally to represent this compiler.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;weight=&amp;quot;&amp;lt;/tt&amp;gt;&amp;lt;num&amp;gt;&amp;lt;tt&amp;gt;&amp;quot;&amp;lt;/tt&amp;gt; (optional)&lt;br /&gt;
* Determines the order in the compiler drop-down menu that this compiler will be listed; lower numbers are listed sooner (keep &amp;lt;num&amp;gt; between 0 and 100).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;platform=&amp;quot;&amp;lt;/tt&amp;gt;&amp;lt;os&amp;gt;&amp;lt;tt&amp;gt;&amp;quot;&amp;lt;/tt&amp;gt; (optional). Only load this compiler if the current operating system is &amp;lt;os&amp;gt;. &amp;lt;os&amp;gt; is one of:&lt;br /&gt;
* &amp;lt;tt&amp;gt;windows&lt;br /&gt;
* macosx&lt;br /&gt;
* linux&lt;br /&gt;
* freebsd&lt;br /&gt;
* netbsd&lt;br /&gt;
* openbsd&lt;br /&gt;
* darwin&lt;br /&gt;
* solaris&lt;br /&gt;
* unix&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
All of the following routines are used during auto-detection.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Conditional &amp;lt;tt&amp;gt;&amp;lt;if&amp;gt;[...]&amp;lt;/if&amp;gt;&amp;lt;else&amp;gt;[...]&amp;lt;/else&amp;gt;&amp;lt;/tt&amp;gt; statements are available in the same form as in [[Compiler options file]]s.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;Path type=&amp;quot;master&amp;quot;&amp;gt;&lt;br /&gt;
[...]&lt;br /&gt;
&amp;lt;/Path&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;tt&amp;gt;type=&amp;quot;&amp;lt;/tt&amp;gt;&amp;lt;tp&amp;gt;&amp;lt;tt&amp;gt;&amp;quot;&amp;lt;/tt&amp;gt; Determines what variable the results of the contained detection routine(s) will be stored in. &amp;lt;tp&amp;gt; is one of:&lt;br /&gt;
* &amp;lt;tt&amp;gt;master&lt;br /&gt;
* extra&lt;br /&gt;
* include&lt;br /&gt;
* resource&lt;br /&gt;
* lib&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;Search envVar=&amp;quot;PATH&amp;quot;&lt;br /&gt;
        for=&amp;quot;C&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Searches all paths in the given environment variable.&lt;br /&gt;
* If &amp;lt;tt&amp;gt;for&amp;lt;/tt&amp;gt; is not specified, any path that exists will be added to the current &amp;lt;tt&amp;gt;&amp;lt;Path type=&amp;quot;...&amp;quot;&amp;gt;&amp;lt;/tt&amp;gt;.&lt;br /&gt;
* If &amp;lt;tt&amp;gt;for&amp;lt;/tt&amp;gt; is given, the corresponding executable name will be replaced (if applicable; see &amp;lt;tt&amp;gt;&amp;lt;if exec=&amp;quot;...&amp;quot;&amp;gt;&amp;lt;/if&amp;gt;&amp;lt;/tt&amp;gt; blocks). If the specified file exists on any of the paths in the environment variable, those path(s) will be added.&lt;br /&gt;
&lt;br /&gt;
(If the current path type is &amp;lt;tt&amp;gt;master&amp;lt;/tt&amp;gt;, any trailing &amp;lt;tt&amp;gt;bin&amp;lt;/tt&amp;gt; directories will be stripped.)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;Search path=&amp;quot;C:\MinGW&amp;quot;&lt;br /&gt;
        for=&amp;quot;C&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Same functionality as &amp;lt;tt&amp;gt;&amp;lt;Search envVar=&amp;quot;...&amp;quot;&amp;gt;&amp;lt;/tt&amp;gt; except that this tests a hard-coded path.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;Search path=&amp;quot;C:\WinAVR*&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Wildcards are allowed in &amp;lt;tt&amp;gt;&amp;lt;Search path=&amp;quot;...&amp;quot;&amp;gt;&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;Search registry=&amp;quot;HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Uninstall\SDCC&amp;quot;&lt;br /&gt;
        value=&amp;quot;InstallLocation&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Read a Windows registry key. If &amp;lt;tt&amp;gt;value&amp;lt;/tt&amp;gt; is found in the registry key, and it is a valid folder, it will be added to the current &amp;lt;tt&amp;gt;&amp;lt;Path type=&amp;quot;...&amp;quot;&amp;gt;&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;Fallback path=&amp;quot;/usr/local&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
If the current &amp;lt;tt&amp;gt;&amp;lt;Path type=&amp;quot;...&amp;quot;&amp;gt;&amp;lt;/tt&amp;gt; is empty, add this path to it.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;Add&amp;gt;&amp;lt;master/&amp;gt;&amp;lt;separator/&amp;gt;lib&amp;lt;/Add&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Add a path to the current &amp;lt;tt&amp;gt;&amp;lt;Path type=&amp;quot;...&amp;quot;&amp;gt;&amp;lt;/tt&amp;gt;.&lt;br /&gt;
* &amp;lt;tt&amp;gt;&amp;lt;master/&amp;gt;&amp;lt;/tt&amp;gt; is replaced by the contents of the master path.&lt;br /&gt;
* &amp;lt;tt&amp;gt;&amp;lt;separator/&amp;gt;&amp;lt;/tt&amp;gt; is replaced by the system's native file path separator.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;Add cFlag=&amp;quot;-O&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Enable a compiler flag.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;Add lFlag=&amp;quot;-s&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Enable a linker flag.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;Add lib=&amp;quot;pthread&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Add a library.&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
* [[Compiler options file]]&lt;br /&gt;
* [/index.php/topic,16463.0.html XML based compilers]&lt;/div&gt;</summary>
		<author><name>Alpha</name></author>
	</entry>
	<entry>
		<id>https://wiki.codeblocks.org/index.php?title=File_formats_description&amp;diff=7447</id>
		<title>File formats description</title>
		<link rel="alternate" type="text/html" href="https://wiki.codeblocks.org/index.php?title=File_formats_description&amp;diff=7447"/>
		<updated>2012-12-19T15:37:01Z</updated>

		<summary type="html">&lt;p&gt;Alpha: XML branch merged.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Code::Blocks Documentation]]&lt;br /&gt;
[[Category:Developer Documentation]]&lt;br /&gt;
Code::Blocks projects/workspaces are described in XML files. Here are contained links to documentation for each one of them.&lt;br /&gt;
&lt;br /&gt;
This information is of interest to anyone wanting to write an importer/exporter/generator for other build systems/environments and therefore add support for Code::Blocks.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* '''[[Workspace file]]''' (*.workspace)&lt;br /&gt;
:Defines a Code::Blocks workspace (collection of projects).&lt;br /&gt;
&lt;br /&gt;
* '''[[Project file]]''' (*.cbp)&lt;br /&gt;
:Defines a Code::Blocks project.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Additional files used as of December 12, 1012 (from the merge of the [/index.php/topic,16463.0.html XML compiler branch]):&lt;br /&gt;
&lt;br /&gt;
* '''[[Compiler file]]''' (compiler_*.xml)&lt;br /&gt;
:Defines a Code::Blocks compiler interface and auto-detection routines.&lt;br /&gt;
&lt;br /&gt;
* '''[[Compiler options file]]''' (options_*.xml)&lt;br /&gt;
:Defines the options and regular expressions for a Code::Blocks compiler.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Code::Blocks also produces a couple other files (*.layout and *.depend) but they only contain state information so they are not really useful to anyone else other than Code::Blocks itself.''&lt;br /&gt;
&lt;br /&gt;
[[User:Mandrav|Mandrav]] 11:42, 1 March 2007 (UTC)&lt;/div&gt;</summary>
		<author><name>Alpha</name></author>
	</entry>
	<entry>
		<id>https://wiki.codeblocks.org/index.php?title=Main_Page&amp;diff=7444</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://wiki.codeblocks.org/index.php?title=Main_Page&amp;diff=7444"/>
		<updated>2012-12-07T00:07:43Z</updated>

		<summary type="html">&lt;p&gt;Alpha: 12.11!&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOEDITSECTION__ __NOTOC__&lt;br /&gt;
{{Layout_box1|1=&lt;br /&gt;
[[Image:cb_splash.png|left]]&lt;br /&gt;
'''Welcome to the official Wiki for Code::Blocks'''&amp;lt;br&amp;gt;&lt;br /&gt;
[https://www.codeblocks.org Code::Blocks] is an open-source, cross-platform [[wikipedia:Integrated Development Environment|IDE]]. Using a plugin architecture, its capabilities and features are defined by the provided plugins.&amp;lt;br&amp;gt;&lt;br /&gt;
Currently, [https://www.codeblocks.org Code::Blocks] is oriented towards C/C++.&lt;br /&gt;
The Code::Blocks team does not take responsibility for the content nor accuracy of these pages.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;Wiki Editors: In order to login to edit pages, you must create an account on the [/ forums]. Use the same username and password for the wiki. Read the [[Help:Contents|Help]] for editing guidelines. Look in the [[CodeBlocks:Community_Portal|community portal]] for things to do.&lt;br /&gt;
&amp;lt;/small&amp;gt;&lt;br /&gt;
&amp;lt;br clear=&amp;quot;all&amp;quot; /&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{|width=&amp;quot;100%&amp;quot; background-color=&amp;quot;transparent&amp;quot; &lt;br /&gt;
|width=&amp;quot;60%&amp;quot; valign=&amp;quot;top&amp;quot;|&lt;br /&gt;
&amp;lt;!-- LEFT --&amp;gt;&lt;br /&gt;
&amp;lt;!-- Did you know that using Layout_box2 here instead of &amp;lt;div&amp;gt; breaks the inner table? Strange... --&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color: #dfeefb; border: 1px dotted #010101; margin: 5px; padding: 5px;&amp;quot;&amp;gt;&lt;br /&gt;
{|align=&amp;quot;center&amp;quot; style=&amp;quot;background:transparent&amp;quot; cellspacing=&amp;quot;5&amp;quot;&lt;br /&gt;
&lt;br /&gt;
|valign=&amp;quot;top&amp;quot; align=&amp;quot;center&amp;quot; colspan=&amp;quot;2&amp;quot;|&lt;br /&gt;
=== How do I... ===&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|align=&amp;quot;center&amp;quot;|&lt;br /&gt;
'''[[Installing_Code::Blocks|...install Code::Blocks?]]'''&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;font-size:.9em&amp;quot;&amp;gt;&lt;br /&gt;
[[Installing_the_latest_official_version_of_Code::Blocks_on_Windows|Windows]] &amp;amp;middot;&lt;br /&gt;
[[Installing_Code::Blocks#Ubuntu|Ubuntu]] &amp;amp;middot;&lt;br /&gt;
[[Installing_Code::Blocks#Mac_OS_X|Mac OS X]] &amp;amp;middot;&lt;br /&gt;
[[Installing_Code::Blocks#Fedora|Fedora]] &amp;amp;middot;&lt;br /&gt;
[[Installing_Code::Blocks|more...]]&lt;br /&gt;
&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|align=&amp;quot;center&amp;quot;|&lt;br /&gt;
'''[[Installing_a_supported_compiler|...set up a compiler in Code::Blocks?]]'''&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;font-size:.9em&amp;quot;&amp;gt;&lt;br /&gt;
[[Installing_a_supported_compiler#MinGW.2FGCC|MinGW]] &amp;amp;middot;&lt;br /&gt;
[[Installing_a_supported_compiler#Microsoft_Visual_C.2B.2B|MS Visual C++]] &amp;amp;middot;&lt;br /&gt;
[[Installing_a_supported_compiler|more...]]&lt;br /&gt;
&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|align=&amp;quot;center&amp;quot;|&lt;br /&gt;
'''[[Creating a new project|...create a new project?]]'''&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;font-size:.9em&amp;quot;&amp;gt;&lt;br /&gt;
[[Creating a new project#Changing file composition|Add files]] &amp;amp;middot;&lt;br /&gt;
[[Creating a new project#Modifying build options|Build options]] &amp;amp;middot;&lt;br /&gt;
[[Creating a new project#Virtual Targets|Virtual Targets]] &amp;amp;middot;&lt;br /&gt;
[[Creating a new project|more...]]&lt;br /&gt;
&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|align=&amp;quot;center&amp;quot;|&lt;br /&gt;
'''[[Debugging_with_Code::Blocks|...debug my program?]]'''&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|align=&amp;quot;center&amp;quot;|&lt;br /&gt;
'''[[FAQ-Settings#Q: How do I make Code::Blocks portable?|...make Code::Blocks portable?]]'''&lt;br /&gt;
&lt;br /&gt;
|align=&amp;quot;center&amp;quot;|&lt;br /&gt;
'''[[User_documentation#Third-party_libraries|...use a 3rd-party library?]]'''&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;font-size:.9em&amp;quot;&amp;gt;&lt;br /&gt;
[[Using_wxWidgets|wxWidgets]] &amp;amp;middot;&lt;br /&gt;
[[Using_Boost|Boost]] &amp;amp;middot;&lt;br /&gt;
[[Using_SDL_with_Code::Blocks|SDL]] &amp;amp;middot;&lt;br /&gt;
[[User_documentation#Third-party_libraries|more...]]&lt;br /&gt;
&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Layout_box3|1=&lt;br /&gt;
== Table of Contents ==&lt;br /&gt;
&amp;lt;span style=&amp;quot;font-size:.9em&amp;quot;&amp;gt;''Main article: [[Code::Blocks Documentation]]''&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== [[User documentation]] ===&lt;br /&gt;
:Articles for Code::Blocks users&lt;br /&gt;
&lt;br /&gt;
=== [[FAQ]] ===&lt;br /&gt;
:Frequently Asked Questions&lt;br /&gt;
&lt;br /&gt;
=== [[Feature List]] ===&lt;br /&gt;
:An index of Code::Blocks' useful features&lt;br /&gt;
&lt;br /&gt;
=== [[Code::Blocks Plugins]] ===&lt;br /&gt;
:Plugins extend Code::Blocks' functionality&lt;br /&gt;
&lt;br /&gt;
=== [[Off-site documentation]] ===&lt;br /&gt;
:Links to external documentation&lt;br /&gt;
&lt;br /&gt;
=== [[Developer documentation]] ===&lt;br /&gt;
:Articles for developers of Code::Blocks itself&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
|width=&amp;quot;40%&amp;quot; valign=&amp;quot;top&amp;quot;|&lt;br /&gt;
&amp;lt;!-- RIGHT --&amp;gt;&lt;br /&gt;
{{Layout_box4|1=&lt;br /&gt;
=== Download Code::Blocks ===&lt;br /&gt;
* Latest official release: [https://www.codeblocks.org/downloads/26 12.11]&lt;br /&gt;
* [/index.php?board=20.0 Nightly builds] (updated each night)&lt;br /&gt;
* [[Compiled_packages_of_Code::Blocks|Official and third-party binaries]] (for various distributions)&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Layout_box2|1=&lt;br /&gt;
=== Other resources ===&lt;br /&gt;
* [https://www.codeblocks.org Main website]&lt;br /&gt;
* [ Community forums]&lt;br /&gt;
* [irc://irc.freenode.net/codeblocks IRC channel] and [http://webchat.freenode.net/?channels=codeblocks IRC channel web access]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Layout_box2|1=&lt;br /&gt;
=== Development ===&lt;br /&gt;
[[Image:Chk.png]][[Roadmap]] &lt;br /&gt;
* [[Developer documentation]]&lt;br /&gt;
* [http://developer.berlios.de/projects/codeblocks/ Project page at BerliOS]&lt;br /&gt;
* '''Bugs''': [http://developer.berlios.de/bugs/?group_id=5358 Browse] or [http://developer.berlios.de/bugs/?func=addbug&amp;amp;group_id=5358 submit new]&lt;br /&gt;
* '''Features''': [http://developer.berlios.de/feature/?group_id=5358 Browse] or [http://developer.berlios.de/feature/?func=addfeature&amp;amp;group_id=5358 submit new]&lt;br /&gt;
* '''Patches''': [http://developer.berlios.de/patch/?group_id=5358 Browse] or [http://developer.berlios.de/patch/?func=addpatch&amp;amp;group_id=5358 submit new]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Layout_box3|1=&lt;br /&gt;
=== Supported compilers ===&lt;br /&gt;
* [http://gcc.gnu.org/ GNU GCC (incl. G77)] (Linux)&lt;br /&gt;
* [http://www.mingw.org MinGW GCC (incl. G77)] (Win32)&lt;br /&gt;
* [http://mspgcc.sourceforge.net MSP430 GCC] (Win32)&lt;br /&gt;
* [http://www.hightec-rt.com TriCore GCC] (Win32, Linux)&lt;br /&gt;
* [http://www.hightec-rt.com PowerPC GCC] (Win32, Linux)&lt;br /&gt;
* [http://developer.apple.com/tools/ Apple GCC (Xcode)] (Mac OS X)&lt;br /&gt;
&amp;lt;!-- Tested and working with Microsoft PSDK for Windows 2003 R2 and CodeBlocks b3577 --&amp;gt;&lt;br /&gt;
* [http://xona.com/2004/06/29.html Microsoft Visual C++ Toolkit 2003] (Win32) &lt;br /&gt;
* [http://msdn.microsoft.com/vstudio/express/visualc/download/ Microsoft Visual C++ 2005] (Win32)&lt;br /&gt;
* [http://edn.embarcadero.com/article/20633 Borland's C++ Compiler 5.5] (Win32)&lt;br /&gt;
* [http://www.digitalmars.com/ DigitalMars C/C++] (Win32)&lt;br /&gt;
* [http://openwatcom.org/index.php/Main_Page OpenWatcom] (Win32)&lt;br /&gt;
* [http://www.intel.com/cd/software/products/asmo-na/eng/compilers/219754.htm Intel C++ compiler] (Win32)&lt;br /&gt;
* [http://sdcc.sourceforge.net/ Small Device C Compiler (SDCC)]&lt;br /&gt;
* [http://www.digitalmars.com/d/dcompiler.html Digital Mars D]&lt;br /&gt;
* [http://dgcc.sourceforge.net/ GDC D Compiler]&lt;br /&gt;
* [http://dsource.org/projects/ldc/ LLVM D Compiler]&lt;br /&gt;
}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;[https://www.codeblocks.org/about.shtml The Code::Blocks team]&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;[[Special:Allpages|Index]]&amp;lt;/center&amp;gt;&lt;/div&gt;</summary>
		<author><name>Alpha</name></author>
	</entry>
	<entry>
		<id>https://wiki.codeblocks.org/index.php?title=Announcement_for_plugins/patches&amp;diff=7440</id>
		<title>Announcement for plugins/patches</title>
		<link rel="alternate" type="text/html" href="https://wiki.codeblocks.org/index.php?title=Announcement_for_plugins/patches&amp;diff=7440"/>
		<updated>2012-11-04T12:06:10Z</updated>

		<summary type="html">&lt;p&gt;Alpha: Added links; removed Java lexer link (it is in the trunk).&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Code::Blocks Plugins]]&lt;br /&gt;
=== HowTo announce a new plugin/patch or similar ===&lt;br /&gt;
&lt;br /&gt;
''Please read carefully:''&lt;br /&gt;
&lt;br /&gt;
This WiKi section is to announce:&lt;br /&gt;
* a new plugin that is '''not''' within the contrib folder of the SVN repository&lt;br /&gt;
* a patch that is '''not''' a bugfix or similar and/or will '''not''' be applied to the SVN repository (e.g. because it's very specific)&lt;br /&gt;
* a new lexer/template that is '''not''' completed or approved and/or will '''not''' be added to the SVN&lt;br /&gt;
&lt;br /&gt;
If a plugin/patch/lexer/template is moved to the repository don't forget to remove it from here! This section is intended to '''collect''' the information about available plugins/patches/lexerers/templates in one place. So the announcement should be short and clear. It should (however) include at least the following content:&lt;br /&gt;
* Name of the plugin/patch/lexer/template and purpose&amp;lt;BR&amp;gt;&lt;br /&gt;
* Version (state) and date of last update (or release in the first place)&amp;lt;BR&amp;gt;&lt;br /&gt;
* Link to a thread (to be created) in the developers (plugin) forum for discussion of features, bugs, wishlist etc.&amp;lt;BR&amp;gt;&lt;br /&gt;
* A link where the '''most up-to-date''' version can be downloaded (e.g. in the forum).&amp;lt;BR&amp;gt;&lt;br /&gt;
The best way may be to copy the section from the '''template''' plugin/patch/lexer/template and update it with your information. This will ensure consistency in the best way! Read the article [[How to add another announcement]] to read how to change the WiKi accordingly.&lt;br /&gt;
&lt;br /&gt;
=== Patch announcements ===&lt;br /&gt;
&lt;br /&gt;
So far there are no new patches.&lt;br /&gt;
&lt;br /&gt;
* [[Template for patch announcement]] (Read this before posting a new patch!)&lt;br /&gt;
&lt;br /&gt;
=== Plugin announcements ===&lt;br /&gt;
&lt;br /&gt;
These are the user-contributed plugins:&lt;br /&gt;
&lt;br /&gt;
* [[Replace in Files]] (MortenMacFly)&lt;br /&gt;
* [[Tab versus Space]] (MortenMacFly)&lt;br /&gt;
* [[Edit Project]] (Killerbot)&lt;br /&gt;
* [[Matching Brace]] (Killerbot)&lt;br /&gt;
* [[Library Finder]] (byo)&lt;br /&gt;
* [[Environment Variables Editor]] (MortenMacFly)&lt;br /&gt;
* [[ThreadSearch]] (Dje)&lt;br /&gt;
* [[Code Snippets plugin]] (Artoj/Pecan)&lt;br /&gt;
* [[Interpreted Languages plugin]] (dmoore) ** OBSOLETE **&lt;br /&gt;
* [[Shell Extensions plugin]] (dmoore)&lt;br /&gt;
* [[Python plugin]] (dmoore)&lt;br /&gt;
* [[FindBrokenFiles scripted plugin]] (MortenMacFly)&lt;br /&gt;
* [[AutoVersioning]] (JGM)&lt;br /&gt;
* [[DragScroll plugin]]&lt;br /&gt;
* [[BrowseTracker plugin]]&lt;br /&gt;
* [[FortranProject plugin]]&lt;br /&gt;
* [[cbDiff plugin]]&lt;br /&gt;
* [[Project Exporter]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* [/index.php/topic,13723.msg92518.html#msg92518 Bazaar] Bazaar version control (via Tools menu)&lt;br /&gt;
* [http://code.google.com/p/blackdoc/ BlackDoc] Derive project documentation in &amp;quot;BlackDoc&amp;quot; format&lt;br /&gt;
* [/index.php/topic,10901.0.html cbNSIS] Frontend for NSIS (Nullsoft installer system)&lt;br /&gt;
* [http://code.google.com/p/cbtortoisesvn CBTortoiseSVN] (SVN version control, working partially)&lt;br /&gt;
* [/index.php/topic,14184.0.html cbvcs] &amp;quot;Generic&amp;quot; version control, working partially&lt;br /&gt;
* [https://github.com/Lalaland/ClangComplete ClangComplete] Code-completion plugin using Clang&lt;br /&gt;
* [/index.php/topic,14339.0.html CodePaste] Pase code on platforms like Pastebin&lt;br /&gt;
* [/index.php/topic,15915.0.html CompileOnDemand] Compile a file automatically if it has changed&lt;br /&gt;
* [/index.php/topic,8568.0.html ColorCoder] Frontend to setup/compute colour code to be used in source code&lt;br /&gt;
* [/index.php/topic,16885.0.html CDB Debugger] Integration with the CDB debugger&lt;br /&gt;
* [/index.php/topic,16512.0.html EditorConfig] Use cross IDE coding styles (also see http://editorconfig.org/)&lt;br /&gt;
* (Other) [/index.php/topic,16517.0.html EditorConfig]&lt;br /&gt;
* [https://github.com/ywx/FormatFortranIndentPlugin FormatFortranIndent] Indent Fortran code correctly - best with [[Fortran Project plugin|FortranProject plugin]]&lt;br /&gt;
* [/index.php/topic,13348.0.html InnoSetup] Frontend for InnoSetup installer system&lt;br /&gt;
* [/index.php/topic,16470.0.html ListToolbox] Parse, manipulate, and format lists of text&lt;br /&gt;
* [/index.php/topic,16935.0.html PythonCodeCompletion] Code completion for Python&lt;br /&gt;
* [/index.php/topic,16635.0.html PythonDebugger] Integrated Python debugging&lt;br /&gt;
* [/index.php/topic,16249.0.html Semantic highlight] (In progress)&lt;br /&gt;
* [/index.php/topic,7063.0.html SVNInside] (SVN version control, working, but partially crashing C::B)&lt;br /&gt;
* [http://sourceforge.net/projects/xpmeditor/ XPM Editor] Graphical editor inside C::B&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* [[Template for plugin announcement]] (Read this before posting a new plugin!)&lt;br /&gt;
&lt;br /&gt;
=== Lexer/Templates announcements ===&lt;br /&gt;
&lt;br /&gt;
* [[d_source File wizard]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* [[Template for lexer/template announcement]] (Read this before posting a new lexer/template!)&lt;/div&gt;</summary>
		<author><name>Alpha</name></author>
	</entry>
	<entry>
		<id>https://wiki.codeblocks.org/index.php?title=Java_lexer&amp;diff=7439</id>
		<title>Java lexer</title>
		<link rel="alternate" type="text/html" href="https://wiki.codeblocks.org/index.php?title=Java_lexer&amp;diff=7439"/>
		<updated>2012-11-04T11:51:18Z</updated>

		<summary type="html">&lt;p&gt;Alpha: Deletion request (lexer is in trunk).&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Deletion Requests]]&lt;br /&gt;
&amp;lt;i&amp;gt;Lexer is in trunk&amp;lt;/i&amp;gt;&lt;br /&gt;
* Author: Alpha&lt;br /&gt;
* Purpose: Add support for language Java&lt;br /&gt;
* Version: (not versioned); State: '''stable'''&lt;br /&gt;
* Last update: 3. Jan. 2012&lt;br /&gt;
* Link for download: [http://developer.berlios.de/patch/?func=detailpatch&amp;amp;patch_id=3246&amp;amp;group_id=5358]&lt;br /&gt;
* Notes: If you have any questions or suggestions, please [/index.php start a thread in the forum].&lt;br /&gt;
&amp;lt;BR&amp;gt;&lt;br /&gt;
...back to [[Announcement for plugins/patches]]:&lt;/div&gt;</summary>
		<author><name>Alpha</name></author>
	</entry>
	<entry>
		<id>https://wiki.codeblocks.org/index.php?title=Pretty_Printers&amp;diff=7438</id>
		<title>Pretty Printers</title>
		<link rel="alternate" type="text/html" href="https://wiki.codeblocks.org/index.php?title=Pretty_Printers&amp;diff=7438"/>
		<updated>2012-11-04T11:47:08Z</updated>

		<summary type="html">&lt;p&gt;Alpha: Added links and category.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category: User Documentation]]&lt;br /&gt;
GDB Pretty Printers for STL display nicely formatted variables in the hover pop-up and watch window, for all STL containers (vectors, maps, etc).&lt;br /&gt;
----&lt;br /&gt;
[[File:Pprint1.png|border|Popup example]]&amp;lt;br&amp;gt;&lt;br /&gt;
==Test with GDB==&lt;br /&gt;
&lt;br /&gt;
*Ensure GDB is python-enabled. For Linux (tested with recent Ubuntu), it is enabled by default. For Windows, MinGW's GDB is not python enabled. One option is to install [http://sourceforge.net/projects/mingwbuilds/ MinGW-Builds] over MinGW (consider backing up MinGW first). This updates GCC to 4.7.2 and includes a Python enabled GDB.&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
To test, launch GDB from console:&lt;br /&gt;
&amp;lt;span style=&amp;quot;font-size: 10pt&amp;quot;&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
(gdb) python print sys.version&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
If python is enabled, the version will be printed (probably 2.7.x), otherwise, a message will indicate python scripting is not supported.&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
*Download printers.py (if necessary)&lt;br /&gt;
:Windows users with MinGW should already have this file in /MinGW/share/gcc-4.7.2/python/libstdcxx/v6.&lt;br /&gt;
:Linux users can download printers.py [http://gcc.gnu.org/viewcvs/trunk/libstdc%2B%2B-v3/python/libstdcxx/v6/ here]. Save as &amp;lt;tt&amp;gt;&amp;lt;span style=&amp;quot;font-size: 10pt&amp;quot;&amp;gt;/home/username/gdb_printers/printers.py&amp;lt;/span&amp;gt;&amp;lt;/tt&amp;gt;.&lt;br /&gt;
*Create a GDB [http://sourceware.org/gdb/onlinedocs/gdb/Command-Files.html Command File] to enable the printer. Store in &amp;lt;tt&amp;gt;&amp;lt;span style=&amp;quot;font-size: 10pt&amp;quot;&amp;gt;c:\mingw\bin\pp.gdb&amp;lt;/span&amp;gt;&amp;lt;/tt&amp;gt; (windows) or &amp;lt;tt&amp;gt;&amp;lt;span style=&amp;quot;font-size: 10pt&amp;quot;&amp;gt;/home/username/gdb_printers/pp.gdb&amp;lt;/span&amp;gt;&amp;lt;/tt&amp;gt; (linux). Below is a sample command file. Replace the path c:/MinGW/share... with your path to printers.py.&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&amp;lt;span style=&amp;quot;font-size: 10pt&amp;quot;&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
python&lt;br /&gt;
import sys&lt;br /&gt;
sys.path.insert(0, 'c:/MinGW/share/gcc-4.7.2/python/libstdcxx/v6')&lt;br /&gt;
from printers import register_libstdcxx_printers&lt;br /&gt;
register_libstdcxx_printers (None)&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
*Test&lt;br /&gt;
#Set a breakpoint in a program and debug&lt;br /&gt;
#Run the command file from GDB (can use Codeblocks-&amp;gt;debugger tab-&amp;gt;command, or in GDB from the console) (substitute your path if necessary)&lt;br /&gt;
&amp;lt;ol&amp;gt;&amp;lt;span style=&amp;quot;font-size: 10pt&amp;quot;&amp;gt;&amp;lt;pre&amp;gt;(gdb) source c:\MinGW\bin\pp.gdb&amp;lt;/pre&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;/ol&amp;gt;&lt;br /&gt;
&amp;lt;ol start=&amp;quot;3&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Test the printer - example:&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&amp;lt;ol&amp;gt;&amp;lt;span style=&amp;quot;font-size: 10pt&amp;quot;&amp;gt;&amp;lt;pre&amp;gt;(gdb) print words2&lt;br /&gt;
$1 = std::vector of length 3, capacity 4 = {&amp;quot;one&amp;quot;, &amp;quot;two&amp;quot;, &amp;quot;three&amp;quot;}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Add to Codeblocks==&lt;br /&gt;
Once the command file is working correctly, there are two steps to activate in Codeblocks:&lt;br /&gt;
#Set debugger initialization command (substitute your path as necessary):&amp;lt;br/&amp;gt;&amp;lt;span style=&amp;quot;font-size: 10pt&amp;quot;&amp;gt;&amp;lt;tt&amp;gt;Codeblocks-&amp;gt;Settings-&amp;gt;Debugger-&amp;gt;Default-&amp;gt;Debugger initialization commands&amp;lt;/tt&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;ol&amp;gt;&amp;lt;span style=&amp;quot;font-size: 10pt&amp;quot;&amp;gt;&amp;lt;pre&amp;gt;source c:\MinGW\bin\pp.gdb&amp;lt;/pre&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
NOTE: A bug in the Linux version of Codeblocks may prevent entering anything in the Debugger Initialization Commands field. A work-around is to open a CBP project file via a file manager, which in turn launches Codeblocks and seems to resolve the issue.&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&amp;lt;ol start=&amp;quot;2&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Disable Codeblocks handling of watch values:&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&amp;lt;ol&amp;gt;&amp;lt;span style=&amp;quot;font-size: 10pt&amp;quot;&amp;gt;&amp;lt;tt&amp;gt;Codeblocks-&amp;gt;Settings-&amp;gt;Debugger-&amp;gt;Default-&amp;gt;Enable Watch Scripts = Unchecked&amp;lt;/tt&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;/ol&amp;gt;&lt;br /&gt;
===Other Info===&lt;br /&gt;
Links:&lt;br /&gt;
&lt;br /&gt;
[http://sourceware.org/gdb/onlinedocs/gdb/Python-API.html GDB Python API]&lt;br /&gt;
&lt;br /&gt;
[http://sourceware.org/gdb/onlinedocs/gdb/Pretty-Printing.html GDB Pretty Printing]&lt;br /&gt;
&lt;br /&gt;
===To Do===&lt;br /&gt;
The third column in the Codeblocks popup and watch window displays a long unformatted string. Codeblocks is calling the GDB whatis command. Can this command be Pretty-Printed?&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
* [[Debugging with Code::Blocks]]&lt;br /&gt;
* [[Debugger scripts]]&lt;/div&gt;</summary>
		<author><name>Alpha</name></author>
	</entry>
	<entry>
		<id>https://wiki.codeblocks.org/index.php?title=Debugging_with_Code::Blocks&amp;diff=7437</id>
		<title>Debugging with Code::Blocks</title>
		<link rel="alternate" type="text/html" href="https://wiki.codeblocks.org/index.php?title=Debugging_with_Code::Blocks&amp;diff=7437"/>
		<updated>2012-11-04T11:44:27Z</updated>

		<summary type="html">&lt;p&gt;Alpha: Added links.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category: User Documentation]]&lt;br /&gt;
=Build debug version of your project=&lt;br /&gt;
Make sure that the project is compiled with the -g (debugging symbols) compiler option on, and the -s (strip symbols) option off. This ensures that the executable has debug symbols included.&lt;br /&gt;
&lt;br /&gt;
Compiler optimization switches should be turned off, stripping symbols (-s) ''must'' be turned off.&lt;br /&gt;
&lt;br /&gt;
Keep in mind that you may have to '''re'''-build your project as up-to-date object files might not be re-compiled with -g otherwise. Please be aware that in compilers other than GCC, -g and/or -s might be a different switch (-s might not be available at all).&lt;br /&gt;
&lt;br /&gt;
Menu =&amp;gt; Project =&amp;gt; Build Options&lt;br /&gt;
&lt;br /&gt;
[[Image:DbgProjBuildOpt.png|Set Project Build Options]]&lt;br /&gt;
&lt;br /&gt;
=Add Watches=&lt;br /&gt;
== In version 10.05 ==&lt;br /&gt;
Open The Debugger Watches Window&lt;br /&gt;
&lt;br /&gt;
[[Image:DbgWatchWindow.png|Open Watch Window]]&lt;br /&gt;
&lt;br /&gt;
The list of watches can be saved to a file and later re-loaded. To do so, right click in the list of watches and select &amp;quot;save watch file&amp;quot; (and &amp;quot;load watch file&amp;quot; to re-load them again).&lt;br /&gt;
&lt;br /&gt;
[[Image:Save watch.png]]&lt;br /&gt;
&lt;br /&gt;
== In latest nightly builds ==&lt;br /&gt;
In the latest nightly builds the watches window has been redesigned and works differently that the one in 10.05.&lt;br /&gt;
&lt;br /&gt;
Currently there are two ways of adding watches in it:&lt;br /&gt;
#Click in the empty last row in the watches window, type the name of the variable (or full expression) and hit enter.&lt;br /&gt;
#While the debugger has stopped on a breakpoint select a variable name or full expression, right click to open the context menu and then select &amp;quot;Add watch 'expression'&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
The automatic inclusion of local variables and function arguments have not being reimplemented.&lt;br /&gt;
Sorry about the inconvenience.&lt;br /&gt;
&lt;br /&gt;
=  Double-clicking in the Call stack window =&lt;br /&gt;
Note : when debugging, double-clicking on a frame in the &amp;quot;call stack&amp;quot; debug window does not automatically update the variables displayed in the &amp;quot;watches&amp;quot; debug window.&lt;br /&gt;
&lt;br /&gt;
You have to right-click on a frame in the &amp;quot;call stack&amp;quot; debug window and select &amp;quot;Switch to this frame&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
[[File:DWCB_watches_01.png]]&lt;br /&gt;
&lt;br /&gt;
=Set Breakpoints=&lt;br /&gt;
Find the line containing the variable to be watched. Set a breakpoint in a position that will allow you to observe the variable value.&lt;br /&gt;
&lt;br /&gt;
Menu =&amp;gt; Debug =&amp;gt; Toggle Breakpoint&lt;br /&gt;
&lt;br /&gt;
[[Image:DbgSetWatchVar.png|Choose Watch Variable]]&lt;br /&gt;
&lt;br /&gt;
Run the debugger until the breakpoint is reached. Right click the variable to set a watch in the Watch Window.&lt;br /&gt;
&lt;br /&gt;
Breakpoints may also be toggled with a left click in the left editor margin.&lt;br /&gt;
&lt;br /&gt;
=Notes=&lt;br /&gt;
==Script support==&lt;br /&gt;
Code::Blocks natively use squirrel script language to deal with gdb, see: [[Debugger scripts]]. As gdb 7.x support python pretty printer, so, it can also use gdb(with python support) to show some complex variable values. see forum thread [/index.php/topic,11301.msg77000.html#msg77000 unofficial MinGW GDB gdb with python released] and [http://code.google.com/p/qp-gcc/wiki/GDB Use GDB python under Codeblocks] for more details.&lt;br /&gt;
==Single file debugging==&lt;br /&gt;
To debug your program you need to setup a project. Single file programs are not supported.&lt;br /&gt;
&lt;br /&gt;
==Path with spaces==&lt;br /&gt;
Breakpoints could not work if the path/folder you've placed your project contains spaces or other special characters. To be safe use English letters, digits and '_'.&lt;br /&gt;
&lt;br /&gt;
==Forking==&lt;br /&gt;
If your application uses the 'fork' system call you'll have trouble stopping the debugged program or setting breakpoints on the fly.&lt;br /&gt;
Here is a link explaining the forking modes of GDB: http://sourceware.org/gdb/onlinedocs/gdb/Forks.html&lt;br /&gt;
&lt;br /&gt;
==Update to the newest version of MinGW==&lt;br /&gt;
From gdb 6.8 released on April 2008, it supports many features which does not exist in early versions. You can update by installing binaries from [http://www.tdragon.net/recentgcc/ TDM-Mingw package].&lt;br /&gt;
&lt;br /&gt;
==Use 32bit CDB for 32bit programs and 64bit CDB for 64bit programs==&lt;br /&gt;
It seems that debugging a 32bit program with 64bit CDB doesn't work on Windows 7, but 32bit CDB works perfectly.&lt;br /&gt;
&lt;br /&gt;
==Limits on the early version of MinGW==&lt;br /&gt;
If your are still using the MinGW and gdb 6.7 from [https://www.codeblocks.org/downloads/5 8.02 setup files], setting breakpoints in the constructor will not work. Here are some tricks.&lt;br /&gt;
&lt;br /&gt;
Breakpoints do not work in constructors or destructors in GDB 6.7 and earlier version. They do, however, work in routines &amp;lt;u&amp;gt;called&amp;lt;/u&amp;gt; from them. This is an early GDB restriction, not a bug. So you could do something like:&lt;br /&gt;
&lt;br /&gt;
[[Image:DbgWithCBExp.png|Debugging ctor/dtor ]]&lt;br /&gt;
&lt;br /&gt;
...and place a breakpoint in &amp;quot;DebugCtorDtor&amp;quot; at the line &amp;quot;int i = 0;&amp;quot; . The debugger will break at that line. If you then step the debugger (Menu Debug =&amp;gt; Next Line; or alternatively F7) you'll reach the code in the constructor/destructor (&amp;quot;is_initialized = true/false;&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
* [[Debugger scripts]]&lt;br /&gt;
* [[Pretty Printers]]&lt;/div&gt;</summary>
		<author><name>Alpha</name></author>
	</entry>
	<entry>
		<id>https://wiki.codeblocks.org/index.php?title=Debugger_plugin&amp;diff=7436</id>
		<title>Debugger plugin</title>
		<link rel="alternate" type="text/html" href="https://wiki.codeblocks.org/index.php?title=Debugger_plugin&amp;diff=7436"/>
		<updated>2012-11-04T11:42:39Z</updated>

		<summary type="html">&lt;p&gt;Alpha: Added link.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Code::Blocks Core Plugins]]&lt;br /&gt;
{{Infobox_Plugin|&lt;br /&gt;
  name = Debugger |&lt;br /&gt;
  logo = [[File:Debugger.png]] |&lt;br /&gt;
  developer = Yiannis Mandravellos |&lt;br /&gt;
  maintainer = |&lt;br /&gt;
  version = 0.3&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
The '''Debugger''' plugin interfaces with the GNU GDB and MS CDB debuggers, providing a graphical interface to these command-line tools.&lt;br /&gt;
&lt;br /&gt;
Currently, the debugger branch (wxpropgrid_debugger) contains significantly improved debugging capabilities. See the [/index.php/board,20.0.html nightly builds] to download a recent version.&lt;br /&gt;
&lt;br /&gt;
2012-04-07, as of rev7920, the debugger branch was merged to trunk, so all the new debugger plugin features is now in trunk.&lt;br /&gt;
&lt;br /&gt;
The next generation of debugger plugin will use the GDB-MI interface, and it is under developement, but it is at least usable. You can try it. see [/index.php/topic,16230.msg109713.html#msg109713 GDB-MI Plugin].&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
* [[Debugging with Code::Blocks]]&lt;br /&gt;
* [[Debugger scripts]]: extend the debugger to support arbitrary data types.&lt;br /&gt;
* [[Pretty Printers]]&lt;/div&gt;</summary>
		<author><name>Alpha</name></author>
	</entry>
	<entry>
		<id>https://wiki.codeblocks.org/index.php?title=Creating_a_custom_lexer_for_Code::Blocks_editor&amp;diff=7361</id>
		<title>Creating a custom lexer for Code::Blocks editor</title>
		<link rel="alternate" type="text/html" href="https://wiki.codeblocks.org/index.php?title=Creating_a_custom_lexer_for_Code::Blocks_editor&amp;diff=7361"/>
		<updated>2012-09-26T03:30:30Z</updated>

		<summary type="html">&lt;p&gt;Alpha: Added link to GtkSourceView.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Developer Documentation]]&lt;br /&gt;
Code::Blocks can provide syntax highlighting for any of the languages supported by Scintilla http://www.scintilla.org (the Rich Editing API used by C::B to provide syntax highlighting, code folding etc). Each language that C::B provides highlighting for has a C::B specific xml file found under &amp;lt;tt&amp;gt;sdk/resources/lexers&amp;lt;/tt&amp;gt; that specifies styles and keywords of the language (they're simple XML files with names of the form &amp;lt;tt&amp;gt;lexer_*.xml&amp;lt;/tt&amp;gt;). Adding a new language that is supported by Scintilla is as simple as adding an xml file for that language. At a minimum, the xml file must list the available set of styles for the lexical elements of a language and provide for keywords (the file will also specify a file containing sample code for editing and previewing lexer styles in Code::Blocks). Actual styles and keywords for each language can be edited by users within Code::Blocks under Settings-&amp;gt;Editors-&amp;gt;Syntax Highlighting allowing them view the results in a preview window (for the preview to display you will need to provide this sample code in a separate file also located in &amp;lt;tt&amp;gt;sdk/resources/lexers&amp;lt;/tt&amp;gt;). User customized styles and keywords are kept in the users &amp;lt;tt&amp;gt;default.conf&amp;lt;/tt&amp;gt; file (i.e. the xml file is never changed within codeblocks) allowing users to easily revert to the xml file.&lt;br /&gt;
&lt;br /&gt;
To illustrate how you might construct a new lexer xml file let's look at the pre-installed CPP lexer, whose styles and keywords are stored in &amp;lt;tt&amp;gt;lexer_cpp.xml&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==XML==&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;?xml version=&amp;quot;1.0&amp;quot;?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Basically this says &amp;quot;I am an XML file&amp;quot;. '''Very Important'''&lt;br /&gt;
&lt;br /&gt;
==DOCTYPE==&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;!DOCTYPE CodeBlocks_lexer_properties&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This needs to be in every lexer file. Code::Blocks '''will not''' load the lexer if this is not present.&lt;br /&gt;
&lt;br /&gt;
==Lexers==&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;Lexer name=&amp;quot;C/C++&amp;quot;&lt;br /&gt;
        index=&amp;quot;3&amp;quot;&lt;br /&gt;
        filemasks=&amp;quot;*.c,*.cpp,*.cc,*.cxx,*.h,*.hpp,*.hh,*.hxx,*.inl&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pretty much self explanatory, except for the &amp;quot;magic&amp;quot; ''index'' number (we'll come to it in a sec).&lt;br /&gt;
&lt;br /&gt;
* '''name''' is the lexer's configuration name. This will appear in the editor's configuration dialog, in the languages drop down box (in colors editing page).&lt;br /&gt;
&lt;br /&gt;
* '''filemasks''' is a comma separated list of the extensions that this lexer should be used for. This is case-insensitive.&lt;br /&gt;
&lt;br /&gt;
* '''index''' corresponds with the &amp;lt;tt&amp;gt;wxSCI_LEX_*&amp;lt;/tt&amp;gt; constants, found in [http://svn.berlios.de/wsvn/codeblocks/trunk/src/sdk/wxscintilla/include/wx/wxscintilla.h &amp;lt;tt&amp;gt;sdk/wxscintilla/include/wx/wxscintilla.h&amp;lt;/tt&amp;gt;]. In this example, if you look in &amp;lt;tt&amp;gt;sdk/wxscintilla/include/wx/wxscintilla.h&amp;lt;/tt&amp;gt;, you'll see that ''index 3'' matches &amp;lt;tt&amp;gt;wxSCI_LEX_CPP&amp;lt;/tt&amp;gt;. That is the ''lexer id'' for C/C++ syntax highlighting.&lt;br /&gt;
&lt;br /&gt;
If we were building a lexer configuration for let's say, XML (random choice) we would look up the constant &amp;lt;tt&amp;gt;wxSCI_LEX_XML&amp;lt;/tt&amp;gt; which is defined to be number ''5''. So ''index=5''. Simple.&lt;br /&gt;
&lt;br /&gt;
==Styles==&lt;br /&gt;
&lt;br /&gt;
Next follows many &amp;lt;tt&amp;gt;&amp;lt;Style&amp;gt;&amp;lt;/tt&amp;gt; tags defining the different styles:&lt;br /&gt;
&lt;br /&gt;
        &amp;lt;Style name=&amp;quot;Default&amp;quot;&lt;br /&gt;
               index=&amp;quot;0&amp;quot;&lt;br /&gt;
               fg=&amp;quot;0,0,0&amp;quot;&lt;br /&gt;
               bg=&amp;quot;255,255,255&amp;quot;&lt;br /&gt;
               bold=&amp;quot;0&amp;quot;&lt;br /&gt;
               italics=&amp;quot;0&amp;quot;&lt;br /&gt;
               underlined=&amp;quot;0&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* '''name''' is the style's name. It appears in the editor's configuration dialog, in the colors editing page.&lt;br /&gt;
&lt;br /&gt;
* '''fg''' is the foreground color. Comma separated list of three numbers from 0 to 255. In order: red, green and blue (RGB).&lt;br /&gt;
&lt;br /&gt;
* '''bg''' is the background color.&lt;br /&gt;
&lt;br /&gt;
* '''bold''' is &amp;lt;tt&amp;gt;&amp;quot;0&amp;quot;&amp;lt;/tt&amp;gt; for disabled, &amp;lt;tt&amp;gt;&amp;quot;1&amp;quot;&amp;lt;/tt&amp;gt; for enabled.&lt;br /&gt;
&lt;br /&gt;
* '''italics''' is &amp;lt;tt&amp;gt;&amp;quot;0&amp;quot;&amp;lt;/tt&amp;gt; for disabled, &amp;lt;tt&amp;gt;&amp;quot;1&amp;quot;&amp;lt;/tt&amp;gt; for enabled.&lt;br /&gt;
&lt;br /&gt;
* '''underlined''' is &amp;lt;tt&amp;gt;&amp;quot;0&amp;quot;&amp;lt;/tt&amp;gt; for disabled, &amp;lt;tt&amp;gt;&amp;quot;1&amp;quot;&amp;lt;/tt&amp;gt; for enabled.&lt;br /&gt;
&lt;br /&gt;
You don't have to define all of these attributes. It's good to define them all for the &amp;lt;tt&amp;gt;&amp;quot;default&amp;quot;&amp;lt;/tt&amp;gt; style (all lexers have a default style), but only the attributes needed should be defined for the rest of the styles.&lt;br /&gt;
&lt;br /&gt;
* The '''index''' number in the &amp;lt;tt&amp;gt;&amp;lt;Style&amp;gt;&amp;lt;/tt&amp;gt; tags, comes from a different set of constants defined in &amp;lt;tt&amp;gt;sdk/wxscintilla/include/wx/wxscintilla.h&amp;lt;/tt&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
For each language supported by scintilla, there is a set of styles ''(lexical states)'' defined (these are what we're trying to configure with these files). &lt;br /&gt;
&lt;br /&gt;
For example, for C/C++ files (&amp;lt;tt&amp;gt;wxSCI_LEX_CPP&amp;lt;/tt&amp;gt;, remember?) the styles are defined as &amp;lt;tt&amp;gt;wxSCI_C_*&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
For the &amp;lt;tt&amp;gt;&amp;quot;default&amp;quot;&amp;lt;/tt&amp;gt; style shown above, this would be &amp;lt;tt&amp;gt;wxSCI_C_DEFAULT&amp;lt;/tt&amp;gt; which is defined to be ''0''. Hence ''index=0'' for &amp;lt;tt&amp;gt;&amp;quot;default&amp;quot;&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
        &amp;lt;Style name=&amp;quot;Comment (normal)&amp;quot;&lt;br /&gt;
               index=&amp;quot;1,2&amp;quot;&lt;br /&gt;
               fg=&amp;quot;160,160,160&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This is the style definition for normal comments. As you can see you can define a single style for more than one style index, in this case two: ''1'' and ''2'' (always comma separated).&lt;br /&gt;
&lt;br /&gt;
''1'' is for &amp;lt;tt&amp;gt;wxSCI_C_COMMENT&amp;lt;/tt&amp;gt; (the C comment &amp;lt;tt&amp;gt;/* */&amp;lt;/tt&amp;gt;) and ''2'' is for &amp;lt;tt&amp;gt;wxSCI_C_COMMENTLINE&amp;lt;/tt&amp;gt; (the C++ comment to end of line &amp;lt;tt&amp;gt;// &amp;lt;/tt&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
There are some special styles defined by Code::Blocks and are available to all lexers:&lt;br /&gt;
&lt;br /&gt;
* '''index -99''' is the selected text style.&lt;br /&gt;
* '''index -98''' is the active line style (the line the caret is on).&lt;br /&gt;
* '''index -2''' is the breakpoint line style.&lt;br /&gt;
* '''index -3''' is the debugger active line style (while stepping the debugger).&lt;br /&gt;
* '''index -4''' is the compiler warning/error line style. ('''Note: this index was removed completely?''')&lt;br /&gt;
&lt;br /&gt;
==Keywords==&lt;br /&gt;
&lt;br /&gt;
Now on to the keywords.&lt;br /&gt;
&lt;br /&gt;
        &amp;lt;Keywords&amp;gt;&lt;br /&gt;
               &amp;lt;Set index=&amp;quot;0&amp;quot;&lt;br /&gt;
                         value=&amp;quot;if int long try while and-so-on&amp;quot; /&amp;gt;&lt;br /&gt;
               &amp;lt;Set index=&amp;quot;1&amp;quot; /&amp;gt;&lt;br /&gt;
               &amp;lt;Set index=&amp;quot;2&amp;quot;&lt;br /&gt;
                              value=&amp;quot;param remarks return $ @ \ &amp;amp; &amp;lt; &amp;gt; # { } and-so-on&amp;quot; /&amp;gt;&lt;br /&gt;
        &amp;lt;/Keywords&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you are defining a lexer configuration for a language that has keywords they should be added in the &amp;lt;tt&amp;gt;&amp;lt;Keywords&amp;gt;&amp;lt;/tt&amp;gt; tag.&lt;br /&gt;
In the scintilla version used by Code::Blocks, you can setup up to 9 keyword sets (the &amp;quot;index&amp;quot; attribute). What each set does and which sets are used by a lexer, is defined by the lexer itself.&lt;br /&gt;
&lt;br /&gt;
If you open LexCPP.cxx (from the scintilla sources), you will find the following:&lt;br /&gt;
&lt;br /&gt;
 static const char * const cppWordLists[] = {&lt;br /&gt;
            &amp;quot;Primary keywords and identifiers&amp;quot;,&lt;br /&gt;
            &amp;quot;Secondary keywords and identifiers&amp;quot;,&lt;br /&gt;
            &amp;quot;Documentation comment keywords&amp;quot;,&lt;br /&gt;
            &amp;quot;Unused&amp;quot;,&lt;br /&gt;
            &amp;quot;Global classes and typedefs&amp;quot;,&lt;br /&gt;
            0,&lt;br /&gt;
        };&lt;br /&gt;
&lt;br /&gt;
This tells us which indices are valid and what each one represents:&lt;br /&gt;
&lt;br /&gt;
Index 0, &amp;quot;Primary keywords and identifiers&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Index 1, &amp;quot;Secondary keywords and identifiers&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Index 2, &amp;quot;Documentation comment keywords&amp;quot;&lt;br /&gt;
&lt;br /&gt;
(notice that index &amp;quot;3&amp;quot; is not used)&lt;br /&gt;
&lt;br /&gt;
Index 4, &amp;quot;Global classes and typedefs&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==Sample Code==&lt;br /&gt;
&lt;br /&gt;
The tag left is &amp;lt;tt&amp;gt;SampleCode&amp;lt;/tt&amp;gt;. This is much pretty self explanatory:&lt;br /&gt;
&lt;br /&gt;
        &amp;lt;SampleCode value=&amp;quot;lexer_cpp.sample&amp;quot;&lt;br /&gt;
                    breakpoint_line=&amp;quot;20&amp;quot;&lt;br /&gt;
                    debug_line=&amp;quot;22&amp;quot;&lt;br /&gt;
                    error_line=&amp;quot;23&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* '''value''' is the filename of the code that will be shown in the Preview window. &lt;br /&gt;
When creating a &amp;lt;tt&amp;gt;lexer_*.sample&amp;lt;/tt&amp;gt; try to do it with simple and concise sample code (like the ones found in a typical &amp;quot;Hello world!&amp;quot;), yet include all the styles of the lexer.&lt;br /&gt;
&lt;br /&gt;
There are other optional options ('''Note: this index was removed completely?''')&lt;br /&gt;
* '''breakpoint_line''' is the number of the line in which a breakpoint line will be previewed.&lt;br /&gt;
* '''debug_line''' is the number of the line in which a debug line will be previewed.&lt;br /&gt;
* '''error_line''' is the number of the line in which an error line will be previewed.&lt;br /&gt;
&lt;br /&gt;
==Tips==&lt;br /&gt;
When writting a lexer, this can be useful:&lt;br /&gt;
* .properties files of SciTE (the official Scintilla-based text editor) [http://scintilla.sourceforge.net/SciTE.html]&lt;br /&gt;
* .lang files of GtkSourceView (used Gedit) [http://git.gnome.org/browse/gtksourceview/tree/data/language-specs]&lt;br /&gt;
&lt;br /&gt;
==Adding support for code-folding==&lt;br /&gt;
&lt;br /&gt;
'''Note: support for code-folding can't be done from the lexer files. It must be done right in the Scintilla code'''.&lt;br /&gt;
&lt;br /&gt;
See here: http://sphere.sourceforge.net/flik/docs/scintilla-folding.html&lt;br /&gt;
&lt;br /&gt;
==Adding support for a lexer not supported in Scintilla==&lt;br /&gt;
&lt;br /&gt;
'''Note: support for a lexer not supported in Scintilla is out of scope of Code::Blocks. It must be done right in the Scintilla code.'''&lt;br /&gt;
&lt;br /&gt;
Here are some instructions: http://scintilla.sourceforge.net/Lexer.txt. To be able to use your newly created lexer in C::B, adjust the validity check of &amp;quot;lexer&amp;quot; in EditorColourSet::AddHighlightLanguage().&lt;br /&gt;
&lt;br /&gt;
* After you've written the Scintilla lexer, submit the files to the [http://sourceforge.net/tracker/?group_id=2439 Scintilla tracker], following their own [http://scintilla.sourceforge.net/SciCoding.html coding style].&lt;br /&gt;
&lt;br /&gt;
* After that, make any necesary change to wxScintilla and sumbit the files to the [http://sourceforge.net/tracker/?group_id=51305&amp;amp;atid=462818 wxScintilla tracker] or send a mail to the autor wyo@users.sourceforge.net (Otto Wyss).&lt;br /&gt;
&lt;br /&gt;
* And finishing, be sure to send all to the [http://developer.berlios.de/patch/?func=addpatch&amp;amp;group_id=5358 Code::Blocks tracker] (Category: Lexer), and announce it at the [/index.php?board=7.0 Forum] and the [[Announcement for plugins/patches|Wiki announcement for plugins/patches]].&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
* [[Languages supported by Code::Blocks lexers]]&lt;/div&gt;</summary>
		<author><name>Alpha</name></author>
	</entry>
	<entry>
		<id>https://wiki.codeblocks.org/index.php?title=Creating_a_patch_to_submit_(Patch_Tracker)&amp;diff=7348</id>
		<title>Creating a patch to submit (Patch Tracker)</title>
		<link rel="alternate" type="text/html" href="https://wiki.codeblocks.org/index.php?title=Creating_a_patch_to_submit_(Patch_Tracker)&amp;diff=7348"/>
		<updated>2012-09-03T23:30:40Z</updated>

		<summary type="html">&lt;p&gt;Alpha: Grammar.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Developer Documentation]]&lt;br /&gt;
== Introduction ==&lt;br /&gt;
You want to contribute to Code::Blocks? - Thank you! That is really appreciated. Hence you can help us even more if you read the following paragraphs carefully.&lt;br /&gt;
&lt;br /&gt;
First of all please make sure the feature you are implementing is not already implemented in the &amp;quot;nightly builds&amp;quot; of Code::Blocks ([/index.php/board,20.0.html /index.php/board,20.0.html]). Furthermore browse through the list of available patches at the Code::Blocks project page at BerliOS (see section &amp;quot;Patch submission&amp;quot; below on how to gain access). If you are unsure, don't hesitate to ask in the forum ([ ]) for advise.&lt;br /&gt;
&lt;br /&gt;
You can make it easier for the developers to integrate your patches if you follow the advices of this page. Patches can be created in different formats. The format that is used by Code::Blocks is called a &amp;quot;unified diff&amp;quot;. Hence 3rd party tools may still create a different patch format although it may be labelled as &amp;quot;unified diff&amp;quot;. To avoid unnecessary incompatibilities the best way to provide a patch is to '''use the Subversion (SVN) diff''' (using the command line tool or a SVN GUI application).&lt;br /&gt;
&lt;br /&gt;
== What is required? ==&lt;br /&gt;
Not too much, you might already have the required tools installed.&lt;br /&gt;
You'll need a subversion client software. You can download a current version for your OS at the Subversion project webpage here: [http://subversion.tigris.org http://subversion.tigris.org]. If you want to apply or test your patches you'll also need either '''svn''' version ≥ 1.7.0 or the '''patch''' program; you can download patch and find more information about it at the [http://www.gnu.org/software/patch/ GNU patch website]. &lt;br /&gt;
&lt;br /&gt;
It is a good idea to apply your code to the most up-to-date sources of Code::Blocks as they are available at the SVN repository. You'll find the instructions how to obtain the sources here: [https://www.codeblocks.org/downloads/7 https://www.codeblocks.org/downloads/7]. Once you've created your local sandbox you can start integrating your changes into it. Thus you may modify existing files or add new ones. When you have finished please make sure you've verified your implementation (feature(s)) work properly. Now it's time to create the patch.&lt;br /&gt;
&lt;br /&gt;
== Patch creation ==&lt;br /&gt;
If you have added new files you first have to register them with your sandbox. Thus go into the directory you've added new files and type at the command line:&lt;br /&gt;
: &amp;lt;tt&amp;gt;svn add filename(s)&amp;lt;/tt&amp;gt;&lt;br /&gt;
...whereas &amp;quot;filename(s)&amp;quot; needs to be replaced with the files you've added. Of course if you are not using the command line version of SVN you can easily use the &amp;quot;Add&amp;quot; feature of your prefered SVN GUI. If you've completed adding all your new files to your sandbox you are ready to create the patch.&lt;br /&gt;
&lt;br /&gt;
First of all go to the top-level directory of your sandbox (the first directory that has a hidden &amp;quot;.svn&amp;quot; folder with content). This is done because the patch file generated by the following command is relative to the directory where it's performed. This is the command to create the patch file:&lt;br /&gt;
: &amp;lt;tt&amp;gt;svn diff &amp;gt; my.patch&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can change the name of the patch (''my.patch'' in the example) with a more descriptive name but make sure you leave the file extension &amp;quot;.patch&amp;quot; as this avoids conflicts while submitting the patch. The creation of the ''difference file'' (the patch file) may take some time, please be patient.&lt;br /&gt;
&lt;br /&gt;
Once the patch file is created please make sure it contains content! Otherwise make sure you followed the steps above or ask in the forum ([ ]) for support.&lt;br /&gt;
&lt;br /&gt;
''Note: if the created patch is much larger than expected (it should be similar in size to the amount of code you changed/added) it is likely that extraneous white space changes are being picked up. In this case, please use the following command to create the patch file:''&lt;br /&gt;
: &amp;lt;tt&amp;gt;svn diff -x -w &amp;gt; my.patch&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Patch application and testing ===&lt;br /&gt;
In order to apply a patch you need the patch program ([http://gnuwin32.sourceforge.net/packages/patch.htm Windows] [http://savannah.gnu.org/projects/patch/ Linux]). Make sure you are in the same directory the patch was created and then type the following command:&lt;br /&gt;
: &amp;lt;tt&amp;gt;patch --unified --strip=0 --forward --input=my.patch&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Or, if you are using svn version ≥ 1.7.0, the command:&lt;br /&gt;
: &amp;lt;tt&amp;gt;svn patch my.patch&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This will perform some checks and then will patch your files using the difference information saved in the patch file (''my.patch'' in the example).&lt;br /&gt;
&lt;br /&gt;
'''Important note:''' If you are working under Windows you may have to convert the patch file to dos line-ending format. You can do that using &amp;quot;unix2dos my.patch&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
== Patch submission ==&lt;br /&gt;
By now you are ready to submit your work to the Patch Tracker at BerliOS ([http://developer.berlios.de/projects/codeblocks http://developer.berlios.de/projects/codeblocks/]) - the developer platform for Code::Blocks. If you haven't done so already, you need to register with BerliOS to gain the right to submit patches to projects. The membership is free and appreciated. Select the &amp;quot;Patches&amp;quot; section ([http://developer.berlios.de/patch/?group_id=5358 http://developer.berlios.de/patch/?group_id=5358]) of the Code::Blocks project page. Click on &amp;quot;Submit A Patch&amp;quot; and fill out the form that appears. For now you only need to select a category for your patch, a '''descriptive''' summary and the patch itself. Make sure you enable the checkbox &amp;quot;Upload Patch&amp;quot; and provide the patch file you've just created. Then you are ready for submission - click on the &amp;quot;Submit patch&amp;quot; button on the bottom of the page.&lt;br /&gt;
&lt;br /&gt;
You should now see the current list of patches with your patch at the top. Please note you can add additional comments or updates to your patch by simply clicking on the patch in the list and fill out the form that appears.&lt;br /&gt;
&lt;br /&gt;
'''Thank you very much for your submission!'''&lt;/div&gt;</summary>
		<author><name>Alpha</name></author>
	</entry>
	<entry>
		<id>https://wiki.codeblocks.org/index.php?title=IPDefend_Toolkit_plugin&amp;diff=7340</id>
		<title>IPDefend Toolkit plugin</title>
		<link rel="alternate" type="text/html" href="https://wiki.codeblocks.org/index.php?title=IPDefend_Toolkit_plugin&amp;diff=7340"/>
		<updated>2012-08-23T01:34:39Z</updated>

		<summary type="html">&lt;p&gt;Alpha: Added category.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Code::Blocks 3rd Party Plugins]]&lt;br /&gt;
* Name: IPDefend Toolkit&lt;br /&gt;
* Author: Comsytec s.r.o.&lt;br /&gt;
* Purpose: This toolkit allows to create licensed binary images. For more information see the documentation at download page.&lt;br /&gt;
* Version: 2.0.0; State: '''stable'''&lt;br /&gt;
* Last update: 21. Aug. 2012&lt;br /&gt;
* Link for download: [[http://www.comsytec.com/ipdefend.php]]&lt;br /&gt;
&amp;lt;BR&amp;gt;&lt;/div&gt;</summary>
		<author><name>Alpha</name></author>
	</entry>
	<entry>
		<id>https://wiki.codeblocks.org/index.php?title=Code::Blocks_Plugins&amp;diff=7339</id>
		<title>Code::Blocks Plugins</title>
		<link rel="alternate" type="text/html" href="https://wiki.codeblocks.org/index.php?title=Code::Blocks_Plugins&amp;diff=7339"/>
		<updated>2012-08-23T01:33:39Z</updated>

		<summary type="html">&lt;p&gt;Alpha: Alphabetize and (minor) grammar fix.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category: User Documentation]]&lt;br /&gt;
== General ==&lt;br /&gt;
&lt;br /&gt;
Code::Blocks' features can be extend by using '''plugins''', most of them listed on this page. There are generally three types of plugins:&lt;br /&gt;
# Core plugins - developed and maintained by the core C::B team.&lt;br /&gt;
# Contrib plugins - developed and maintained by the community and proven to be very valuable. So they are integrated into the C::B SVN.&lt;br /&gt;
# 3rd party plugins - developed and maintained by the community but not (yet?) in the C::B repository. Theses plugins often have their own repository or are being posted (including the source code) in the forums.&lt;br /&gt;
&lt;br /&gt;
'''If you are looking for plugins:'''&lt;br /&gt;
# Look in the official release. Notice that the installer / package manager might require you to enable some of the plugins specifically. So READ carefully.&lt;br /&gt;
# Search the forums for announcements, especially the forums at [/index.php/board,14.0.html].&lt;br /&gt;
# There might be information on the WiKi concerning other plugins on this page and '''[[Announcement_for_plugins/patches|here]]'''.&lt;br /&gt;
&lt;br /&gt;
For Windows users, the default behavior of the current installer (10.05) does '''not''' install contrib plugins. You need to manually check the &amp;quot;contrib plugin&amp;quot; checkbox when asked for selected components to install. There is no way to install them manually afterwards.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''If you are developing plugins:'''&lt;br /&gt;
Surely you can work with plugin as you like, but here are some suggestions:&lt;br /&gt;
* Announce them in the plugin development board in the forums - including the (initial) source code at [/index.php/board,14.0.html].&lt;br /&gt;
&lt;br /&gt;
OR&lt;br /&gt;
&lt;br /&gt;
* Setup your own webpage (or use a file sharing platform) and post the link to the sources/binaries/svn access in the plugin development board in the forums at [/index.php/board,14.0.html].&lt;br /&gt;
&lt;br /&gt;
OR&lt;br /&gt;
&lt;br /&gt;
* Setup a repository, probably at BerliOS or SourceForge, post the link to the sources/binaries/svn access in the plugin development board in the forums at [/index.php/board,14.0.html]. Notice: This is very convenient as attachments in our forum might be deleted from time to time. So it is not safe to post source code in the forums.&lt;br /&gt;
&lt;br /&gt;
THEN&lt;br /&gt;
&lt;br /&gt;
# Enter the plugins description on this page.&lt;br /&gt;
# Announce the plugin '''[[Announcement_for_plugins/patches|here]]''' using '''[[Template_for_plugin_announcement|this]]''' template.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Core Plugins ==&lt;br /&gt;
&lt;br /&gt;
The core plugins are installed by default and offer the basic functions of Code::Blocks. The core plugins are maintained / developed by the official development team.&lt;br /&gt;
&lt;br /&gt;
'''[[Abbreviations plugin|Abbreviations]]'''&lt;br /&gt;
:Code::Blocks AutoComplete plugin.&lt;br /&gt;
&lt;br /&gt;
'''[[Autosave plugin|Autosave]]'''&lt;br /&gt;
&lt;br /&gt;
:Saves project files between intervals.&lt;br /&gt;
&lt;br /&gt;
'''[[Class Wizard plugin|Class Wizard]]'''&lt;br /&gt;
&lt;br /&gt;
:Provides wizard for creating new classes.&lt;br /&gt;
&lt;br /&gt;
'''[[Code Completion plugin|Code Completion]]'''&lt;br /&gt;
&lt;br /&gt;
:Provides code completion functionality and class browser.&lt;br /&gt;
&lt;br /&gt;
'''[[Compiler plugin|Compiler]]'''&lt;br /&gt;
&lt;br /&gt;
:Provides support for various compilers in one interface.&lt;br /&gt;
&lt;br /&gt;
'''[[Debugger plugin|Debugger]]'''&lt;br /&gt;
&lt;br /&gt;
:Provides support for various debuggers in one interface.&lt;br /&gt;
&lt;br /&gt;
'''[[File Extension Handler plugin|File Extensions Handler]]'''&lt;br /&gt;
&lt;br /&gt;
:Adds extra file extension handlers.&lt;br /&gt;
&lt;br /&gt;
'''[[Header Guard plugin|Header Guard]]''' ''(Disabled by default.)''&lt;br /&gt;
&lt;br /&gt;
:Create header guards (if needed) on file save.&lt;br /&gt;
&lt;br /&gt;
'''[[LogHacker plugin|LogHacker]]''' ''(Disabled by default.)''&lt;br /&gt;
&lt;br /&gt;
:Manipulate loggers.&lt;br /&gt;
&lt;br /&gt;
'''[[ModPoller plugin|ModPoller]]''' ''(Disabled by default.)''&lt;br /&gt;
&lt;br /&gt;
:Frequently check for external modification.&lt;br /&gt;
&lt;br /&gt;
'''[[Open Files List plugin|Open Files List]]'''&lt;br /&gt;
&lt;br /&gt;
:Manages a list of all opened files (editors).&lt;br /&gt;
&lt;br /&gt;
'''[[Projects Importer plugin|Projects Importer]]'''&lt;br /&gt;
&lt;br /&gt;
:Imports projects from other IDE's, e.g. MS Visual Studio and DevC++.&lt;br /&gt;
&lt;br /&gt;
'''[[Scripted Wizard plugin|Scripted Wizard]]'''&lt;br /&gt;
&lt;br /&gt;
:Provides scripted wizard functionality.&lt;br /&gt;
&lt;br /&gt;
'''[[Source Code Formatter plugin|Source Code Formatter]]''' (AStyle)&lt;br /&gt;
&lt;br /&gt;
:Formats source code files with specific style.&lt;br /&gt;
&lt;br /&gt;
'''[[Tidycmt plugin|Tidycmt]]''' ''(Disabled by default.)''&lt;br /&gt;
&lt;br /&gt;
:Formats comments on file save.&lt;br /&gt;
&lt;br /&gt;
'''[[To-Do List plugin|To-Do List]]'''&lt;br /&gt;
&lt;br /&gt;
:Adds to-do items to source code.&lt;br /&gt;
&lt;br /&gt;
'''[[WinXP Look'n'Feel plugin|WinXP Look'n'Feel]]'''&lt;br /&gt;
&lt;br /&gt;
:Creates manifest file which enables the version 6.0 of the Common Controls on Windows XP.&lt;br /&gt;
&lt;br /&gt;
== Contrib Plugins ==&lt;br /&gt;
&lt;br /&gt;
The user-''contrib''uted plugins are not installed by default and offer extended functionality for Code::Blocks. The contrib plugins are maintained / developed by third-party developers.&lt;br /&gt;
&lt;br /&gt;
'''[[Aligner plugin|Aligner]]'''&lt;br /&gt;
&lt;br /&gt;
:Code alignment.&lt;br /&gt;
&lt;br /&gt;
'''[[AutoVersioning plugin|Auto Versioning]]'''&lt;br /&gt;
&lt;br /&gt;
:Helps you keep track of your project version and status.&lt;br /&gt;
&lt;br /&gt;
'''[[Browse Tracker plugin|Browse Tracker]]'''&lt;br /&gt;
&lt;br /&gt;
:Browse to previous source positions.&lt;br /&gt;
&lt;br /&gt;
'''[[C::B Games plugin|C::B Games]]'''&lt;br /&gt;
&lt;br /&gt;
:Games in a integrated development environment? You bet.&lt;br /&gt;
&lt;br /&gt;
'''[[CCCC plugin|CCCC]]'''&lt;br /&gt;
&lt;br /&gt;
:Integrates CCCC tool for measurement of source code metrics (http://sourceforge.net/projects/cccc/) into Code::Blocks.&lt;br /&gt;
&lt;br /&gt;
'''[[Code Profiler plugin|Code Profiler]]'''&lt;br /&gt;
&lt;br /&gt;
:Provides graphical interface to GNU GProf profiler.&lt;br /&gt;
&lt;br /&gt;
'''[[Code Snippets plugin|Code Snippets]]'''&lt;br /&gt;
&lt;br /&gt;
:Manages small pieces of code (i.e. snippets).&lt;br /&gt;
&lt;br /&gt;
'''[[Code Statistics plugin|Code Statistics]]'''&lt;br /&gt;
&lt;br /&gt;
:Shows various statistics from source code files.&lt;br /&gt;
&lt;br /&gt;
'''[[Copy Strings to Clipboard plugin|Copy Strings to Clipboard]]'''&lt;br /&gt;
&lt;br /&gt;
:Copies literal strings from the current editor to clipboard.&lt;br /&gt;
&lt;br /&gt;
'''[[CppCheck plugin|CppCheck]]'''&lt;br /&gt;
&lt;br /&gt;
:Integrates the static code analyzer Cppcheck into Code::Blocks.&lt;br /&gt;
&lt;br /&gt;
'''[[Cscope plugin|Cscope]]'''&lt;br /&gt;
&lt;br /&gt;
:Integrates Cscope (http://cscope.sourceforge.net/) into Code::Blocks.&lt;br /&gt;
&lt;br /&gt;
'''[[DevPak Installer plugin|DevPak Installer]]'''&lt;br /&gt;
&lt;br /&gt;
:Installs and updates DevC++ DevPaks.&lt;br /&gt;
&lt;br /&gt;
'''[[DoxyBlocks plugin|DoxyBlocks]]'''&lt;br /&gt;
&lt;br /&gt;
:This plugin provides doxygen integration for Code::Blocks.&lt;br /&gt;
&lt;br /&gt;
'''[[DragScroll plugin|DragScroll]]'''&lt;br /&gt;
&lt;br /&gt;
:Enables dragging and scrolling with mouse.&lt;br /&gt;
&lt;br /&gt;
'''[[Editor Tweaks plugin|Editor Tweaks]]'''&lt;br /&gt;
&lt;br /&gt;
:This plugin provides some additional tweaks for Code::Blocks editor.&lt;br /&gt;
&lt;br /&gt;
'''[[Environment Variables plugin|Environment Variables]]'''&lt;br /&gt;
&lt;br /&gt;
:Sets environment variables within the focus of Code::Blocks.&lt;br /&gt;
&lt;br /&gt;
'''[[Header Fixup plugin|Header Fixup]]'''&lt;br /&gt;
&lt;br /&gt;
:Adds missing includes/forward declarations to C++ source files.&lt;br /&gt;
&lt;br /&gt;
'''[[Help plugin|Help]]'''&lt;br /&gt;
&lt;br /&gt;
:Integrates third-party help files to the interface.&lt;br /&gt;
&lt;br /&gt;
'''[[HexEditor plugin|HexEditor]]'''&lt;br /&gt;
&lt;br /&gt;
:Opens files in a Code::Blocks integrated HexEditor.&lt;br /&gt;
&lt;br /&gt;
'''[[Incremental Search plugin|Incremental Search]]'''&lt;br /&gt;
&lt;br /&gt;
:Searches and highlights a marked text incrementally within the open editor.&lt;br /&gt;
&lt;br /&gt;
'''[[Keyboard Shortcuts plugin|Keyboard Shortcuts]]'''&lt;br /&gt;
&lt;br /&gt;
:Manages menu shortcuts.&lt;br /&gt;
&lt;br /&gt;
'''[[Koders plugin|Koders]]'''&lt;br /&gt;
&lt;br /&gt;
:Queries the Koders webpage for keywords.&lt;br /&gt;
&lt;br /&gt;
'''[[NassiShneiderman plugin|NassiShneiderman]]'''&lt;br /&gt;
&lt;br /&gt;
:Allows the creation of Nassi Shneiderman diagrams within Code::Blocks.&lt;br /&gt;
&lt;br /&gt;
'''[[RegEx Testbed plugin|RegEx Testbed]]'''&lt;br /&gt;
&lt;br /&gt;
:Regular expressions testbed.&lt;br /&gt;
&lt;br /&gt;
'''[[Source Exporter plugin|Source Exporter]]'''&lt;br /&gt;
&lt;br /&gt;
:Exports source code files to other formats such as HTML and PDF.&lt;br /&gt;
&lt;br /&gt;
'''[[SpellChecker plugin|SpellChecker]]'''&lt;br /&gt;
&lt;br /&gt;
:A plugin to check the spelling of strings and comments.&lt;br /&gt;
&lt;br /&gt;
'''[[Symbol Table plugin|Symbol Table]]'''&lt;br /&gt;
&lt;br /&gt;
:A simple graphical interface to the GNU symbol table displayer (nm).&lt;br /&gt;
&lt;br /&gt;
'''[[ThreadSearch plugin|ThreadSearch]]'''&lt;br /&gt;
&lt;br /&gt;
:Multi-threaded 'Search in files' with preview window.&lt;br /&gt;
&lt;br /&gt;
'''[[Tools+ plugin|Tools+]]'''&lt;br /&gt;
&lt;br /&gt;
:Creation and management of custom tools.&lt;br /&gt;
&lt;br /&gt;
'''[[Valgrind plugin|Valgrind]]'''&lt;br /&gt;
&lt;br /&gt;
:Valgrind analysis tools integration. (Valgrind does not run on Windows)&lt;br /&gt;
&lt;br /&gt;
'''[[wxSmith plugin|wxSmith]]'''&lt;br /&gt;
&lt;br /&gt;
:RAD tool for creating wxWidgets dialogs.&lt;br /&gt;
&lt;br /&gt;
== 3rd Party Plugins ==&lt;br /&gt;
&lt;br /&gt;
3rd party plugins - developed and maintained by the community but not (yet?) in the C::B repository. The contrib plugins are maintained / developed by third-party developers.&lt;br /&gt;
&lt;br /&gt;
'''[[DisplayEvents plugin|DisplayEvents]]'''&lt;br /&gt;
&lt;br /&gt;
:Display events that are registered with &amp;lt;tt&amp;gt;RegisterEventSink&amp;lt;/tt&amp;gt;, in the Code::Blocks Debug log.&lt;br /&gt;
&lt;br /&gt;
'''[[Fortran Project plugin|Fortran Project]]'''&lt;br /&gt;
&lt;br /&gt;
:This plugin provides symbol browser and code-completion for Fortran files.&lt;br /&gt;
&lt;br /&gt;
'''[[IPDefend Toolkit plugin|IPDefend Toolkit]]'''&lt;br /&gt;
&lt;br /&gt;
:This plugin enables creation of a licensed application in an easy way. Available at [http://www.comsytec.com/ipdefend.php]&lt;br /&gt;
&lt;br /&gt;
'''[[KeyMacs plugin|KeyMacs]]'''&lt;br /&gt;
&lt;br /&gt;
:KeyMacs (or Keyboard Macros) plugin enables Recording, Playback, and editing of keystroke macros.&lt;br /&gt;
&lt;br /&gt;
'''[[OccurrenceHighlighter plugin|OccurrenceHighlighter]]'''&lt;br /&gt;
&lt;br /&gt;
:This plugin highlights all occurrences of keywords on a list.&lt;br /&gt;
&lt;br /&gt;
'''[[Rss::Blocks plugin|Rss::Blocks]]'''&lt;br /&gt;
&lt;br /&gt;
:This plugin is an rss feeds reader. Available at [http://sourceforge.net/projects/rssblocks/ sourceforge/rssblocks]&lt;br /&gt;
&lt;br /&gt;
'''[[TRACE32 Debugger plugin|TRACE32 Debugger]]'''&lt;br /&gt;
&lt;br /&gt;
:Extends the Debugger plugin of Code::Blocks to work with the TRACE32 Debuggers. TRACE32 documentation &amp;quot;int_codeblock.pdf&amp;quot; and debuggert32.cbplugin are located on the enclosed SW CD on purchase of TRACE32&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If you have questions -&amp;gt; ask in the [/index.php/board,14.0.html forums].&lt;/div&gt;</summary>
		<author><name>Alpha</name></author>
	</entry>
	<entry>
		<id>https://wiki.codeblocks.org/index.php?title=Talk:Compile_Code::Blocks_plugins_based_on_a_nightly&amp;diff=7338</id>
		<title>Talk:Compile Code::Blocks plugins based on a nightly</title>
		<link rel="alternate" type="text/html" href="https://wiki.codeblocks.org/index.php?title=Talk:Compile_Code::Blocks_plugins_based_on_a_nightly&amp;diff=7338"/>
		<updated>2012-08-23T01:26:55Z</updated>

		<summary type="html">&lt;p&gt;Alpha: Created page with &amp;quot;When linking directly to a &amp;lt;tt&amp;gt;dll&amp;lt;/tt&amp;gt; (with MinGW), the file extension is not required, so &amp;lt;tt&amp;gt;wxmsw28u_gcc_cb.dll&amp;lt;/tt&amp;gt; can be simply &amp;lt;tt&amp;gt;wxmsw28u_gcc_cb&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;codeblock...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;When linking directly to a &amp;lt;tt&amp;gt;dll&amp;lt;/tt&amp;gt; (with MinGW), the file extension is not required, so &amp;lt;tt&amp;gt;wxmsw28u_gcc_cb.dll&amp;lt;/tt&amp;gt; can be simply &amp;lt;tt&amp;gt;wxmsw28u_gcc_cb&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;codeblocks&amp;lt;/tt&amp;gt; can remain the unchanged. [[User:Alpha|Alpha]] 03:26, 23 August 2012 (CEST)&lt;/div&gt;</summary>
		<author><name>Alpha</name></author>
	</entry>
	<entry>
		<id>https://wiki.codeblocks.org/index.php?title=File_formats_description&amp;diff=7314</id>
		<title>File formats description</title>
		<link rel="alternate" type="text/html" href="https://wiki.codeblocks.org/index.php?title=File_formats_description&amp;diff=7314"/>
		<updated>2012-08-11T14:52:11Z</updated>

		<summary type="html">&lt;p&gt;Alpha: Added links (not sure if this is the correct page, but if not, someone can move them).&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Code::Blocks Documentation]]&lt;br /&gt;
[[Category:Developer Documentation]]&lt;br /&gt;
Code::Blocks projects/workspaces are described in XML files. Here are contained links to documentation for each one of them.&lt;br /&gt;
&lt;br /&gt;
This information is of interest to anyone wanting to write an importer/exporter/generator for other build systems/environments and therefore add support for Code::Blocks.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* '''[[Workspace file]]''' (*.workspace)&lt;br /&gt;
:Defines a Code::Blocks workspace (collection of projects).&lt;br /&gt;
&lt;br /&gt;
* '''[[Project file]]''' (*.cbp)&lt;br /&gt;
:Defines a Code::Blocks project.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Additional files used in the proposed [/index.php/topic,16463.0.html XML compiler branch]:&lt;br /&gt;
&lt;br /&gt;
* '''[[Compiler file]]''' (compiler_*.xml)&lt;br /&gt;
:Defines a Code::Blocks compiler interface and auto-detection routines.&lt;br /&gt;
&lt;br /&gt;
* '''[[Compiler options file]]''' (options_*.xml)&lt;br /&gt;
:Defines the options and regular expressions for a Code::Blocks compiler.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Code::Blocks also produces a couple other files (*.layout and *.depend) but they only contain state information so they are not really useful to anyone else other than Code::Blocks itself.''&lt;br /&gt;
&lt;br /&gt;
[[User:Mandrav|Mandrav]] 11:42, 1 March 2007 (UTC)&lt;/div&gt;</summary>
		<author><name>Alpha</name></author>
	</entry>
	<entry>
		<id>https://wiki.codeblocks.org/index.php?title=Compiler_options_file&amp;diff=7312</id>
		<title>Compiler options file</title>
		<link rel="alternate" type="text/html" href="https://wiki.codeblocks.org/index.php?title=Compiler_options_file&amp;diff=7312"/>
		<updated>2012-08-04T13:36:30Z</updated>

		<summary type="html">&lt;p&gt;Alpha: Added category.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Code::Blocks Documentation]]&lt;br /&gt;
[[Category:Developer Documentation]]&lt;br /&gt;
Proposed format for storing compiler options in editable XML. See: [/index.php/topic,16463.0.html XML based compilers] and [[Compiler file]]s.&lt;br /&gt;
{{Layout_box2|1=&lt;br /&gt;
&amp;lt;tt&amp;gt;svn checkout &amp;lt;nowiki&amp;gt;svn://svn.berlios.de/codeblocks/branches/xml_compiler&amp;lt;/nowiki&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;CodeBlocks_compiler_options extends=&amp;quot;gcc&amp;quot;&amp;gt;&lt;br /&gt;
[...]&lt;br /&gt;
&amp;lt;/CodeBlocks_compiler_options&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
I am a Code::Blocks compiler options file.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;extends=&amp;quot;&amp;lt;/tt&amp;gt;&amp;lt;id&amp;gt;&amp;lt;tt&amp;gt;&amp;quot;&amp;lt;/tt&amp;gt; (optional)&lt;br /&gt;
* Load the corresponding &amp;lt;tt&amp;gt;options_&amp;lt;/tt&amp;gt;&amp;lt;id&amp;gt;&amp;lt;tt&amp;gt;.xml&amp;lt;/tt&amp;gt; file first (use if this compiler is almost the same, with only a few altered programs or added switches, for example).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;if platform=&amp;quot;windows&amp;quot;&amp;gt;&lt;br /&gt;
[...]&lt;br /&gt;
&amp;lt;/if&amp;gt;&lt;br /&gt;
&amp;lt;else&amp;gt;&lt;br /&gt;
[...]&lt;br /&gt;
&amp;lt;/else&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Standard &amp;lt;tt&amp;gt;if&amp;lt;/tt&amp;gt; statement; contents of &amp;lt;tt&amp;gt;if&amp;lt;/tt&amp;gt; block is evaluated if the &amp;lt;tt&amp;gt;if&amp;lt;/tt&amp;gt; statement is true, otherwise the &amp;lt;tt&amp;gt;else&amp;lt;/tt&amp;gt; block is evaluated (the &amp;lt;tt&amp;gt;else&amp;lt;/tt&amp;gt; block is optional). Nesting is allowed.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;platform=&amp;quot;&amp;lt;/tt&amp;gt;&amp;lt;os&amp;gt;&amp;lt;tt&amp;gt;&amp;quot;&amp;lt;/tt&amp;gt;. &amp;lt;os&amp;gt; is one of:&lt;br /&gt;
* &amp;lt;tt&amp;gt;windows&lt;br /&gt;
* macosx&lt;br /&gt;
* linux&lt;br /&gt;
* freebsd&lt;br /&gt;
* netbsd&lt;br /&gt;
* openbsd&lt;br /&gt;
* darwin&lt;br /&gt;
* solaris&lt;br /&gt;
* unix&amp;lt;/tt&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;if exec=&amp;quot;bison -h&amp;quot;&amp;gt;&lt;br /&gt;
[...]&lt;br /&gt;
&amp;lt;/if&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
True if the the command &amp;lt;tt&amp;gt;exec&amp;lt;/tt&amp;gt; can be run.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;if exec=&amp;quot;C -dumpversion&amp;quot;&lt;br /&gt;
    regex=&amp;quot;^4\.[3-9]|^[5-9]\.[0-9]&amp;quot;&lt;br /&gt;
    default=&amp;quot;true&amp;quot;&amp;gt;&lt;br /&gt;
[...]&lt;br /&gt;
&amp;lt;/if&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
If the text before the first space in &amp;lt;tt&amp;gt;exec&amp;lt;/tt&amp;gt; is one of:&lt;br /&gt;
* &amp;lt;tt&amp;gt;C&lt;br /&gt;
* CPP&lt;br /&gt;
* LD&lt;br /&gt;
* LIB&lt;br /&gt;
* WINDRES&lt;br /&gt;
* MAKE&amp;lt;/tt&amp;gt;&lt;br /&gt;
it will be replaced with the name of the corresponding executable.&lt;br /&gt;
&lt;br /&gt;
True if &amp;lt;tt&amp;gt;regex&amp;lt;/tt&amp;gt; matches the command's output (in this case, version number &amp;lt;tt&amp;gt;&amp;gt;=&amp;lt;/tt&amp;gt; 4.3.0).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;default&amp;lt;/tt&amp;gt; is used if the command fails to execute (optional).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;Program name=&amp;quot;C&amp;quot; value=&amp;quot;mingw32-gcc.exe&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Give the name of an executable&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;name=&amp;quot;&amp;lt;/tt&amp;gt;&amp;lt;prog&amp;gt;&amp;lt;tt&amp;gt;&amp;quot;&amp;lt;/tt&amp;gt;.  &amp;lt;prog&amp;gt; is one of:&lt;br /&gt;
* &amp;lt;tt&amp;gt;C&lt;br /&gt;
* CPP&lt;br /&gt;
* LD&lt;br /&gt;
* DBGconfig&lt;br /&gt;
* LIB&lt;br /&gt;
* WINDRES&lt;br /&gt;
* MAKE&lt;br /&gt;
value=&amp;quot;&amp;lt;/tt&amp;gt;&amp;lt;exec&amp;gt;&amp;lt;tt&amp;gt;&amp;quot;&amp;lt;/tt&amp;gt; (actual name of the executable).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;Switch name=&amp;quot;includeDirs&amp;quot; value=&amp;quot;-I&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Switches controlling compiler constants.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;name=&amp;quot;&amp;lt;/tt&amp;gt;&amp;lt;opt&amp;gt;&amp;lt;tt&amp;gt;&amp;quot;&amp;lt;/tt&amp;gt;.  &amp;lt;opt&amp;gt; is one of:&lt;br /&gt;
* &amp;lt;tt&amp;gt;includeDirs&lt;br /&gt;
* libDirs&lt;br /&gt;
* linkLibs&lt;br /&gt;
* defines&lt;br /&gt;
* genericSwitch&lt;br /&gt;
* objectExtension&lt;br /&gt;
* forceFwdSlashes&amp;lt;/tt&amp;gt;. &amp;lt;tt&amp;gt;value&amp;lt;/tt&amp;gt; is one of &amp;lt;tt&amp;gt;true&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;false&lt;br /&gt;
* forceLinkerUseQuotes&amp;lt;/tt&amp;gt;. &amp;lt;tt&amp;gt;value&amp;lt;/tt&amp;gt; is one of &amp;lt;tt&amp;gt;true&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;false&lt;br /&gt;
* forceCompilerUseQuotes&amp;lt;/tt&amp;gt;. &amp;lt;tt&amp;gt;value&amp;lt;/tt&amp;gt; is one of &amp;lt;tt&amp;gt;true&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;false&lt;br /&gt;
* needDependencies&amp;lt;/tt&amp;gt;. &amp;lt;tt&amp;gt;value&amp;lt;/tt&amp;gt; is one of &amp;lt;tt&amp;gt;true&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;false&lt;br /&gt;
* logging&amp;lt;/tt&amp;gt;.  &amp;lt;tt&amp;gt;value&amp;lt;/tt&amp;gt; is one of:&lt;br /&gt;
** &amp;lt;tt&amp;gt;default&amp;lt;/tt&amp;gt; (same as &amp;lt;tt&amp;gt;full&amp;lt;/tt&amp;gt;)&lt;br /&gt;
** &amp;lt;tt&amp;gt;full&lt;br /&gt;
** simple&lt;br /&gt;
** none&lt;br /&gt;
* libPrefix&lt;br /&gt;
* libExtension&lt;br /&gt;
* linkerNeedsLibPrefix&amp;lt;/tt&amp;gt;. &amp;lt;tt&amp;gt;value&amp;lt;/tt&amp;gt; is one of &amp;lt;tt&amp;gt;true&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;false&lt;br /&gt;
* linkerNeedsLibExtension&amp;lt;/tt&amp;gt;. &amp;lt;tt&amp;gt;value&amp;lt;/tt&amp;gt; is one of &amp;lt;tt&amp;gt;true&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;false&lt;br /&gt;
* supportsPCH&amp;lt;/tt&amp;gt;. &amp;lt;tt&amp;gt;value&amp;lt;/tt&amp;gt; is one of &amp;lt;tt&amp;gt;true&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;false&lt;br /&gt;
* PCHExtension&lt;br /&gt;
* UseFlatObjects&amp;lt;/tt&amp;gt;. &amp;lt;tt&amp;gt;value&amp;lt;/tt&amp;gt; is one of &amp;lt;tt&amp;gt;true&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;false&lt;br /&gt;
* UseFullSourcePaths&amp;lt;/tt&amp;gt;. &amp;lt;tt&amp;gt;value&amp;lt;/tt&amp;gt; is one of &amp;lt;tt&amp;gt;true&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;false&lt;br /&gt;
* Use83Paths&amp;lt;/tt&amp;gt;. &amp;lt;tt&amp;gt;value&amp;lt;/tt&amp;gt; is one of &amp;lt;tt&amp;gt;true&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;false&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;Option name=&amp;quot;Profile code when executed&amp;quot;&lt;br /&gt;
        option=&amp;quot;-pg&amp;quot;&lt;br /&gt;
        additionalLibs=&amp;quot;-pg -lgmon&amp;quot;&lt;br /&gt;
        category=&amp;quot;Profiling&amp;quot;&lt;br /&gt;
        checkAgainst=&amp;quot;-O -O1 -O2 -O3 -Os&amp;quot;&lt;br /&gt;
        checkMessage=&amp;quot;You have optimizations enabled. This is Not A Good Thing(tm) when producing debugging symbols...&amp;quot;&lt;br /&gt;
        supersedes=&amp;quot;-s&amp;quot;&lt;br /&gt;
        exclusive=&amp;quot;true&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Definition of a compiler flag.&lt;br /&gt;
* &amp;lt;tt&amp;gt;name&amp;lt;/tt&amp;gt;. Human readable description of the flag.&lt;br /&gt;
* &amp;lt;tt&amp;gt;option&amp;lt;/tt&amp;gt;. Flags to be sent to the compiler (optional).&lt;br /&gt;
* &amp;lt;tt&amp;gt;additionalLibs&amp;lt;/tt&amp;gt;. Flags to be sent to the linker (optional).&lt;br /&gt;
* &amp;lt;tt&amp;gt;category&amp;lt;/tt&amp;gt;. The category this flag is in (optional; defaults to &amp;quot;General&amp;quot;).&lt;br /&gt;
* &amp;lt;tt&amp;gt;checkAgainst&amp;lt;/tt&amp;gt;. Show a warning message if any of these flags are enabled (optional).&lt;br /&gt;
* &amp;lt;tt&amp;gt;checkMessage&amp;lt;/tt&amp;gt;. Warning message to show upon conflict (optional).&lt;br /&gt;
* &amp;lt;tt&amp;gt;superseds&amp;lt;/tt&amp;gt;. Automatically disable the list of superseded flags if this flag is enabled (optional).&lt;br /&gt;
* &amp;lt;tt&amp;gt;exclusive&amp;lt;/tt&amp;gt;. Disable all other flags in this category if this flag is enabled. Is one of &amp;lt;tt&amp;gt;true&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;false&amp;lt;/tt&amp;gt; (optional).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;Category name=&amp;quot;CPU architecture tuning&amp;quot;&lt;br /&gt;
          exclusive=&amp;quot;true&amp;quot;&amp;gt;&lt;br /&gt;
[...]&lt;br /&gt;
&amp;lt;/Category&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;tt&amp;gt;name=&amp;quot;&amp;lt;/tt&amp;gt;&amp;lt;cat&amp;gt;&amp;lt;tt&amp;gt;&amp;quot;&amp;lt;/tt&amp;gt;. Any flags (&amp;lt;code&amp;gt;&amp;lt;Option [...] /&amp;gt;&amp;lt;/code&amp;gt;) contained in here that lack the &amp;lt;tt&amp;gt;category&amp;lt;/tt&amp;gt; attribute will be treated as category &amp;lt;cat&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;exclusive&amp;lt;/tt&amp;gt;. Is one of &amp;lt;tt&amp;gt;true&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;false&amp;lt;/tt&amp;gt;. Any flags (&amp;lt;code&amp;gt;&amp;lt;Option [...] /&amp;gt;&amp;lt;/code&amp;gt;) contained in here that lack the &amp;lt;tt&amp;gt;exclusive&amp;lt;/tt&amp;gt; attribute will be treated as this. (Optional.)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;Common name=&amp;quot;optimization&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Load options from a common file.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;name=&amp;quot;&amp;lt;/tt&amp;gt;&amp;lt;file&amp;gt;&amp;lt;tt&amp;gt;&amp;quot;&amp;lt;/tt&amp;gt;&lt;br /&gt;
* Loads &amp;lt;tt&amp;gt;options_common_&amp;lt;/tt&amp;gt;&amp;lt;file&amp;gt;&amp;lt;tt&amp;gt;.xml&amp;lt;/tt&amp;gt; (file syntax is exactly the same as this file).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;Command name=&amp;quot;CompileObject&amp;quot;&lt;br /&gt;
         value=&amp;quot;$compiler $options $includes -c $file -o $object&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Definitions for forming compiler commands.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;name=&amp;quot;&amp;lt;/tt&amp;gt;&amp;lt;cmd&amp;gt;&amp;lt;tt&amp;gt;&amp;quot;&amp;lt;/tt&amp;gt;. &amp;lt;cmd&amp;gt; is one of:&lt;br /&gt;
* &amp;lt;tt&amp;gt;CompileObject&lt;br /&gt;
* GenDependencies&lt;br /&gt;
* CompileResource&lt;br /&gt;
* LinkExe&lt;br /&gt;
* LinkConsoleExe&lt;br /&gt;
* LinkDynamic&lt;br /&gt;
* LinkStatic&lt;br /&gt;
* LinkNative&amp;lt;/tt&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;Command name=&amp;quot;CompileObject&amp;quot;&lt;br /&gt;
         value=&amp;quot;bison -v -d $file -o $file_dir/$file_name.parser.cc&amp;quot;&lt;br /&gt;
         ext=&amp;quot;y&amp;quot;&lt;br /&gt;
         gen=&amp;quot;$file_dir/$file_name.parser.cc;$file_dir/$file_name.parser.hh&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Additional commands can be added to each category with a file extension filter.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;ext=&amp;quot;&amp;lt;/tt&amp;gt;&amp;lt;exts&amp;gt;&amp;lt;tt&amp;gt;&amp;quot;&amp;lt;/tt&amp;gt;. &amp;lt;exts&amp;gt; is a semicolon separated list of file extensions (without the leading &amp;lt;tt&amp;gt;&amp;quot;.&amp;quot;&amp;lt;/tt&amp;gt; period).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;gen=&amp;quot;&amp;lt;/tt&amp;gt;&amp;lt;files&amp;gt;&amp;lt;tt&amp;gt;&amp;quot;&amp;lt;/tt&amp;gt;. &amp;lt;files&amp;gt; is a semicolon separated list of generated files to be further processed (optional).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;RegEx name=&amp;quot;Info line&amp;quot;&lt;br /&gt;
       type=&amp;quot;info&amp;quot;&lt;br /&gt;
       msg=&amp;quot;1;2;4&amp;quot;&lt;br /&gt;
       file=&amp;quot;2&amp;quot;&lt;br /&gt;
       line=&amp;quot;3&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;![CDATA[(In file) ([][{}() \t#%$~[:alnum:]&amp;amp;_:+/\.-]+):([0-9]+)(\.[0-9]+.*:)*]]&amp;gt;&lt;br /&gt;
&amp;lt;/RegEx&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Definitions for regular expressions to parse compiler output.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;name=&amp;quot;&amp;lt;/tt&amp;gt;&amp;lt;label&amp;gt;&amp;lt;tt&amp;gt;&amp;quot;&amp;lt;/tt&amp;gt;. &amp;lt;label&amp;gt; is the name this regex will be listed as.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;type=&amp;quot;&amp;lt;/tt&amp;gt;&amp;lt;tp&amp;gt;&amp;lt;tt&amp;gt;&amp;quot;&amp;lt;/tt&amp;gt;. &amp;lt;tp&amp;gt; is one of&lt;br /&gt;
* &amp;lt;tt&amp;gt;normal&lt;br /&gt;
* warning&lt;br /&gt;
* error&lt;br /&gt;
* info&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;msg=&amp;quot;&amp;lt;/tt&amp;gt;&amp;lt;nums&amp;gt;&amp;lt;tt&amp;gt;&amp;quot;&amp;lt;/tt&amp;gt;. &amp;lt;nums&amp;gt; is a semicolon separated list of indices (minimum one, maximum three) for the locations of messages within the regex.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;file=&amp;quot;&amp;lt;/tt&amp;gt;&amp;lt;num&amp;gt;&amp;lt;tt&amp;gt;&amp;quot;&amp;lt;/tt&amp;gt;. &amp;lt;num&amp;gt; is the index of the regex which gives the relevant file (optional).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;line=&amp;quot;&amp;lt;/tt&amp;gt;&amp;lt;num&amp;gt;&amp;lt;tt&amp;gt;&amp;quot;&amp;lt;/tt&amp;gt;. &amp;lt;num&amp;gt; is the index of the regex which gives the relevant line number (optional).&lt;br /&gt;
&lt;br /&gt;
The contents is the regex (use of a &amp;lt;tt&amp;gt;CDATA&amp;lt;/tt&amp;gt; section is not required).&lt;/div&gt;</summary>
		<author><name>Alpha</name></author>
	</entry>
	<entry>
		<id>https://wiki.codeblocks.org/index.php?title=Compiler_file&amp;diff=7311</id>
		<title>Compiler file</title>
		<link rel="alternate" type="text/html" href="https://wiki.codeblocks.org/index.php?title=Compiler_file&amp;diff=7311"/>
		<updated>2012-08-04T13:34:36Z</updated>

		<summary type="html">&lt;p&gt;Alpha: Added category.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Code::Blocks Documentation]]&lt;br /&gt;
[[Category:Developer Documentation]]&lt;br /&gt;
Proposed format for defining compiler interfaces using only XML (in conjunction with [[Compiler options file]]s). See: [/index.php/topic,16463.0.html XML based compilers].&lt;br /&gt;
{{Layout_box2|1=&lt;br /&gt;
&amp;lt;tt&amp;gt;svn checkout &amp;lt;nowiki&amp;gt;svn://svn.berlios.de/codeblocks/branches/xml_compiler&amp;lt;/nowiki&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;CodeBlocks_compiler name=&amp;quot;Digital Mars Compiler&amp;quot;&lt;br /&gt;
                     id=&amp;quot;dmc&amp;quot;&lt;br /&gt;
                     weight=&amp;quot;24&amp;quot;&lt;br /&gt;
                     platform=&amp;quot;windows&amp;quot;&amp;gt;&lt;br /&gt;
[...]&lt;br /&gt;
&amp;lt;/CodeBlocks_compiler&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
I am a Code::Blocks compiler file.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;name=&amp;quot;&amp;lt;/tt&amp;gt;&amp;lt;txt&amp;gt;&amp;lt;tt&amp;gt;&amp;quot;&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;txt&amp;gt; is the descriptive name that will be shown to the user for this compiler.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;id=&amp;quot;&amp;lt;/tt&amp;gt;&amp;lt;id&amp;gt;&amp;lt;tt&amp;gt;&amp;quot;&amp;lt;/tt&amp;gt;&lt;br /&gt;
* Lowercase sequence of letters, numbers, underscores, and/or hyphens (it must, however, start with a letter) which is used internally to represent this compiler.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;weight=&amp;quot;&amp;lt;/tt&amp;gt;&amp;lt;num&amp;gt;&amp;lt;tt&amp;gt;&amp;quot;&amp;lt;/tt&amp;gt; (optional)&lt;br /&gt;
* Determines the order in the compiler drop-down menu that this compiler will be listed; lower numbers are listed sooner (keep &amp;lt;num&amp;gt; between 0 and 100).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;platform=&amp;quot;&amp;lt;/tt&amp;gt;&amp;lt;os&amp;gt;&amp;lt;tt&amp;gt;&amp;quot;&amp;lt;/tt&amp;gt; (optional). Only load this compiler if the current operating system is &amp;lt;os&amp;gt;. &amp;lt;os&amp;gt; is one of:&lt;br /&gt;
* &amp;lt;tt&amp;gt;windows&lt;br /&gt;
* macosx&lt;br /&gt;
* linux&lt;br /&gt;
* freebsd&lt;br /&gt;
* netbsd&lt;br /&gt;
* openbsd&lt;br /&gt;
* darwin&lt;br /&gt;
* solaris&lt;br /&gt;
* unix&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
All of the following routines are used during auto-detection.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Conditional &amp;lt;tt&amp;gt;&amp;lt;if&amp;gt;[...]&amp;lt;/if&amp;gt;&amp;lt;else&amp;gt;[...]&amp;lt;/else&amp;gt;&amp;lt;/tt&amp;gt; statements are available in the same form as in [[Compiler options file]]s.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;Path type=&amp;quot;master&amp;quot;&amp;gt;&lt;br /&gt;
[...]&lt;br /&gt;
&amp;lt;/Path&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;tt&amp;gt;type=&amp;quot;&amp;lt;/tt&amp;gt;&amp;lt;tp&amp;gt;&amp;lt;tt&amp;gt;&amp;quot;&amp;lt;/tt&amp;gt; Determines what variable the results of the contained detection routine(s) will be stored in. &amp;lt;tp&amp;gt; is one of:&lt;br /&gt;
* &amp;lt;tt&amp;gt;master&lt;br /&gt;
* extra&lt;br /&gt;
* include&lt;br /&gt;
* resource&lt;br /&gt;
* lib&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;Search envVar=&amp;quot;PATH&amp;quot;&lt;br /&gt;
        for=&amp;quot;C&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Searches all paths in the given environment variable.&lt;br /&gt;
* If &amp;lt;tt&amp;gt;for&amp;lt;/tt&amp;gt; is not specified, any path that exists will be added to the current &amp;lt;tt&amp;gt;&amp;lt;Path type=&amp;quot;...&amp;quot;&amp;gt;&amp;lt;/tt&amp;gt;.&lt;br /&gt;
* If &amp;lt;tt&amp;gt;for&amp;lt;/tt&amp;gt; is given, the corresponding executable name will be replaced (if applicable; see &amp;lt;tt&amp;gt;&amp;lt;if exec=&amp;quot;...&amp;quot;&amp;gt;&amp;lt;/if&amp;gt;&amp;lt;/tt&amp;gt; blocks). If the specified file exists on any of the paths in the environment variable, those path(s) will be added.&lt;br /&gt;
&lt;br /&gt;
(If the current path type is &amp;lt;tt&amp;gt;master&amp;lt;/tt&amp;gt;, any trailing &amp;lt;tt&amp;gt;bin&amp;lt;/tt&amp;gt; directories will be stripped.)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;Search path=&amp;quot;C:\MinGW&amp;quot;&lt;br /&gt;
        for=&amp;quot;C&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Same functionality as &amp;lt;tt&amp;gt;&amp;lt;Search envVar=&amp;quot;...&amp;quot;&amp;gt;&amp;lt;/tt&amp;gt; except that this tests a hard-coded path.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;Search path=&amp;quot;C:\WinAVR*&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Wildcards are allowed in &amp;lt;tt&amp;gt;&amp;lt;Search path=&amp;quot;...&amp;quot;&amp;gt;&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;Search registry=&amp;quot;HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Uninstall\SDCC&amp;quot;&lt;br /&gt;
        value=&amp;quot;InstallLocation&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Read a Windows registry key. If &amp;lt;tt&amp;gt;value&amp;lt;/tt&amp;gt; is found in the registry key, and it is a valid folder, it will be added to the current &amp;lt;tt&amp;gt;&amp;lt;Path type=&amp;quot;...&amp;quot;&amp;gt;&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;Fallback path=&amp;quot;/usr/local&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
If the current &amp;lt;tt&amp;gt;&amp;lt;Path type=&amp;quot;...&amp;quot;&amp;gt;&amp;lt;/tt&amp;gt; is empty, add this path to it.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;Add&amp;gt;&amp;lt;master/&amp;gt;&amp;lt;separator/&amp;gt;lib&amp;lt;/Add&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Add a path to the current &amp;lt;tt&amp;gt;&amp;lt;Path type=&amp;quot;...&amp;quot;&amp;gt;&amp;lt;/tt&amp;gt;.&lt;br /&gt;
* &amp;lt;tt&amp;gt;&amp;lt;master/&amp;gt;&amp;lt;/tt&amp;gt; is replaced by the contents of the master path.&lt;br /&gt;
* &amp;lt;tt&amp;gt;&amp;lt;separator/&amp;gt;&amp;lt;/tt&amp;gt; is replaced by the system's native file path separator.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;Add cFlag=&amp;quot;-O&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Enable a compiler flag.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;Add lFlag=&amp;quot;-s&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Enable a linker flag.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;Add lib=&amp;quot;pthread&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Add a library.&lt;/div&gt;</summary>
		<author><name>Alpha</name></author>
	</entry>
	<entry>
		<id>https://wiki.codeblocks.org/index.php?title=Compiler_file&amp;diff=7309</id>
		<title>Compiler file</title>
		<link rel="alternate" type="text/html" href="https://wiki.codeblocks.org/index.php?title=Compiler_file&amp;diff=7309"/>
		<updated>2012-08-03T01:29:19Z</updated>

		<summary type="html">&lt;p&gt;Alpha: More documentation.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Proposed format for defining compiler interfaces using only XML (in conjunction with [[Compiler options file]]s). See: [/index.php/topic,16463.0.html XML based compilers].&lt;br /&gt;
{{Layout_box2|1=&lt;br /&gt;
&amp;lt;tt&amp;gt;svn checkout &amp;lt;nowiki&amp;gt;svn://svn.berlios.de/codeblocks/branches/xml_compiler&amp;lt;/nowiki&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;CodeBlocks_compiler name=&amp;quot;Digital Mars Compiler&amp;quot;&lt;br /&gt;
                     id=&amp;quot;dmc&amp;quot;&lt;br /&gt;
                     weight=&amp;quot;24&amp;quot;&lt;br /&gt;
                     platform=&amp;quot;windows&amp;quot;&amp;gt;&lt;br /&gt;
[...]&lt;br /&gt;
&amp;lt;/CodeBlocks_compiler&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
I am a Code::Blocks compiler file.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;name=&amp;quot;&amp;lt;/tt&amp;gt;&amp;lt;txt&amp;gt;&amp;lt;tt&amp;gt;&amp;quot;&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;txt&amp;gt; is the descriptive name that will be shown to the user for this compiler.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;id=&amp;quot;&amp;lt;/tt&amp;gt;&amp;lt;id&amp;gt;&amp;lt;tt&amp;gt;&amp;quot;&amp;lt;/tt&amp;gt;&lt;br /&gt;
* Lowercase sequence of letters, numbers, underscores, and/or hyphens (it must, however, start with a letter) which is used internally to represent this compiler.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;weight=&amp;quot;&amp;lt;/tt&amp;gt;&amp;lt;num&amp;gt;&amp;lt;tt&amp;gt;&amp;quot;&amp;lt;/tt&amp;gt; (optional)&lt;br /&gt;
* Determines the order in the compiler drop-down menu that this compiler will be listed; lower numbers are listed sooner (keep &amp;lt;num&amp;gt; between 0 and 100).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;platform=&amp;quot;&amp;lt;/tt&amp;gt;&amp;lt;os&amp;gt;&amp;lt;tt&amp;gt;&amp;quot;&amp;lt;/tt&amp;gt; (optional). Only load this compiler if the current operating system is &amp;lt;os&amp;gt;. &amp;lt;os&amp;gt; is one of:&lt;br /&gt;
* &amp;lt;tt&amp;gt;windows&lt;br /&gt;
* macosx&lt;br /&gt;
* linux&lt;br /&gt;
* freebsd&lt;br /&gt;
* netbsd&lt;br /&gt;
* openbsd&lt;br /&gt;
* darwin&lt;br /&gt;
* solaris&lt;br /&gt;
* unix&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;Path type=&amp;quot;master&amp;quot;&amp;gt;&lt;br /&gt;
[...]&lt;br /&gt;
&amp;lt;/Path&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;tt&amp;gt;type=&amp;quot;&amp;lt;/tt&amp;gt;&amp;lt;tp&amp;gt;&amp;lt;tt&amp;gt;&amp;quot;&amp;lt;/tt&amp;gt; Determines what variable the results of the contained detection routine(s) will be stored in. &amp;lt;tp&amp;gt; is one of:&lt;br /&gt;
* &amp;lt;tt&amp;gt;master&lt;br /&gt;
* extra&lt;br /&gt;
* include&lt;br /&gt;
* resource&lt;br /&gt;
* lib&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;Search envVar=&amp;quot;PATH&amp;quot;&lt;br /&gt;
        for=&amp;quot;C&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Searches all paths in the given environment variable.&lt;br /&gt;
* If &amp;lt;tt&amp;gt;for&amp;lt;/tt&amp;gt; is not specified, any path that exists will be added to the current &amp;lt;tt&amp;gt;&amp;lt;Path type=&amp;quot;...&amp;quot;&amp;gt;&amp;lt;/tt&amp;gt;.&lt;br /&gt;
* If &amp;lt;tt&amp;gt;for&amp;lt;/tt&amp;gt; is given, the corresponding executable name will be replaced (if applicable; see &amp;lt;tt&amp;gt;&amp;lt;if exec=&amp;quot;...&amp;quot;&amp;gt;&amp;lt;/if&amp;gt;&amp;lt;/tt&amp;gt; blocks). If the specified file exists on any of the paths in the environment variable, those path(s) will be added.&lt;br /&gt;
&lt;br /&gt;
(If the current path type is &amp;lt;tt&amp;gt;master&amp;lt;/tt&amp;gt;, any trailing &amp;lt;tt&amp;gt;bin&amp;lt;/tt&amp;gt; directories will be stripped.)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;Search path=&amp;quot;C:\MinGW&amp;quot;&lt;br /&gt;
        for=&amp;quot;C&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Same functionality as &amp;lt;tt&amp;gt;&amp;lt;Search envVar=&amp;quot;...&amp;quot;&amp;gt;&amp;lt;/tt&amp;gt; except that this tests a hard-coded path.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;Search path=&amp;quot;C:\WinAVR*&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Wildcards are allowed in &amp;lt;tt&amp;gt;&amp;lt;Search path=&amp;quot;...&amp;quot;&amp;gt;&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;Search registry=&amp;quot;HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Uninstall\SDCC&amp;quot;&lt;br /&gt;
        value=&amp;quot;InstallLocation&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Read a Windows registry key. If &amp;lt;tt&amp;gt;value&amp;lt;/tt&amp;gt; is found in the registry key, and it is a valid folder, it will be added to the current &amp;lt;tt&amp;gt;&amp;lt;Path type=&amp;quot;...&amp;quot;&amp;gt;&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;Fallback path=&amp;quot;/usr/local&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
If the current &amp;lt;tt&amp;gt;&amp;lt;Path type=&amp;quot;...&amp;quot;&amp;gt;&amp;lt;/tt&amp;gt; is empty, add this path to it.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;Add&amp;gt;&amp;lt;master/&amp;gt;&amp;lt;separator/&amp;gt;lib&amp;lt;/Add&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Add a path to the current &amp;lt;tt&amp;gt;&amp;lt;Path type=&amp;quot;...&amp;quot;&amp;gt;&amp;lt;/tt&amp;gt;.&lt;br /&gt;
* &amp;lt;tt&amp;gt;&amp;lt;master/&amp;gt;&amp;lt;/tt&amp;gt; is replaced by the contents of the master path.&lt;br /&gt;
* &amp;lt;tt&amp;gt;&amp;lt;separator/&amp;gt;&amp;lt;/tt&amp;gt; is replaced by the system's native file path separator.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;Add cFlag=&amp;quot;-O&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Enable a compiler flag.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;Add lFlag=&amp;quot;-s&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Enable a linker flag.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;Add lib=&amp;quot;pthread&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Add a library.&lt;/div&gt;</summary>
		<author><name>Alpha</name></author>
	</entry>
	<entry>
		<id>https://wiki.codeblocks.org/index.php?title=Compiler_file&amp;diff=7300</id>
		<title>Compiler file</title>
		<link rel="alternate" type="text/html" href="https://wiki.codeblocks.org/index.php?title=Compiler_file&amp;diff=7300"/>
		<updated>2012-07-23T20:02:14Z</updated>

		<summary type="html">&lt;p&gt;Alpha: Started documenting format.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Proposed format for defining compiler interfaces using only XML (in conjunction with [[Compiler options file]]s). See: [/index.php/topic,16463.0.html XML based compilers].&lt;br /&gt;
{{Layout_box2|1=&lt;br /&gt;
&amp;lt;tt&amp;gt;svn checkout &amp;lt;nowiki&amp;gt;svn://svn.berlios.de/codeblocks/branches/xml_compiler&amp;lt;/nowiki&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;CodeBlocks_compiler name=&amp;quot;Digital Mars Compiler&amp;quot;&lt;br /&gt;
                     id=&amp;quot;dmc&amp;quot;&lt;br /&gt;
                     weight=&amp;quot;24&amp;quot;&lt;br /&gt;
                     platform=&amp;quot;windows&amp;quot;&amp;gt;&lt;br /&gt;
[...]&lt;br /&gt;
&amp;lt;/CodeBlocks_compiler&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
I am a Code::Blocks compiler file.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;name=&amp;quot;&amp;lt;/tt&amp;gt;&amp;lt;txt&amp;gt;&amp;lt;tt&amp;gt;&amp;quot;&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;txt&amp;gt; is the descriptive name that will be shown to the user for this compiler.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;id=&amp;quot;&amp;lt;/tt&amp;gt;&amp;lt;id&amp;gt;&amp;lt;tt&amp;gt;&amp;quot;&amp;lt;/tt&amp;gt;&lt;br /&gt;
* Lowercase sequence of letters, numbers, underscores, and/or hyphens (it must, however, start with a letter) which is used internally to represent this compiler.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;weight=&amp;quot;&amp;lt;/tt&amp;gt;&amp;lt;num&amp;gt;&amp;lt;tt&amp;gt;&amp;quot;&amp;lt;/tt&amp;gt; (optional)&lt;br /&gt;
* Determines the order in the compiler drop-down menu that this compiler will be listed; lower numbers are listed sooner (try to keep &amp;lt;num&amp;gt; between 0 and 100).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;platform=&amp;quot;&amp;lt;/tt&amp;gt;&amp;lt;os&amp;gt;&amp;lt;tt&amp;gt;&amp;quot;&amp;lt;/tt&amp;gt; (optional). Only load this compiler if the current operating system is &amp;lt;os&amp;gt;. &amp;lt;os&amp;gt; is one of:&lt;br /&gt;
* &amp;lt;tt&amp;gt;windows&lt;br /&gt;
* macosx&lt;br /&gt;
* linux&lt;br /&gt;
* freebsd&lt;br /&gt;
* netbsd&lt;br /&gt;
* openbsd&lt;br /&gt;
* darwin&lt;br /&gt;
* solaris&lt;br /&gt;
* unix&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;Path type=&amp;quot;master&amp;quot;&amp;gt;&lt;br /&gt;
[...]&lt;br /&gt;
&amp;lt;/Path&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;tt&amp;gt;type=&amp;quot;&amp;lt;/tt&amp;gt;&amp;lt;tp&amp;gt;&amp;lt;tt&amp;gt;&amp;quot;&amp;lt;/tt&amp;gt; Determines what variable the results of the contained detection routine(s) will be stored in. &amp;lt;tp&amp;gt; is one of:&lt;br /&gt;
* &amp;lt;tt&amp;gt;master&lt;br /&gt;
* extra&lt;br /&gt;
* include&lt;br /&gt;
* resource&lt;br /&gt;
* lib&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;Search envVar=&amp;quot;PATH&amp;quot;&lt;br /&gt;
        for=&amp;quot;C&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Searches all paths in the given environment variable.&lt;br /&gt;
* If &amp;lt;tt&amp;gt;for&amp;lt;/tt&amp;gt; is not specified, any path that exists will be added to the current &amp;lt;tt&amp;gt;&amp;lt;Path type=&amp;quot;...&amp;quot;&amp;gt;&amp;lt;/tt&amp;gt;.&lt;br /&gt;
* If &amp;lt;tt&amp;gt;for&amp;lt;/tt&amp;gt; is given, the corresponding executable name will be replaced (if applicable; see &amp;lt;tt&amp;gt;&amp;lt;if exec=&amp;quot;...&amp;quot;&amp;gt;&amp;lt;/if&amp;gt;&amp;lt;/tt&amp;gt; blocks). If the specified file exists on any of the paths in the environment variable, those path(s) will be added.&lt;br /&gt;
&lt;br /&gt;
(If the current path type is &amp;lt;tt&amp;gt;master&amp;lt;/tt&amp;gt;, any trailing &amp;lt;tt&amp;gt;bin&amp;lt;/tt&amp;gt; directories will be stripped.)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;Search path=&amp;quot;C:\MinGW&amp;quot;&lt;br /&gt;
        for=&amp;quot;C&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Same functionality as &amp;lt;tt&amp;gt;&amp;lt;Search envVar=&amp;quot;...&amp;quot;&amp;gt;&amp;lt;/tt&amp;gt; except that this tests a hard-coded path.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;Search registry=&amp;quot;HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Uninstall\SDCC&amp;quot;&lt;br /&gt;
        value=&amp;quot;InstallLocation&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Read a Windows registry key. If &amp;lt;tt&amp;gt;value&amp;lt;/tt&amp;gt; is found in the registry key, and it is a valid folder, it will be added to the current &amp;lt;tt&amp;gt;&amp;lt;Path type=&amp;quot;...&amp;quot;&amp;gt;&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;Fallback path=&amp;quot;/usr/local&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
If the current &amp;lt;tt&amp;gt;&amp;lt;Path type=&amp;quot;...&amp;quot;&amp;gt;&amp;lt;/tt&amp;gt; is empty, add this path to it.&lt;/div&gt;</summary>
		<author><name>Alpha</name></author>
	</entry>
	<entry>
		<id>https://wiki.codeblocks.org/index.php?title=Announcement_for_plugins/patches&amp;diff=7299</id>
		<title>Announcement for plugins/patches</title>
		<link rel="alternate" type="text/html" href="https://wiki.codeblocks.org/index.php?title=Announcement_for_plugins/patches&amp;diff=7299"/>
		<updated>2012-07-13T20:19:34Z</updated>

		<summary type="html">&lt;p&gt;Alpha: Added links.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Code::Blocks Plugins]]&lt;br /&gt;
=== HowTo announce a new plugin/patch or similar ===&lt;br /&gt;
&lt;br /&gt;
''Please read carefully:''&lt;br /&gt;
&lt;br /&gt;
This WiKi section is to announce:&lt;br /&gt;
* a new plugin that is '''not''' within the contrib folder of the SVN repository&lt;br /&gt;
* a patch that is '''not''' a bugfix or similar and/or will '''not''' be applied to the SVN repository (e.g. because it's very specific)&lt;br /&gt;
* a new lexer/template that is '''not''' completed or approved and/or will '''not''' be added to the SVN&lt;br /&gt;
&lt;br /&gt;
If a plugin/patch/lexer/template is moved to the repository don't forget to remove it from here! This section is intended to '''collect''' the information about available plugins/patches/lexerers/templates in one place. So the announcement should be short and clear. It should (however) include at least the following content:&lt;br /&gt;
* Name of the plugin/patch/lexer/template and purpose&amp;lt;BR&amp;gt;&lt;br /&gt;
* Version (state) and date of last update (or release in the first place)&amp;lt;BR&amp;gt;&lt;br /&gt;
* Link to a thread (to be created) in the developers (plugin) forum for discussion of features, bugs, wishlist etc.&amp;lt;BR&amp;gt;&lt;br /&gt;
* A link where the '''most up-to-date''' version can be downloaded (e.g. in the forum).&amp;lt;BR&amp;gt;&lt;br /&gt;
The best way may be to copy the section from the '''template''' plugin/patch/lexer/template and update it with your information. This will ensure consistency in the best way! Read the article [[How to add another announcement]] to read how to change the WiKi accordingly.&lt;br /&gt;
&lt;br /&gt;
=== Patch announcements ===&lt;br /&gt;
&lt;br /&gt;
So far there are no new patches.&lt;br /&gt;
&lt;br /&gt;
* [[Template for patch announcement]] (Read this before posting a new patch!)&lt;br /&gt;
&lt;br /&gt;
=== Plugin announcements ===&lt;br /&gt;
&lt;br /&gt;
These are the user-contributed plugins:&lt;br /&gt;
&lt;br /&gt;
* [[Replace in Files]] (MortenMacFly)&lt;br /&gt;
* [[Tab versus Space]] (MortenMacFly)&lt;br /&gt;
* [[Edit Project]] (Killerbot)&lt;br /&gt;
* [[Matching Brace]] (Killerbot)&lt;br /&gt;
* [[Library Finder]] (byo)&lt;br /&gt;
* [[Environment Variables Editor]] (MortenMacFly)&lt;br /&gt;
* [[ThreadSearch]] (Dje)&lt;br /&gt;
* [[Code Snippets plugin]] (Artoj/Pecan)&lt;br /&gt;
* [[Interpreted Languages plugin]] (dmoore) ** OBSOLETE **&lt;br /&gt;
* [[Shell Extensions plugin]] (dmoore)&lt;br /&gt;
* [[Python plugin]] (dmoore)&lt;br /&gt;
* [[FindBrokenFiles scripted plugin]] (MortenMacFly)&lt;br /&gt;
* [[AutoVersioning]] (JGM)&lt;br /&gt;
* [[DragScroll plugin]]&lt;br /&gt;
* [[BrowseTracker plugin]]&lt;br /&gt;
* [[FortranProject plugin]]&lt;br /&gt;
* [[cbDiff plugin]]&lt;br /&gt;
* [[Project Exporter]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* [/index.php/topic,13723.msg92518.html#msg92518 Bazaar] Bazaar version control (via Tools menu)&lt;br /&gt;
* [http://code.google.com/p/blackdoc/ BlackDoc] Derive project documentation in &amp;quot;BlackDoc&amp;quot; format&lt;br /&gt;
* [/index.php/topic,10901.0.html cbNSIS] Frontend for NSIS (Nullsoft installer system)&lt;br /&gt;
* [http://code.google.com/p/cbtortoisesvn CBTortoiseSVN] (SVN version control, working partially)&lt;br /&gt;
* [/index.php/topic,14184.0.html cbvcs] &amp;quot;Generic&amp;quot; version control, working partially&lt;br /&gt;
* [https://github.com/Lalaland/ClangComplete ClangComplete] Code-completion plugin using Clang&lt;br /&gt;
* [/index.php/topic,14339.0.html CodePaste] Pase code on platforms like Pastebin&lt;br /&gt;
* [/index.php/topic,15915.0.html CompileOnDemand] Compile a file automatically if it has changed&lt;br /&gt;
* [/index.php/topic,8568.0.html ColorCoder] Frontend to setup/compute colour code to be used in source code&lt;br /&gt;
* [/index.php/topic,16512.0.html EditorConfig] Use cross IDE coding styles (also see http://editorconfig.org/)&lt;br /&gt;
* (Other) [/index.php/topic,16517.0.html EditorConfig]&lt;br /&gt;
* [https://github.com/ywx/FormatFortranIndentPlugin FormatFortranIndent] Indent Fortran code correctly - best with FortranProject plugin&lt;br /&gt;
* [/index.php/topic,13348.0.html InnoSetup] Frontend for InnoSetup installer system&lt;br /&gt;
* [/index.php/topic,16470.0.html ListToolbox] Parse, manipulate, and format lists of text&lt;br /&gt;
* [/index.php/topic,16249.0.html Semantic highlight] (In progress)&lt;br /&gt;
* [/index.php/topic,7063.0.html SVNInside] (SVN version control, working, but partially crashing C::B)&lt;br /&gt;
* [http://sourceforge.net/projects/xpmeditor/ XPM Editor] Graphical editor inside C::B&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* [[Template for plugin announcement]] (Read this before posting a new plugin!)&lt;br /&gt;
&lt;br /&gt;
=== Lexer/Templates announcements ===&lt;br /&gt;
&lt;br /&gt;
* [[d_source File wizard]]&lt;br /&gt;
* [[Java lexer]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* [[Template for lexer/template announcement]] (Read this before posting a new lexer/template!)&lt;/div&gt;</summary>
		<author><name>Alpha</name></author>
	</entry>
	<entry>
		<id>https://wiki.codeblocks.org/index.php?title=Compiler_options_file&amp;diff=7298</id>
		<title>Compiler options file</title>
		<link rel="alternate" type="text/html" href="https://wiki.codeblocks.org/index.php?title=Compiler_options_file&amp;diff=7298"/>
		<updated>2012-07-12T16:13:59Z</updated>

		<summary type="html">&lt;p&gt;Alpha: Updated options.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Proposed format for storing compiler options in editable XML. See: [/index.php/topic,16463.0.html XML based compilers].&lt;br /&gt;
{{Layout_box2|1=&lt;br /&gt;
&amp;lt;tt&amp;gt;svn checkout &amp;lt;nowiki&amp;gt;svn://svn.berlios.de/codeblocks/branches/xml_compiler&amp;lt;/nowiki&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;CodeBlocks_compiler_options extends=&amp;quot;gcc&amp;quot;&amp;gt;&lt;br /&gt;
[...]&lt;br /&gt;
&amp;lt;/CodeBlocks_compiler_options&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
I am a Code::Blocks compiler options file.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;extends=&amp;quot;&amp;lt;/tt&amp;gt;&amp;lt;id&amp;gt;&amp;lt;tt&amp;gt;&amp;quot;&amp;lt;/tt&amp;gt; (optional)&lt;br /&gt;
* Load the corresponding &amp;lt;tt&amp;gt;options_&amp;lt;/tt&amp;gt;&amp;lt;id&amp;gt;&amp;lt;tt&amp;gt;.xml&amp;lt;/tt&amp;gt; file first (use if this compiler is almost the same, with only a few altered programs or added switches, for example).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;if platform=&amp;quot;windows&amp;quot;&amp;gt;&lt;br /&gt;
[...]&lt;br /&gt;
&amp;lt;/if&amp;gt;&lt;br /&gt;
&amp;lt;else&amp;gt;&lt;br /&gt;
[...]&lt;br /&gt;
&amp;lt;/else&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Standard &amp;lt;tt&amp;gt;if&amp;lt;/tt&amp;gt; statement; contents of &amp;lt;tt&amp;gt;if&amp;lt;/tt&amp;gt; block is evaluated if the &amp;lt;tt&amp;gt;if&amp;lt;/tt&amp;gt; statement is true, otherwise the &amp;lt;tt&amp;gt;else&amp;lt;/tt&amp;gt; block is evaluated (the &amp;lt;tt&amp;gt;else&amp;lt;/tt&amp;gt; block is optional). Nesting is allowed.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;platform=&amp;quot;&amp;lt;/tt&amp;gt;&amp;lt;os&amp;gt;&amp;lt;tt&amp;gt;&amp;quot;&amp;lt;/tt&amp;gt;. &amp;lt;os&amp;gt; is one of:&lt;br /&gt;
* &amp;lt;tt&amp;gt;windows&lt;br /&gt;
* macosx&lt;br /&gt;
* linux&lt;br /&gt;
* freebsd&lt;br /&gt;
* netbsd&lt;br /&gt;
* openbsd&lt;br /&gt;
* darwin&lt;br /&gt;
* solaris&lt;br /&gt;
* unix&amp;lt;/tt&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;if exec=&amp;quot;bison -h&amp;quot;&amp;gt;&lt;br /&gt;
[...]&lt;br /&gt;
&amp;lt;/if&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
True if the the command &amp;lt;tt&amp;gt;exec&amp;lt;/tt&amp;gt; can be run.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;if exec=&amp;quot;C -dumpversion&amp;quot;&lt;br /&gt;
    regex=&amp;quot;4\.[3-9]\.[0-9]|[5-9]\.[0-9]\.[0-9]&amp;quot;&lt;br /&gt;
    default=&amp;quot;true&amp;quot;&amp;gt;&lt;br /&gt;
[...]&lt;br /&gt;
&amp;lt;/if&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
If the text before the first space in &amp;lt;tt&amp;gt;exec&amp;lt;/tt&amp;gt; is one of:&lt;br /&gt;
* &amp;lt;tt&amp;gt;C&lt;br /&gt;
* CPP&lt;br /&gt;
* LD&lt;br /&gt;
* LIB&lt;br /&gt;
* WINDRES&lt;br /&gt;
* MAKE&amp;lt;/tt&amp;gt;&lt;br /&gt;
it will be replaced with the name of the corresponding executable.&lt;br /&gt;
&lt;br /&gt;
True if &amp;lt;tt&amp;gt;regex&amp;lt;/tt&amp;gt; matches the command's output (in this case, version number &amp;lt;tt&amp;gt;&amp;gt;=&amp;lt;/tt&amp;gt; 4.3.0).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;default&amp;lt;/tt&amp;gt; is used if the command fails to execute (optional).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;Program name=&amp;quot;C&amp;quot; value=&amp;quot;mingw32-gcc.exe&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Give the name of an executable&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;name=&amp;quot;&amp;lt;/tt&amp;gt;&amp;lt;prog&amp;gt;&amp;lt;tt&amp;gt;&amp;quot;&amp;lt;/tt&amp;gt;.  &amp;lt;prog&amp;gt; is one of:&lt;br /&gt;
* &amp;lt;tt&amp;gt;C&lt;br /&gt;
* CPP&lt;br /&gt;
* LD&lt;br /&gt;
* DBGconfig&lt;br /&gt;
* LIB&lt;br /&gt;
* WINDRES&lt;br /&gt;
* MAKE&lt;br /&gt;
value=&amp;quot;&amp;lt;/tt&amp;gt;&amp;lt;exec&amp;gt;&amp;lt;tt&amp;gt;&amp;quot;&amp;lt;/tt&amp;gt; (actual name of the executable).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;Switch name=&amp;quot;includeDirs&amp;quot; value=&amp;quot;-I&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Switches controlling compiler constants.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;name=&amp;quot;&amp;lt;/tt&amp;gt;&amp;lt;opt&amp;gt;&amp;lt;tt&amp;gt;&amp;quot;&amp;lt;/tt&amp;gt;.  &amp;lt;opt&amp;gt; is one of:&lt;br /&gt;
* &amp;lt;tt&amp;gt;includeDirs&lt;br /&gt;
* libDirs&lt;br /&gt;
* linkLibs&lt;br /&gt;
* defines&lt;br /&gt;
* genericSwitch&lt;br /&gt;
* objectExtension&lt;br /&gt;
* forceFwdSlashes&amp;lt;/tt&amp;gt;. &amp;lt;tt&amp;gt;value&amp;lt;/tt&amp;gt; is one of &amp;lt;tt&amp;gt;true&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;false&lt;br /&gt;
* forceLinkerUseQuotes&amp;lt;/tt&amp;gt;. &amp;lt;tt&amp;gt;value&amp;lt;/tt&amp;gt; is one of &amp;lt;tt&amp;gt;true&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;false&lt;br /&gt;
* forceCompilerUseQuotes&amp;lt;/tt&amp;gt;. &amp;lt;tt&amp;gt;value&amp;lt;/tt&amp;gt; is one of &amp;lt;tt&amp;gt;true&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;false&lt;br /&gt;
* needDependencies&amp;lt;/tt&amp;gt;. &amp;lt;tt&amp;gt;value&amp;lt;/tt&amp;gt; is one of &amp;lt;tt&amp;gt;true&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;false&lt;br /&gt;
* logging&amp;lt;/tt&amp;gt;.  &amp;lt;tt&amp;gt;value&amp;lt;/tt&amp;gt; is one of:&lt;br /&gt;
** &amp;lt;tt&amp;gt;default&amp;lt;/tt&amp;gt; (same as &amp;lt;tt&amp;gt;full&amp;lt;/tt&amp;gt;)&lt;br /&gt;
** &amp;lt;tt&amp;gt;full&lt;br /&gt;
** simple&lt;br /&gt;
** none&lt;br /&gt;
* libPrefix&lt;br /&gt;
* libExtension&lt;br /&gt;
* linkerNeedsLibPrefix&amp;lt;/tt&amp;gt;. &amp;lt;tt&amp;gt;value&amp;lt;/tt&amp;gt; is one of &amp;lt;tt&amp;gt;true&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;false&lt;br /&gt;
* linkerNeedsLibExtension&amp;lt;/tt&amp;gt;. &amp;lt;tt&amp;gt;value&amp;lt;/tt&amp;gt; is one of &amp;lt;tt&amp;gt;true&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;false&lt;br /&gt;
* supportsPCH&amp;lt;/tt&amp;gt;. &amp;lt;tt&amp;gt;value&amp;lt;/tt&amp;gt; is one of &amp;lt;tt&amp;gt;true&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;false&lt;br /&gt;
* PCHExtension&lt;br /&gt;
* UseFlatObjects&amp;lt;/tt&amp;gt;. &amp;lt;tt&amp;gt;value&amp;lt;/tt&amp;gt; is one of &amp;lt;tt&amp;gt;true&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;false&lt;br /&gt;
* UseFullSourcePaths&amp;lt;/tt&amp;gt;. &amp;lt;tt&amp;gt;value&amp;lt;/tt&amp;gt; is one of &amp;lt;tt&amp;gt;true&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;false&lt;br /&gt;
* Use83Paths&amp;lt;/tt&amp;gt;. &amp;lt;tt&amp;gt;value&amp;lt;/tt&amp;gt; is one of &amp;lt;tt&amp;gt;true&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;false&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;Option name=&amp;quot;Profile code when executed&amp;quot;&lt;br /&gt;
        option=&amp;quot;-pg&amp;quot;&lt;br /&gt;
        additionalLibs=&amp;quot;-pg -lgmon&amp;quot;&lt;br /&gt;
        category=&amp;quot;Profiling&amp;quot;&lt;br /&gt;
        checkAgainst=&amp;quot;-O -O1 -O2 -O3 -Os&amp;quot;&lt;br /&gt;
        checkMessage=&amp;quot;You have optimizations enabled. This is Not A Good Thing(tm) when producing debugging symbols...&amp;quot;&lt;br /&gt;
        supersedes=&amp;quot;-s&amp;quot;&lt;br /&gt;
        exclusive=&amp;quot;true&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Definition of a compiler flag.&lt;br /&gt;
* &amp;lt;tt&amp;gt;name&amp;lt;/tt&amp;gt;. Human readable description of the flag.&lt;br /&gt;
* &amp;lt;tt&amp;gt;option&amp;lt;/tt&amp;gt;. Flags to be sent to the compiler (optional).&lt;br /&gt;
* &amp;lt;tt&amp;gt;additionalLibs&amp;lt;/tt&amp;gt;. Flags to be sent to the linker (optional).&lt;br /&gt;
* &amp;lt;tt&amp;gt;category&amp;lt;/tt&amp;gt;. The category this flag is in (optional; defaults to &amp;quot;General&amp;quot;).&lt;br /&gt;
* &amp;lt;tt&amp;gt;checkAgainst&amp;lt;/tt&amp;gt;. Show a warning message if any of these flags are enabled (optional).&lt;br /&gt;
* &amp;lt;tt&amp;gt;checkMessage&amp;lt;/tt&amp;gt;. Warning message to show upon conflict (optional).&lt;br /&gt;
* &amp;lt;tt&amp;gt;superseds&amp;lt;/tt&amp;gt;. Automatically disable the list of superseded flags if this flag is enabled (optional).&lt;br /&gt;
* &amp;lt;tt&amp;gt;exclusive&amp;lt;/tt&amp;gt;. Disable all other flags in this category if this flag is enabled. Is one of &amp;lt;tt&amp;gt;true&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;false&amp;lt;/tt&amp;gt; (optional).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;Category name=&amp;quot;CPU architecture tuning&amp;quot;&lt;br /&gt;
          exclusive=&amp;quot;true&amp;quot;&amp;gt;&lt;br /&gt;
[...]&lt;br /&gt;
&amp;lt;/Category&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;tt&amp;gt;name=&amp;quot;&amp;lt;/tt&amp;gt;&amp;lt;cat&amp;gt;&amp;lt;tt&amp;gt;&amp;quot;&amp;lt;/tt&amp;gt;. Any flags (&amp;lt;code&amp;gt;&amp;lt;Option [...] /&amp;gt;&amp;lt;/code&amp;gt;) contained in here that lack the &amp;lt;tt&amp;gt;category&amp;lt;/tt&amp;gt; attribute will be treated as category &amp;lt;cat&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;exclusive&amp;lt;/tt&amp;gt;. Is one of &amp;lt;tt&amp;gt;true&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;false&amp;lt;/tt&amp;gt;. Any flags (&amp;lt;code&amp;gt;&amp;lt;Option [...] /&amp;gt;&amp;lt;/code&amp;gt;) contained in here that lack the &amp;lt;tt&amp;gt;exclusive&amp;lt;/tt&amp;gt; attribute will be treated as this. (Optional.)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;Common name=&amp;quot;optimization&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Load options from a common file.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;name=&amp;quot;&amp;lt;/tt&amp;gt;&amp;lt;file&amp;gt;&amp;lt;tt&amp;gt;&amp;quot;&amp;lt;/tt&amp;gt;&lt;br /&gt;
* Loads &amp;lt;tt&amp;gt;options_common_&amp;lt;/tt&amp;gt;&amp;lt;file&amp;gt;&amp;lt;tt&amp;gt;.xml&amp;lt;/tt&amp;gt; (file syntax is exactly the same as this file).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;Command name=&amp;quot;CompileObject&amp;quot;&lt;br /&gt;
         value=&amp;quot;$compiler $options $includes -c $file -o $object&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Definitions for forming compiler commands.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;name=&amp;quot;&amp;lt;/tt&amp;gt;&amp;lt;cmd&amp;gt;&amp;lt;tt&amp;gt;&amp;quot;&amp;lt;/tt&amp;gt;. &amp;lt;cmd&amp;gt; is one of:&lt;br /&gt;
* &amp;lt;tt&amp;gt;CompileObject&lt;br /&gt;
* GenDependencies&lt;br /&gt;
* CompileResource&lt;br /&gt;
* LinkExe&lt;br /&gt;
* LinkConsoleExe&lt;br /&gt;
* LinkDynamic&lt;br /&gt;
* LinkStatic&lt;br /&gt;
* LinkNative&amp;lt;/tt&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;Command name=&amp;quot;CompileObject&amp;quot;&lt;br /&gt;
         value=&amp;quot;bison -v -d $file -o $file_dir/$file_name.parser.cc&amp;quot;&lt;br /&gt;
         ext=&amp;quot;y&amp;quot;&lt;br /&gt;
         gen=&amp;quot;$file_dir/$file_name.parser.cc;$file_dir/$file_name.parser.hh&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Additional commands can be added to each category with a file extension filter.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;ext=&amp;quot;&amp;lt;/tt&amp;gt;&amp;lt;exts&amp;gt;&amp;lt;tt&amp;gt;&amp;quot;&amp;lt;/tt&amp;gt;. &amp;lt;exts&amp;gt; is a semicolon separated list of file extensions (without the leading &amp;lt;tt&amp;gt;&amp;quot;.&amp;quot;&amp;lt;/tt&amp;gt; period).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;gen=&amp;quot;&amp;lt;/tt&amp;gt;&amp;lt;files&amp;gt;&amp;lt;tt&amp;gt;&amp;quot;&amp;lt;/tt&amp;gt;. &amp;lt;files&amp;gt; is a semicolon separated list of generated files to be further processed (optional).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;RegEx name=&amp;quot;Info line&amp;quot;&lt;br /&gt;
       type=&amp;quot;info&amp;quot;&lt;br /&gt;
       msg=&amp;quot;1;2;4&amp;quot;&lt;br /&gt;
       file=&amp;quot;2&amp;quot;&lt;br /&gt;
       line=&amp;quot;3&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;![CDATA[(In file) ([][{}() \t#%$~[:alnum:]&amp;amp;_:+/\.-]+):([0-9]+)(\.[0-9]+.*:)*]]&amp;gt;&lt;br /&gt;
&amp;lt;/RegEx&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Definitions for regular expressions to parse compiler output.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;name=&amp;quot;&amp;lt;/tt&amp;gt;&amp;lt;label&amp;gt;&amp;lt;tt&amp;gt;&amp;quot;&amp;lt;/tt&amp;gt;. &amp;lt;label&amp;gt; is the name this regex will be listed as.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;type=&amp;quot;&amp;lt;/tt&amp;gt;&amp;lt;tp&amp;gt;&amp;lt;tt&amp;gt;&amp;quot;&amp;lt;/tt&amp;gt;. &amp;lt;tp&amp;gt; is one of&lt;br /&gt;
* &amp;lt;tt&amp;gt;normal&lt;br /&gt;
* warning&lt;br /&gt;
* error&lt;br /&gt;
* info&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;msg=&amp;quot;&amp;lt;/tt&amp;gt;&amp;lt;nums&amp;gt;&amp;lt;tt&amp;gt;&amp;quot;&amp;lt;/tt&amp;gt;. &amp;lt;nums&amp;gt; is a semicolon separated list of indices (minimum one, maximum three) for the locations of messages within the regex.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;file=&amp;quot;&amp;lt;/tt&amp;gt;&amp;lt;num&amp;gt;&amp;lt;tt&amp;gt;&amp;quot;&amp;lt;/tt&amp;gt;. &amp;lt;num&amp;gt; is the index of the regex which gives the relevant file (optional).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;line=&amp;quot;&amp;lt;/tt&amp;gt;&amp;lt;num&amp;gt;&amp;lt;tt&amp;gt;&amp;quot;&amp;lt;/tt&amp;gt;. &amp;lt;num&amp;gt; is the index of the regex which gives the relevant line number (optional).&lt;br /&gt;
&lt;br /&gt;
The contents is the regex (use of a &amp;lt;tt&amp;gt;CDATA&amp;lt;/tt&amp;gt; section is not required).&lt;/div&gt;</summary>
		<author><name>Alpha</name></author>
	</entry>
	<entry>
		<id>https://wiki.codeblocks.org/index.php?title=Compiler_options_file&amp;diff=7291</id>
		<title>Compiler options file</title>
		<link rel="alternate" type="text/html" href="https://wiki.codeblocks.org/index.php?title=Compiler_options_file&amp;diff=7291"/>
		<updated>2012-06-27T02:49:18Z</updated>

		<summary type="html">&lt;p&gt;Alpha: Updated options.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Proposed format for storing compiler options in editable XML. See: [/index.php/topic,16463.0.html XML based compilers].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;CodeBlocks_compiler_options extends=&amp;quot;gcc&amp;quot;&amp;gt;&lt;br /&gt;
[...]&lt;br /&gt;
&amp;lt;/CodeBlocks_compiler_options&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
I am a Code::Blocks compiler options file.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;extends=&amp;quot;&amp;lt;/tt&amp;gt;&amp;lt;id&amp;gt;&amp;lt;tt&amp;gt;&amp;quot;&amp;lt;/tt&amp;gt; (optional)&lt;br /&gt;
* Load the corresponding &amp;lt;tt&amp;gt;options_&amp;lt;/tt&amp;gt;&amp;lt;id&amp;gt;&amp;lt;tt&amp;gt;.xml&amp;lt;/tt&amp;gt; file first (use if this compiler is almost the same, with only a few altered programs or added switches, for example).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;if platform=&amp;quot;windows&amp;quot;&amp;gt;&lt;br /&gt;
[...]&lt;br /&gt;
&amp;lt;/if&amp;gt;&lt;br /&gt;
&amp;lt;else&amp;gt;&lt;br /&gt;
[...]&lt;br /&gt;
&amp;lt;/else&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Standard &amp;lt;tt&amp;gt;if&amp;lt;/tt&amp;gt; statement; contents of &amp;lt;tt&amp;gt;if&amp;lt;/tt&amp;gt; block is evaluated if the &amp;lt;tt&amp;gt;if&amp;lt;/tt&amp;gt; statement is true, otherwise the &amp;lt;tt&amp;gt;else&amp;lt;/tt&amp;gt; block is evaluated (the &amp;lt;tt&amp;gt;else&amp;lt;/tt&amp;gt; block is optional). Nesting is allowed.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;platform=&amp;quot;&amp;lt;/tt&amp;gt;&amp;lt;os&amp;gt;&amp;lt;tt&amp;gt;&amp;quot;&amp;lt;/tt&amp;gt; (platform is the only condition currently defined).  &amp;lt;os&amp;gt; is one of:&lt;br /&gt;
* &amp;lt;tt&amp;gt;windows&lt;br /&gt;
* macosx&lt;br /&gt;
* linux&lt;br /&gt;
* freebsd&lt;br /&gt;
* netbsd&lt;br /&gt;
* openbsd&lt;br /&gt;
* darwin&lt;br /&gt;
* solaris&lt;br /&gt;
* unix&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;Program name=&amp;quot;C&amp;quot; value=&amp;quot;mingw32-gcc.exe&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Give the name of an executable&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;name=&amp;quot;&amp;lt;/tt&amp;gt;&amp;lt;prog&amp;gt;&amp;lt;tt&amp;gt;&amp;quot;&amp;lt;/tt&amp;gt;.  &amp;lt;prog&amp;gt; is one of:&lt;br /&gt;
* &amp;lt;tt&amp;gt;C&lt;br /&gt;
* CPP&lt;br /&gt;
* LD&lt;br /&gt;
* DBG&lt;br /&gt;
* DBGconfig&lt;br /&gt;
* LIB&lt;br /&gt;
* WINDRES&lt;br /&gt;
* MAKE&lt;br /&gt;
value=&amp;quot;&amp;lt;/tt&amp;gt;&amp;lt;exec&amp;gt;&amp;lt;tt&amp;gt;&amp;quot;&amp;lt;/tt&amp;gt; (actual name of the executable).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;Switch name=&amp;quot;includeDirs&amp;quot; value=&amp;quot;-I&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Switches controlling compiler constants.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;name=&amp;quot;&amp;lt;/tt&amp;gt;&amp;lt;opt&amp;gt;&amp;lt;tt&amp;gt;&amp;quot;&amp;lt;/tt&amp;gt;.  &amp;lt;opt&amp;gt; is one of:&lt;br /&gt;
* &amp;lt;tt&amp;gt;includeDirs&lt;br /&gt;
* libDirs&lt;br /&gt;
* linkLibs&lt;br /&gt;
* defines&lt;br /&gt;
* genericSwitch&lt;br /&gt;
* objectExtension&lt;br /&gt;
* forceFwdSlashes&amp;lt;/tt&amp;gt;. &amp;lt;tt&amp;gt;value&amp;lt;/tt&amp;gt; is one of &amp;lt;tt&amp;gt;true&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;false&lt;br /&gt;
* forceLinkerUseQuotes&amp;lt;/tt&amp;gt;. &amp;lt;tt&amp;gt;value&amp;lt;/tt&amp;gt; is one of &amp;lt;tt&amp;gt;true&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;false&lt;br /&gt;
* forceCompilerUseQuotes&amp;lt;/tt&amp;gt;. &amp;lt;tt&amp;gt;value&amp;lt;/tt&amp;gt; is one of &amp;lt;tt&amp;gt;true&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;false&lt;br /&gt;
* needDependencies&amp;lt;/tt&amp;gt;. &amp;lt;tt&amp;gt;value&amp;lt;/tt&amp;gt; is one of &amp;lt;tt&amp;gt;true&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;false&lt;br /&gt;
* logging&amp;lt;/tt&amp;gt;.  &amp;lt;tt&amp;gt;value&amp;lt;/tt&amp;gt; is one of:&lt;br /&gt;
** &amp;lt;tt&amp;gt;default&amp;lt;/tt&amp;gt; (same as &amp;lt;tt&amp;gt;full&amp;lt;/tt&amp;gt;)&lt;br /&gt;
** &amp;lt;tt&amp;gt;full&lt;br /&gt;
** simple&lt;br /&gt;
** none&lt;br /&gt;
* libPrefix&lt;br /&gt;
* libExtension&lt;br /&gt;
* linkerNeedsLibPrefix&amp;lt;/tt&amp;gt;. &amp;lt;tt&amp;gt;value&amp;lt;/tt&amp;gt; is one of &amp;lt;tt&amp;gt;true&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;false&lt;br /&gt;
* linkerNeedsLibExtension&amp;lt;/tt&amp;gt;. &amp;lt;tt&amp;gt;value&amp;lt;/tt&amp;gt; is one of &amp;lt;tt&amp;gt;true&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;false&lt;br /&gt;
* supportsPCH&amp;lt;/tt&amp;gt;. &amp;lt;tt&amp;gt;value&amp;lt;/tt&amp;gt; is one of &amp;lt;tt&amp;gt;true&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;false&lt;br /&gt;
* PCHExtension&lt;br /&gt;
* UseFlatObjects&amp;lt;/tt&amp;gt;. &amp;lt;tt&amp;gt;value&amp;lt;/tt&amp;gt; is one of &amp;lt;tt&amp;gt;true&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;false&lt;br /&gt;
* UseFullSourcePaths&amp;lt;/tt&amp;gt;. &amp;lt;tt&amp;gt;value&amp;lt;/tt&amp;gt; is one of &amp;lt;tt&amp;gt;true&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;false&lt;br /&gt;
* Use83Paths&amp;lt;/tt&amp;gt;. &amp;lt;tt&amp;gt;value&amp;lt;/tt&amp;gt; is one of &amp;lt;tt&amp;gt;true&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;false&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;Option name=&amp;quot;Profile code when executed&amp;quot;&lt;br /&gt;
        option=&amp;quot;-pg&amp;quot;&lt;br /&gt;
        additionalLibs=&amp;quot;-pg -lgmon&amp;quot;&lt;br /&gt;
        category=&amp;quot;Profiling&amp;quot;&lt;br /&gt;
        checkAgainst=&amp;quot;-O -O1 -O2 -O3 -Os&amp;quot;&lt;br /&gt;
        checkMessage=&amp;quot;You have optimizations enabled. This is Not A Good Thing(tm) when producing debugging symbols...&amp;quot;&lt;br /&gt;
        supersedes=&amp;quot;-s&amp;quot;&lt;br /&gt;
        exclusive=&amp;quot;true&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Definition of a compiler flag.&lt;br /&gt;
* &amp;lt;tt&amp;gt;name&amp;lt;/tt&amp;gt;. Human readable description of the flag.&lt;br /&gt;
* &amp;lt;tt&amp;gt;option&amp;lt;/tt&amp;gt;. Flags to be sent to the compiler (optional).&lt;br /&gt;
* &amp;lt;tt&amp;gt;additionalLibs&amp;lt;/tt&amp;gt;. Flags to be sent to the linker (optional).&lt;br /&gt;
* &amp;lt;tt&amp;gt;category&amp;lt;/tt&amp;gt;. The category this flag is in (optional; defaults to &amp;quot;General&amp;quot;).&lt;br /&gt;
* &amp;lt;tt&amp;gt;checkAgainst&amp;lt;/tt&amp;gt;. Show a warning message if any of these flags are enabled (optional).&lt;br /&gt;
* &amp;lt;tt&amp;gt;checkMessage&amp;lt;/tt&amp;gt;. Warning message to show upon conflict (optional).&lt;br /&gt;
* &amp;lt;tt&amp;gt;superseds&amp;lt;/tt&amp;gt;. Automatically disable the list of superseded flags if this flag is enabled (optional).&lt;br /&gt;
* &amp;lt;tt&amp;gt;exclusive&amp;lt;/tt&amp;gt;. Disable all other flags in this category if this flag is enabled. Is one of &amp;lt;tt&amp;gt;true&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;false&amp;lt;/tt&amp;gt; (optional).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;Category name=&amp;quot;CPU architecture tuning&amp;quot;&lt;br /&gt;
          exclusive=&amp;quot;true&amp;quot;&amp;gt;&lt;br /&gt;
[...]&lt;br /&gt;
&amp;lt;/Category&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;tt&amp;gt;name=&amp;quot;&amp;lt;/tt&amp;gt;&amp;lt;cat&amp;gt;&amp;lt;tt&amp;gt;&amp;quot;&amp;lt;/tt&amp;gt;. Any flags (&amp;lt;code&amp;gt;&amp;lt;Option [...] /&amp;gt;&amp;lt;/code&amp;gt;) contained in here that lack the &amp;lt;tt&amp;gt;category&amp;lt;/tt&amp;gt; attribute will be treated as category &amp;lt;cat&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;exclusive&amp;lt;/tt&amp;gt;. Is one of &amp;lt;tt&amp;gt;true&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;false&amp;lt;/tt&amp;gt;. Any flags (&amp;lt;code&amp;gt;&amp;lt;Option [...] /&amp;gt;&amp;lt;/code&amp;gt;) contained in here that lack the &amp;lt;tt&amp;gt;exclusive&amp;lt;/tt&amp;gt; attribute will be treated as this. (Optional.)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;Common name=&amp;quot;optimization&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Load options from a common file.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;name=&amp;quot;&amp;lt;/tt&amp;gt;&amp;lt;file&amp;gt;&amp;lt;tt&amp;gt;&amp;quot;&amp;lt;/tt&amp;gt;&lt;br /&gt;
* Loads &amp;lt;tt&amp;gt;options_common_&amp;lt;/tt&amp;gt;&amp;lt;file&amp;gt;&amp;lt;tt&amp;gt;.xml&amp;lt;/tt&amp;gt; (file syntax is exactly the same as this file).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;Command name=&amp;quot;CompileObject&amp;quot;&lt;br /&gt;
         value=&amp;quot;$compiler $options $includes -c $file -o $object&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Definitions for forming compiler commands.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;name=&amp;quot;&amp;lt;/tt&amp;gt;&amp;lt;cmd&amp;gt;&amp;lt;tt&amp;gt;&amp;quot;&amp;lt;/tt&amp;gt;. &amp;lt;cmd&amp;gt; is one of:&lt;br /&gt;
* &amp;lt;tt&amp;gt;CompileObject&lt;br /&gt;
* GenDependencies&lt;br /&gt;
* CompileResource&lt;br /&gt;
* LinkExe&lt;br /&gt;
* LinkConsoleExe&lt;br /&gt;
* LinkDynamic&lt;br /&gt;
* LinkStatic&lt;br /&gt;
* LinkNative&amp;lt;/tt&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;Command name=&amp;quot;CompileObject&amp;quot;&lt;br /&gt;
         value=&amp;quot;bison -v -d $file -o $file_dir/$file_name.parser.cc&amp;quot;&lt;br /&gt;
         ext=&amp;quot;y&amp;quot;&lt;br /&gt;
         gen=&amp;quot;$file_dir/$file_name.parser.cc;$file_dir/$file_name.parser.hh&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Additional commands can be added to each category with a file extension filter.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;ext=&amp;quot;&amp;lt;/tt&amp;gt;&amp;lt;exts&amp;gt;&amp;lt;tt&amp;gt;&amp;quot;&amp;lt;/tt&amp;gt;. &amp;lt;exts&amp;gt; is a semicolon separated list of file extensions (without the leading &amp;lt;tt&amp;gt;&amp;quot;.&amp;quot;&amp;lt;/tt&amp;gt; period).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;gen=&amp;quot;&amp;lt;/tt&amp;gt;&amp;lt;files&amp;gt;&amp;lt;tt&amp;gt;&amp;quot;&amp;lt;/tt&amp;gt;. &amp;lt;files&amp;gt; is a semicolon separated list of generated files to be further processed (optional).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;RegEx name=&amp;quot;Info line&amp;quot;&lt;br /&gt;
       type=&amp;quot;info&amp;quot;&lt;br /&gt;
       msg=&amp;quot;1;2;4&amp;quot;&lt;br /&gt;
       file=&amp;quot;2&amp;quot;&lt;br /&gt;
       line=&amp;quot;3&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;![CDATA[(In file) ([][{}() \t#%$~[:alnum:]&amp;amp;_:+/\.-]+):([0-9]+)(\.[0-9]+.*:)*]]&amp;gt;&lt;br /&gt;
&amp;lt;/RegEx&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Definitions for regular expressions to parse compiler output.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;name=&amp;quot;&amp;lt;/tt&amp;gt;&amp;lt;label&amp;gt;&amp;lt;tt&amp;gt;&amp;quot;&amp;lt;/tt&amp;gt;. &amp;lt;label&amp;gt; is the name this regex will be listed as.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;type=&amp;quot;&amp;lt;/tt&amp;gt;&amp;lt;tp&amp;gt;&amp;lt;tt&amp;gt;&amp;quot;&amp;lt;/tt&amp;gt;. &amp;lt;tp&amp;gt; is one of&lt;br /&gt;
* &amp;lt;tt&amp;gt;normal&lt;br /&gt;
* warning&lt;br /&gt;
* error&lt;br /&gt;
* info&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;msg=&amp;quot;&amp;lt;/tt&amp;gt;&amp;lt;nums&amp;gt;&amp;lt;tt&amp;gt;&amp;quot;&amp;lt;/tt&amp;gt;. &amp;lt;nums&amp;gt; is a semicolon separated list of indices (minimum one, maximum three) for the locations of messages within the regex.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;file=&amp;quot;&amp;lt;/tt&amp;gt;&amp;lt;num&amp;gt;&amp;lt;tt&amp;gt;&amp;quot;&amp;lt;/tt&amp;gt;. &amp;lt;num&amp;gt; is the index of the regex which gives the relevant file (optional).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;line=&amp;quot;&amp;lt;/tt&amp;gt;&amp;lt;num&amp;gt;&amp;lt;tt&amp;gt;&amp;quot;&amp;lt;/tt&amp;gt;. &amp;lt;num&amp;gt; is the index of the regex which gives the relevant line number (optional).&lt;br /&gt;
&lt;br /&gt;
The contents is the regex (use of a &amp;lt;tt&amp;gt;CDATA&amp;lt;/tt&amp;gt; section is not required).&lt;/div&gt;</summary>
		<author><name>Alpha</name></author>
	</entry>
	<entry>
		<id>https://wiki.codeblocks.org/index.php?title=Adding_support_for_non_C/C%2B%2B_files_to_the_build_system&amp;diff=7290</id>
		<title>Adding support for non C/C++ files to the build system</title>
		<link rel="alternate" type="text/html" href="https://wiki.codeblocks.org/index.php?title=Adding_support_for_non_C/C%2B%2B_files_to_the_build_system&amp;diff=7290"/>
		<updated>2012-06-23T19:06:16Z</updated>

		<summary type="html">&lt;p&gt;Alpha: Formatting.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category: User Documentation]]&lt;br /&gt;
== Intro ==&lt;br /&gt;
&lt;br /&gt;
As you may already know, Code::Blocks is designed mainly for C/C++ development. This means that when it &amp;quot;sees&amp;quot; C/C++ files in your project it knows how to compile and link them to generate the resulting binary output.&lt;br /&gt;
What about other types of files though? You may want to compile java or python files but, unfortunately, Code::Blocks knows nothing about them...&lt;br /&gt;
&lt;br /&gt;
And there's this other case: in real world projects, it's not unusual for some of the files belonging to a project to be auto-generated. This is done through the use of another program/script that possibly takes an input file and generates one (or more) files based on that input. Code::Blocks, unfortunately, can't handle them either...&lt;br /&gt;
&lt;br /&gt;
Or can it?&lt;br /&gt;
&lt;br /&gt;
The answer is: ....... (drum-rolling) ........ (ta-da) ......... '''It sure can!'''.&lt;br /&gt;
&lt;br /&gt;
Code::Blocks has been recently updated so it can be configured to recognize non C/C++ files and act accordingly on them during the build process. This article will describe those changes and provide a simple but real world example of usage.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== How things used to work... ==&lt;br /&gt;
&lt;br /&gt;
In case you never had a look in advanced compiler options, you can find them by clicking  ''&amp;lt;tt&amp;gt;Settings-&amp;gt;Compiler and debugger-&amp;gt;Other settings-&amp;gt;Advanced options&amp;lt;/tt&amp;gt;''. Look for &amp;quot;Advanced options&amp;quot; in lower right, it's easy to miss.&lt;br /&gt;
&lt;br /&gt;
In that dialog you will find the command line macros used to build files. For example, each file belonging to the project, that had its compile flag on, would be compiled with the macro named &amp;quot;Compile single file to object file&amp;quot; (''&amp;lt;tt&amp;gt;&amp;quot;$compiler $options $includes -c $file -o $object&amp;quot;&amp;lt;/tt&amp;gt;'', for the curious).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
While this provide enough room for customizing the build system's configuration, it clearly didn't allow for some more generic customization.&lt;br /&gt;
&lt;br /&gt;
If you wanted to include in your project and compile a java file, you would have to set a custom build command for that particular file, ''only'' for that file (right-click file in tree and choose properties). This is not only cumbersome (imagine having to do this for 10 or 100 java files) but impractical too.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== ...and how things have evolved ==&lt;br /&gt;
&lt;br /&gt;
The new functionality described in this article aims to remove the above problems and allow for more customization of the build system. So, what is different now?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;[[Image:AdvancedCompilerOptions.png|Advanced compiler options]]&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For starters, the command line macros are now paired with a list of source file extensions. So each command line macro (like the &amp;quot;Compile single file to object file&amp;quot;) can now hold different macros ''depending on the source file extension''. This is the core of the new functionality: by adding a new command-extension pair, you effectively add support for these extension(s) to the build system!&lt;br /&gt;
&lt;br /&gt;
Another thing that also got added was the ability to keep a list of files the custom command will generate (for each command-extension pair). These generated files are then automatically shown in the project tree, become part of the build process, etc. In other words, they are dynamically - and transparently - affecting the project. If you find this confusing, have a look at the provided example and things will clear up :).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Let's see an example already ==&lt;br /&gt;
&lt;br /&gt;
Here comes a real world example. I recently worked on a side project that required me to use [http://www.swig.org SWIG]. What the &amp;lt;tt&amp;gt;swig&amp;lt;/tt&amp;gt; program does, in simple words, is take a special interface file (usually &amp;lt;tt&amp;gt;*.i&amp;lt;/tt&amp;gt;) as input and, based on this input, it generates a C/C++ file to include in your project. This sounds like the perfect scenario to use as an example here :).&lt;br /&gt;
&lt;br /&gt;
Here's what I did:&lt;br /&gt;
&lt;br /&gt;
 Command:         '''Compile single file to object file'''&lt;br /&gt;
 Extension:       '''i'''&lt;br /&gt;
 Macro:           '''swig -c++ -lua $includes -o $file_dir/$file_name.cpp $file'''&lt;br /&gt;
 Generated files: '''$file_dir/$file_name.cpp'''&lt;br /&gt;
&lt;br /&gt;
What do the above mean?&lt;br /&gt;
&lt;br /&gt;
For any file with extension '''i''', use the above macro to process (compile) it. Also lets Code::Blocks know that this macro will create a new file, named '''$file_dir/$file_name.cpp'''.&lt;br /&gt;
&lt;br /&gt;
With this info at hand, Code::Blocks will now do the following auto-magically when you add any *.i file to a project:&lt;br /&gt;
&lt;br /&gt;
* Add the generated file(s) also to the project (even if they don't yet exist).&lt;br /&gt;
* Will display the file under the new &amp;quot;Auto-generated&amp;quot; tree folder (if files categorization is enabled).&lt;br /&gt;
* Will know how to process (compile) the *.i files.&lt;br /&gt;
* Will also schedule all the generated files for processing (compiling) ''after'' the *.i file is processed.&lt;br /&gt;
* Will still track dependencies so when the *.i file is changed, its generated files will be re-generated too.&lt;br /&gt;
&lt;br /&gt;
== Another example - Ragel ==&lt;br /&gt;
&lt;br /&gt;
Compile [http://www.complang.org/ragel/ Ragel State Machine Compiler] source into C++ file.&lt;br /&gt;
&lt;br /&gt;
 Command:         '''Compile single file to object file'''&lt;br /&gt;
 Extension:       '''rl'''&lt;br /&gt;
 Macro:           '''ragel $file -C -L -o $file.cpp'''&lt;br /&gt;
 Generated files: '''$file.cpp'''&lt;br /&gt;
&lt;br /&gt;
(You have to ensure that the ragel executable is in the PATH.)&lt;br /&gt;
&lt;br /&gt;
== Another example - Bison ==&lt;br /&gt;
&lt;br /&gt;
Compile [http://www.gnu.org/software/bison/ Bison Parser] parser into C/C++ file.&lt;br /&gt;
&lt;br /&gt;
 Command:         '''Compile single file to object file'''&lt;br /&gt;
 Extension:       '''y'''&lt;br /&gt;
 Macro:           '''bison -v -d $file -o $file_dir/$file_name.parser.cc'''&lt;br /&gt;
 Generated files: '''$file_dir/$file_name.parser.cc'''&lt;br /&gt;
                  '''$file_dir/$file_name.parser.hh'''&lt;br /&gt;
&lt;br /&gt;
(You have to ensure that the bison executable is in the PATH.)&lt;br /&gt;
&lt;br /&gt;
== Another example - Flex ==&lt;br /&gt;
&lt;br /&gt;
Compile [http://flex.sourceforge.net/ Flex] lexical analyser files into C/C++ file.&lt;br /&gt;
&lt;br /&gt;
 Command:         '''Compile single file to object file'''&lt;br /&gt;
 Extension:       '''l'''&lt;br /&gt;
 Macro:           '''flex -o$file_dir/$file_name.scanner.cc $file'''&lt;br /&gt;
 Generated files: '''$file_dir/$file_name.scanner.cc'''&lt;br /&gt;
&lt;br /&gt;
(You have to ensure that the flex executable is in the PATH.)&lt;br /&gt;
&lt;br /&gt;
== Notes ==&lt;br /&gt;
&lt;br /&gt;
* All default commands are paired to no extension. These are used as fallback if a matching extension isn't defined.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Known issues ==&lt;br /&gt;
* Currently, only the ''$file*'' macros are supported in the generated files names ($file, $file_dir, $file_name and $file_ext).&lt;br /&gt;
* If you change any of the settings mentioned here in advanced compiler options, you '''must''' close and re-open your project so the changes will take effect. No message is displayed currently to note this.&lt;br /&gt;
* If you are using a non-default compiler (to cross compile for example), you may need to make these settings in the default compiler, not the cross compiler where it seems to have no effect.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Creation: [[User:Mandrav|Mandrav]] 11:29, 12 October 2007 (UTC)&lt;br /&gt;
Update:   [[User:MortenMacFly|MortenMacFly]] 17:53, 12 June 2012 (UTC)&lt;/div&gt;</summary>
		<author><name>Alpha</name></author>
	</entry>
	<entry>
		<id>https://wiki.codeblocks.org/index.php?title=Announcement_for_plugins/patches&amp;diff=7289</id>
		<title>Announcement for plugins/patches</title>
		<link rel="alternate" type="text/html" href="https://wiki.codeblocks.org/index.php?title=Announcement_for_plugins/patches&amp;diff=7289"/>
		<updated>2012-06-23T12:53:06Z</updated>

		<summary type="html">&lt;p&gt;Alpha: Added link.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Code::Blocks Plugins]]&lt;br /&gt;
=== HowTo announce a new plugin/patch or similar ===&lt;br /&gt;
&lt;br /&gt;
''Please read carefully:''&lt;br /&gt;
&lt;br /&gt;
This WiKi section is to announce:&lt;br /&gt;
* a new plugin that is '''not''' within the contrib folder of the SVN repository&lt;br /&gt;
* a patch that is '''not''' a bugfix or similar and/or will '''not''' be applied to the SVN repository (e.g. because it's very specific)&lt;br /&gt;
* a new lexer/template that is '''not''' completed or approved and/or will '''not''' be added to the SVN&lt;br /&gt;
&lt;br /&gt;
If a plugin/patch/lexer/template is moved to the repository don't forget to remove it from here! This section is intended to '''collect''' the information about available plugins/patches/lexerers/templates in one place. So the announcement should be short and clear. It should (however) include at least the following content:&lt;br /&gt;
* Name of the plugin/patch/lexer/template and purpose&amp;lt;BR&amp;gt;&lt;br /&gt;
* Version (state) and date of last update (or release in the first place)&amp;lt;BR&amp;gt;&lt;br /&gt;
* Link to a thread (to be created) in the developers (plugin) forum for discussion of features, bugs, wishlist etc.&amp;lt;BR&amp;gt;&lt;br /&gt;
* A link where the '''most up-to-date''' version can be downloaded (e.g. in the forum).&amp;lt;BR&amp;gt;&lt;br /&gt;
The best way may be to copy the section from the '''template''' plugin/patch/lexer/template and update it with your information. This will ensure consistency in the best way! Read the article [[How to add another announcement]] to read how to change the WiKi accordingly.&lt;br /&gt;
&lt;br /&gt;
=== Patch announcements ===&lt;br /&gt;
&lt;br /&gt;
So far there are no new patches.&lt;br /&gt;
&lt;br /&gt;
* [[Template for patch announcement]] (Read this before posting a new patch!)&lt;br /&gt;
&lt;br /&gt;
=== Plugin announcements ===&lt;br /&gt;
&lt;br /&gt;
These are the user-contributed plugins:&lt;br /&gt;
&lt;br /&gt;
* [[Replace in Files]] (MortenMacFly)&lt;br /&gt;
* [[Tab versus Space]] (MortenMacFly)&lt;br /&gt;
* [[Edit Project]] (Killerbot)&lt;br /&gt;
* [[Matching Brace]] (Killerbot)&lt;br /&gt;
* [[Library Finder]] (byo)&lt;br /&gt;
* [[Environment Variables Editor]] (MortenMacFly)&lt;br /&gt;
* [[ThreadSearch]] (Dje)&lt;br /&gt;
* [[Code Snippets plugin]] (Artoj/Pecan)&lt;br /&gt;
* [[Interpreted Languages plugin]] (dmoore) ** OBSOLETE **&lt;br /&gt;
* [[Shell Extensions plugin]] (dmoore)&lt;br /&gt;
* [[Python plugin]] (dmoore)&lt;br /&gt;
* [[FindBrokenFiles scripted plugin]] (MortenMacFly)&lt;br /&gt;
* [[AutoVersioning]] (JGM)&lt;br /&gt;
* [[DragScroll plugin]]&lt;br /&gt;
* [[BrowseTracker plugin]]&lt;br /&gt;
* [[FortranProject plugin]]&lt;br /&gt;
* [[cbDiff plugin]]&lt;br /&gt;
* [[Project Exporter]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* [/index.php/topic,13723.msg92518.html#msg92518 Bazaar] Bazaar version control (via Tools menu)&lt;br /&gt;
* [http://code.google.com/p/blackdoc/ BlackDoc] Derive project documentation in &amp;quot;BlackDoc&amp;quot; format&lt;br /&gt;
* [/index.php/topic,10901.0.html cbNSIS] Frontend for NSIS (Nullsoft installer system)&lt;br /&gt;
* [http://code.google.com/p/cbtortoisesvn CBTortoiseSVN] (SVN version control, working partially)&lt;br /&gt;
* [/index.php/topic,14184.0.html cbvcs] &amp;quot;Generic&amp;quot; version control, working partially&lt;br /&gt;
* [https://github.com/Lalaland/ClangComplete ClangComplete] Code-completion plugin using Clang&lt;br /&gt;
* [/index.php/topic,14339.0.html CodePaste] Pase code on platforms like Pastebin&lt;br /&gt;
* [/index.php/topic,15915.0.html CompileOnDemand] Compile a file automatically if it has changed&lt;br /&gt;
* [/index.php/topic,8568.0.html ColorCoder] Frontend to setup/compute colour code to be used in source code&lt;br /&gt;
* [https://github.com/ywx/FormatFortranIndentPlugin FormatFortranIndent] Indent Fortran code correctly - best with FortranProject plugin&lt;br /&gt;
* [/index.php/topic,13348.0.html InnoSetup] Frontend for InnoSetup installer system&lt;br /&gt;
* [/index.php/topic,16470.0.html ListToolbox] Parse, manipulate, and format lists of text&lt;br /&gt;
* [/index.php/topic,16249.0.html Semantic highlight] (In progress)&lt;br /&gt;
* [/index.php/topic,7063.0.html SVNInside] (SVN version control, working, but partially crashing C::B)&lt;br /&gt;
* [http://sourceforge.net/projects/xpmeditor/ XPM Editor] Graphical editor inside C::B&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* [[Template for plugin announcement]] (Read this before posting a new plugin!)&lt;br /&gt;
&lt;br /&gt;
=== Lexer/Templates announcements ===&lt;br /&gt;
&lt;br /&gt;
* [[d_source File wizard]]&lt;br /&gt;
* [[Java lexer]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* [[Template for lexer/template announcement]] (Read this before posting a new lexer/template!)&lt;/div&gt;</summary>
		<author><name>Alpha</name></author>
	</entry>
	<entry>
		<id>https://wiki.codeblocks.org/index.php?title=Compiler_options_file&amp;diff=7288</id>
		<title>Compiler options file</title>
		<link rel="alternate" type="text/html" href="https://wiki.codeblocks.org/index.php?title=Compiler_options_file&amp;diff=7288"/>
		<updated>2012-06-22T05:33:47Z</updated>

		<summary type="html">&lt;p&gt;Alpha: Created page with &amp;quot;Proposed format for storing compiler options in editable XML. See: [/index.php/topic,16463.0.html XML based compilers].   &amp;lt;source lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Proposed format for storing compiler options in editable XML. See: [/index.php/topic,16463.0.html XML based compilers].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;CodeBlocks_compiler_options extends=&amp;quot;gcc&amp;quot;&amp;gt;&lt;br /&gt;
[...]&lt;br /&gt;
&amp;lt;/CodeBlocks_compiler_options&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
I am a Code::Blocks compiler options file.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;extends=&amp;quot;&amp;lt;/tt&amp;gt;&amp;lt;id&amp;gt;&amp;lt;tt&amp;gt;&amp;quot;&amp;lt;/tt&amp;gt; (optional)&lt;br /&gt;
* Load the corresponding &amp;lt;tt&amp;gt;options_&amp;lt;/tt&amp;gt;&amp;lt;id&amp;gt;&amp;lt;tt&amp;gt;.xml&amp;lt;/tt&amp;gt; file first (use if this compiler is almost the same, with only a few altered programs or added switches, for example).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;if platform=&amp;quot;windows&amp;quot;&amp;gt;&lt;br /&gt;
[...]&lt;br /&gt;
&amp;lt;/if&amp;gt;&lt;br /&gt;
&amp;lt;else&amp;gt;&lt;br /&gt;
[...]&lt;br /&gt;
&amp;lt;/else&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Standard &amp;lt;tt&amp;gt;if&amp;lt;/tt&amp;gt; statement; contents of &amp;lt;tt&amp;gt;if&amp;lt;/tt&amp;gt; block is evaluated if the &amp;lt;tt&amp;gt;if&amp;lt;/tt&amp;gt; statement is true, otherwise the &amp;lt;tt&amp;gt;else&amp;lt;/tt&amp;gt; block is evaluated (the &amp;lt;tt&amp;gt;else&amp;lt;/tt&amp;gt; block is optional). Nesting is allowed.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;platform=&amp;quot;&amp;lt;/tt&amp;gt;&amp;lt;os&amp;gt;&amp;lt;tt&amp;gt;&amp;quot;&amp;lt;/tt&amp;gt; (platform is the only condition currently defined).  &amp;lt;os&amp;gt; is one of:&lt;br /&gt;
* &amp;lt;tt&amp;gt;windows&lt;br /&gt;
* macosx&lt;br /&gt;
* linux&lt;br /&gt;
* freebsd&lt;br /&gt;
* netbsd&lt;br /&gt;
* openbsd&lt;br /&gt;
* darwin&lt;br /&gt;
* solaris&lt;br /&gt;
* unix&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;Program name=&amp;quot;C&amp;quot; value=&amp;quot;mingw32-gcc.exe&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Give the name of an executable&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;name=&amp;quot;&amp;lt;/tt&amp;gt;&amp;lt;prog&amp;gt;&amp;lt;tt&amp;gt;&amp;quot;&amp;lt;/tt&amp;gt;.  &amp;lt;prog&amp;gt; is one of:&lt;br /&gt;
* &amp;lt;tt&amp;gt;C&lt;br /&gt;
* CPP&lt;br /&gt;
* LD&lt;br /&gt;
* DBG&lt;br /&gt;
* DBGconfig&lt;br /&gt;
* LIB&lt;br /&gt;
* WINDRES&lt;br /&gt;
* MAKE&lt;br /&gt;
value=&amp;quot;&amp;lt;/tt&amp;gt;&amp;lt;exec&amp;gt;&amp;lt;tt&amp;gt;&amp;quot;&amp;lt;/tt&amp;gt; (actual name of the executable).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;Switch name=&amp;quot;includeDirs&amp;quot; value=&amp;quot;-I&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Switches controlling compiler constants.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;name=&amp;quot;&amp;lt;/tt&amp;gt;&amp;lt;opt&amp;gt;&amp;lt;tt&amp;gt;&amp;quot;&amp;lt;/tt&amp;gt;.  &amp;lt;opt&amp;gt; is one of:&lt;br /&gt;
* &amp;lt;tt&amp;gt;includeDirs&lt;br /&gt;
* libDirs&lt;br /&gt;
* linkLibs&lt;br /&gt;
* defines&lt;br /&gt;
* genericSwitch&lt;br /&gt;
* objectExtension&lt;br /&gt;
* forceFwdSlashes&amp;lt;/tt&amp;gt;. &amp;lt;tt&amp;gt;value&amp;lt;/tt&amp;gt; is one of &amp;lt;tt&amp;gt;true&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;false&lt;br /&gt;
* forceLinkerUseQuotes&amp;lt;/tt&amp;gt;. &amp;lt;tt&amp;gt;value&amp;lt;/tt&amp;gt; is one of &amp;lt;tt&amp;gt;true&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;false&lt;br /&gt;
* forceCompilerUseQuotes&amp;lt;/tt&amp;gt;. &amp;lt;tt&amp;gt;value&amp;lt;/tt&amp;gt; is one of &amp;lt;tt&amp;gt;true&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;false&lt;br /&gt;
* needDependencies&amp;lt;/tt&amp;gt;. &amp;lt;tt&amp;gt;value&amp;lt;/tt&amp;gt; is one of &amp;lt;tt&amp;gt;true&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;false&lt;br /&gt;
* logging&amp;lt;/tt&amp;gt;.  &amp;lt;tt&amp;gt;value&amp;lt;/tt&amp;gt; is one of:&lt;br /&gt;
** &amp;lt;tt&amp;gt;default&amp;lt;/tt&amp;gt; (same as &amp;lt;tt&amp;gt;full&amp;lt;/tt&amp;gt;)&lt;br /&gt;
** &amp;lt;tt&amp;gt;full&lt;br /&gt;
** simple&lt;br /&gt;
** none&lt;br /&gt;
* libPrefix&lt;br /&gt;
* libExtension&lt;br /&gt;
* linkerNeedsLibPrefix&amp;lt;/tt&amp;gt;. &amp;lt;tt&amp;gt;value&amp;lt;/tt&amp;gt; is one of &amp;lt;tt&amp;gt;true&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;false&lt;br /&gt;
* linkerNeedsLibExtension&amp;lt;/tt&amp;gt;. &amp;lt;tt&amp;gt;value&amp;lt;/tt&amp;gt; is one of &amp;lt;tt&amp;gt;true&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;false&lt;br /&gt;
* supportsPCH&amp;lt;/tt&amp;gt;. &amp;lt;tt&amp;gt;value&amp;lt;/tt&amp;gt; is one of &amp;lt;tt&amp;gt;true&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;false&lt;br /&gt;
* PCHExtension&lt;br /&gt;
* UseFlatObjects&amp;lt;/tt&amp;gt;. &amp;lt;tt&amp;gt;value&amp;lt;/tt&amp;gt; is one of &amp;lt;tt&amp;gt;true&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;false&lt;br /&gt;
* UseFullSourcePaths&amp;lt;/tt&amp;gt;. &amp;lt;tt&amp;gt;value&amp;lt;/tt&amp;gt; is one of &amp;lt;tt&amp;gt;true&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;false&lt;br /&gt;
* Use83Paths&amp;lt;/tt&amp;gt;. &amp;lt;tt&amp;gt;value&amp;lt;/tt&amp;gt; is one of &amp;lt;tt&amp;gt;true&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;false&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;Option name=&amp;quot;Profile code when executed&amp;quot;&lt;br /&gt;
        option=&amp;quot;-pg&amp;quot;&lt;br /&gt;
        additionalLibs=&amp;quot;-pg -lgmon&amp;quot;&lt;br /&gt;
        category=&amp;quot;Profiling&amp;quot;&lt;br /&gt;
        checkAgainst=&amp;quot;-O -O1 -O2 -O3 -Os&amp;quot;&lt;br /&gt;
        checkMessage=&amp;quot;You have optimizations enabled. This is Not A Good Thing(tm) when producing debugging symbols...&amp;quot;&lt;br /&gt;
        supersedes=&amp;quot;-s&amp;quot;&lt;br /&gt;
        exclusive=&amp;quot;true&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Definition of a compiler flag.&lt;br /&gt;
* &amp;lt;tt&amp;gt;name&amp;lt;/tt&amp;gt;. Human readable description of the flag.&lt;br /&gt;
* &amp;lt;tt&amp;gt;option&amp;lt;/tt&amp;gt;. Flags to be sent to the compiler (optional).&lt;br /&gt;
* &amp;lt;tt&amp;gt;additionalLibs&amp;lt;/tt&amp;gt;. Flags to be sent to the linker (optional).&lt;br /&gt;
* &amp;lt;tt&amp;gt;category&amp;lt;/tt&amp;gt;. The category this flag is in (optional; defaults to &amp;quot;General&amp;quot;).&lt;br /&gt;
* &amp;lt;tt&amp;gt;checkAgainst&amp;lt;/tt&amp;gt;. Show a warning message if any of these flags are enabled (optional).&lt;br /&gt;
* &amp;lt;tt&amp;gt;checkMessage&amp;lt;/tt&amp;gt;. Warning message to show upon conflict (optional).&lt;br /&gt;
* &amp;lt;tt&amp;gt;superseds&amp;lt;/tt&amp;gt;. Automatically disable the list of superseded flags if this flag is enabled (optional).&lt;br /&gt;
* &amp;lt;tt&amp;gt;exclusive&amp;lt;/tt&amp;gt;. Disable all other flags in this category if this flag is enabled. Is one of &amp;lt;tt&amp;gt;true&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;false&amp;lt;/tt&amp;gt; (optional).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;Category name=&amp;quot;CPU architecture tuning&amp;quot;&lt;br /&gt;
          exclusive=&amp;quot;true&amp;quot;&amp;gt;&lt;br /&gt;
[...]&lt;br /&gt;
&amp;lt;/Category&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;tt&amp;gt;name=&amp;quot;&amp;lt;/tt&amp;gt;&amp;lt;cat&amp;gt;&amp;lt;tt&amp;gt;&amp;quot;&amp;lt;/tt&amp;gt;. Any flags (&amp;lt;code&amp;gt;&amp;lt;Option [...] /&amp;gt;&amp;lt;/code&amp;gt;) contained in here that lack the &amp;lt;tt&amp;gt;category&amp;lt;/tt&amp;gt; attribute will be treated as category &amp;lt;cat&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;exclusive&amp;lt;/tt&amp;gt;. Is one of &amp;lt;tt&amp;gt;true&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;false&amp;lt;/tt&amp;gt;. Any flags (&amp;lt;code&amp;gt;&amp;lt;Option [...] /&amp;gt;&amp;lt;/code&amp;gt;) contained in here that lack the &amp;lt;tt&amp;gt;exclusive&amp;lt;/tt&amp;gt; attribute will be treated as this. (Optional.)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;Common name=&amp;quot;optimization&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Load options from a common file.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;name=&amp;quot;&amp;lt;/tt&amp;gt;&amp;lt;file&amp;gt;&amp;lt;tt&amp;gt;&amp;quot;&amp;lt;/tt&amp;gt;&lt;br /&gt;
* Loads &amp;lt;tt&amp;gt;options_common_&amp;lt;/tt&amp;gt;&amp;lt;file&amp;gt;&amp;lt;tt&amp;gt;.xml&amp;lt;/tt&amp;gt; (file syntax is exactly the same as this file).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;Command name=&amp;quot;CompileObject&amp;quot;&lt;br /&gt;
         value=&amp;quot;$compiler $options $includes -c $file -o $object&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Definitions for forming compiler commands&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;name=&amp;quot;&amp;lt;/tt&amp;gt;&amp;lt;cmd&amp;gt;&amp;lt;tt&amp;gt;&amp;quot;&amp;lt;/tt&amp;gt;. &amp;lt;cmd&amp;gt; is one of:&lt;br /&gt;
* &amp;lt;tt&amp;gt;CompileObject&lt;br /&gt;
* GenDependencies&lt;br /&gt;
* CompileResource&lt;br /&gt;
* LinkExe&lt;br /&gt;
* LinkConsoleExe&lt;br /&gt;
* LinkDynamic&lt;br /&gt;
* LinkStatic&lt;br /&gt;
* LinkNative&amp;lt;/tt&amp;gt;&lt;/div&gt;</summary>
		<author><name>Alpha</name></author>
	</entry>
	<entry>
		<id>https://wiki.codeblocks.org/index.php?title=Fortran_Project_plugin&amp;diff=7265</id>
		<title>Fortran Project plugin</title>
		<link rel="alternate" type="text/html" href="https://wiki.codeblocks.org/index.php?title=Fortran_Project_plugin&amp;diff=7265"/>
		<updated>2012-06-06T20:10:49Z</updated>

		<summary type="html">&lt;p&gt;Alpha: New version.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Code::Blocks 3rd Party Plugins]]&lt;br /&gt;
{{Infobox_Plugin|&lt;br /&gt;
  name = FortranProject |&lt;br /&gt;
  logo = [[File:Generic-plugin.png]] |&lt;br /&gt;
  developer = Darius Markauskas |&lt;br /&gt;
  maintainer = |&lt;br /&gt;
  version = 0.8&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
FortranProject plugin makes C::B more useful for Fortran programmers. It adds a symbol browser and code completion for Fortran files. Source code and pre-built binaries can be downloaded from the [http://darmar.vgtu.lt Fortran Project homepage] .&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
* [[Installing Fortran Compiler|Installing a Fortran compiler]]&lt;/div&gt;</summary>
		<author><name>Alpha</name></author>
	</entry>
	<entry>
		<id>https://wiki.codeblocks.org/index.php?title=Announcement_for_plugins/patches&amp;diff=7264</id>
		<title>Announcement for plugins/patches</title>
		<link rel="alternate" type="text/html" href="https://wiki.codeblocks.org/index.php?title=Announcement_for_plugins/patches&amp;diff=7264"/>
		<updated>2012-06-04T20:31:09Z</updated>

		<summary type="html">&lt;p&gt;Alpha: Remove CMake link (lexer is now in trunk).&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Code::Blocks Plugins]]&lt;br /&gt;
=== HowTo announce a new plugin/patch or similar ===&lt;br /&gt;
&lt;br /&gt;
''Please read carefully:''&lt;br /&gt;
&lt;br /&gt;
This WiKi section is to announce:&lt;br /&gt;
* a new plugin that is '''not''' within the contrib folder of the SVN repository&lt;br /&gt;
* a patch that is '''not''' a bugfix or similar and/or will '''not''' be applied to the SVN repository (e.g. because it's very specific)&lt;br /&gt;
* a new lexer/template that is '''not''' completed or approved and/or will '''not''' be added to the SVN&lt;br /&gt;
&lt;br /&gt;
If a plugin/patch/lexer/template is moved to the repository don't forget to remove it from here! This section is intended to '''collect''' the information about available plugins/patches/lexerers/templates in one place. So the announcement should be short and clear. It should (however) include at least the following content:&lt;br /&gt;
* Name of the plugin/patch/lexer/template and purpose&amp;lt;BR&amp;gt;&lt;br /&gt;
* Version (state) and date of last update (or release in the first place)&amp;lt;BR&amp;gt;&lt;br /&gt;
* Link to a thread (to be created) in the developers (plugin) forum for discussion of features, bugs, wishlist etc.&amp;lt;BR&amp;gt;&lt;br /&gt;
* A link where the '''most up-to-date''' version can be downloaded (e.g. in the forum).&amp;lt;BR&amp;gt;&lt;br /&gt;
The best way may be to copy the section from the '''template''' plugin/patch/lexer/template and update it with your information. This will ensure consistency in the best way! Read the article [[How to add another announcement]] to read how to change the WiKi accordingly.&lt;br /&gt;
&lt;br /&gt;
=== Patch announcements ===&lt;br /&gt;
&lt;br /&gt;
So far there are no new patches.&lt;br /&gt;
&lt;br /&gt;
* [[Template for patch announcement]] (Read this before posting a new patch!)&lt;br /&gt;
&lt;br /&gt;
=== Plugin announcements ===&lt;br /&gt;
&lt;br /&gt;
These are the user-contributed plugins:&lt;br /&gt;
&lt;br /&gt;
* [[Replace in Files]] (MortenMacFly)&lt;br /&gt;
* [[Tab versus Space]] (MortenMacFly)&lt;br /&gt;
* [[Edit Project]] (Killerbot)&lt;br /&gt;
* [[Matching Brace]] (Killerbot)&lt;br /&gt;
* [[Library Finder]] (byo)&lt;br /&gt;
* [[Environment Variables Editor]] (MortenMacFly)&lt;br /&gt;
* [[ThreadSearch]] (Dje)&lt;br /&gt;
* [[Code Snippets plugin]] (Artoj/Pecan)&lt;br /&gt;
* [[Interpreted Languages plugin]] (dmoore) ** OBSOLETE **&lt;br /&gt;
* [[Shell Extensions plugin]] (dmoore)&lt;br /&gt;
* [[Python plugin]] (dmoore)&lt;br /&gt;
* [[FindBrokenFiles scripted plugin]] (MortenMacFly)&lt;br /&gt;
* [[AutoVersioning]] (JGM)&lt;br /&gt;
* [[DragScroll plugin]]&lt;br /&gt;
* [[BrowseTracker plugin]]&lt;br /&gt;
* [[FortranProject plugin]]&lt;br /&gt;
* [[cbDiff plugin]]&lt;br /&gt;
* [[Project Exporter]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* [/index.php/topic,13723.msg92518.html#msg92518 Bazaar] (Tools menu)&lt;br /&gt;
* [http://code.google.com/p/blackdoc/ BlackDoc]&lt;br /&gt;
* [/index.php/topic,10901.0.html cbNSIS]&lt;br /&gt;
* [/index.php/topic,14184.0.html cbvcs]&lt;br /&gt;
* [https://github.com/Lalaland/ClangComplete ClangComplete]&lt;br /&gt;
* [/index.php/topic,14339.0.html CodePaste]&lt;br /&gt;
* [/index.php/topic,15915.0.html CompileOnDemand]&lt;br /&gt;
* [/index.php/topic,8568.0.html ColorCoder]&lt;br /&gt;
* [https://github.com/ywx/FormatFortranIndentPlugin FormatFortranIndent]&lt;br /&gt;
* [/index.php/topic,13348.0.html InnoSetup]&lt;br /&gt;
* [/index.php/topic,16249.0.html Semantic highlight] (In progress)&lt;br /&gt;
* [/index.php/topic,7063.0.html SVNInside]&lt;br /&gt;
* [http://sourceforge.net/projects/xpmeditor/ XPM Editor]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* [[Template for plugin announcement]] (Read this before posting a new plugin!)&lt;br /&gt;
&lt;br /&gt;
=== Lexer/Templates announcements ===&lt;br /&gt;
&lt;br /&gt;
* [[d_source File wizard]]&lt;br /&gt;
* [[Java lexer]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* [[Template for lexer/template announcement]] (Read this before posting a new lexer/template!)&lt;/div&gt;</summary>
		<author><name>Alpha</name></author>
	</entry>
	<entry>
		<id>https://wiki.codeblocks.org/index.php?title=Announcement_for_plugins/patches&amp;diff=7261</id>
		<title>Announcement for plugins/patches</title>
		<link rel="alternate" type="text/html" href="https://wiki.codeblocks.org/index.php?title=Announcement_for_plugins/patches&amp;diff=7261"/>
		<updated>2012-05-20T16:05:49Z</updated>

		<summary type="html">&lt;p&gt;Alpha: More links.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Code::Blocks Plugins]]&lt;br /&gt;
=== HowTo announce a new plugin/patch or similar ===&lt;br /&gt;
&lt;br /&gt;
''Please read carefully:''&lt;br /&gt;
&lt;br /&gt;
This WiKi section is to announce:&lt;br /&gt;
* a new plugin that is '''not''' within the contrib folder of the SVN repository&lt;br /&gt;
* a patch that is '''not''' a bugfix or similar and/or will '''not''' be applied to the SVN repository (e.g. because it's very specific)&lt;br /&gt;
* a new lexer/template that is '''not''' completed or approved and/or will '''not''' be added to the SVN&lt;br /&gt;
&lt;br /&gt;
If a plugin/patch/lexer/template is moved to the repository don't forget to remove it from here! This section is intended to '''collect''' the information about available plugins/patches/lexerers/templates in one place. So the announcement should be short and clear. It should (however) include at least the following content:&lt;br /&gt;
* Name of the plugin/patch/lexer/template and purpose&amp;lt;BR&amp;gt;&lt;br /&gt;
* Version (state) and date of last update (or release in the first place)&amp;lt;BR&amp;gt;&lt;br /&gt;
* Link to a thread (to be created) in the developers (plugin) forum for discussion of features, bugs, wishlist etc.&amp;lt;BR&amp;gt;&lt;br /&gt;
* A link where the '''most up-to-date''' version can be downloaded (e.g. in the forum).&amp;lt;BR&amp;gt;&lt;br /&gt;
The best way may be to copy the section from the '''template''' plugin/patch/lexer/template and update it with your information. This will ensure consistency in the best way! Read the article [[How to add another announcement]] to read how to change the WiKi accordingly.&lt;br /&gt;
&lt;br /&gt;
=== Patch announcements ===&lt;br /&gt;
&lt;br /&gt;
So far there are no new patches.&lt;br /&gt;
&lt;br /&gt;
* [[Template for patch announcement]] (Read this before posting a new patch!)&lt;br /&gt;
&lt;br /&gt;
=== Plugin announcements ===&lt;br /&gt;
&lt;br /&gt;
These are the user-contributed plugins:&lt;br /&gt;
&lt;br /&gt;
* [[Replace in Files]] (MortenMacFly)&lt;br /&gt;
* [[Tab versus Space]] (MortenMacFly)&lt;br /&gt;
* [[Edit Project]] (Killerbot)&lt;br /&gt;
* [[Matching Brace]] (Killerbot)&lt;br /&gt;
* [[Library Finder]] (byo)&lt;br /&gt;
* [[Environment Variables Editor]] (MortenMacFly)&lt;br /&gt;
* [[ThreadSearch]] (Dje)&lt;br /&gt;
* [[Code Snippets plugin]] (Artoj/Pecan)&lt;br /&gt;
* [[Interpreted Languages plugin]] (dmoore) ** OBSOLETE **&lt;br /&gt;
* [[Shell Extensions plugin]] (dmoore)&lt;br /&gt;
* [[Python plugin]] (dmoore)&lt;br /&gt;
* [[FindBrokenFiles scripted plugin]] (MortenMacFly)&lt;br /&gt;
* [[AutoVersioning]] (JGM)&lt;br /&gt;
* [[DragScroll plugin]]&lt;br /&gt;
* [[BrowseTracker plugin]]&lt;br /&gt;
* [[FortranProject plugin]]&lt;br /&gt;
* [[cbDiff plugin]]&lt;br /&gt;
* [[Project Exporter]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* [/index.php/topic,13723.msg92518.html#msg92518 Bazaar] (Tools menu)&lt;br /&gt;
* [http://code.google.com/p/blackdoc/ BlackDoc]&lt;br /&gt;
* [/index.php/topic,10901.0.html cbNSIS]&lt;br /&gt;
* [/index.php/topic,14184.0.html cbvcs]&lt;br /&gt;
* [https://github.com/Lalaland/ClangComplete ClangComplete]&lt;br /&gt;
* [/index.php/topic,14339.0.html CodePaste]&lt;br /&gt;
* [/index.php/topic,15915.0.html CompileOnDemand]&lt;br /&gt;
* [/index.php/topic,8568.0.html ColorCoder]&lt;br /&gt;
* [https://github.com/ywx/FormatFortranIndentPlugin FormatFortranIndent]&lt;br /&gt;
* [/index.php/topic,13348.0.html InnoSetup]&lt;br /&gt;
* [/index.php/topic,16249.0.html Semantic highlight] (In progress)&lt;br /&gt;
* [/index.php/topic,7063.0.html SVNInside]&lt;br /&gt;
* [http://sourceforge.net/projects/xpmeditor/ XPM Editor]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* [[Template for plugin announcement]] (Read this before posting a new plugin!)&lt;br /&gt;
&lt;br /&gt;
=== Lexer/Templates announcements ===&lt;br /&gt;
&lt;br /&gt;
* [http://developer.berlios.de/patch/?func=detailpatch&amp;amp;patch_id=3270&amp;amp;group_id=5358 CMake lexer]&lt;br /&gt;
* [[d_source File wizard]]&lt;br /&gt;
* [[Java lexer]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* [[Template for lexer/template announcement]] (Read this before posting a new lexer/template!)&lt;/div&gt;</summary>
		<author><name>Alpha</name></author>
	</entry>
	<entry>
		<id>https://wiki.codeblocks.org/index.php?title=FAQ-Compiling_(general)&amp;diff=7259</id>
		<title>FAQ-Compiling (general)</title>
		<link rel="alternate" type="text/html" href="https://wiki.codeblocks.org/index.php?title=FAQ-Compiling_(general)&amp;diff=7259"/>
		<updated>2012-05-11T02:32:13Z</updated>

		<summary type="html">&lt;p&gt;Alpha: Wording.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Code::Blocks Documentation]]&lt;br /&gt;
__TOC__&lt;br /&gt;
Return to '''[[FAQ]]'''.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==== Q: What compiler can I use with Code::Blocks? ====&lt;br /&gt;
&lt;br /&gt;
'''A:''' Code::Blocks philosophy is to be able to use any compiler on earth! Well, almost.&lt;br /&gt;
&lt;br /&gt;
As a matter of fact it largely depends on the used compiler plugin. Some provided with the default Code::Blocks installation are GNU GCC (MinGW/Cygwin), MS Visual C++ Free Toolkit 2003, Borland's C++ Compiler 5.5, DigitalMars Free Compiler., OpenWatcom, Small Device C Compiler (SDCC) and others.&lt;br /&gt;
&lt;br /&gt;
==== Q: My project should be compiled with a custom makefile. Is it possible with Code::Blocks? ====&lt;br /&gt;
&lt;br /&gt;
'''A:''' Yes, you can. You need to change one settings with Code::Blocks 8.02:&lt;br /&gt;
&lt;br /&gt;
In your project's Properties, check &amp;quot;This is a custom makefile&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
And that's it! :)&lt;br /&gt;
&lt;br /&gt;
==== Q: I have downloaded MS VC++ Toolkit 2003 for a compiler. How do I tell Code::Blocks that it is my compiler? ====&lt;br /&gt;
&lt;br /&gt;
'''A:''' Click on &amp;quot;Project/Build options&amp;quot; and select the compiler you want for your project/target.&lt;br /&gt;
&lt;br /&gt;
==== Q: Microsoft calls MSVCRT.DLL a &amp;quot;Known DLL.&amp;quot; How do I know if I can/should use it? ====&lt;br /&gt;
&lt;br /&gt;
Microsoft does not clearly describe what [http://msdn2.microsoft.com/en-us/library/abx4dbyh.aspx 'Known DLL'] means. A [http://www.zlib.net/DLL_FAQ.txt zLib FAQ entry] makes it much more clear. The short answer is that MSVCRT.DLL is a protected system component and to preserve system integrity it cannot be updated by any end user product installers but may be updated from time to time by system updates. If it works use it. If it doesn't you'll need use a non protected library such as MSVCR70 or MSVCR80 which not only can be updated but private versions can be installed. A small and simple C program is likely to work just fine with MSVCRT.DLL. A large and complex C++ program is more likely to need the additional functionality of MSVCR.&lt;br /&gt;
&lt;br /&gt;
The MSVCRT.LIB that ships with 32 bit compiler Visual C++ Toolkit 2003 dynamically links to MSVCR71.DLL which is not present in a freshly installed Windows XP system. MSVCR only appears after some software package that needs it such as [http://www.adobe.com/ Adobe Acrobat Reader] is installed. This means that programs that depend on MSVCR must redistribute it or risk not working on a substantial percentage of systems for reasons not obvious to either the affected end users or the program supplier. &lt;br /&gt;
&lt;br /&gt;
For projects that can safely use MSVCRT and where it is impractical to redistribute MSVCR, a Win32 MSVCRT.LIB that links to MSVCRT.DLL is available in any [http://www.microsoft.com/whdc/devtools/ddk/default.mspx Device Driver Kit]. It is best to preserve the MSVCRT.LIB provided by the compiler and alter the name of the MSVCRT.LIB extracted from a DDK. List your newly named MSVCRTxx in the lib. If you use MSVCRT.LIB from the Windows 2003 DDK you may encounter the link '''error LNK2001: unresolved external symbol ___security_cookie'''. This can be solved by switching to the MSVCRT.LIB in the Windows XP DDK or by linking '''bufferoverflowU.lib''' found in the Windows SDK. A Win64 MSVCRT.LIB that links to MSVCRT.DLL is available in the Windows SDK or Platform [http://www.microsoft.com/downloads/details.aspx?FamilyId=E15438AC-60BE-41BD-AA14-7F1E0F19CA0D&amp;amp;displaylang=en PSDK]. &lt;br /&gt;
&lt;br /&gt;
To prevent problems it is recommended to include both /MD and /NODEFAULTLIB:MSVCRT switches so that problems come up at link time instead of random crashes at run time. Be sure to load your programs into [http://www.dependencywalker.com/ Dependancy Walker] to ensure that functions aren't being linked into both MSVCRxx.DLL and MSVCRT.DLL. It is essential that malloc, calloc, realloc, free, and related memory allocation functions all import from the same DLL. &lt;br /&gt;
&lt;br /&gt;
Source: [http://wiki.tcl.tk/11431 TCL Wiki]&lt;br /&gt;
&lt;br /&gt;
==== Q: How can I use a DLL without DEF or LIB files? ====&lt;br /&gt;
&lt;br /&gt;
'''A:''' I tried to find a solution, and the following script solved the problem for me. I used a cygwin environment for ''tclsh'' and ''sed'', but the MinGW tools for ''objdump'' and ''dlltool''. See here [http://wiki.tcl.tk/2435 tclsh script to extract import .lib from (any?) DLL (MinGW)]&lt;br /&gt;
&lt;br /&gt;
TODO: Someone might add some informations about problems&lt;br /&gt;
&lt;br /&gt;
Request: Is MinGW or Code::Blocks able to support automatic generation of import libraries ?&lt;br /&gt;
&lt;br /&gt;
See also: http://www.mingw.org/wiki/CreateImportLibraries&lt;br /&gt;
&lt;br /&gt;
See also: http://wyw.dcweb.cn/stdcall.htm&lt;br /&gt;
&lt;br /&gt;
==== Q: Where are the libraries for the OpenGL, Ogre3D, SDL, QT, wxWidgets etc. projects? ====&lt;br /&gt;
&lt;br /&gt;
'''A:''' They're not bundled. The templates were provided for your convenience, but you need to download the libraries on your own.&lt;br /&gt;
In common terms, &amp;quot;batteries not included&amp;quot; :)&lt;br /&gt;
&lt;br /&gt;
==== Q: Is it possible to use Visual C++ 6.0 with Code::Blocks? ====&lt;br /&gt;
&lt;br /&gt;
'''A:''' Yes. See [[Integrating Microsoft Visual C 6 with Code::Blocks IDE]] for a detailed description on using VC++ 6.0 with Code::Blocks.&lt;br /&gt;
&lt;br /&gt;
==== Q: I would like to compile a project using some non-standard libraries. How can I indicate to CodeBlocks that these libraries and include files exist? ====&lt;br /&gt;
&lt;br /&gt;
'''A:''' You can specify them for your global environment or just for your project.&lt;br /&gt;
&lt;br /&gt;
For global environment :&amp;lt;br /&amp;gt;&lt;br /&gt;
- Menu &amp;lt;i&amp;gt;Settings/Compiler and debugger&amp;lt;/i&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
- In the &amp;lt;i&amp;gt;Global compiler settings&amp;lt;/i&amp;gt;, select the directories tab&amp;lt;br /&amp;gt;&lt;br /&gt;
- Add the required paths for compiler and linker.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
For your project :&amp;lt;br /&amp;gt;&lt;br /&gt;
- Right click on the project then select &amp;lt;i&amp;gt;Build options&amp;lt;/i&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
- Select the directories tab&amp;lt;br /&amp;gt;&lt;br /&gt;
- Add the required paths for compiler and linker.&amp;lt;br /&amp;gt;&lt;br /&gt;
- Add your specific libraries in the linker tab.&amp;lt;br /&amp;gt;&lt;br /&gt;
- Pay attention to project settings and target settings.&lt;br /&gt;
==== Q: How do I use both Debug and Release builds of wx libraries? ====&lt;br /&gt;
'''A:''' I would use the default method of doing it and the default folder naming.&lt;br /&gt;
&lt;br /&gt;
Using these C::B custom varibles&lt;br /&gt;
 WX_SUFFIX=&amp;quot;&amp;quot;  // ANSI Release&lt;br /&gt;
 WX_SUFFIX=&amp;quot;d&amp;quot;  // ANSI Debug&lt;br /&gt;
 WX_SUFFIX=&amp;quot;u&amp;quot;  // Unicode Release&lt;br /&gt;
 WX_SUFFIX=&amp;quot;ud&amp;quot;  // Unicode debug&lt;br /&gt;
&lt;br /&gt;
I use WX_CFG when I am using a special configuration&lt;br /&gt;
WX_CFG=&amp;quot;rc3&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Remember, the CodeBlocks globel variable WX needs to point to the wxWidgets folder.&lt;br /&gt;
&lt;br /&gt;
Example minGW build command for &amp;quot;Unicode debug&amp;quot; 2.8.0 RC3&lt;br /&gt;
&lt;br /&gt;
 mingw32-make -f makefile.gcc VENDOR=rc3 CFG=rc3 USE_XRC=1 SHARED=1 MONOLITHIC=1 BUILD=debug   UNICODE=1&lt;br /&gt;
&lt;br /&gt;
&amp;quot;VENDOR=&amp;quot; just puts rc3 in the DLL name; &amp;quot;CFG=&amp;quot; sets which folder the DLL is placed in. In this case in lib\gcc_dllrc3&lt;br /&gt;
&lt;br /&gt;
Before using CFG in the mingw32-make build you need to  do one prior wxWidget build without using it; else the build errors out. (See note below.)&lt;br /&gt;
&lt;br /&gt;
&amp;quot;__WXDEBUG__&amp;quot; must be defined (in the codeblocks project setting) if you wish to link against the  debug version of wxWidgets DLL. Else you will get a runtime error, when you try to run your project output.&lt;br /&gt;
&lt;br /&gt;
Contributed by Tim S&lt;br /&gt;
&lt;br /&gt;
Note:&lt;br /&gt;
*I have never gotten the following command to work&lt;br /&gt;
  mingw32-make -f makefile.gcc VENDOR=rc3 CFG=rc3 USE_XRC=1 SHARED=1 MONOLITHIC=1 BUILD=debug   UNICODE=1&lt;br /&gt;
&lt;br /&gt;
*unless I have first run this command on the same wxWidgets folders&lt;br /&gt;
  mingw32-make -f makefile.gcc USE_XRC=1 SHARED=1 MONOLITHIC=1 BUILD=debug   UNICODE=1&lt;br /&gt;
&lt;br /&gt;
*I am guessing that the build without the CFG creates a file or directory needed by the build with the CFG.&lt;br /&gt;
&lt;br /&gt;
==== Q: How do I add version information to windows executables and dll's? ====&lt;br /&gt;
'''A:''' You need to create a reosurce file with the extension .rc and write the version info there. Then add that file to the Code::Blocks project you are working on.&lt;br /&gt;
&lt;br /&gt;
Sample content of a resource file that you can use and modify for your needs:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;cpp&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US&lt;br /&gt;
&lt;br /&gt;
VS_VERSION_INFO    VERSIONINFO&lt;br /&gt;
  FILEVERSION      1,0,0,1&lt;br /&gt;
  PRODUCTVERSION   1,0,0,1&lt;br /&gt;
  FILEFLAGSMASK    0x3fL // VS_FFI_FILEFLAGSMASK&lt;br /&gt;
#ifdef _DEBUG&lt;br /&gt;
  FILEFLAGS        0x1L  // VS_FF_DEBUG|VS_FF_PRIVATEBUILD|VS_FF_PRERELEASE&lt;br /&gt;
#else&lt;br /&gt;
  FILEFLAGS        0x0L  // final version&lt;br /&gt;
#endif&lt;br /&gt;
  FILEOS           VOS_NT_WINDOWS32&lt;br /&gt;
  FILETYPE         VFT_APP&lt;br /&gt;
  FILESUBTYPE      VFT2_UNKNOWN // not used&lt;br /&gt;
{&lt;br /&gt;
  BLOCK &amp;quot;StringFileInfo&amp;quot;&lt;br /&gt;
  {&lt;br /&gt;
    BLOCK &amp;quot;040904E4&amp;quot; // Lang=US English, CharSet=Windows Multilingual&lt;br /&gt;
    {&lt;br /&gt;
      VALUE &amp;quot;Build&amp;quot;,            &amp;quot;August 2007\0&amp;quot;&lt;br /&gt;
      VALUE &amp;quot;Comments&amp;quot;,         &amp;quot;Free for personal use only.\0&amp;quot;&lt;br /&gt;
      VALUE &amp;quot;CompanyName&amp;quot;,      &amp;quot;Fake Company\0&amp;quot;&lt;br /&gt;
      VALUE &amp;quot;Developer&amp;quot;,        &amp;quot;The Developer\0&amp;quot;&lt;br /&gt;
      VALUE &amp;quot;FileDescription&amp;quot;,  &amp;quot;Application implementing something\0&amp;quot;&lt;br /&gt;
      VALUE &amp;quot;FileVersion&amp;quot;,      &amp;quot;1.0.000\0&amp;quot;&lt;br /&gt;
      VALUE &amp;quot;InternalName&amp;quot;,     &amp;quot;AppInternalName\0&amp;quot;&lt;br /&gt;
      VALUE &amp;quot;LegalCopyright&amp;quot;,   &amp;quot;Copyright (C) 2007 Fake Company\0&amp;quot;&lt;br /&gt;
      VALUE &amp;quot;LegalTrademarks&amp;quot;,  &amp;quot;All rights reserved.\0&amp;quot;&lt;br /&gt;
      VALUE &amp;quot;OriginalFilename&amp;quot;, &amp;quot;TheEXE.exe\0&amp;quot;&lt;br /&gt;
      VALUE &amp;quot;PrivateBuild&amp;quot;,     &amp;quot;\0&amp;quot;&lt;br /&gt;
      VALUE &amp;quot;ProductName&amp;quot;,      &amp;quot;The EXE\0&amp;quot;&lt;br /&gt;
      VALUE &amp;quot;ProductVersion&amp;quot;,   &amp;quot;1.0.000\0&amp;quot;&lt;br /&gt;
      VALUE &amp;quot;SpecialBuild&amp;quot;,     &amp;quot;\0&amp;quot;&lt;br /&gt;
      VALUE &amp;quot;Support&amp;quot;,          &amp;quot;TheEXE at fake-domain.com\0&amp;quot;&lt;br /&gt;
      VALUE &amp;quot;Users&amp;quot;,            &amp;quot;Unlimited.\0&amp;quot;&lt;br /&gt;
    } // BLOCK &amp;quot;040904E4&amp;quot;&lt;br /&gt;
  } // BLOCK &amp;quot;StringFileInfo&amp;quot;&lt;br /&gt;
  BLOCK &amp;quot;VarFileInfo&amp;quot;&lt;br /&gt;
  {&lt;br /&gt;
    VALUE &amp;quot;Translation&amp;quot;, 0x409, 1252 // 1252 = 0x04E4&lt;br /&gt;
  } // BLOCK &amp;quot;VarFileInfo&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Also you can use the the [[AutoVersioning plugin]] to assist you on the generation of version information. For documentation of the syntax and values used on windows resource files, you can visit the following websites:&lt;br /&gt;
*http://msdn2.microsoft.com/en-us/library/aa380599.aspx&lt;br /&gt;
*http://www.cygwin.com/cygwin-ug-net/windres.html&lt;br /&gt;
&lt;br /&gt;
==== Q: Code::Blocks does not force relink if the library is changed? ====&lt;br /&gt;
&lt;br /&gt;
'''A:''' Open ''Project-&amp;gt;Properties...-&amp;gt;Build targets (tab)'' and select the executable.  Click ''Dependencies...'' and add the name of the library (including its relative path) to ''External dependency files''. Also see [[The build process of Code::Blocks#Using project dependencies|inter-project dependencies]].&lt;br /&gt;
&lt;br /&gt;
''Example:'' &amp;lt;tt&amp;gt;output\myLibrary\libdostuff.a&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Q: How do I report a compilation problem on the forums? ====&lt;br /&gt;
&lt;br /&gt;
'''A:''' Try building the project from command line. If the same error comes up, it is a problem with either the source file, the compiler, or the compiler setup. If this is the case, you are unlikely to receive support for it on the Code::Blocks forums, however, [[FAQ-Compiling (errors)#Q: How do I troubleshoot a compiler problem?|How do I troubleshoot a compiler problem?]] may help.&lt;br /&gt;
&lt;br /&gt;
If it works fine building from command line, it is either a problem with your project, Code::Blocks' setup, or possibly an actual bug. When posting this problem, include the name of your compiler, operating system, Code::Blocks version, compiler log (go to ''Settings-&amp;gt;Compiler and debugger...-&amp;gt;Build options (tab)'' and check ''Save build log'' and ''Always output the full command line''), and, if it caused Code::Blocks to crash, the &amp;lt;tt&amp;gt;codeblocks.RPT&amp;lt;/tt&amp;gt; file (located in the Code::Blocks installation directory).&lt;br /&gt;
&lt;br /&gt;
''Template: Paste the following template into your post, editing the relevant sections.''&lt;br /&gt;
 I am running Code::Blocks version &amp;lt;span style=&amp;quot;color:DarkRed&amp;quot;&amp;gt;''Code::BlocksVersionNumber''&amp;lt;/span&amp;gt; on &amp;lt;span style=&amp;quot;color:DarkRed&amp;quot;&amp;gt;''MyOperatingSystem''&amp;lt;/span&amp;gt;&lt;br /&gt;
 (version &amp;lt;span style=&amp;quot;color:DarkRed&amp;quot;&amp;gt;''OperatingSystemVersionNumber''&amp;lt;/span&amp;gt;). The compiler I use is &amp;lt;span style=&amp;quot;color:DarkRed&amp;quot;&amp;gt;''CompilerName''&amp;lt;/span&amp;gt;&lt;br /&gt;
 version &amp;lt;span style=&amp;quot;color:DarkRed&amp;quot;&amp;gt;''CompilerVersionNumber''&amp;lt;/span&amp;gt;.&lt;br /&gt;
 &lt;br /&gt;
 When I ...&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:DarkRed&amp;quot;&amp;gt;''Steps to reproduce problem.''&amp;lt;/span&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:DarkRed&amp;quot;&amp;gt;''Description of problem.''&amp;lt;/span&amp;gt;&lt;br /&gt;
 ... happens.&lt;br /&gt;
 &lt;br /&gt;
 Build log:&lt;br /&gt;
 [code]&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:DarkRed&amp;quot;&amp;gt;''Paste &amp;lt;span style=&amp;quot;color:FireBrick&amp;quot;&amp;gt;'''full'''&amp;lt;/span&amp;gt; build log here.''&amp;lt;/span&amp;gt;&lt;br /&gt;
 [/code]&lt;br /&gt;
 &lt;br /&gt;
 Crash report:&lt;br /&gt;
 [code]&lt;br /&gt;
 ''&amp;lt;span style=&amp;quot;color:DarkRed&amp;quot;&amp;gt;Paste the contents of&amp;lt;/span&amp;gt;'' &amp;lt;span style=&amp;quot;color:MidnightBlue&amp;quot;&amp;gt;codeblocks.RPT&amp;lt;/span&amp;gt; ''&amp;lt;span style=&amp;quot;color:DarkRed&amp;quot;&amp;gt;here&amp;lt;/span&amp;gt; (if Code::Blocks crashed).''&lt;br /&gt;
 [/code]&lt;br /&gt;
 &lt;br /&gt;
     ''(Although the following is not necessary, showing that you''&lt;br /&gt;
      ''have tried increases the probability of a response.)''&lt;br /&gt;
 I have already tried ...&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:DarkRed&amp;quot;&amp;gt;''List of attempted solutions.''&amp;lt;/span&amp;gt;&lt;br /&gt;
 ... but none of them worked.&lt;br /&gt;
&lt;br /&gt;
==== Q: All of the Build related options are grayed out? ====&lt;br /&gt;
&lt;br /&gt;
'''A:''' Code::Blocks checks the file extension for individual files before allowing them to be compiled. Save your file with the correct file extension (&amp;lt;tt&amp;gt;*.c&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;*.cpp&amp;lt;/tt&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
More often it is useful to [[Creating a new project|create a project]] so that Code::Blocks can manage the entire build.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Return to '''[[FAQ]]'''.&lt;/div&gt;</summary>
		<author><name>Alpha</name></author>
	</entry>
	<entry>
		<id>https://wiki.codeblocks.org/index.php?title=User_documentation&amp;diff=7258</id>
		<title>User documentation</title>
		<link rel="alternate" type="text/html" href="https://wiki.codeblocks.org/index.php?title=User_documentation&amp;diff=7258"/>
		<updated>2012-05-10T22:49:13Z</updated>

		<summary type="html">&lt;p&gt;Alpha: Fix link.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Code::Blocks Documentation]]&lt;br /&gt;
[[Category:User Documentation]]&lt;br /&gt;
== Official user document ==&lt;br /&gt;
The Official Code::Blocks user document can be found [https://www.codeblocks.org/user-manual here].&lt;br /&gt;
* Contributed [http://www.bt4.pl/programy/dla-programistow/code-blocks/ Polish translation].&lt;br /&gt;
&lt;br /&gt;
== Articles for Code::Blocks users ==&lt;br /&gt;
&lt;br /&gt;
'''[[Installing Code::Blocks]]'''&lt;br /&gt;
:How to install Code::Blocks (from binary or source).&lt;br /&gt;
&lt;br /&gt;
'''[[Creating a new project]]'''&lt;br /&gt;
:How to get started with project setup and management.&lt;br /&gt;
&lt;br /&gt;
'''[[Keyboard Shortcuts]]'''&lt;br /&gt;
:List of keyboard shortcuts that can be used in Code::Blocks.&lt;br /&gt;
&lt;br /&gt;
'''[[Personalities]]'''&lt;br /&gt;
:Customize the Code::Blocks user interface for different workflows.&lt;br /&gt;
&lt;br /&gt;
'''[[Basic Tutorial]]'''&lt;br /&gt;
:Information useful to make sense of Code::Blocks' settings (for newer users).&lt;br /&gt;
&lt;br /&gt;
'''[[Command line arguments]]'''&lt;br /&gt;
:List of command-line arguments that can be used with Code::Blocks.&lt;br /&gt;
&lt;br /&gt;
'''[[Code::Blocks Plugins]]'''&lt;br /&gt;
:List of plugins that come with Code::Blocks.&lt;br /&gt;
&lt;br /&gt;
'''[[Tools+ reference|User-defined tools]]'''&lt;br /&gt;
:Integrate external programs into Code::Blocks.&lt;br /&gt;
&lt;br /&gt;
'''[[The build process of Code::Blocks]]'''&lt;br /&gt;
:Information about how Code::Blocks actually builds your source code.&lt;br /&gt;
&lt;br /&gt;
'''[[Scripting Code::Blocks]]'''&lt;br /&gt;
:Information about scripting Code::Blocks with [http://www.squirrel-lang.org/ Squirrel].&lt;br /&gt;
&lt;br /&gt;
'''[[wxSmith tutorials]]'''&lt;br /&gt;
:Information about how to use wxSmith RAD editor&lt;br /&gt;
&lt;br /&gt;
'''[[Building an Non-Unicode Win32 Code::Blocks]]'''&lt;br /&gt;
:Information about how to modify the Code::Blocks project files for an Non-Unicode build of Code::Blocks.&lt;br /&gt;
&lt;br /&gt;
'''[[Code::Blocks and Makefiles]]'''&lt;br /&gt;
:Using makefiles with CB is not normally necessary (CB does this automatically) but if you have some compelling reason to use one - here's how.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''[[Miscellaneous]]'''&lt;br /&gt;
:Miscellaneous things related to the user development experience.  This is a catch all place.&lt;br /&gt;
&lt;br /&gt;
== Application development ==&lt;br /&gt;
&lt;br /&gt;
* [[Variable expansion|Builtin variables]]&lt;br /&gt;
* [[Recommended global variables]]&lt;br /&gt;
* [[Code::Blocks variable types synthesis]]&lt;br /&gt;
* [[Debugging with Code::Blocks]]&lt;br /&gt;
* [[UnitTesting|Unit testing with Code::Blocks]]&lt;br /&gt;
* [[Adding support for non C/C++ files to the build system]]&lt;br /&gt;
* [[Codeblocks with scons|Integrating the SCons build system]]&lt;br /&gt;
&lt;br /&gt;
== Compilers ==&lt;br /&gt;
&lt;br /&gt;
* [[Global compiler variables]]&lt;br /&gt;
* [[Precompiled headers]]&lt;br /&gt;
* [[Installing a supported compiler]]&lt;br /&gt;
* [[Installing Cygwin Compiler]]&lt;br /&gt;
* [[Installing Fortran Compiler]]&lt;br /&gt;
* [[Installing Objective-C Compiler]]&lt;br /&gt;
* [[Installing Uniwin remote compiler]]&lt;br /&gt;
* [[Using Xming for remote compilation]]&lt;br /&gt;
* [[Using STLFilt with MinGW]]&lt;br /&gt;
* [[Code::Blocks and Cross Compilers|Using cross compilers]]&lt;br /&gt;
* [[Cross Compiling wxWidgets Applications on Linux]]&lt;br /&gt;
* [[Integrating Microsoft Visual Toolkit 2003 with Code::Blocks IDE]]&lt;br /&gt;
* [[Integrating Microsoft Visual C 6 with Code::Blocks IDE]]&lt;br /&gt;
* [[Using the Code::Blocks IDE with SDCC on PIC MCUs]]&lt;br /&gt;
* [[Using Code::Blocks with Open Watcom]]&lt;br /&gt;
* [[Custom compiler|Creating a custom compiler]] (Unfinished page.)&lt;br /&gt;
* [[64Bit Windows|Setting up for 64-bit windows development with Mirosoft compilers]]&lt;br /&gt;
* [[Developing 32 bit apps under 64 bit Linux (Ubuntu)]]&lt;br /&gt;
&lt;br /&gt;
== User interface development ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- * [[WxSmith Tutorial &amp;amp; Pointers|Creating a dialog for wxWidgets with wxSmith]] outdated --&amp;gt;&lt;br /&gt;
* [[wxSmith tutorials|Creating a dialog for wxWidgets with wxSmith]]&lt;br /&gt;
&lt;br /&gt;
== Third-party libraries ==&lt;br /&gt;
&lt;br /&gt;
* [[BoostWindowsQuickRef|Using Boost with Code::Blocks (Windows)]]&lt;br /&gt;
* [[Using wxWidgets|Using wxWidgets with Code::Blocks]]&lt;br /&gt;
* [[Using SDL with Code::Blocks]]&lt;br /&gt;
* [[Using GLFW with Code::Blocks]]&lt;br /&gt;
* [[Using Allegro with Code::Blocks]]&lt;br /&gt;
* [[Using FreeGlut with Code::Blocks]]&lt;br /&gt;
* [http://opencv.willowgarage.com/wiki/CodeBlocks Using OpenCV with Code::Blocks]&lt;br /&gt;
&lt;br /&gt;
== Third-party Applications ==&lt;br /&gt;
&lt;br /&gt;
* [[KiCadBuildQuickRef|How-to build KiCad with Code::Blocks]]&lt;/div&gt;</summary>
		<author><name>Alpha</name></author>
	</entry>
	<entry>
		<id>https://wiki.codeblocks.org/index.php?title=RegEx_Testbed_plugin&amp;diff=7247</id>
		<title>RegEx Testbed plugin</title>
		<link rel="alternate" type="text/html" href="https://wiki.codeblocks.org/index.php?title=RegEx_Testbed_plugin&amp;diff=7247"/>
		<updated>2012-05-02T22:35:10Z</updated>

		<summary type="html">&lt;p&gt;Alpha: Formatting.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Code::Blocks Contrib Plugins]]&lt;br /&gt;
{{Infobox_Plugin|&lt;br /&gt;
  name = RegExTestbed |&lt;br /&gt;
  logo = [[File:Generic-plugin.png]] |&lt;br /&gt;
  developer = Yiannis Mandravellos |&lt;br /&gt;
  maintainer = |&lt;br /&gt;
  version = 0.2&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[wikipedia:Regular expression|Regular expressions]] enable advanced searching and parsing of strings, however, it can be tiresome to continually rebuild a project just to see if a small tweak allowed a regular expression to function properly. '''RegExTestbed''' provides a workspace in which to test out regular expressions instantaneously. See this [http://docs.wxwidgets.org/trunk/overview_resyntax.html#overview_resyntax_syntax wxWidgets documentation] for details on how to form a regular expression.&lt;/div&gt;</summary>
		<author><name>Alpha</name></author>
	</entry>
	<entry>
		<id>https://wiki.codeblocks.org/index.php?title=User_documentation&amp;diff=7243</id>
		<title>User documentation</title>
		<link rel="alternate" type="text/html" href="https://wiki.codeblocks.org/index.php?title=User_documentation&amp;diff=7243"/>
		<updated>2012-04-20T00:02:41Z</updated>

		<summary type="html">&lt;p&gt;Alpha: Added link.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Code::Blocks Documentation]]&lt;br /&gt;
[[Category:User Documentation]]&lt;br /&gt;
== Official user document ==&lt;br /&gt;
The Official Code::Blocks user document can be found [https://www.codeblocks.org/user-manual here].&lt;br /&gt;
* Contributed [http://www.beautifulcode.pl/programy/dla-programistow/code-blocks/ Polish translation].&lt;br /&gt;
&lt;br /&gt;
== Articles for Code::Blocks users ==&lt;br /&gt;
&lt;br /&gt;
'''[[Installing Code::Blocks]]'''&lt;br /&gt;
:How to install Code::Blocks (from binary or source).&lt;br /&gt;
&lt;br /&gt;
'''[[Creating a new project]]'''&lt;br /&gt;
:How to get started with project setup and management.&lt;br /&gt;
&lt;br /&gt;
'''[[Keyboard Shortcuts]]'''&lt;br /&gt;
:List of keyboard shortcuts that can be used in Code::Blocks.&lt;br /&gt;
&lt;br /&gt;
'''[[Personalities]]'''&lt;br /&gt;
:Customize the Code::Blocks user interface for different workflows.&lt;br /&gt;
&lt;br /&gt;
'''[[Basic Tutorial]]'''&lt;br /&gt;
:Information useful to make sense of Code::Blocks' settings (for newer users).&lt;br /&gt;
&lt;br /&gt;
'''[[Command line arguments]]'''&lt;br /&gt;
:List of command-line arguments that can be used with Code::Blocks.&lt;br /&gt;
&lt;br /&gt;
'''[[Code::Blocks Plugins]]'''&lt;br /&gt;
:List of plugins that come with Code::Blocks.&lt;br /&gt;
&lt;br /&gt;
'''[[Tools+ reference|User-defined tools]]'''&lt;br /&gt;
:Integrate external programs into Code::Blocks.&lt;br /&gt;
&lt;br /&gt;
'''[[The build process of Code::Blocks]]'''&lt;br /&gt;
:Information about how Code::Blocks actually builds your source code.&lt;br /&gt;
&lt;br /&gt;
'''[[Scripting Code::Blocks]]'''&lt;br /&gt;
:Information about scripting Code::Blocks with [http://www.squirrel-lang.org/ Squirrel].&lt;br /&gt;
&lt;br /&gt;
'''[[wxSmith tutorials]]'''&lt;br /&gt;
:Information about how to use wxSmith RAD editor&lt;br /&gt;
&lt;br /&gt;
'''[[Building an Non-Unicode Win32 Code::Blocks]]'''&lt;br /&gt;
:Information about how to modify the Code::Blocks project files for an Non-Unicode build of Code::Blocks.&lt;br /&gt;
&lt;br /&gt;
'''[[Code::Blocks and Makefiles]]'''&lt;br /&gt;
:Using makefiles with CB is not normally necessary (CB does this automatically) but if you have some compelling reason to use one - here's how.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''[[Miscellaneous]]'''&lt;br /&gt;
:Miscellaneous things related to the user development experience.  This is a catch all place.&lt;br /&gt;
&lt;br /&gt;
== Application development ==&lt;br /&gt;
&lt;br /&gt;
* [[Variable expansion|Builtin variables]]&lt;br /&gt;
* [[Recommended global variables]]&lt;br /&gt;
* [[Code::Blocks variable types synthesis]]&lt;br /&gt;
* [[Debugging with Code::Blocks]]&lt;br /&gt;
* [[UnitTesting|Unit testing with Code::Blocks]]&lt;br /&gt;
* [[Adding support for non C/C++ files to the build system]]&lt;br /&gt;
* [[Codeblocks with scons|Integrating the SCons build system]]&lt;br /&gt;
&lt;br /&gt;
== Compilers ==&lt;br /&gt;
&lt;br /&gt;
* [[Global compiler variables]]&lt;br /&gt;
* [[Precompiled headers]]&lt;br /&gt;
* [[Installing a supported compiler]]&lt;br /&gt;
* [[Installing Cygwin Compiler]]&lt;br /&gt;
* [[Installing Fortran Compiler]]&lt;br /&gt;
* [[Installing Objective-C Compiler]]&lt;br /&gt;
* [[Installing Uniwin remote compiler]]&lt;br /&gt;
* [[Using Xming for remote compilation]]&lt;br /&gt;
* [[Using STLFilt with MinGW]]&lt;br /&gt;
* [[Code::Blocks and Cross Compilers|Using cross compilers]]&lt;br /&gt;
* [[Cross Compiling wxWidgets Applications on Linux]]&lt;br /&gt;
* [[Integrating Microsoft Visual Toolkit 2003 with Code::Blocks IDE]]&lt;br /&gt;
* [[Integrating Microsoft Visual C 6 with Code::Blocks IDE]]&lt;br /&gt;
* [[Using the Code::Blocks IDE with SDCC on PIC MCUs]]&lt;br /&gt;
* [[Using Code::Blocks with Open Watcom]]&lt;br /&gt;
* [[Custom compiler|Creating a custom compiler]] (Unfinished page.)&lt;br /&gt;
* [[64Bit Windows|Setting up for 64-bit windows development with Mirosoft compilers]]&lt;br /&gt;
* [[Developing 32 bit apps under 64 bit Linux (Ubuntu)]]&lt;br /&gt;
&lt;br /&gt;
== User interface development ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- * [[WxSmith Tutorial &amp;amp; Pointers|Creating a dialog for wxWidgets with wxSmith]] outdated --&amp;gt;&lt;br /&gt;
* [[wxSmith tutorials|Creating a dialog for wxWidgets with wxSmith]]&lt;br /&gt;
&lt;br /&gt;
== Third-party libraries ==&lt;br /&gt;
&lt;br /&gt;
* [[BoostWindowsQuickRef|Using Boost with Code::Blocks (Windows)]]&lt;br /&gt;
* [[Using wxWidgets|Using wxWidgets with Code::Blocks]]&lt;br /&gt;
* [[Using SDL with Code::Blocks]]&lt;br /&gt;
* [[Using GLFW with Code::Blocks]]&lt;br /&gt;
* [[Using Allegro with Code::Blocks]]&lt;br /&gt;
* [[Using FreeGlut with Code::Blocks]]&lt;br /&gt;
* [http://opencv.willowgarage.com/wiki/CodeBlocks Using OpenCV with Code::Blocks]&lt;br /&gt;
&lt;br /&gt;
== Third-party Applications ==&lt;br /&gt;
&lt;br /&gt;
* [[KiCadBuildQuickRef|How-to build KiCad with Code::Blocks]]&lt;/div&gt;</summary>
		<author><name>Alpha</name></author>
	</entry>
	<entry>
		<id>https://wiki.codeblocks.org/index.php?title=HexEditor_plugin&amp;diff=7242</id>
		<title>HexEditor plugin</title>
		<link rel="alternate" type="text/html" href="https://wiki.codeblocks.org/index.php?title=HexEditor_plugin&amp;diff=7242"/>
		<updated>2012-04-18T02:01:05Z</updated>

		<summary type="html">&lt;p&gt;Alpha: Spelling.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category: Code::Blocks Contrib Plugins]]&lt;br /&gt;
{{Infobox_Plugin|&lt;br /&gt;
  name = HexEditor |&lt;br /&gt;
  logo = [[File:Generic-plugin.png]] |&lt;br /&gt;
  developer = Bartlomiej Swiecki |&lt;br /&gt;
  maintainer = |&lt;br /&gt;
  version = 0.5&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
The '''HexEditor''' plugin opens any selected file in completely editable binary mode. The hexadecimal value as well as the possible ASCII value are displayed. Searching for a specific string within the file is supported.&lt;/div&gt;</summary>
		<author><name>Alpha</name></author>
	</entry>
	<entry>
		<id>https://wiki.codeblocks.org/index.php?title=Editor_Tweaks_plugin&amp;diff=7241</id>
		<title>Editor Tweaks plugin</title>
		<link rel="alternate" type="text/html" href="https://wiki.codeblocks.org/index.php?title=Editor_Tweaks_plugin&amp;diff=7241"/>
		<updated>2012-04-18T01:58:45Z</updated>

		<summary type="html">&lt;p&gt;Alpha: Formatting.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category: Code::Blocks Contrib Plugins]]&lt;br /&gt;
{{Infobox_Plugin|&lt;br /&gt;
  name = EditorTweaks |&lt;br /&gt;
  logo = [[File:Generic-plugin.png]] |&lt;br /&gt;
  developer = Damien Moore |&lt;br /&gt;
  maintainer = |&lt;br /&gt;
  version = 0.1&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
The '''EditorTweaks''' plugin contains several different features. On a per-file basis, it controls&lt;br /&gt;
* word-wrap&lt;br /&gt;
* line-numbers&lt;br /&gt;
* ''tab'' key emissions (tab characters or spaces)&lt;br /&gt;
* number of spaces the ''tab'' key emits&lt;br /&gt;
* end of line characters (carriage-return + linefeed; carriage-return; linefeed)&lt;br /&gt;
* visibility of end of line characters&lt;br /&gt;
* on-demand striping of trailing white-space&lt;br /&gt;
* on-demand synchronization of end of line characters&lt;br /&gt;
* ''insert'' key suppression&lt;br /&gt;
&lt;br /&gt;
From the merge with the [[Aligner plugin]], it has the ability to make sections of code more readable by aligning a specific character. For example, aligning the &amp;quot;=&amp;quot; in&lt;br /&gt;
&amp;lt;source lang=&amp;quot;cpp&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
int var = 1;&lt;br /&gt;
int longVarName = 2;&lt;br /&gt;
int foobar = 3;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
will result in&lt;br /&gt;
&amp;lt;source lang=&amp;quot;cpp&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
int var         = 1;&lt;br /&gt;
int longVarName = 2;&lt;br /&gt;
int foobar      = 3;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Alpha</name></author>
	</entry>
	<entry>
		<id>https://wiki.codeblocks.org/index.php?title=Announcement_for_plugins/patches&amp;diff=7240</id>
		<title>Announcement for plugins/patches</title>
		<link rel="alternate" type="text/html" href="https://wiki.codeblocks.org/index.php?title=Announcement_for_plugins/patches&amp;diff=7240"/>
		<updated>2012-04-16T21:48:02Z</updated>

		<summary type="html">&lt;p&gt;Alpha: More links.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Code::Blocks Plugins]]&lt;br /&gt;
=== HowTo announce a new plugin/patch or similar ===&lt;br /&gt;
&lt;br /&gt;
''Please read carefully:''&lt;br /&gt;
&lt;br /&gt;
This WiKi section is to announce:&lt;br /&gt;
* a new plugin that is '''not''' within the contrib folder of the SVN repository&lt;br /&gt;
* a patch that is '''not''' a bugfix or similar and/or will '''not''' be applied to the SVN repository (e.g. because it's very specific)&lt;br /&gt;
* a new lexer/template that is '''not''' completed or approved and/or will '''not''' be added to the SVN&lt;br /&gt;
&lt;br /&gt;
If a plugin/patch/lexer/template is moved to the repository don't forget to remove it from here! This section is intended to '''collect''' the information about available plugins/patches/lexerers/templates in one place. So the announcement should be short and clear. It should (however) include at least the following content:&lt;br /&gt;
* Name of the plugin/patch/lexer/template and purpose&amp;lt;BR&amp;gt;&lt;br /&gt;
* Version (state) and date of last update (or release in the first place)&amp;lt;BR&amp;gt;&lt;br /&gt;
* Link to a thread (to be created) in the developers (plugin) forum for discussion of features, bugs, wishlist etc.&amp;lt;BR&amp;gt;&lt;br /&gt;
* A link where the '''most up-to-date''' version can be downloaded (e.g. in the forum).&amp;lt;BR&amp;gt;&lt;br /&gt;
The best way may be to copy the section from the '''template''' plugin/patch/lexer/template and update it with your information. This will ensure consistency in the best way! Read the article [[How to add another announcement]] to read how to change the WiKi accordingly.&lt;br /&gt;
&lt;br /&gt;
=== Patch announcements ===&lt;br /&gt;
&lt;br /&gt;
So far there are no new patches.&lt;br /&gt;
&lt;br /&gt;
* [[Template for patch announcement]] (Read this before posting a new patch!)&lt;br /&gt;
&lt;br /&gt;
=== Plugin announcements ===&lt;br /&gt;
&lt;br /&gt;
These are the user-contributed plugins:&lt;br /&gt;
&lt;br /&gt;
* [[Replace in Files]] (MortenMacFly)&lt;br /&gt;
* [[Tab versus Space]] (MortenMacFly)&lt;br /&gt;
* [[Edit Project]] (Killerbot)&lt;br /&gt;
* [[Matching Brace]] (Killerbot)&lt;br /&gt;
* [[Library Finder]] (byo)&lt;br /&gt;
* [[Environment Variables Editor]] (MortenMacFly)&lt;br /&gt;
* [[ThreadSearch]] (Dje)&lt;br /&gt;
* [[Code Snippets plugin]] (Artoj/Pecan)&lt;br /&gt;
* [[Interpreted Languages plugin]] (dmoore) ** OBSOLETE **&lt;br /&gt;
* [[Shell Extensions plugin]] (dmoore)&lt;br /&gt;
* [[Python plugin]] (dmoore)&lt;br /&gt;
* [[FindBrokenFiles scripted plugin]] (MortenMacFly)&lt;br /&gt;
* [[AutoVersioning]] (JGM)&lt;br /&gt;
* [[DragScroll plugin]]&lt;br /&gt;
* [[BrowseTracker plugin]]&lt;br /&gt;
* [[FortranProject plugin]]&lt;br /&gt;
* [[cbDiff plugin]]&lt;br /&gt;
* [[Project Exporter]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* [/index.php/topic,13723.msg92518.html#msg92518 Bazaar] (Tools menu)&lt;br /&gt;
* [/index.php/topic,10901.0.html cbNSIS]&lt;br /&gt;
* [/index.php/topic,14184.0.html cbvcs]&lt;br /&gt;
* [https://github.com/Lalaland/ClangComplete ClangComplete]&lt;br /&gt;
* [/index.php/topic,14339.0.html CodePaste]&lt;br /&gt;
* [/index.php/topic,15915.0.html CompileOnDemand]&lt;br /&gt;
* [/index.php/topic,8568.0.html ColorCoder]&lt;br /&gt;
* [https://github.com/ywx/FormatFortranIndentPlugin FormatFortranIndent]&lt;br /&gt;
* [/index.php/topic,13348.0.html InnoSetup]&lt;br /&gt;
* [/index.php/topic,7063.0.html SVNInside]&lt;br /&gt;
* [http://sourceforge.net/projects/xpmeditor/ XPM Editor]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* [[Template for plugin announcement]] (Read this before posting a new plugin!)&lt;br /&gt;
&lt;br /&gt;
=== Lexer/Templates announcements ===&lt;br /&gt;
&lt;br /&gt;
* [http://developer.berlios.de/patch/?func=detailpatch&amp;amp;patch_id=3270&amp;amp;group_id=5358 CMake lexer]&lt;br /&gt;
* [[d_source File wizard]]&lt;br /&gt;
* [[Java lexer]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* [[Template for lexer/template announcement]] (Read this before posting a new lexer/template!)&lt;/div&gt;</summary>
		<author><name>Alpha</name></author>
	</entry>
	<entry>
		<id>https://wiki.codeblocks.org/index.php?title=Developer_documentation&amp;diff=7229</id>
		<title>Developer documentation</title>
		<link rel="alternate" type="text/html" href="https://wiki.codeblocks.org/index.php?title=Developer_documentation&amp;diff=7229"/>
		<updated>2012-03-26T00:54:33Z</updated>

		<summary type="html">&lt;p&gt;Alpha: Added mirror.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Code::Blocks Documentation]]&lt;br /&gt;
[[Category:Developer Documentation]]&lt;br /&gt;
{{Layout_box2|1=&lt;br /&gt;
'''Code repository'''&amp;lt;br/&amp;gt;&lt;br /&gt;
* Web-interface by ViewVC: http://svn.berlios.de/viewcvs/codeblocks/trunk/&amp;lt;br/&amp;gt;&lt;br /&gt;
* Subversion URL: &amp;lt;nowiki&amp;gt;http://svn.berlios.de/svnroot/repos/codeblocks/trunk&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Mirror''' (Read-only; refreshed every 30 minutes.)&lt;br /&gt;
* Subversion URL: &amp;lt;nowiki&amp;gt;svn://cb.biplab.in/codeblocks/trunk&amp;lt;/nowiki&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
* Git URL: git://cb.biplab.in/codeblocks.git&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
'''Articles for Code::Blocks developers.'''&lt;br /&gt;
&lt;br /&gt;
* Compile Code::Blocks from sources on '''[[Installing Code::Blocks from source on Windows|Windows]]''' and '''[[Installing Code::Blocks from source on Linux|Linux]]'''&lt;br /&gt;
&lt;br /&gt;
* '''[http://launchpad.net/products/codeblocks/ Translation]'''&lt;br /&gt;
:Code::Blocks uses Launchpad to coordinate translation efforts.&lt;br /&gt;
&lt;br /&gt;
* '''[[Coding style]]'''&lt;br /&gt;
:The source code formatting style used in the Code::Blocks' source.&lt;br /&gt;
&lt;br /&gt;
* '''[[Creating a custom lexer for Code::Blocks editor]]'''&lt;br /&gt;
:How to add support for new syntax lighting schemes.&lt;br /&gt;
&lt;br /&gt;
* '''[[Creating a patch to submit to BerliOS (Patch Tracker)]]'''&lt;br /&gt;
:Creating a diff file and then submitting it to the patch tracker.&lt;br /&gt;
&lt;br /&gt;
* '''[[Unicode Standards]]'''&lt;br /&gt;
:Information about unicode standards and how unicode is handled in Code::Blocks' source code.&lt;br /&gt;
&lt;br /&gt;
* '''[[Various development tips]]'''&lt;br /&gt;
:List of various development tips for Code::Blocks.&lt;br /&gt;
&lt;br /&gt;
* '''[[Scripting Code::Blocks]]'''&lt;br /&gt;
:Information about scripting Code::Blocks with [http://www.squirrel-lang.org/ Squirrel].&lt;br /&gt;
&lt;br /&gt;
* '''[[A short overview about Code::Blocks architecture]]'''&lt;br /&gt;
:Information about the architecture of Code::Blocks.&lt;br /&gt;
&lt;br /&gt;
* '''[[Code::Blocks SDK events]]'''&lt;br /&gt;
:Information about the Code::Blocks SDK events and how to work with them.&lt;br /&gt;
&lt;br /&gt;
* '''[[File formats description]]'''&lt;br /&gt;
:Description of the format of each file Code::Blocks produces.&lt;br /&gt;
&lt;br /&gt;
* '''[[Version control]]'''&lt;br /&gt;
:Tips and trick for working with our version control system.&lt;br /&gt;
&lt;br /&gt;
* '''&amp;lt;u&amp;gt;Documentation&amp;lt;/u&amp;gt;'''&lt;br /&gt;
:[https://www.codeblocks.org/manual.shtml User's manual] in various formats and languages.&lt;br /&gt;
:Also see http://developer.berlios.de/projects/codeblocks/ (under the downloads section).&lt;br /&gt;
&lt;br /&gt;
== Plug-In development ==&lt;br /&gt;
&lt;br /&gt;
* [[Creating a simple &amp;quot;Hello World&amp;quot; plugin]]&lt;br /&gt;
* [[Creating a Plug-in which modifies CB's Menus]]&lt;br /&gt;
* [[Creating a plugin that actually does something]]&lt;br /&gt;
* [[Linking the plugin to a Nightly Build]]&lt;br /&gt;
* [[Managing Plug-in Resources]]&lt;br /&gt;
&lt;br /&gt;
* [[Research on doing a Plug-in for embedded help in CB]]&lt;br /&gt;
&lt;br /&gt;
* [[wxSmith extensions]]&lt;br /&gt;
* [[Code::Completion Rewrite]] and [[Code Completion plugin]] and [[Code Completion Design]]&lt;br /&gt;
&lt;br /&gt;
== Scripting ==&lt;br /&gt;
&lt;br /&gt;
Using scripting to extend Code::Blocks' functionality&lt;br /&gt;
&lt;br /&gt;
* [[Wizard scripts|Creating a new project wizard]]&lt;/div&gt;</summary>
		<author><name>Alpha</name></author>
	</entry>
</feed>