Commit 96537a3c authored by Cyril Deguet's avatar Cyril Deguet

* toolbox: added a --update-vc7 option to generate projects for Visual Studio .NET

parent 4974f83a
<?xml version="1.0" encoding="Windows-1252"?>
<VisualStudioProject
ProjectType="Visual C++"
Version="7.10"
Name="liblvc"
ProjectGUID="{GUID}"
RootNamespace="libvlc"
Keyword="Win32Proj">
<Platforms>
<Platform
Name="Win32"/>
</Platforms>
<Configurations>
<Configuration
Name="Debug|Win32"
OutputDirectory="Debug"
IntermediateDirectory="Debug"
ConfigurationType="4"
UseOfMFC="0"
CharacterSet="2">
<Tool
Name="VCCLCompilerTool"
Optimization="0"
AdditionalIncludeDirectories=".;..\include"
PreprocessorDefinitions="WIN32;_DEBUG;__VLC__"
MinimalRebuild="TRUE"
BasicRuntimeChecks="3"
RuntimeLibrary="3"
UsePrecompiledHeader="0"
ObjectFile="$(IntDir)/$(ProjectName)/"
ProgramDataBaseFileName="$(IntDir)/$(ProjectName).pdb"
WarningLevel="3"
Detect64BitPortabilityProblems="TRUE"
DebugInformationFormat="4"/>
<Tool
Name="VCCustomBuildTool"/>
<Tool
Name="VCLibrarianTool"/>
<Tool
Name="VCMIDLTool"/>
<Tool
Name="VCPostBuildEventTool"/>
<Tool
Name="VCPreBuildEventTool"/>
<Tool
Name="VCPreLinkEventTool"/>
<Tool
Name="VCResourceCompilerTool"/>
<Tool
Name="VCWebServiceProxyGeneratorTool"/>
<Tool
Name="VCXMLDataGeneratorTool"/>
<Tool
Name="VCWebDeploymentTool"/>
<Tool
Name="VCManagedWrapperGeneratorTool"/>
<Tool
Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
</Configuration>
<Configuration
Name="Release|Win32"
OutputDirectory="Release"
IntermediateDirectory="Release"
ConfigurationType="1"
CharacterSet="2">
<Tool
Name="VCCLCompilerTool"
AdditionalIncludeDirectories=".;..\include"
PreprocessorDefinitions="WIN32;NDEBUG;__VLC__"
RuntimeLibrary="4"
UsePrecompiledHeader="3"
WarningLevel="3"
Detect64BitPortabilityProblems="TRUE"
DebugInformationFormat="3"/>
<Tool
Name="VCCustomBuildTool"/>
<Tool
Name="VCLibrarianTool"/>
<Tool
Name="VCMIDLTool"/>
<Tool
Name="VCPostBuildEventTool"/>
<Tool
Name="VCPreBuildEventTool"/>
<Tool
Name="VCPreLinkEventTool"/>
<Tool
Name="VCResourceCompilerTool"/>
<Tool
Name="VCWebServiceProxyGeneratorTool"/>
<Tool
Name="VCXMLDataGeneratorTool"/>
<Tool
Name="VCWebDeploymentTool"/>
<Tool
Name="VCManagedWrapperGeneratorTool"/>
<Tool
Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
</Configuration>
</Configurations>
<References>
</References>
<Files>
<Filter Name="Source Files" Filter="c;cpp">
SOURCES
</Filter>
<Filter Name="Header Files" Filter="h;hpp">
HEADERS
</Filter>
</Files>
<Globals>
</Globals>
</VisualStudioProject>
<?xml version="1.0" encoding="Windows-1252"?>
<VisualStudioProject
ProjectType="Visual C++"
Version="7.10"
Name="PLUGIN"
ProjectGUID="{GUID}"
RootNamespace="PLUGIN"
Keyword="Win32Proj">
<Platforms>
<Platform
Name="Win32"/>
</Platforms>
<Configurations>
<Configuration
Name="Debug|Win32"
OutputDirectory="Debug"
IntermediateDirectory="Debug"
ConfigurationType="2"
CharacterSet="2">
<Tool
Name="VCCLCompilerTool"
Optimization="0"
AdditionalIncludeDirectories=".;..\include"
PreprocessorDefinitions="WIN32;_DEBUG;__VLC__;__PLUGIN__;MODULE_NAME=PLUGIN"
MinimalRebuild="TRUE"
BasicRuntimeChecks="3"
RuntimeLibrary="3"
UsePrecompiledHeader="0"
ObjectFile="$(IntDir)/$(ProjectName)/"
ProgramDataBaseFileName="$(IntDir)/$(ProjectName).pdb"
WarningLevel="3"
Detect64BitPortabilityProblems="TRUE"
DebugInformationFormat="4"/>
<Tool
Name="VCCustomBuildTool"/>
<Tool
Name="VCLinkerTool"
OutputFile="$(OutDir)\plugins\$(ProjectName).dll"
LinkIncremental="2"
AdditionalLibraryDirectories=""
GenerateDebugInformation="TRUE"
ProgramDatabaseFile="$(OutDir)/$(ProjectName).pdb"
SubSystem="1"
TargetMachine="1"/>
<Tool
Name="VCMIDLTool"/>
<Tool
Name="VCPostBuildEventTool"/>
<Tool
Name="VCPreBuildEventTool"/>
<Tool
Name="VCPreLinkEventTool"/>
<Tool
Name="VCResourceCompilerTool"/>
<Tool
Name="VCWebServiceProxyGeneratorTool"/>
<Tool
Name="VCXMLDataGeneratorTool"/>
<Tool
Name="VCWebDeploymentTool"/>
<Tool
Name="VCManagedWrapperGeneratorTool"/>
<Tool
Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
</Configuration>
<Configuration
Name="Release|Win32"
OutputDirectory="Release"
IntermediateDirectory="Release"
ConfigurationType="1"
CharacterSet="2">
<Tool
Name="VCCLCompilerTool"
AdditionalIncludeDirectories=".;..\include"
PreprocessorDefinitions="WIN32;NDEBUG;__VLC__;__PLUGIN__;MODULE_NAME=PLUGIN"
RuntimeLibrary="4"
UsePrecompiledHeader="3"
WarningLevel="3"
Detect64BitPortabilityProblems="TRUE"
DebugInformationFormat="3"/>
<Tool
Name="VCCustomBuildTool"/>
<Tool
Name="VCLinkerTool"
OutputFile="$(OutDir)\plugins\$(ProjectName).dll"
LinkIncremental="1"
GenerateDebugInformation="TRUE"
SubSystem="1"
OptimizeReferences="2"
EnableCOMDATFolding="2"
TargetMachine="1"/>
<Tool
Name="VCMIDLTool"/>
<Tool
Name="VCPostBuildEventTool"/>
<Tool
Name="VCPreBuildEventTool"/>
<Tool
Name="VCPreLinkEventTool"/>
<Tool
Name="VCResourceCompilerTool"/>
<Tool
Name="VCWebServiceProxyGeneratorTool"/>
<Tool
Name="VCXMLDataGeneratorTool"/>
<Tool
Name="VCWebDeploymentTool"/>
<Tool
Name="VCManagedWrapperGeneratorTool"/>
<Tool
Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
</Configuration>
</Configurations>
<References>
</References>
<Files>
<Filter Name="Source Files" Filter="c;cpp">
SOURCES
</Filter>
<Filter Name="Header Files" Filter="h;hpp">
HEADERS
</Filter>
</Files>
<Globals>
</Globals>
</VisualStudioProject>
<?xml version="1.0" encoding="Windows-1252"?>
<VisualStudioProject
ProjectType="Visual C++"
Version="7.10"
Name="vlc"
ProjectGUID="{GUID}"
Keyword="Win32Proj">
<Platforms>
<Platform
Name="Win32"/>
</Platforms>
<Configurations>
<Configuration
Name="Debug|Win32"
OutputDirectory="Debug"
IntermediateDirectory="Debug"
ConfigurationType="1"
UseOfATL="0"
ATLMinimizesCRunTimeLibraryUsage="FALSE"
CharacterSet="2">
<Tool
Name="VCCLCompilerTool"
Optimization="0"
AdditionalIncludeDirectories=".;..\include"
PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS"
MinimalRebuild="TRUE"
ExceptionHandling="FALSE"
BasicRuntimeChecks="3"
RuntimeLibrary="3"
UsePrecompiledHeader="0"
ObjectFile="$(IntDir)/$(ProjectName)/"
WarningLevel="3"
Detect64BitPortabilityProblems="TRUE"
DebugInformationFormat="4"/>
<Tool
Name="VCCustomBuildTool"/>
<Tool
Name="VCLinkerTool"
AdditionalDependencies="ws2_32.lib winmm.lib"
OutputFile="$(OutDir)/vlc.exe"
LinkIncremental="2"
AdditionalLibraryDirectories=""
IgnoreAllDefaultLibraries="FALSE"
GenerateDebugInformation="TRUE"
ProgramDatabaseFile="$(OutDir)/vlc.pdb"
SubSystem="1"
TargetMachine="1"/>
<Tool
Name="VCMIDLTool"/>
<Tool
Name="VCPostBuildEventTool"/>
<Tool
Name="VCPreBuildEventTool"/>
<Tool
Name="VCPreLinkEventTool"/>
<Tool
Name="VCResourceCompilerTool"/>
<Tool
Name="VCWebServiceProxyGeneratorTool"/>
<Tool
Name="VCXMLDataGeneratorTool"/>
<Tool
Name="VCWebDeploymentTool"/>
<Tool
Name="VCManagedWrapperGeneratorTool"/>
<Tool
Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
</Configuration>
<Configuration
Name="Release|Win32"
OutputDirectory="Release"
IntermediateDirectory="Release"
ConfigurationType="1"
CharacterSet="2">
<Tool
Name="VCCLCompilerTool"
AdditionalIncludeDirectories=".;..\include"
PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS"
RuntimeLibrary="4"
UsePrecompiledHeader="3"
WarningLevel="3"
Detect64BitPortabilityProblems="TRUE"
DebugInformationFormat="3"/>
<Tool
Name="VCCustomBuildTool"/>
<Tool
Name="VCLinkerTool"
OutputFile="$(OutDir)/vlc.exe"
LinkIncremental="1"
GenerateDebugInformation="TRUE"
SubSystem="2"
OptimizeReferences="2"
EnableCOMDATFolding="2"
TargetMachine="1"/>
<Tool
Name="VCMIDLTool"/>
<Tool
Name="VCPostBuildEventTool"/>
<Tool
Name="VCPreBuildEventTool"/>
<Tool
Name="VCPreLinkEventTool"/>
<Tool
Name="VCResourceCompilerTool"/>
<Tool
Name="VCWebServiceProxyGeneratorTool"/>
<Tool
Name="VCXMLDataGeneratorTool"/>
<Tool
Name="VCWebDeploymentTool"/>
<Tool
Name="VCManagedWrapperGeneratorTool"/>
<Tool
Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
</Configuration>
</Configurations>
<References>
</References>
<Files>
<Filter Name="Source Files" Filter="cpp;c">
SOURCES
</Filter>
<Filter Name="Resource Files" Filter="rc">
<File RelativePath="..\share\vlc_win32_rc.rc"></File>
</Filter>
</Files>
<Globals>
</Globals>
</VisualStudioProject>
...@@ -26,6 +26,7 @@ help() ...@@ -26,6 +26,7 @@ help()
cat << EOF cat << EOF
recognized flags are: recognized flags are:
--update-vc update Microsoft Visual Studio files --update-vc update Microsoft Visual Studio files
--update-vc7 update Microsoft Visual .NET files
--update-po update translation files --update-po update translation files
--update-includes generate various include files --update-includes generate various include files
--update-version generate src/misc/version.c --update-version generate src/misc/version.c
...@@ -66,6 +67,9 @@ case "$1" in ...@@ -66,6 +67,9 @@ case "$1" in
--update-vc) --update-vc)
action=vc action=vc
;; ;;
--update-vc7)
action=vc7
;;
--update-po) --update-po)
action=po action=po
;; ;;
...@@ -368,6 +372,162 @@ EOF ...@@ -368,6 +372,162 @@ EOF
exit 0 exit 0
fi fi
##
## Update the MSVC (.NET) project files
##
if test "${action}" = "vc7"
then
echo "generating Visual .NET files"
srcdir=.
# The evil ^M. printf '\r' does not work in Cygwin.
M='
'
# Variables we get from configure.ac
LIBVLC_VERSION=`sed -ne '/AC_INIT/s/.*,\(.*\))/\1/p' < configure.ac`
LIBVLC_CODENAME=`sed -ne '/CODENAME=/s/.*"\(.*\)"/\1/p' < configure.ac`
LIBVLC_SYMBOL=`echo $LIBVLC_VERSION | sed -e 'y/.-/__/'`
# Sources that get built under Win32 - FIXME: anyone wanna deuglify this? :)
LIBVLC_SOURCES=`getfiles SOURCES_libvlc_common; getfiles SOURCES_libvlc_win32; getfiles SOURCES_libvlc_dirent; getfiles SOURCES_libvlc_getopt; getfiles SOURCES_libvlc_libc`
LIBVLC_HEADERS=`getfiles HEADERS_include; getfiles HEADERS_include_built`
LIBVLC_PKG_HEADERS=`getfiles dist_pkginclude_HEADERS`
# Clean up
rm -f msvc/*.vcproj
# config files
for target in msvc/config.h
do
printf "."
rm -f ${target}
sed -e "s/@CODENAME@/${LIBVLC_CODENAME}/" \
-e "s/@VERSION@/${LIBVLC_VERSION}/" \
-e "s/@SYMBOL@/${LIBVLC_SYMBOL}/" < ${target}.in > ${target}
done
# vlc files
target="msvc/vlc.vcproj"
printf "."
# Top of the project file
guid=`perl -e 'sub r {return sprintf("%X", int rand(65536))} print r.r."-".r."-".r."-".r."-".r.r.r'`
perl -pe 'if(/SOURCES/){last;} s/GUID/'${guid}'/g' < ${target}.in > ${target}
# The source files
cat >> ${target} << EOF
<File RelativePath="..\\src\\vlc.c"></File>${M}
EOF
# Bottom of the project file - handles resource files too
perl -e 'while(<>){if(/SOURCES/){last;}}while(<>){print $_}' < ${target}.in >> ${target}
# libvlc files
target=msvc/libvlc.vcproj
printf "."
# Top of the project file
guid=`perl -e 'sub r {return sprintf("%X", int rand(65536))} print r.r."-".r."-".r."-".r."-".r.r.r'`
perl -pe 'if(/SOURCES/){last;} s/GUID/'${guid}'/g' < ${target}.in > ${target}
# The source files
for file in `for i in ${LIBVLC_SOURCES} ; do echo $i ; done | grep -v "/.*/"`
do
cat >> ${target} << EOF
<File RelativePath="..\\`echo ${dir}/${file} | sed 's,/,\\\\,g'`"></File>${M}
EOF
done
for subdir in `for i in ${LIBVLC_SOURCES} ; do echo $i ; done | grep "/.*/" | cut -f2 -d/ | sort | uniq`
do
cat >> ${target} << EOF
<Filter Name="`echo ${subdir} | sed s,/,_,g`" Filter="c;cpp">${M}
EOF
for file in `for i in ${LIBVLC_SOURCES} ; do echo $i ; done | grep "/${subdir}/"`
do
cat >> ${target} << EOF
<File RelativePath="..\\`echo ${file} | sed 's,/,\\\\,g'`">${M}
EOF
if echo ${file} | grep -q '.c$'
then
cat >> ${target} << EOF
<FileConfiguration Name="Debug|Win32">${M}
<Tool Name="VCCLCompilerTool" ObjectFile="\$(IntDir)/\$(ProjectName)/`echo ${file} | sed -e s/\.c$/.obj/`"/>${M}
</FileConfiguration>${M}
EOF
fi
cat >> ${target} << EOF
</File>${M}
EOF
done
cat >> ${target} << EOF
</Filter>${M}
EOF
done
# The headers
perl -e 'while(<>){if(/SOURCES/){last;}}while(<>){if(/HEADERS/){last;}print $_}' < ${target}.in >> ${target}
for file in ${LIBVLC_HEADERS}
do
cat >> ${target} << EOF
<File RelativePath="..\\`echo ${file} | sed 's,/,\\\\,g'`"></File>${M}
EOF
done
cat >> ${target} << EOF
<Filter Name="vlc" Filter="h;hpp">${M}
EOF
for file in ${LIBVLC_PKG_HEADERS}
do
cat >> ${target} << EOF
<File RelativePath="..\\`echo ${file} | sed 's,/,\\\\,g'`"></File>${M}
EOF
done
cat >> ${target} << EOF
</Filter>${M}
EOF
perl -e 'while(<>){if(/HEADERS/){last;}}while(<>){print $_}' < ${target}.in >> ${target}
# plugins files
for dir in `sed -ne 's,modules/\(.*\)/Makefile,\1,p' ${srcdir}/configure.ac`
do
mf="${srcdir}/modules/${dir}/Modules.am"
for mod in `sed -n -e 's/^ *SOURCES_\([^ ]*\).*/\1/p' < ${mf}`
do
# this is an attempt at getting a list of plugin sources... we take the
# production and remove everything that does not contain "module", which
# means you miss $(NULL), but other variables too.
allfiles=`grep -v '[^-_a-zA-Z0-9]*#' ${mf} | awk 'BEGIN{a=0}{if(!a&&$0~/^SOURCES_'${mod}'[^-_a-zA-Z0-9]*=/){a=1;print$0;next;}if(a){if($0~/^[a-zA-Z]/){exit;}print $0}}' | tr '\\ ' '\n\n' | grep '\.'`
hfiles=`for i in ${allfiles} ; do echo "$i" ; done | grep '\.h$'`
cfiles=`for i in ${allfiles} ; do echo "$i" ; done | grep -v '\.h$'`
for msdir in msvc
do
source="${msdir}/plugins.vcproj.in"
target="${msdir}/plugin_${mod}.vcproj"
printf "."
guid=`perl -e 'sub r {return sprintf("%X", int rand(65536))} print r.r."-".r."-".r."-".r."-".r.r.r'`
perl -pe 'if(/SOURCES/){last;} s/PLUGIN/'${mod}'/g' < ${source} | sed 's,GUID,'${guid}',' > ${target}
for cfile in ${cfiles}
do
cat >> ${target} << EOF
<File RelativePath="..\\modules\\`echo ${dir}/${cfile} | sed 's,/,\\\\,g'`"></File>${M}
EOF
done
# sed is really nicer for this... unfortunately it's broken under cygwin
# sed -ne '1,/SOURCES/d; /HEADERS/,$d; p' < ${source} >> ${target}
perl -e 'while(<>){if(/SOURCES/){last;}}while(<>){if(/HEADERS/){last;}print $_}' < ${source} >> ${target}
for hfile in ${hfiles}
do
cat >> ${target} << EOF
<File RelativePath="..\\modules\\`echo ${dir}/${hfile} | sed 's,/,\\\\,g'`"></File>${M}
EOF
done
# sed -ne '1,/HEADERS/d; p' < ${source} >> ${target}
perl -e 'while(<>){if(/HEADERS/){last;}}while(<>){print $_}' < ${source} >> ${target}
done
done
done
echo " done."
exit 0
fi
## ##
## Update the potfiles because no one ever does it ## Update the potfiles because no one ever does it
## ##
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment