| #!/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 |