diff options
Diffstat (limited to 'third_party/aom/build/make/gen_msvs_def.sh')
-rwxr-xr-x | third_party/aom/build/make/gen_msvs_def.sh | 82 |
1 files changed, 82 insertions, 0 deletions
diff --git a/third_party/aom/build/make/gen_msvs_def.sh b/third_party/aom/build/make/gen_msvs_def.sh new file mode 100755 index 000000000..dbb2674ac --- /dev/null +++ b/third_party/aom/build/make/gen_msvs_def.sh @@ -0,0 +1,82 @@ +#!/bin/bash +## Copyright (c) 2016, Alliance for Open Media. All rights reserved +## +## This source code is subject to the terms of the BSD 2 Clause License and +## the Alliance for Open Media Patent License 1.0. If the BSD 2 Clause License +## was not distributed with this source code in the LICENSE file, you can +## obtain it at www.aomedia.org/license/software. If the Alliance for Open +## Media Patent License 1.0 was not distributed with this source code in the +## PATENTS file, you can obtain it at www.aomedia.org/license/patent. +## + +self=$0 +self_basename=${self##*/} +EOL=$'\n' + +show_help() { + cat <<EOF +Usage: ${self_basename} [options] file1 [file2 ...] + +This script generates a MSVC module definition file containing a list of symbols +to export from a DLL. Source files are technically bash scripts (and thus may +use #comment syntax) but in general, take the form of a list of symbols: + + <kind> symbol1 [symbol2, symbol3, ...] + +where <kind> is either 'text' or 'data' + + +Options: + --help Print this message + --out=filename Write output to a file [stdout] + --name=project_name Name of the library (required) +EOF + exit 1 +} + +die() { + echo "${self_basename}: $@" + exit 1 +} + +die_unknown(){ + echo "Unknown option \"$1\"." + echo "See ${self_basename} --help for available options." + exit 1 +} + +text() { + for sym in "$@"; do + echo " $sym" >> ${outfile} + done +} + +data() { + for sym in "$@"; do + printf " %-40s DATA\n" "$sym" >> ${outfile} + done +} + +# Process command line +for opt in "$@"; do + optval="${opt#*=}" + case "$opt" in + --help|-h) show_help + ;; + --out=*) outfile="$optval" + ;; + --name=*) name="${optval}" + ;; + -*) die_unknown $opt + ;; + *) file_list[${#file_list[@]}]="$opt" + esac +done +outfile=${outfile:-/dev/stdout} +[ -n "$name" ] || die "Library name (--name) must be specified!" + +echo "LIBRARY ${name}" > ${outfile} +echo "EXPORTS" >> ${outfile} +for f in "${file_list[@]}"; do + . $f +done |