I'm very noob on this MM:S plugin compiling.
This far on
Linux, I have follow this tutorial
Building SourceMod
and I managed build whole SourceMod, using clang.
Spoiler
PHP Code:
$ dpkg --list | grep compiler
ii clang 1:10.0-50~exp1 amd64 C, C++ and Objective-C compiler (LLVM based)
ii clang-10 1:10.0.0-4ubuntu1 amd64 C, C++ and Objective-C compiler
ii g++ 4:9.3.0-1ubuntu2 amd64 GNU C++ compiler
ii g++-9 9.4.0-1ubuntu1~20.04.2 amd64 GNU C++ compiler
ii g++-9-multilib 9.4.0-1ubuntu1~20.04.2 amd64 GNU C++ compiler (multilib support)
ii g++-multilib 4:9.3.0-1ubuntu2 amd64 GNU C++ compiler (multilib files)
ii gcc 4:9.3.0-1ubuntu2 amd64 GNU C compiler
ii gcc-9 9.4.0-1ubuntu1~20.04.2 amd64 GNU C compiler
ii gcc-9-multilib 9.4.0-1ubuntu1~20.04.2 amd64 GNU C compiler (multilib support)
ii gcc-multilib 4:9.3.0-1ubuntu2 amd64 GNU C compiler (multilib files)
ii libllvm10:amd64 1:10.0.0-4ubuntu1 amd64 Modular compiler and toolchain technologies, runtime library
ii libllvm12:amd64 1:12.0.0-3ubuntu1~20.04.5 amd64 Modular compiler and toolchain technologies, runtime library
ii libxkbcommon0:amd64 0.10.0-1 amd64 library interface to the XKB compiler - shared library
ii llvm-10 1:10.0.0-4ubuntu1 amd64 Modular compiler and toolchain technologies
ii llvm-10-dev 1:10.0.0-4ubuntu1 amd64 Modular compiler and toolchain technologies, libraries and headers
ii llvm-10-runtime 1:10.0.0-4ubuntu1 amd64 Modular compiler and toolchain technologies, IR interpreter
ii llvm-10-tools 1:10.0.0-4ubuntu1 amd64 Modular compiler and toolchain technologies, tools
Next I wanted to try compile metamod source plugin sample
.../alliedmodders/metamod-source/samples/s1_sample_mm/
PHP Code:
.../alliedmodders/metamod-source/samples/s1_sample_mm/build$ python ../configure.py --sdks css
Checking CC compiler (vendor test gcc)... ['clang', 'test.c', '-o', 'test']
found clang version 10.0
Checking CXX compiler (vendor test gcc)... ['clang++', 'test.cpp', '-o', 'testp']
found clang version 10.0
.../alliedmodders/metamod-source/samples/s1_sample_mm/build$ ambuild
Build fail to this clang compiler warning
After googling around and make edit in file, I bypassed that problem. Worked
.../alliedmodders/metamod-source/samples/s1_sample_mm/AMBuildScript
Code:
proj_c_flags = [
'-Wall',
'-Wno-non-virtual-dtor',
'-Wno-overloaded-virtual',
'-Werror',
'-Wno-implicit-int-float-conversion',
'-Wno-unused',
]
PHP Code:
.../alliedmodders/metamod-source/samples/s1_sample_mm/build$ ambuild
Spawned worker (pid: 3542)
[3542] clang++ -Wall -Wno-non-virtual-dtor -Wno-overloaded-virtual -Werror -Wno-implicit-int-float-conversion -Wno-unused -fPIC -fno-exceptions -fno-rtti -msse -fno-strict-aliasing -fvisibility=hidden -fvisibility-inlines-hidden -std=c++11 -Wno-delete-non-virtual-dtor -Wno-unused-private-field -Wno-deprecated-register -m32 -g3 -Wno-expansion-to-defined -Dstricmp=strcasecmp -D_stricmp=strcasecmp -D_snprintf=snprintf -D_vsnprintf=vsnprintf -D_alloca=alloca -DGNUC -DPOSIX -DLINUX -D_LINUX -DSE_EPISODEONE=1 -DSE_ORANGEBOX=3 -DSE_CSS=6 -DSE_HL2DM=7 -DSE_DODS=8 -DSE_SDK2013=9 -DSE_TF2=11 -DSE_LEFT4DEAD=12 -DSE_NUCLEARDAWN=13 -DSE_LEFT4DEAD2=15 -DSE_DARKMESSIAH=2 -DSE_ALIENSWARM=16 -DSE_BLOODYGOODTIME=4 -DSE_EYE=5 -DSE_CSGO=21 -DSE_DOTA=22 -DSE_PORTAL2=17 -DSE_BLADE=18 -DSE_INSURGENCY=19 -DSE_DOI=20 -DSE_CONTAGION=14 -DSE_BMS=10 -DSOURCE_ENGINE=6 -DCOMPILER_GCC -I /home/amd/Asiakirjat/alliedmodders/metamod-source/samples/s1_sample_mm -I /home/amd/Asiakirjat/alliedmodders/metamod-source/core -I /home/amd/Asiakirjat/alliedmodders/metamod-source/core/sourcehook -I /home/amd/Asiakirjat/alliedmodders/hl2sdk-css/public -I /home/amd/Asiakirjat/alliedmodders/hl2sdk-css/public/engine -I /home/amd/Asiakirjat/alliedmodders/hl2sdk-css/public/mathlib -I /home/amd/Asiakirjat/alliedmodders/hl2sdk-css/public/vstdlib -I /home/amd/Asiakirjat/alliedmodders/hl2sdk-css/public/tier0 -I /home/amd/Asiakirjat/alliedmodders/hl2sdk-css/public/tier1 -I /home/amd/Asiakirjat/alliedmodders/hl2sdk-css/public/game/server -H -c /home/amd/Asiakirjat/alliedmodders/metamod-source/samples/s1_sample_mm/sample_mm.cpp -o sample_mm.o
[3542] clang++ sample_mm.o libvstdlib_srv.so libtier0_srv.so -shared -m32 /home/amd/Asiakirjat/alliedmodders/hl2sdk-css/lib/linux/tier1_i486.a -shared -o sample_mm2.css.so
Build succeeded.
Question is, Is this proper way to remove/add clang flags or is there another/easier way sampling flags ?
*edit
I see, there have made workaround in
sourcemod build
https://github.com/alliedmodders/sou...b1ce7011aa8b64
PHP Code:
# Work around SDK warnings.
if cxx.version >= 'clang-10.0':
cxx.cflags += [
'-Wno-implicit-int-float-conversion',
'-Wno-tautological-overlap-compare',
]