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.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
Code
$TARGET_NAME
I get Debug or Release, depending on my Target.

But with
Code
$if($TARGET_NAME == "Debug"){MYDEBUG}{MYRELEASE}
I always get MYRELEASE.

I also tried:
Code
$TARGET_NAME == Debug
Code
$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...
Code
[[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