DaemonEngine / Daemon

The Dæmon game engine. With some bits of ioq3 and XreaL.
https://unvanquished.net
BSD 3-Clause "New" or "Revised" License
293 stars 60 forks source link

engine is looking for irt_core-x86_64.nexe nacl_helper_bootstrap and nacl_loader in libpath #99

Open illwieckz opened 6 years ago

illwieckz commented 6 years ago

I noticed that the engine build system is building irt_core-x86_64.nexe, nacl_helper_bootstrap and nacl_loader in engine's build path, but the engine runtime is looking for them in libpath (i.e. the game's build path).

Basically, if you don't build the engine as a submodule (which is handy to not mess with it), you get this file layout:

Daemon/build/daemon
Daemon/build/nacl_loader
Daemon/build/nacl_helper_bootstrap
Daemon/build/irt_core-x86_64.nexe
Unvanquished/build/cgame-x86_64.nexe
Unvanquished/build/sgame-x86_64.nexe

But the game currently expects this layout to run properly:

Daemon/build/daemon
Unvanquished/build/nacl_loader
Unvanquished/build/nacl_helper_bootstrap
Unvanquished/build/irt_core-x86_64.nexe
Unvanquished/build/cgame-x86_64.nexe
Unvanquished/build/sgame-x86_64.nexe

Aren't engine things these nacl loader, helper and core nexe? Wouldn't makes more sense to have the engine looking for them in engine directory?

The issue does not occurs on default build scenario (engine as submodule) because the build directory is common, but it's a legit usage for an user to only build the engine (for example if he needs engine fixes only) to load a prebuilt vm, and in this case the user would have to copy the nacl/core nexe files from the engine build directory to the directory where he extracted the prebuilt vm (or the directory where the updater extracted the game). To me it looks better if the engine looks for those nacl loader, helper and core nexe in engine directory to not have to mess with game files.

illwieckz commented 6 years ago

Note that I don't know if the bug is having engine looking for irt_core-x86_64.nexe, nacl_helper_bootstrap and nacl_loader in libpath or the buildchain writing irt_core-x86_64.nexe, nacl_helper_bootstrap and nacl_loader in engine path.

slipher commented 2 years ago

There is a CMake option NACL_RUNTIME_PATH which can be used as a workaround