82 строки
2.0 KiB
Python
82 строки
2.0 KiB
Python
# Copyright 2015 The Emscripten Authors. All rights reserved.
|
|
# Emscripten is available under two separate licenses, the MIT license and the
|
|
# University of Illinois/NCSA Open Source License. Both these licenses can be
|
|
# found in the LICENSE file.
|
|
|
|
import logging
|
|
import os
|
|
import shutil
|
|
from pathlib import Path
|
|
|
|
TAG = 'version_1'
|
|
HASH = '929e8d6003c06ae09593021b83323c8f1f54532b67b8ba189f4aedce52c25dc182bac474de5392c46ad5b0dea5a24928e4ede1492d52f4dd5cd58eea9be4dba7'
|
|
|
|
|
|
def needed(settings):
|
|
return settings.USE_OGG
|
|
|
|
|
|
def get(ports, settings, shared):
|
|
ports.fetch_project('ogg', 'https://github.com/emscripten-ports/ogg/archive/' + TAG + '.zip', 'Ogg-' + TAG, sha512hash=HASH)
|
|
|
|
def create(final):
|
|
logging.info('building port: ogg')
|
|
ports.clear_project_build('vorbis')
|
|
|
|
source_path = os.path.join(ports.get_dir(), 'ogg', 'Ogg-' + TAG)
|
|
dest_path = os.path.join(ports.get_build_dir(), 'ogg')
|
|
|
|
shutil.rmtree(dest_path, ignore_errors=True)
|
|
shutil.copytree(source_path, dest_path)
|
|
|
|
Path(dest_path, 'include', 'ogg', 'config_types.h').write_text(config_types_h)
|
|
|
|
header_dir = os.path.join(ports.get_include_dir(), 'ogg')
|
|
shutil.rmtree(header_dir, ignore_errors=True)
|
|
shutil.copytree(os.path.join(dest_path, 'include', 'ogg'), header_dir)
|
|
|
|
ports.build_port(os.path.join(dest_path, 'src'), final)
|
|
|
|
return [shared.Cache.get_lib('libogg.a', create)]
|
|
|
|
|
|
def clear(ports, settings, shared):
|
|
shared.Cache.erase_lib('libogg.a')
|
|
|
|
|
|
def process_args(ports):
|
|
return []
|
|
|
|
|
|
def show():
|
|
return 'ogg (USE_OGG=1; zlib license)'
|
|
|
|
|
|
config_types_h = '''\
|
|
#ifndef __CONFIG_TYPES_H__
|
|
#define __CONFIG_TYPES_H__
|
|
|
|
/* these are filled in by configure */
|
|
#define INCLUDE_INTTYPES_H 1
|
|
#define INCLUDE_STDINT_H 1
|
|
#define INCLUDE_SYS_TYPES_H 1
|
|
|
|
#if INCLUDE_INTTYPES_H
|
|
# include <inttypes.h>
|
|
#endif
|
|
#if INCLUDE_STDINT_H
|
|
# include <stdint.h>
|
|
#endif
|
|
#if INCLUDE_SYS_TYPES_H
|
|
# include <sys/types.h>
|
|
#endif
|
|
|
|
typedef int16_t ogg_int16_t;
|
|
typedef uint16_t ogg_uint16_t;
|
|
typedef int32_t ogg_int32_t;
|
|
typedef uint32_t ogg_uint32_t;
|
|
typedef int64_t ogg_int64_t;
|
|
|
|
#endif
|
|
'''
|