News:

Accounts with zero posts and zero activity during the last months will be deleted periodically to fight SPAM!

Main Menu

Conditional Evaluation using $if(){}{}

Started by BackInTheSandbox, March 04, 2020, 09:52:16 AM

Previous topic - Next topic

BackInTheSandbox

Hello,
this is a follow-up on How to use Conditional Evaluation using $if(){}{}. 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

oBFusCATed

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.
(most of the time I ignore long posts)
[strangers don't send me private messages, I'll ignore them; post a topic in the forum, but first read the rules!]

BackInTheSandbox

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

BlueHazzard

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");}]]

BackInTheSandbox

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