Code::Blocks Forums

User forums => Using Code::Blocks => Topic started by: BackInTheSandbox on March 04, 2020, 09:52:16 AM

Title: Conditional Evaluation using $if(){}{}
Post by: BackInTheSandbox on March 04, 2020, 09:52:16 AM
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
Title: Re: Conditional Evaluation using $if(){}{}
Post by: oBFusCATed on March 04, 2020, 06:26:20 PM
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.
Title: Re: Conditional Evaluation using $if(){}{}
Post by: BackInTheSandbox on March 04, 2020, 07:58:27 PM
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
Title: Re: Conditional Evaluation using $if(){}{}
Post by: BlueHazzard on March 05, 2020, 03:53:29 PM
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");}]]
Title: Re: Conditional Evaluation using $if(){}{}
Post by: BackInTheSandbox on March 05, 2020, 04:04:32 PM
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