Hello,
this is a follow-up on How to use Conditional Evaluation using $if(){}{} (http://forums.next.codeblocks.org/index.php/topic,22022.msg149887.html#msg149887). I'm trying the same as the original poster. For testing purposes I currently use an abbreviation at "Settings" => "Editor..." => "Abbreviations".
With $TARGET_NAME I get Debug or Release, depending on my Target.
But with $if($TARGET_NAME == "Debug"){MYDEBUG}{MYRELEASE} I always get MYRELEASE.
I also tried: $TARGET_NAME == Debug$TARGET_NAME == 'Debug'The result is always the same.
The original thread mentions a bug, but I'm not sure about the discussion in the referred ticket. Is the bug fixed in Release 17.12?
TIA, BackInTheSandbox
The bug has status "open", so it is not fixed anywhere.
Bluehazzard can tell if this is the same issue or this is something else.
Too bad ;)
Is there any other trick to implement a #define based on build target?I know that I can do that in the project's build options. But I'd prefer a project independent approach, i.e. in the code::blocks settings rather than the project settings.
CU,BackInTheSandbox
Yes the bug is the same and it is still open, no comments, so i will commit it. This patch is not perfect but it is an improvement of infinite, because at the moment the if does not work at all ;)
You probably can use squirrel scripting to do what you want...
[[if(ReplaceMacros(_T("$TARGET_NAME")).Matches(_T("Debug"))){print("MYDEBUG");} else {print("MYRELEASE");}]]
Thanks, BlueHazzard!
That squirrel script works like a charm. I put it in the compiler settings under #defines and I get what I need.
CU,BackInTheSandbox