From 19c20618313317f6d94b85d65d5e377cd031d3fa Mon Sep 17 00:00:00 2001 From: Alibek Omarov Date: Wed, 31 Aug 2022 19:48:42 +0300 Subject: [PATCH] wscript: define CUSTOM_MODES and try to link with export that only exists when CUSTOM_MODES was defined in build-time --- engine/client/voice.c | 6 +++--- wscript | 7 ++++++- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/engine/client/voice.c b/engine/client/voice.c index 90d859cf..5bcd75d8 100644 --- a/engine/client/voice.c +++ b/engine/client/voice.c @@ -14,7 +14,7 @@ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. */ -#include +#define CUSTOM_MODES 1 // required to correctly link with Opus Custom #include #include "common.h" #include "client.h" @@ -47,8 +47,8 @@ Voice_CodecInfo_f */ static void Voice_CodecInfo_f( void ) { - int encoderComplexity; - opus_int32 encoderBitrate; + int encoderComplexity = 0; + opus_int32 encoderBitrate = 0; if( !voice.initialized ) { diff --git a/wscript b/wscript index 26f34e6c..82c50dbb 100644 --- a/wscript +++ b/wscript @@ -328,9 +328,14 @@ int main(int argc, char **argv) { strcasestr(argv[1], argv[2]); return 0; }''' if not conf.options.BUILD_BUNDLED_DEPS: # check if we can use system opus + conf.define('CUSTOM_MODES', 1) + + # try to link with export that only exists with CUSTOM_MODES defined if conf.check_pkg('opus', 'opus', '''#include -int main(void){ return opus_custom_mode_create(44100, 1024, 0) != 0; }''', fatal = False): +int main(void){ return !opus_custom_encoder_init(0, 0, 0); }''', fatal = False): conf.env.HAVE_SYSTEM_OPUS = True + else: + conf.undefine('CUSTOM_MODES') conf.define('XASH_BUILD_COMMIT', conf.env.GIT_VERSION if conf.env.GIT_VERSION else 'notset') conf.define('XASH_LOW_MEMORY', conf.options.LOW_MEMORY)