How to set compilation flags/qualifiers?
I have the following problem:
- There are several classes with method generators, which needs to be compiled during every compilation
- I have "ckub" qualifiers enabled in studio
- I don't want to remove "u" qualifier because I need it very much in another namespaces
So how do I force classes with method generators to recompile when "u" qualifier is present?
Currently I solved this problem by setting studio qualifiers setting to "cukb /checkuptodate=expandedonly" which solved my problem, but I'd like some clarification as to why it helped. Here's checkuptodate qualifier description:
Name: /checkuptodate Description: Skip classes or expanded classes that are up-to-date. Type: enum Enum List: none,all,expandedonly,0,1 Default Value: expandedonly Present Value: all Negated Value: none
Questions:
- What is an "expanded class"?
- Why explicitly setting /checkuptodate=expandedonly forces classes with generators to compile every time?
- Is there any other, cleaner way to force classes with generators to compile every time?
Not answering your questions, but are you aware of the SetFlags and SetQualifiers methods of %SYSTEM.OBJ ? These can be used to set namespace-specific defaults as well as systemwide defaults. Maybe they'll let you ensure "u" behaviour for certain namespaces even if you remove the "u" flag from Studio's settings.
I need "u" flag in studio. During compilation the flags from user (studio) are combined with namespace or system flags. So even if I set namespace default flags without "u", the compiler would still use this flag as it is present in studio.