User forums > Using Code::Blocks
Using global variables
(1/1)
LETARTARE:
I read http://wiki.codeblocks.org/index.php?title=Global_compiler_variables
and i want define custom variable members
--- Quote ---Example :
global variables : 'sdk143'
base : U:\Donnees\Svn_Compile\Cb\Tdm5103\cb-11798-sdk143\src
U:\Donnees\Svn_Compile\Cb\Tdm5103\cb-11798-sdk143\src ( no space !)
new fields =>
lib28 : $(#sdk143)\devel\share\CodeBlocks
lib30 : $(#sdk143)\devel30\share\CodeBlocks
lib31 : $(#sdk143)\devel31\share\CodeBlocks
--- End quote ---
The following use makes it possible to obtain :
--- Quote ---$(#sdk143.lib28) => U:\Donnees\Svn_Compile\Cb\Tdm5103\cb-11798-sdk143\src\devel\share\CodeBlocks
--- End quote ---
Example : tests under my VISTA configuration and batch command in
--- Quote ---'Project->Build options...->Pre/post steps->Post-build steps' :
zip -j9 $(#sdk143.lib28\cbBuildTools.zip manifest.xml
--- End quote ---
is replaced by
zip -j9 U:\Donnees\Svn_Compile\Cb\Tdm5103\cb-11798-sdk143-q\src\devel\share\CodeBlocks\cbBuildTools.zip manifest.xml
which is correct.
and according to the syntax of the global variables of CB
--- Quote ---It is generally recommended to use the syntax $(#variable.include) instead of $(#variable)/include, as it provides additional flexibility and is otherwise exactly identical in functionality
--- End quote ---
$(#sdk143)\lib28 should be equivalent to $(#sdk143.lib28)
--- Quote ---zip -j9 $(#sdk143)\lib28\cbBuildTools.zip manifest.xml
is replaced by
U:\Donnees\Svn_Compile\Cb\Tdm5103\cb-11798-sdk143-q\src\lib28\cbBuildTools.zip manifest.xml
--- End quote ---
which is not correct !
The user fieds do they have the same rules as the built-in fields ?
I have to make a mistake, but I can not find where ?
osdt:
--- Quote ---$(#sdk143)\lib28 should be equivalent to $(#sdk143.lib28)
--- End quote ---
Why do you think so? Variable expansion ends at the closing brace and therefore "\lib28" is just a string as any other.
BlueHazzard:
--- Quote ---Quote
It is generally recommended to use the syntax $(#variable.include) instead of $(#variable)/include, as it provides additional flexibility and is otherwise exactly identical in functionality
$(#sdk143)\lib28 should be equivalent to $(#sdk143.lib28)
--- End quote ---
There are a few variables that are special. For example the .include and the .lib ecc. If they are empty and the base is not empty then
$(#variable.include) will expand to $(#variable.base)/include the same for
$(#variable.lib) will expand to $(#variable.base)/lib
but nothing more. As osdt says the expansion works only in the limit of the parenthesis...
LETARTARE:
Thank you for all the answers.
In http://wiki.codeblocks.org/index.php?title=Global_compiler_variables
--- Quote ---Names and Members :
Code::Blocks allows you to define custom variable members in addition to the builtin ones.
--- End quote ---
As 'lib28' is a custom variable members, I thought that '$(#variable.lib28)' will expand to '$(#variable.base)/lib28'
So I'm going to modify the wiki accordingly, by specifying this precision.
Navigation
[0] Message Index
Go to full version