BrettMayson / HEMTT

Build System for Arma 3
https://brettmayson.github.io/HEMTT
GNU General Public License v2.0
109 stars 40 forks source link

`hemtt dev` generate SymLinks #669

Open mrschick opened 6 months ago

mrschick commented 6 months ago

Very recently, help on the ACE3 Discord finally allowed me to get file patching to work on a project I integrated HEMTT into. As it turned out, the issue was simply that symlinks from the Arma 3 directory to the project's repo were not set up, because I didn't know they had to be. At the same time I was mislead by file patching working on my copies of ACE3 and ACRE2. Only after resolving did I realize that ACE3 and ACRE2 have setup.py that must have setup those symlinks automatically, while my project does not.

LinkGrim on the Discord confirmed that HEMTT does auto-setup those symlinks, but only when running hemtt launch, and I usually just run hemtt dev to use file patching, launching Arma 3 via the launcher to have a better UX for selecting mods.

Since both launch and dev are used to generate builds that work with file patching and disabled CBA function caching, IMO it would be best for both commands to generate symlinks, for more automation and circumvention of user ignorance.

BrettMayson commented 6 months ago

hemtt dev already creates symlinks, exact same code as hemtt launch. hemtt launch just runs hemtt dev internally, then launches Arma, there shouldn't be any other difference than if Arma opens after

mrschick commented 6 months ago

Huh, then I'll have to figure out why it didn't create the symlinks on my machine.

mrschick commented 6 months ago

So I'm tracking what the code does when running hemtt dev -v on this repo branch, while having added some additional debug!() logs.

bin\src\link.rs:create_link():12 is called to create a symlink, but apparently only once by bin\src\modules\file_patching.rs:pre_build() to generate links in .hemttout\dev\addons\ to each of the project's addons. What I would expect is a link from Arma 3\z\DRNP\ to my project's folder to be created in order to get file patching to work, but that doesn't happen.

mrschick commented 5 months ago

Which exact function should create the link in %armadir%\mainprefix\prefix to the project? Knowing it might help me debug the issue on my machine.