Closed zer0k-z closed 3 weeks ago
Also having some odd issues with this.
If I try to use absolute paths, e.g. -
~/projects/mm-test/build$ python3 ../configure.py --plugin-name=mm-test --plugin-alias=test --sdks=cs2 --targets=x86_64 --mms_path=/home/inolen/projects/metamod-source/ --hl2sdk-root=/home/inolen/projects/hl2sdk/ --hl2sdk-manifests=/home/inolen/projects/hl2sdk-manifests/
I end up with
No such file or directory: '/home/inolen/projects/mm-test/home/inolen/projects/hl2sdk-manifests/SdkHelpers.ambuild'
which seems to be caused by some path computation down inside of AMBuild.
If I try to use a relative path, e.g. -
~/projects/mm-test/build$ python3 ../configure.py --plugin-name=mm-test--plugin-alias=test--sdks=cs2 --targets=x86_64 --mms_path=/home/inolen/projects/metamod-source/ --hl2sdk-root=/home/inolen/projects/hl2sdk/ --hl2sdk-manifests=../../hl2sdk-manifests/
I end up with
FileNotFoundError: [Errno 2] No such file or directory: '/home/inolen/hl2sdk-manifests/SdkHelpers.ambuild'
which I assume is because the relative path ends up being relative to configure.py, however if I try to adjust for that, e.g. -
~/projects/mm-test/build$ python3 ../configure.py --plugin-name=mm-test--plugin-alias=test--sdks=cs2 --targets=x86_64 --mms_path=/home/inolen/projects/metamod-source/ --hl2sdk-root=/home/inolen/projects/hl2sdk/ --hl2sdk-manifests=../hl2sdk-manifests/
it gets further, but I end up with
FileNotFoundError: [Errno 2] No such file or directory: '/home/inolen/projects/mm-test/hl2sdk-manifests/manifests'
where the path is seemingly relative to the build directory for this path computation (not configure.py).
More closely read -
https://github.com/alliedmodders/metamod-source/commit/5ccaa372899d1c5cc7db3f009553a1bf21b073f4
and I realized the hl2sdk-manifests module needs to be accessible from the directory containing configure.py, and the path you're passing the command line needs to be relative to that seemingly.
Has anybody found a solution to this? I am trying to compile s2_sample_mm
like so:
cd metamod-source/samples/s2_sample_mm
mkdir build
cd build
python ../configure.py -s insurgency --mms_path /mnt/hdd/alliedmodders/metamod-source/ --hl2sdk-root /mnt/hdd/alliedmodders/ --hl2sdk-manifests /mnt/hdd/alliedmodders/metamod-source/hl2sdk-manifests/
This fails with this output:
Configure failed: [Errno 2] No such file or directory: '/mnt/hdd/alliedmodders/metamod-source/samples/s2_sample_mm/mnt/hdd/alliedmodders/metamod-source/hl2sdk-manifests/SdkHelpers.ambuild'
I tried using a relative path for --hl2sdk-manifests
by going up 2 directories:
--hl2sdk-manifests ../../
.....
Configure failed: [Errno 2] No such file or directory: '/mnt/hdd/alliedmodders/metamod-source/SdkHelpers.ambuild'
Almost there! So I tried this:
--hl2sdk-manifests ../../hl2sdk-manifests/
.....
Configure failed: [Errno 2] No such file or directory: '/mnt/hdd/alliedmodders/metamod-source/samples/s2_sample_mm/hl2sdk-manifests/manifests'
This is really frustrating. After 2 weeks of messing around late 2023, I finally managed to compile a basic "Hello World" MM:S plugin, but now I can't remember how I did it. I believe I was using somebody's personal MM:S template repo. I'll have to see if I can find the upstream URL for it...
I found it, here is the template repo I used before: https://github.com/nosoop/mmsplugin-base
I was able to compile it like this:
git clone https://github.com/nosoop/mmsplugin-base
mkdir mmsplugin-base/build
cd mmsplugin-base/build
python ../configure.py -s insurgency --hl2sdk-root /mnt/hdd/alliedmodders --mms_path /mnt/hdd/alliedmodders/metamod-source
This gives an error:
File "/home/user/code/source/metamod/test/mmsplugin-base/AMBuildScript", line 168, in configure
cxx.cflags += proj_c_flags
^^^^^^^^^^^^
NameError: name 'proj_c_flags' is not defined
Configure failed: name 'proj_c_flags' is not defined
To fix this, I just commented out line 168 of ../AMBuildScript
and that did the trick.
python ../configure.py -s insurgency --hl2sdk-root /mnt/hdd/alliedmodders --mms_path /mnt/hdd/alliedmodders/metamod-source
ambuild
I don't know if this info will help anyone, but I hope it might!
This has now been addressed with the below. The hl2sdk-manifests directory should be able to live anywhere now, as long as a valid path is given, and relative paths are now better supported for that directory, as well as MM:S's and the SDK root.
Given the folder structure below, running the following command inside the build folder will result in the script trying to find
hl2sdk-manifests
inplugin/hl2sdk-manifests
instead.python3 ../configure.py --hl2sdk-root <hl2sdk root> --mms_path "../metamod-source" --hl2sdk-manifest "../hl2sdk-manifests" -s cs2 --targets x86_64