mirror of
https://github.com/alliedmodders/metamod-source.git
synced 2025-12-06 18:08:31 +00:00
Fix s1_sample_mm compilation on Windows and for Episode 1 and document build process.
This commit is contained in:
parent
057f967730
commit
f598373ca2
@ -191,9 +191,6 @@ class MMSConfig(object):
|
|||||||
|
|
||||||
cxx = builder.DetectCxx()
|
cxx = builder.DetectCxx()
|
||||||
|
|
||||||
if cxx.like('msvc') and len(self.archs) > 1:
|
|
||||||
raise Exception('Building multiple archs with MSVC is not currently supported')
|
|
||||||
|
|
||||||
if cxx.behavior == 'gcc':
|
if cxx.behavior == 'gcc':
|
||||||
cxx.defines += [
|
cxx.defines += [
|
||||||
'stricmp=strcasecmp',
|
'stricmp=strcasecmp',
|
||||||
@ -229,9 +226,6 @@ class MMSConfig(object):
|
|||||||
if cxx.version >= 'clang-3.9' or cxx.version >= 'apple-clang-10.0':
|
if cxx.version >= 'clang-3.9' or cxx.version >= 'apple-clang-10.0':
|
||||||
cxx.cxxflags += ['-Wno-expansion-to-defined']
|
cxx.cxxflags += ['-Wno-expansion-to-defined']
|
||||||
|
|
||||||
elif cxx.like('msvc'):
|
|
||||||
raise Exception('MSVC builds should use the Visual Studio projects until somebody implements support') # todo: implement MSVC support
|
|
||||||
|
|
||||||
# Optimization
|
# Optimization
|
||||||
if builder.options.opt == '1':
|
if builder.options.opt == '1':
|
||||||
if cxx.behavior == 'gcc':
|
if cxx.behavior == 'gcc':
|
||||||
@ -275,17 +269,10 @@ class MMSConfig(object):
|
|||||||
def HL2Compiler(self, context, sdk, arch):
|
def HL2Compiler(self, context, sdk, arch):
|
||||||
compiler = context.cxx.clone()
|
compiler = context.cxx.clone()
|
||||||
|
|
||||||
if sdk.name == 'episode1' or sdk.name == 'darkm':
|
compiler.cxxincludes += [
|
||||||
compiler.cxxincludes += [
|
os.path.join(context.currentSourcePath),
|
||||||
os.path.join(context.currentSourcePath),
|
os.path.join(self.mms_root, 'core'),
|
||||||
os.path.join(self.mms_root, 'core-legacy'),
|
os.path.join(self.mms_root, 'core', 'sourcehook'),
|
||||||
os.path.join(self.mms_root, 'core-legacy', 'sourcehook'),
|
|
||||||
]
|
|
||||||
else:
|
|
||||||
compiler.cxxincludes += [
|
|
||||||
os.path.join(context.currentSourcePath),
|
|
||||||
os.path.join(self.mms_root, 'core'),
|
|
||||||
os.path.join(self.mms_root, 'core', 'sourcehook'),
|
|
||||||
]
|
]
|
||||||
|
|
||||||
defines = ['SE_' + PossibleSDKs[i].define + '=' + PossibleSDKs[i].code for i in PossibleSDKs]
|
defines = ['SE_' + PossibleSDKs[i].define + '=' + PossibleSDKs[i].code for i in PossibleSDKs]
|
||||||
@ -332,18 +319,11 @@ class MMSConfig(object):
|
|||||||
return compiler
|
return compiler
|
||||||
|
|
||||||
def AddVersioning(self, binary, arch):
|
def AddVersioning(self, binary, arch):
|
||||||
if builder.target.platform == 'windows':
|
if builder.target.platform == 'mac' and binary.type == 'library':
|
||||||
# todo: verify this for MSVC support
|
|
||||||
binary.sources += ['version.rc']
|
|
||||||
binary.compiler.rcdefines += [
|
|
||||||
'BINARY_NAME="{0}"'.format(binary.outputFile),
|
|
||||||
'RC_COMPILE'
|
|
||||||
]
|
|
||||||
elif builder.target.platform == 'mac' and binary.type == 'library':
|
|
||||||
binary.compiler.postlink += [
|
binary.compiler.postlink += [
|
||||||
'-compatibility_version', '1.0.0',
|
'-compatibility_version', '1.0.0',
|
||||||
'-current_version', self.productVersion
|
'-current_version', self.productVersion
|
||||||
]
|
]
|
||||||
|
|
||||||
return binary
|
return binary
|
||||||
|
|
||||||
|
|||||||
@ -7,11 +7,18 @@ Build instructions
|
|||||||
|
|
||||||
Make sure ambuild2 is installed: https://github.com/alliedmodders/ambuild
|
Make sure ambuild2 is installed: https://github.com/alliedmodders/ambuild
|
||||||
|
|
||||||
Configure the build (where `--hl2sdk-root` specifies the path to the desired SDK installed by `support/checkout-deps.sh`):
|
Configure the build (`--hl2sdk-root` specifies the path where the all SDKs have been installed by `support/checkout-deps.sh` and `--mms_path` is the path to Metamod: Source).
|
||||||
|
|
||||||
|
If you only want to compile using a specific SDK you can hack around the requirement to build for all SDKs by modifying the calls to the SDK constructor in the assignment to `PossibleSDKs` in `AMBuildScript` and setting the `platforms` parameter to \[\] for all SDKs that you don't want to compile for.
|
||||||
|
|
||||||
|
### Windows
|
||||||
|
|
||||||
|
Use Command Prompt as Gitbash doesn't handle the path arguments correctly.
|
||||||
|
|
||||||
```
|
```
|
||||||
mkdir build
|
mkdir build
|
||||||
cd build
|
cd build
|
||||||
python ../configure.py --hl2sdk-root C:/Users/user/Documents/GitHub/hl2sdk-episode1
|
python ../configure.py --hl2sdk-root C:\Users\user\Documents\GitHub --mms_path C:\Users\user\Documents\GitHub\metamod-source
|
||||||
```
|
```
|
||||||
|
|
||||||
Build:
|
Build:
|
||||||
|
|||||||
@ -20,10 +20,6 @@
|
|||||||
extern IVEngineServer *engine;
|
extern IVEngineServer *engine;
|
||||||
extern CGlobalVars *gpGlobals;
|
extern CGlobalVars *gpGlobals;
|
||||||
|
|
||||||
#if SOURCE_ENGINE == SE_EPISODEONE && defined METAMOD_PLAPI_VERSION
|
|
||||||
#error "Metamod:Source 1.6 API is not supported on the old engine."
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#define ENGINE_CALL(func) SH_CALL(engine, &IVEngineServer::func)
|
#define ENGINE_CALL(func) SH_CALL(engine, &IVEngineServer::func)
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user