122 lines
		
	
	
		
			4.0 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
		
		
			
		
	
	
			122 lines
		
	
	
		
			4.0 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| 
								 | 
							
								#!/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
							 |