From 9e67a90b25bd2133db16d1e6ac5ddb564c6b8955 Mon Sep 17 00:00:00 2001 From: SNMetamorph Date: Fri, 29 Nov 2024 19:22:41 +0400 Subject: [PATCH] 3rdparty: vorbis: added wscript for libvorbis --- 3rdparty/vorbis/libvorbis/wscript | 72 +++++++++++++++++++++++++++++++ wscript | 1 + 2 files changed, 73 insertions(+) create mode 100644 3rdparty/vorbis/libvorbis/wscript diff --git a/3rdparty/vorbis/libvorbis/wscript b/3rdparty/vorbis/libvorbis/wscript new file mode 100644 index 00000000..d4f301bb --- /dev/null +++ b/3rdparty/vorbis/libvorbis/wscript @@ -0,0 +1,72 @@ +#! /usr/bin/env python +# encoding: utf-8 + +FRAGMENT_MEMORY_H='''#include +int main (void) { + return 0; +}''' + +FRAGMENT_MEMCMP='''#include +int main (void) { + memcmp(NULL, NULL, 0); + return 0; +}''' + +FRAGMENT_ALLOCA_H='''#include +int main (void) { + int foo=10; + int * array = alloca(foo); +}''' + +def options(opt): + pass + +def configure(conf): + if not conf.path.find_dir('../vorbis-src') or not conf.path.find_dir('../vorbis-src/lib'): + conf.fatal('Can\'t find libvorbis submodule. Run `git submodule update --init --recursive`.') + return + + # Check for required headers + if conf.check_cc(fragment=FRAGMENT_MEMORY_H, msg = 'Checking for memory.h header', mandatory = False): + conf.define('USE_MEMORY_H', 1) + + conf.check_cc(fragmenmt=FRAGMENT_MEMCMP, msg = 'Checking for memcmp in string.h header', mandatory = False) + conf.check_cc(fragment=FRAGMENT_ALLOCA_H, msg = 'Checking for alloca in alloca.h header', mandatory = False) + + if conf.env.COMPILER_CC == 'msvc': + conf.define('_CRT_SECURE_NO_WARNINGS', 1) + conf.define('_CRT_SECURE_NO_DEPRECATE', 1) + conf.define('_CRT_NONSTDC_NO_DEPRECATE', 1) + +def build(bld): + sources = [ + '../vorbis-src/lib/mdct.c', + '../vorbis-src/lib/smallft.c', + '../vorbis-src/lib/block.c', + '../vorbis-src/lib/envelope.c', + '../vorbis-src/lib/window.c', + '../vorbis-src/lib/lsp.c', + '../vorbis-src/lib/lpc.c', + '../vorbis-src/lib/analysis.c', + '../vorbis-src/lib/synthesis.c', + '../vorbis-src/lib/psy.c', + '../vorbis-src/lib/info.c', + '../vorbis-src/lib/floor1.c', + '../vorbis-src/lib/floor0.c', + '../vorbis-src/lib/res0.c', + '../vorbis-src/lib/mapping0.c', + '../vorbis-src/lib/registry.c', + '../vorbis-src/lib/codebook.c', + '../vorbis-src/lib/sharedbook.c', + '../vorbis-src/lib/lookup.c', + '../vorbis-src/lib/bitrate.c' + ] + + bld.stlib( + source = sources, + target = 'libvorbis', + features = 'c', + includes = ['../vorbis-src/include/'], + use = ['libogg'], + export_includes = ['../vorbis-src/include/'] + ) diff --git a/wscript b/wscript index 627c1f3d..3c6438db 100644 --- a/wscript +++ b/wscript @@ -97,6 +97,7 @@ SUBDIRS = [ Subproject('3rdparty/mainui', lambda x: not x.env.DEDICATED), Subproject('3rdparty/vgui_support', lambda x: not x.env.DEDICATED), Subproject('3rdparty/libogg', lambda x: not x.env.DEDICATED), + Subproject('3rdparty/vorbis/libvorbis', lambda x: not x.env.DEDICATED), Subproject('3rdparty/MultiEmulator',lambda x: not x.env.DEDICATED), # Subproject('3rdparty/freevgui', lambda x: not x.env.DEDICATED), Subproject('stub/client', lambda x: not x.env.DEDICATED),