122 lines
		
	
	
		
			4.0 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			122 lines
		
	
	
		
			4.0 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
#!/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
 |