it seems when you use a global variable in the file specifications of a project like :
<Unit filename="${#cmakebuild}/foo/bar/test.cpp" />
then the global variable does not get substituted, doing similar thing for the include directories does work, there substitution does occur.
Writing cbp files by hand is not supported. :)
Projects have massive amounts of file, so doing replace marcos on every path won't be any good for load times, which aren't really good even without it.