since the new xml-file based configuration has been introduced, i can't use any of my custom defined compiler set's, because all standard entries are restored after the next restart, if they have been deleted in this particular compiler set.
but this disturbs a proper operation:
my example:
i need a compiler-set which basically consists of a regular expressions -set for compiler- and linker- errors and warnings and a dummy compiler executable. my project file consists of a target which type is specified as "Commands only" and invokes the build process via a batch-file, where all my files and options for compiling and linking are defined - only the output is captured by C::B and the compiler & linker messages are regexed and interpreted in the build-log.
this is what i've been using for that whith the older registry-based configuration
Windows Registry Editor Version 5.00
[HKEY_CURRENT_USER\Software\Code::Blocks\Code::Blocks v1.0\compiler_gcc\compiler_sets\256]
"_name"="IAR H8 make script"
"_parent"=dword:00000001
"compiler_options"=""
"linker_options"=""
"include_dirs"=""
"res_include_dirs"=""
"library_dirs"=""
"libraries"=""
"commands_before"=""
"commands_after"=""
"master_path"="D:\\TOOLS\\"
"extra_paths"="D:\\TOOLS;"
"c_compiler"="iar_dum.bat"
"cpp_compiler"=""
"linker"=""
"lib_linker"=""
"res_compiler"=""
"make"=""
"debugger"=""
[HKEY_CURRENT_USER\Software\Code::Blocks\Code::Blocks v1.0\compiler_gcc\compiler_sets\256\macros]
"Compile single file to object file"=""
"Generate dependencies for file"=""
"Compile Win32 resource file"=""
"Link object files to executable"=""
"Link object files to console executable"=""
"Link object files to dynamic library"=""
"Link object files to static library"=""
[HKEY_CURRENT_USER\Software\Code::Blocks\Code::Blocks v1.0\compiler_gcc\compiler_sets\256\regex]
[HKEY_CURRENT_USER\Software\Code::Blocks\Code::Blocks v1.0\compiler_gcc\compiler_sets\256\regex\001]
"description"="Compiler warning"
"type"=dword:00000001
"regex"="\"..\\\\([^\"]+)\",([0-9]+).*(Warning.*)"
"msg1"=dword:00000003
"msg2"=dword:00000000
"msg3"=dword:00000000
"filename"=dword:00000001
"line"=dword:00000002
[HKEY_CURRENT_USER\Software\Code::Blocks\Code::Blocks v1.0\compiler_gcc\compiler_sets\256\regex\002]
"description"="Compiler error"
"type"=dword:00000002
"regex"="\"..\\\\([^\"]+)\",([0-9]+).*(Error.*)"
"msg1"=dword:00000003
"msg2"=dword:00000000
"msg3"=dword:00000000
"filename"=dword:00000001
"line"=dword:00000002
[HKEY_CURRENT_USER\Software\Code::Blocks\Code::Blocks v1.0\compiler_gcc\compiler_sets\256\regex\003]
"description"="Linker warning"
"type"=dword:00000001
"regex"="(Warning\\[[0-9]+\\]:.*)"
"msg1"=dword:00000001
"msg2"=dword:00000000
"msg3"=dword:00000000
"filename"=dword:00000000
"line"=dword:00000000
[HKEY_CURRENT_USER\Software\Code::Blocks\Code::Blocks v1.0\compiler_gcc\compiler_sets\256\regex\004]
"description"="Linker error"
"type"=dword:00000002
"regex"="(Error\\[[0-9]+\\]:.*)"
"msg1"=dword:00000001
"msg2"=dword:00000000
"msg3"=dword:00000000
"filename"=dword:00000000
"line"=dword:00000000
[HKEY_CURRENT_USER\Software\Code::Blocks\Code::Blocks v1.0\compiler_gcc\compiler_sets\256\switches]
"includes"=""
"libs"=""
"link"=""
"define"=""
"generic"=""
"objectext"=""
"deps"=dword:00000000
"forceCompilerQuotes"=dword:00000000
"forceLinkerQuotes"=dword:00000000
"logging"=dword:00000000
"buildMethod"=dword:00000001
"libPrefix"=""
"libExtension"=""
"linkerNeedsLibPrefix"=dword:00000000
"linkerNeedsLibExtension"=dword:00000000
you see alot of "empty" entries ("") and only four regular expressions defined.
when i try to define this with the actual C::B's CVS-version, it works after definition, but when i close and restart C::B , all the "empty" entries i.e entries which are not defined compared versus the standard gcc-compiler configuration are automagically added and then the regular expressions don't work any longer with my custom compiler set !