123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121 |
- #!/bin/sh
- #
- # Copyright (c) 2012 James Almer
- # Copyright (c) 2013 Tiancheng "Timothy" Gu
- #
- # This file is part of FFmpeg.
- #
- # FFmpeg is free software; you can redistribute it and/or
- # modify it under the terms of the GNU Lesser General Public
- # License as published by the Free Software Foundation; either
- # version 2.1 of the License, or (at your option) any later version.
- #
- # FFmpeg is distributed in the hope that it will be useful,
- # but WITHOUT ANY WARRANTY; without even the implied warranty of
- # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
- # See the GNU Lesser General Public License for more details.
- #
- # You should have received a copy of the GNU Lesser General Public License
- # along with FFmpeg; if not, write to the Free Software Foundation, Inc.,
- # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- ## Help
- die() {
- cat <<EOF >&2
- This script is used to generate Windows resources file for the FFmpeg libraries.
- The output .rc file is to be compiled by windres(1). It is mainly useful for
- FFmpeg developers to tweak and regenerate all resources files at once.
- Usage: $0 <libname> <comment>
- The script will output the file to '<libname>/<libname-without-lib>res.rc'.
- Example: $0 libavcodec 'FFmpeg codecs library'
- EOF
- exit 1
- }
- # Script to generate all:
- # (to remove prefix '# ' and add 'tools/' as prefix: sed -r 's/^.{2}/tools\//')
- # gen-rc libavutil "FFmpeg utility library"
- # gen-rc libavcodec "FFmpeg codec library"
- # gen-rc libavformat "FFmpeg container format library"
- # gen-rc libavdevice "FFmpeg device handling library"
- # gen-rc libavfilter "FFmpeg audio/video filtering library"
- # gen-rc libpostproc "FFmpeg postprocessing library"
- # gen-rc libavresample "Libav audio resampling library"
- # gen-rc libswscale "FFmpeg image rescaling library"
- # gen-rc libswresample "FFmpeg audio resampling library"
- ## Sanity checks and argument parsing
- if test $# -lt 2 || test $# -gt 3; then
- die
- fi
- name=$1
- shortname=${name#lib}
- comment=$2
- capname=`echo $name | awk '{print toupper($0)}'`
- version=${capname}_VERSION
- mkdir -p "$name"
- output="$name/${shortname}res.rc"
- ## REAL magic
- cat <<EOF > $output
- /*
- * Windows resource file for $name
- *
- * Copyright (C) 2012 James Almer
- * Copyright (C) 2013 Tiancheng "Timothy" Gu
- *
- * This file is part of FFmpeg.
- *
- * FFmpeg is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * FFmpeg is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
- #include <windows.h>
- #include "$name/version.h"
- #include "libavutil/ffversion.h"
- #include "config.h"
- 1 VERSIONINFO
- FILEVERSION ${version}_MAJOR, ${version}_MINOR, ${version}_MICRO, 0
- PRODUCTVERSION ${version}_MAJOR, ${version}_MINOR, ${version}_MICRO, 0
- FILEFLAGSMASK VS_FFI_FILEFLAGSMASK
- FILEOS VOS_NT_WINDOWS32
- FILETYPE VFT_DLL
- {
- BLOCK "StringFileInfo"
- {
- BLOCK "040904B0"
- {
- VALUE "CompanyName", "FFmpeg Project"
- VALUE "FileDescription", "$comment"
- VALUE "FileVersion", AV_STRINGIFY($version)
- VALUE "InternalName", "$name"
- VALUE "LegalCopyright", "Copyright (C) 2000-" AV_STRINGIFY(CONFIG_THIS_YEAR) " FFmpeg Project"
- VALUE "OriginalFilename", "$shortname" BUILDSUF "-" AV_STRINGIFY(${version}_MAJOR) SLIBSUF
- VALUE "ProductName", "FFmpeg"
- VALUE "ProductVersion", FFMPEG_VERSION
- }
- }
- BLOCK "VarFileInfo"
- {
- VALUE "Translation", 0x0409, 0x04B0
- }
- }
- EOF
|