Page 1 of 2

codelite 4.1 is available

Posted: Wed Aug 29, 2012 12:20 pm
by eranif
Hello all,

codelite 4.1 is ready for download

You can download it from here: ... elite-4.1/

Windows users:
If you choose to install codelite without the MinGW / wxWidgets packages, make sure you update your mingw32-make.exe executable with this one
If you don't replace it, codelite will not be able to use the -jX option of the makefile (hence compilation will be slower)

Changes from 4.0:
codelite 4.1

Main changes:

* MSW:
. codelite is now built with multilib wxWidgets library instead of the monolithic version
this change is done to enable a faster loading time of codelite on startup
. Updated wxWidgets to the official released wx294 version
. updated MinGW's make utility

* All:
. "Symbol View" is now deprecated infavor of the "Outline" plugin
. clang code completion improvements:
> codelite now uses codelitegcc to extract the compilation flags per file
for this to work properly, a full rebuild of the workspace is needed (only once).
the new approach is working for both custom and standard builds
> with codelitegcc approach, clang completion is working 100% of the time without any assumptions
and user intervention to add flags (the idea is simple: if your code compiles, clang can code-complete it)
. codelite's Makefiles are more standard (they are now using the standard CXX, CC, AR, CFLAGS and CXXFLAGS variables)

Detailed changes:

* CallGraph: the image can now be mouse-dragged and zoomed (Michal Bliznak)
* CallGraph: Removed margins (Michal Bliznak)
* Parent some orphan messageboxes, so that they don't sink under other windows
* New Class wizard: Make the filename of the generated files editable.
* New Class wizard: Previously the textctrl holding the autogenerated name was disabled. Now the value can be altered by the user.
* Also changed the order of the textctrls, putting the essential Virtual Directory one above the Generated Files Path, which gets autofilled with the VD's path. Improved the tooltips.
* Call-graph: Become custom-makefile friendly
* Change the functions used to get project info to ones that seem to work in either situation; look also in the binary dir; and, failing either, ask the user.
* Fixed: regression in Copyrights plugin (the functionality only works from the Main Menu)
* Callgraph: Changes to help make more of the graph visible (Michal Bliznak)
* Updated cppchecker to the much-more-recent v1.54
* Updated codelite_cppcheck project with the latest cppcheck sources
* Callgraph: Make much more of the graph visible at a time (Michal Bliznak)
* More NewClass wizard improvements.
+ Honour the project/workspace setting for use of tabs versus spaces.
+ Make it possible to use .hpp as the header file ext.
+ Formating and useability improvements.
* Fixes most of FR 3534248
* Correct and update the C++ keywords lexor.
* Remove 4 words wrongly included, and correct 'Sizeof' to 'sizeof'. Also add the new C++11 keywords.
* Fixes #3536020 and #3536021
* Fix for parenthesis autocompletion.
* If 'Autocomplete Braces' is set, when the user types '(' a matching ')' is auto-provided; but only if the next character is white-space. This worked as desired most of the time, but was suboptimal if the next char was an already-matched ')'; see ... tid=979960 for an example. The code now checks for this.
* CallGraph: Fix trivial compiler warning
* Fixed: Subversion plugin should stop prompting when deleteing a file which is not under source control
* Subversion2: Fix an assert when creating a new workspace
* CppCheck: Add more features
More of the cppcheck tests and features are now implemented; in particular it's now possible to suppress particular warnings.
Cppcheck is now available from the editor context menu, and its 'Settings' are available from all relevant menus.

* Find menus by id, not by name this is not only easier, it avoids being broken by translations.
Should fix
* The workaround for is now in wx trunk; so don't apply it a second time as this produces a different error.
* Fixed ContinousBuild plugin (michalb)
* Compilation fixes for wx2.9 stl builds
* Use wxKill to terminate an executed program via codelite (instead of using native API calls)
* Fixed: debugger: editing the debugger tooltip selected expression is now working once again
* Fixed: subversion: fixed regression: adding a new file to a project now adds it to SVN (if the project is under SVN)
* Fixed: compilation error when compiled against GCC 4.7.1
* API change: Added new event that notifies plugins when a retag operation is completed
* Added wxCrafter icon to codelite's known mime type
* Added WXDLLIMPEXP_FWD_ADV to the CC ignore tokens
* Register wxCrafter ICON to the FileView
* API change: Added new event wxEVT_NOTIFY_PAGE_CLOSING (of type wxNotifyEvent) which is fired for
pages of type != IEditor. This event can be vetoed
* Fixed event missmatch under GTK incase the editor main notebook has a child of type wxNotebook
* API change: Added new plugin API to set / get the selected editor's tab title
* Changed some of the Notebook API to be 'const'
* Fixed assertion on Linux when adding SVN tab with invalid index to the workspace notebook
* API change: Added new event 'wxEVT_CMD_PAGE_CHANGED' which is sent by codelite incase the selected page in the main notebook is changed AND it is not of type IEditor*
* New Class Wizard: open the generated class files when code generation is completed
* New Class Wizard: Notify codelite to quick re-prase the workspace after class generated
* Fixed: added new 'Encoding' selection control to the 'Tasks' to allow user to change the default encoding when searching for tasks
see: ... =11&t=1761
* Renamed codelite's wxwidgets build VENDOR parameter from 'custom' to 'cl'
* Fixed problem with CZ keyboard
* Changed debugger settings under Windows
* Fixed crash on Windows with latest wx294 (configuration manager dialog crashed)
* 'Delete all files' dialog should now center itself on the screen under MSW
* Updated windows packaging scripts to include wxrc.exe as part of codelite package
* Fixed: BUG#3544533. ... tid=979960
* Set a parent to the 'Find In Files' dialog
* Fixed: BUG#3535721. ... tid=979960
* Subversion: When removing multiple files from SVN ask the user only once the 'remove from svn as well' question.
Fixed: BUG#3534809. ... tid=979960
* Fixed: wrong marking of warning line
Fixed: BUG#3530455. ... tid=979960
* Added support for SQL files synatx highlight
* SymbolView plugin re-writeen and is now named 'Outline'
+ You can view the include stack and open files from the "outline" plugin
+ Goto Impl / Decl, find references and quick selection
* Added new command line option '--with-plugins <command-separated-list-of-plugins>' to allow launching codelite only with only specific plugins
* Changed the commandline switch --no-plguins/-p to --no-plugins/-n
* Add new API to Project class: GetFiles(StringSet_t) which returns std::set of the files in a project (in fullpath format)
* Fixed crash incase one of codelite's configuration files are corrupted. In such cases, codelite will load the 'default' configuration files which are part of the installation
* Ensure that all events handled by codelite's custom notebook are actually belonged to the notebook...
* UnitTest++: added an option to mark project as UnitTest++ project from the menu
* UnitTest++: The option from the main menu 'Plugins -> UnitTest++ -> Run As UnitTest++ project' will now execute the selected the project (or the parent project of the selected item) and not the active project
* UnitTest++: Don't allow running more than one test
* Fixed: codelite will no longer prompt for a false 'retagging is in progress' message while closing codelite (it will continue to prompt if an actual parsing is taking place while shutting down)
* Allow static library project to accept static libraries in the link page of the project settings.
So this is now accepted by codelite:
ar rcus libmyarchive.a @files.txt link-with-me.a
* Remove unnecessary Update() in wxScintilla scrolling code
* Make sure that the environment variables (wx, mingw) set it %codelite-install-dir%\registry.ini
will be set in the PATH environment variable in a way that they will take precedence over any other installations found on the current computer
* UnitTest++: Clear m_output in between executions
* Fixed memory leak (wxThread were not deleted as they should)
* Fixed: (GTK / Mac) set the debugger console caption *after* the debug perspective is loaded
* Fixed doubled free pointer
* MSW: Volume Locator Thread is now DETACHED thread
* Update to 'git' plugin from upCASE
* Updated code-completion unit tests
* Added new type: wxOrderedMap to CC predefeind types
* cscope: the flag 'update db if stale' is now *unchecked* by default (it seems that cscope has a slowdown on each search due to this flag)
* Added new option to the 'Global Editor Preferences -> Guides', codelite now can also complete double quotes. i.e. when user types '"' codelite will add its sibling. In addition, when typing '"' next to a '"' codelite will move the caret to the right instead of inserting a new one.
This option is configurable from "Settings -> Global Editor Preferences -> Guides -> Auto Complete Double Quotes"
extended the double quotes complete to single quotes as well
* Updated the "New Project" dialog:
+ It now remembers the last category selected
+ Added sash between the category section and the project details
+ The OK button is enabled only when all mandatory fields are filled
* Updated Windows installer scripts to pack wxWidgets as "multilib" instead of "monolithic" lib, this change along with manual changes to wxWidgets sources / build flags under windows should now improve codelite's startup time under windows
* MSW: Fixed wx-config to respect the 'std' key word in the '--libs', in addition, wx-config now cosider aui,xrc and richtext as part of the default ('std') - this is similar to the unix script behavior
* Fixed minor memory leak - don't allow scintilla to aggregate UNDO data for the output tab's pane
* API: CreateVirtualDirectory can now create teh entire virtual directory path (it only needs that the project is valid)
* Fixed: project internal cache should now clear all 'Virtual Folders' cached entries including its children
* Fixed: allow creating "nested" virtual folders in a single call by passing the requested virtual folder full path (e.g. project:dir1:dir2:dir3:dri4)
* Database Explorer: fixed memory leak + in some cases codelite did not close database connections as it should
* Fixed: "Debugger Type" does not add new types
Fixed: BUG#3556088. ... tid=979960
* clang: Removed all "hard coded" "-std" switches from the clang code completion
* Splitted the "Compile flags (clang only)" under "project settings -> code completion" into 2, it now has a "C" section and "C++" section.
For example if you need C++11 support, add: -std=gnu++98 to the C++ section and for strict C leave the "C" section empty, or add "-std=c99"
The same is done under the workspace level "workspace -> workspace settings -> code completion"
* Fixed: BUG#3534286. ... tid=979960
* Fixed: BUG#3534157. ... tid=979960
* Fixed: BUG#3555260. ... tid=979960
* The following fields now adjusts themselves to relative paths when selected via the project settings dialog (this allows more flexibility when project file is managed by svn / git / any scm):
- Program to debug/run
- Intermediate directory
- Working directory (renamed from Working folder)
Fixed: BUG#3547909. ... tid=979960
* Ctrl-X (cut) will cut the entire line if no selection is made (Generoso Cesaro)
* Subversion: commit dialog remembers its sash position
* don't allow undo/redo in the svn output tab
* GIT plugin: Remember to call 'e.Skip()' for the wxEVT_INIT_DONE sent by codelite
* DbExplorer: fixed crash on exit when closing MySQL connection
* Fixed svn commit dialog initial position of the sash + don't allow unsplitting
* Added another built-in macro to codelite's code completion: wxDECLARE_EXPORTED_EVENT
* Added support for parsing DECLARE_EVENT_TYPE macro
* Updated callgraph icon
* added option "Trim trailing spcaes" to the "Edit" menu (by thfabba) ... tid=979962
* Applied patch to fix builder_gnumake plugin output order - ... tid=979962
* Reduced the number of clang's TU cached to 10
* Fixed: 'make clean' should not attempt to call 'cd PCH && make clean' when --enable-pch is not present
* Updated Windows' clang DLL to a more recent version
* Git plugin: remove unnecessary #includes and an unused xpm, so reducing slightly the number of compilation warnings
* make sure that crash.log is written to the correct path ~/.codelite/crash.log under Linux
* Upgrade for Linux
* Don't clear the debug log when the debug session ends
* Plugin API: added new event 'wxEVT_NOTIFY_DEBUGGER_START_CMD' which is sent when a user initiated a request to start a debugging session (using the menu Debug -> Start, or by using a hotkey). This event can be vetoed by the plugin
* Code Completion: codelite will now applies the "replacement table" defined by the user before attempting to parse local variables
* Code Completion: added default replacement token for BOOST_FOREACH
* Added new Code Completion unit test for BOOST_FOREACH
* code completion: clang: don't attempt to code-complete '(' typed right after a C++ keyword
* Fixed memory leak in git plugin
* Fixed various memory leaks in git/UT/CppCheck plugins
* Fixed minimum size of the navigation bar
* Make GitFileDiffDlg remember its size
* Makefile generator: codelite generated makefiles now uses the standard GNU makefile variables (CC, CXX, AR, RM, CFLAGS, CXXFLAGS)
Generated makefiles under Windows are now using $(MAKE) to pass the command line arguments to their children 'make' processes.
Under Windows, you will need to update your mingw32-make executable to a 'make' that has job-server support. You can get one from here:
(this make will be part of the next codelite release)
* added new utility: codelitegcc: this small executable is a wrapper around gcc that record the filename + its compilation flags into a small sqlite database. This database will be used later on by clang to get the compilation flags for a any file
* Changed GTK include from gtk-2.0/gtk/gtk.h to gtk/gtk.h
* clang: changed the way clang is extracting the compiler flags for a file: using a wrapper executable 'codelitegcc' codelite records all the compilation flags in a sqlite database. For this to work, a full rebuild is a *must* ( so each file will be recorded into the database )
* Makefile generator: generated makefiles are now using standard conventions ($MAKE, $CC, $CXX, $CFLAGS, $CXXFLAGS and $AR) these variables can be overriden using simple environment variable. In addition, codelite appends the '-e' flag to the makefile execution line, this enables environment variable to override a variable set inside the makefile
* clang: only show the message box about missing "compilation.db" once
* clang: store in the database the current working directory of the compiler at the time of compiling the source file.
* clang: Once a build is completed and the database is updated, clear the cached translation units
* clang: when searching for compilation flags for a header file, try to locate the cpp file instead. If they exist, use them.
* clang: added new wrapper class around clang's CXUnsavedFile struct
* clang: pass a list of all modified editors to clang when attempting to code-complete on a modified buffer
* clang: code completion entries generated by clang now also display the comment section if available
* debugger: fixed bug in obtaining the debuggee PID
* Environment variables:
The following formats are now valid:
Note that user can now mix between different formats
* Debugger: "Pre Defined" types - the same rules for evnironment variables now applies to the debugger special keyword $(Variable), i.e. the following are valid:
$variable, $VARIABLE, $(VarIaBle), %VARIABLE%
* API change: Moved "MacroManager" from LiteEditor project to the Plugin SDK (i.e. this class is now availale for plugins)
* Auto Complete double/single quotes: codelite will now avoid adding an extra quote when inside comment or a string
* Add the CodeLite binary's path to $PATH. This makes codelitegcc available even in a '--prefix=' install
* configure script: added -lwxsqlite3 to Plugin target
* Under mac use 'curl' to downlod codelite's packages list
* Disabled text selection alpha attribute for Mac OSX (broken under wx294)
* Fixed: environment variables: if an environment is no longer exists, use wxUnsetEnv to remove it instead of wxSetEnv with empty value
* clang: added 'SCHEMA_VERSION' table for the compilation.db file. This is needed to future upgrades

Re: codelite 4.1 is available

Posted: Wed Aug 29, 2012 3:01 pm
by jfouche
Hi Eran,

Thanks for this new release. The download is OK now.

You should have mentioned in bold that a new plugin is available : wxCrafter

Re: codelite 4.1 is available

Posted: Thu Aug 30, 2012 2:13 am
by spaces
Hah, it's Christmas time. :D

It starts much faster now. Thanks!

And thanks for the release! Your hard work is much appreciated!

Re: codelite 4.1 is available

Posted: Thu Aug 30, 2012 8:35 am
by eranif
jfouche wrote:You should have mentioned in bold that a new plugin is available : wxCrafter
It was a glitch in the Windows installers... it should not have been released, it got packed by mistake :D - I already fixed that mistake last night

I am glad you are one of them :) ( I was bout to send it to you anyways)

If you have any feedback about it, please let me know.

Re: codelite 4.1 is available

Posted: Thu Aug 30, 2012 12:52 pm
by frank_frl
eranif wrote: It was a glitch in the Windows installers... it should not have been released, it got packed by mistake :D - I already fixed that mistake last night
Hi Eran,

I gave your 'mistake' a test drive yesterday and it looks very promising. I'm still asking me where you take the time to do all this nice stuff.
A combination of the best things from wxFormbuilder and DialogBlocks was a great idea. I liked the way wxFormbuilder is separating the GUI stuff from the rest of your code, but moved back to DialogBlocks, because the support for custom controls (I use a lot of them) is much better and much easier in DialogBlocks.
I also like the idea to keep all the base code in one module, this make the GUI stuff much clearer. Great work :D

Best regards


Re: codelite 4.1 is available

Posted: Fri Aug 31, 2012 4:48 pm
by borr
wxWidgets 2.9.4 build with MONOLITHIC=1 SHARED=1

CodeLite EnveromentVariables
CodeLiteDir=C:\Program Files\CodeLite

I'm trying to build my projects and get the errors
g++ -o ./Debug/GuRoJournal @"D:\Project\GuRoJournal\GuRoJournal.txt" -L. -mwindows -mthreads -LD:\wxWidgets-2.9.4\lib\gcc_dll -lwxmsw29ud_xrc -lwxmsw29ud_aui -lwxmsw29ud_html -lwxmsw29ud_adv -lwxmsw29ud_core -lwxbase29ud_xml -lwxbase29ud_net -lwxmsw29ud_richtext -lwxbase29ud -lwxmsw29ud -lwxtiffd -lwxjpegd -lwxpngd -lwxzlibd -lwxregexud -lwxexpatd -lkernel32 -luser32 -lgdi32 -lcomdlg32 -lwxregexud -lwinspool -lwinmm -lshell32 -lcomctl32 -lole32 -loleaut32 -luuid -lrpcrt4 -ladvapi32 -lwsock32
d:/mingw_461/bin/../lib/gcc/mingw32/4.6.1/../../../../mingw32/bin/ld.exe: cannot find -lwxmsw29ud_xrc
d:/mingw_461/bin/../lib/gcc/mingw32/4.6.1/../../../../mingw32/bin/ld.exe: cannot find -lwxmsw29ud_aui
d:/mingw_461/bin/../lib/gcc/mingw32/4.6.1/../../../../mingw32/bin/ld.exe: cannot find -lwxmsw29ud_html
d:/mingw_461/bin/../lib/gcc/mingw32/4.6.1/../../../../mingw32/bin/ld.exe: cannot find -lwxmsw29ud_adv
d:/mingw_461/bin/../lib/gcc/mingw32/4.6.1/../../../../mingw32/bin/ld.exe: cannot find -lwxmsw29ud_core
d:/mingw_461/bin/../lib/gcc/mingw32/4.6.1/../../../../mingw32/bin/ld.exe: cannot find -lwxbase29ud_xml
d:/mingw_461/bin/../lib/gcc/mingw32/4.6.1/../../../../mingw32/bin/ld.exe: cannot find -lwxbase29ud_net
d:/mingw_461/bin/../lib/gcc/mingw32/4.6.1/../../../../mingw32/bin/ld.exe: cannot find -lwxmsw29ud_richtext
d:/mingw_461/bin/../lib/gcc/mingw32/4.6.1/../../../../mingw32/bin/ld.exe: cannot find -lwxbase29ud

With CodeLite 4.0 there were no problems.

Re: codelite 4.1 is available

Posted: Fri Aug 31, 2012 4:58 pm
by eranif
Which version of codelite did you install?
It seems like wx-config thinks that you have a multilib configuration and not monolithic


Re: codelite 4.1 is available

Posted: Fri Aug 31, 2012 5:06 pm
by borr
CodeLite 4.1.5770 (codelite-4.1.5770.exe) WindowsXP SP3
It seems like wx-config thinks that you have a multilib configuration and not monolithic
Looks like it, but it is not clear how to fix it

Re: codelite 4.1 is available

Posted: Fri Aug 31, 2012 5:18 pm
by eranif
It seems like a bug introduced in wx-config in revsion 5686.

I am fixing it now, I will upload a new version here ASAP


Re: codelite 4.1 is available

Posted: Fri Aug 31, 2012 5:54 pm
by eranif
Attached is a fixed a wx-config.7z file for Windows that should fix your problem
Let me know if it fixed your problem
FYI: The reason that I moved to a multilib on Windows is due to a bug in gcc under Windows which slowed down the startup time of wxWidgets based application (and Qt and other large frameworks) when using some certain flags in the build
The problem is that when adding those flags, ld.exe could not link a monolithic build of wxWidgets (memory exhaustion)

Sorry for any inconvenience,