Difference between revisions of "Custom compiler"
From Code::Blocks
(added information dug out from source) |
(Fixed SVN URL) |
||
(4 intermediate revisions by 2 users not shown) | |||
Line 7: | Line 7: | ||
:Note if you use the supplied mingw binaries, you have to define BISON_SIMPLE=%CB%\share\bison.simple, BISON_HAIRY=%CB%\share\bison.hairy as environment variables. Otherwise you could install http://gnuwin32.sourceforge.net/packages/bison.htm (Setup, without binaries has all required DLLs) and just add the "bin" directory to your System's PATH environment variable. | :Note if you use the supplied mingw binaries, you have to define BISON_SIMPLE=%CB%\share\bison.simple, BISON_HAIRY=%CB%\share\bison.hairy as environment variables. Otherwise you could install http://gnuwin32.sourceforge.net/packages/bison.htm (Setup, without binaries has all required DLLs) and just add the "bin" directory to your System's PATH environment variable. | ||
+ | :BISON_SIMPLE, BISON_HAIRY information taken from http://board.planetpeer.de/index.php?topic=456.0;prev_next=prev. | ||
+ | |||
+ | ::More a feature request than working example. It seems difficult to make Code::Blocks put the .cpp file into the source tree. | ||
== Compiler Parameters == | == Compiler Parameters == | ||
Line 20: | Line 23: | ||
* $libs | * $libs | ||
* $file - current file being compiled | * $file - current file being compiled | ||
+ | * $file_dir - Source file directory without file name and file name extension. | ||
+ | * $file_name - Source file name without path info and file name extension. | ||
* $dep_object | * $dep_object | ||
* $object | * $object | ||
* $resource_output | * $resource_output | ||
* $exe_output | * $exe_output | ||
− | * $ | + | * $exe_dir - Directory of executable without file name and file name extension. |
+ | * $exe_name - File name of executable without path and file name extension. | ||
+ | * $exe_ext - File name extension of executable without path and file name. | ||
* $link_resobjects | * $link_resobjects | ||
* $link_objects | * $link_objects | ||
Line 38: | Line 45: | ||
Implementation Details can be found here: | Implementation Details can be found here: | ||
− | + | https://svn.code.sf.net/p/codeblocks/code/trunk/src/sdk/compilercommandgenerator.cpp |
Latest revision as of 21:00, 6 September 2020
TODO Text about what custom compiler does.
Bison Example
For example enable Custom Compiler to generate a cpp file form a bison grammatic.
Given a bison file "myparser.ypp" in your source tree. Select properties, go to advanced tab, tick custom compiler and add the line "bison $file".
- Note if you use the supplied mingw binaries, you have to define BISON_SIMPLE=%CB%\share\bison.simple, BISON_HAIRY=%CB%\share\bison.hairy as environment variables. Otherwise you could install http://gnuwin32.sourceforge.net/packages/bison.htm (Setup, without binaries has all required DLLs) and just add the "bin" directory to your System's PATH environment variable.
- BISON_SIMPLE, BISON_HAIRY information taken from http://board.planetpeer.de/index.php?topic=456.0;prev_next=prev.
- More a feature request than working example. It seems difficult to make Code::Blocks put the .cpp file into the source tree.
Compiler Parameters
- $compiler
- $linker
- $lib_linker
- $rescomp
- $options
- $link_options
- $includes
- $res_includes
- $libdirs
- $libs
- $file - current file being compiled
- $file_dir - Source file directory without file name and file name extension.
- $file_name - Source file name without path info and file name extension.
- $dep_object
- $object
- $resource_output
- $exe_output
- $exe_dir - Directory of executable without file name and file name extension.
- $exe_name - File name of executable without path and file name extension.
- $exe_ext - File name extension of executable without path and file name.
- $link_resobjects
- $link_objects
- $link_flat_objects
- $static_output
- $def_output
- MACROS - also all macros are applied to the commandline string
The following were added to support the QUICK HACK in compiler plugin: DirectCommands::GetTargetLinkCommands()
- $+link_objects
- $-link_objects
- $-+link_objects
- $+-link_objects
Implementation Details can be found here: https://svn.code.sf.net/p/codeblocks/code/trunk/src/sdk/compilercommandgenerator.cpp