Difference between revisions of "Installing Code::Blocks from source on Windows"
Sethjackson (talk | contribs) m |
|||
Line 15: | Line 15: | ||
=== wxWidgets === | === wxWidgets === | ||
− | Code::Blocks officially supports wxWidgets 2.6.2 | + | Code::Blocks officially supports wxWidgets 2.6.3 (although any 2.6+ version probably works).<br/> |
+ | Download: [http://prdownloads.sourceforge.net/wxwindows/wxMSW-2.6.3-1.zip]. | ||
− | |||
− | + | You do ''not'' need MSYS (''in fact, if you have MSYS, make sure it is not in your PATH when building wxWidgets''). | |
− | |||
− | You | ||
− | |||
=== SVN client === | === SVN client === |
Revision as of 07:55, 5 October 2006
Prerequisites
Note for RC2 users
The older Code::Blocks RC2 does not support global compiler variables which were added after RC2 was released and is unable to read project files generated with post-RC2 versions. To build Code::Blocks, you need a post-RC2 build, such as any of the nightly builds obtainable by [/index.php?board=20.0 searching the forum].
MinGW compiler
At the present time, Code::Blocks only compiles successfully with the MinGW compiler. You will need a complete, working MinGW installation.
wxWidgets
Code::Blocks officially supports wxWidgets 2.6.3 (although any 2.6+ version probably works).
Download: [1].
You do not need MSYS (in fact, if you have MSYS, make sure it is not in your PATH when building wxWidgets).
SVN client
In order to check out the Code::Blocks sources you will need a SVN client. It is recommended that you install TortoiseSVN on your machine, as this is a lot more comfortable. However, if you get a bad feeling when some program is messing with your Explorer menu, then you can use the svn commandline client.
Code::Blocks sources
You will also (obviously) need the Code::Blocks sources.
Using TortoiseSVN, make a folder where you want to store the sources, right-click on the folder, and select "SVN Checkout...".
In the top box, enter svn://svn.berlios.de/codeblocks/trunk and hit the OK button.
Using svn, you have to open a command prompt ("DOS Window"). Make a folder, change directory, and run svn:
mkdir codeblocks-head cd codeblocks-head svn checkout svn://svn.berlios.de/codeblocks/trunk
zip.exe
You'll also need the 'zip.exe' compression program, found here. Only the command-line zip.exe is needed; you must install it somewhere in your PATH. Put zip.exe wherever you installed MinGW in the bin, or the mingw32\bin folder.
Building
Unicode Build
Compile wxWidgets in Unicode mode
After unpacking the zip file to a directory of your choice, open a cmd prompt, and navigate to the folder build/msw inside the wxWidgets folder. Use the following commands to compile wxWidgets:
set path=c:\mingw\bin;c:\mingw\mingw32\bin mingw32-make -f makefile.gcc USE_XRC=1 SHARED=1 MONOLITHIC=1 BUILD=release UNICODE=1 clean mingw32-make -f makefile.gcc USE_XRC=1 SHARED=1 MONOLITHIC=1 BUILD=release UNICODE=1
This assumes your MinGW installation is in C:\mingw. Use a different path if you installed MinGW somewhere else.
You will see a lot of warning messages during compilation. Don't worry, this is normal, you are compiling wxWidgets. The build process may take 10-30 minutes, depending on your computer's speed.
Optional:
To reduce the size of your wxWidgets library, you can disable features which are not used by Code::Blocks. However, you should not do this unless you know what you are doing. You have to delete the generated setup.h from lib/gcc_dll/msw/wx before building, because your changes to include/wx/msw will otherwise not be honoured.
Compile Code::Blocks
Open the project CodeBlocks.cbp. You will be prompted to define the global variable $(#wx). Enter the location where you unpacked wxWidgets.
Hit the blue gear and lean back. Compilation may take 3-5 minutes, depending on the speed of your computer.
After the compilaton has finished, copy lib\gcc_dll\wxmsw26u_gcc_custom.dll from the wxWidgets directory to the src\devel directory inside the Code::Blocks source folder (it will also work if you keep a copy of that library in your Windows folder or anywhere in your system path, but this is generally not recommended because you can get into dll hell).
Run src\update.bat (located in the root source directory). This will pack the resource files and copy libraries and plugins to their correct locations. The location of executable is src\output in Code::Blocks tree. From here you do not need the nighty build any more.
For future updates, go into the Code::Blocks root directory and run svn update (or use TurtoiseSVN to the same effect).
Then open and build the project as described before (and any contrib plugins that you wish to use), and re-run src\update.bat. You'll now have an up-to-date Code::Blocks!
Install Code::Blocks
Copy the folder output to where you want Code::Blocks to reside.
Compile contributed (or your own) plugins
The workspace file ContribPlugins.workspace contains the project files for all contributed plugins. Open that workspace and compile the plugins which you would like to use (or select "Build Workspace" from the context menu if you want them all).
When you open the contrib plugins workspace, you will be asked to define the $(#cb) global compiler variable. The build process uses this information to place the plugins and data files into the correct place. Enter the location of the Code::Blocks sources in the same way as for the $(#wx) variable earlier.
Don't forget to run update.bat again after building the contrib plugins.
ANSI Build
DEPRECATION WARNING:
As of February 2006, the official default build for Code::Blocks is Unicode (see above). Although ANSI builds are technically possible, we discourage their use unless there is a good reason.
Support for ANSI builds is likely to be dropped after Version 1.0 is out.
There is hardly any good argument against using a Unicode build if your OS supports Unicode, even if you do not understand any other language than English, as a Unicode version guarantees that it will be able to work with whatever languages you may possibly encounter in the future -- at a very reasonable cost.
However, if you absolutely don't care about Unicode or if you are bound to use Windows 95, then you may want to build an ANSI version nevertheless.
Compile wxWidgets in ANSI mode
After unpacking the zip file to a directory of your choice, open a cmd prompt, and navigate to the folder build/msw inside the wxWidgets folder. Use the following commands to compile wxWidgets
set path=c:\mingw\bin;c:\mingw\mingw32\bin mingw32-make -f makefile.gcc USE_XRC=1 SHARED=1 MONOLITHIC=1 BUILD=release UNICODE=0 clean mingw32-make -f makefile.gcc USE_XRC=1 SHARED=1 MONOLITHIC=1 BUILD=release UNICODE=0
This assumes your MinGW installation is in C:\mingw. Use a different path if you installed MinGW somewhere else.
You will see a lot of warning messages during compilation. Don't worry, this is normal, you are compiling wxWidgets. The build process may take 10-30 minutes, depending on your computer's speed.
Optional:
To reduce the size of your wxWidgets library, you can disable features which are not used by Code::Blocks. However, you should not do this unless you know what you are doing. You have to delete the generated setup.h from lib/gcc_dll/msw/wx before building, because your changes to include/wx/msw will otherwise not be honoured.
Compile Code::Blocks
Open the project CodeBlocks.cbp. You will be prompted to define the global variable $(#wx) if you have not used it before. Enter the location where you unpacked wxWidgets.
Important: The project file is set to compile an Unicode version of Code::Blocks by default. To make an ANSI build, you have to make the following two changes to build options before compiling: 1. In the "Compiler" tab, under "#defines", remove the entry wxUSE_UNICODE. 2. Under "Custom variables", set the variable WX_SUFFIX to empty (default value: u).
Hit the blue gear and lean back. Compilation may take 3-5 minutes, depending on the speed of your computer.
After the compilaton has finished, copy wxmsw26u_gcc_custom.dll from lib\gcc_dll inside the wxWidgets directory to the devel directory inside the Code::Blocks source folder (it will also work if you keep a copy of that library in your Windows folder or anywhere in your system path, but this is generally not recommended because you can get into dll hell ). Run update.bat (located in the root source directory). This will pack the resource files and copy libraries and plugins to their correct locations. The location of executable is src\output in C::B tree. From here you'll not need the nighty build anymore.
One little note for svn updates and rebuilds : just go into the codeblocks root directory and do svn update (or use Turtoise svn).
Then run the src/output/codeblocks.exe, reload project, build it, reload plugins workspace, build it, quit codeblocks and re-run update.bat. You'll have an up-to-date C::B in 3 minutes !
Install Code::Blocks
Copy the folder output to where you want Code::Blocks to reside.
Compile contributed (or your own) plugins
The workspace file ContribPlugins.workspace contains the project files for all contributed plugins. Open that workspace and compile the plugins which you would like to use (or select "Build Workspace" from the context menu if you want them all). Don't forget to run update.bat again after building the contrib plugins.