Closed nicolas17 closed 3 years ago
Pushed a hotfix for this but I'm leaving it open as I really need to take a look at why those settings are carrying over.
Someone wrote some "optimized" logic for loading in the config files; I'm wondering whether these 'defaults' are getting pointed to when they should be copied instead.
There's a problem somewhere in DragonMake logic that causes the variables to behave as globals instead of properly adhering to their namespace.
I am entirely unsure how that's possible given the current control flow of the DragonGen code. This can be solved by redefining the variable causing issues for each project. Having to do so is not intended behavior, and this is an important issue that reduces QOL when writing build scripts.
now that pip migration is complete i'm going to look into this again.
If I have a DragonMake containing a
type: tweak
module followed by atype: cli
module, the cli executable is wrongly built as a shared library. The reason seems to be that the type definition fortweak
in defaults.yml setslopts: '-dynamiclib ...'
, and the definition forcli
has nolopts
at all. Instead of causing an emptylopts
, this makes it keep the old value from when it processed the tweak, so it passes -dynamiclib when building the cli executable too.Putting the
cli
module first and thetweak
module second fixes the problem. Settinglopts: ''
in the definition ofcli
in defaults.yml also works.Similarly, the cli module gets wrongly linked to Foundation and CydiaSubstrate if it's defined after the tweak in the DragonMake, but not if it's defined first.