Mercurial > hg > pyin
changeset 161:643bae02d652
Windows packaging work
author | Chris Cannam |
---|---|
date | Thu, 06 Feb 2020 14:25:59 +0000 |
parents | 26c203b97e49 |
children | 5e7b54a2591a |
files | .hgignore win32-build/License.rtf win32-build/build.cmd win32-build/main.bmp win32-build/pyin.pro win32-build/pyin.vcxproj win32-build/pyin.wxs win32-build/top.bmp win32-build/vamp-plugin.map win32-build/winicon.ico |
diffstat | 10 files changed, 376 insertions(+), 40 deletions(-) [+] |
line wrap: on
line diff
--- a/.hgignore Thu Feb 06 11:15:41 2020 +0000 +++ b/.hgignore Thu Feb 06 14:25:59 2020 +0000 @@ -8,3 +8,8 @@ test/regression/obtained-* *.orig *.bak +win32-build/release +win32-build/x64 +*.msi + +
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/win32-build/build.cmd Thu Feb 06 14:25:59 2020 +0000 @@ -0,0 +1,88 @@ + +rem Run this from within the top-level project dir: win32-build\build.cmd + +rem NB this nowadays only makes a 64-bit Windows build, not a 32-bit one! + +echo on + +set STARTPWD=%CD% + +set vcvarsall="C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Auxiliary\Build\vcvarsall.bat" + +if not exist %vcvarsall% ( +@ echo "Could not find MSVC vars batch file" +@ exit /b 2 +) + +set WIXDIR=C:\Program Files (x86)\WiX Toolset v3.11 +if not exist "%WIXDIR%\bin" ( +@ echo Could not find WiX Toolset +@ exit /b 2 +) + +set NAME=Open Source Developer, Christopher Cannam + +set ORIGINALPATH=%PATH% +set PATH=C:\Program Files (x86)\Microsoft SDKs\Windows\v7.1A\Bin;%PATH% + +set ARG=%1 +shift +if "%ARG%" == "sign" ( +@ echo NOTE: sign option specified, will attempt to codesign exe and msi +@ echo NOTE: starting by codesigning an unrelated executable, so we know +@ echo NOTE: whether it'll work before doing the entire build +copy "%WIXDIR%\bin\light.exe" signtest.exe +signtool sign /v /n "%NAME%" /t http://time.certum.pl /fd sha1 /a signtest.exe +if errorlevel 1 exit /b %errorlevel% +signtool verify /pa signtest.exe +if errorlevel 1 exit /b %errorlevel% +del signtest.exe +@ echo NOTE: success +) else ( +@ echo NOTE: sign option not specified, will not codesign anything +) + +call %vcvarsall% amd64 + +set PATH=%SMLNJDIR%\bin;%WIXDIR%\bin;%PATH% + +cd %STARTPWD% + +cd win32-build +msbuild pyin.vcxproj /t:Rebuild /p:Configuration=Release +if %errorlevel% neq 0 exit /b %errorlevel% + +cd %STARTPWD% + +call %vcvarsall% x86 + +cd win32-build +msbuild pyin.vcxproj /t:Rebuild /p:Configuration=Release +if %errorlevel% neq 0 exit /b %errorlevel% + +if "%ARG%" == "sign" ( +@echo Signing plugins +signtool sign /v /n "%NAME%" /t http://time.certum.pl /fd sha1 /a Release\pyin.dll +signtool verify /pa Release\pyin.dll +signtool sign /v /n "%NAME%" /t http://time.certum.pl /fd sha1 /a x64\Release\pyin.dll +signtool verify /pa x64\Release\pyin.dll +) + +del pyin.msi +candle -v pyin.wxs +light -ext WixUIExtension -v pyin.wixobj +if %errorlevel% neq 0 exit /b %errorlevel% +del pyin.wixobj +del pyin.wixpdb + +if "%ARG%" == "sign" ( +@echo Signing package +signtool sign /v /n "%NAME%" /t http://time.certum.pl /fd sha1 /a pyin.msi +signtool verify /pa pyin.msi +) + +set PATH=%ORIGINALPATH% + +cd %STARTPWD% +@echo Done +
--- a/win32-build/pyin.pro Thu Feb 06 11:15:41 2020 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,36 +0,0 @@ -TEMPLATE = lib - -INCLUDEPATH += ../../sv-dependency-builds/win32-mingw/include ../../../boost_1_57_0 -LIBS += ../../sv-dependency-builds/win32-mingw/lib/libvamp-sdk.a -Wl,--version-script=../win32-build/vamp-plugin.map - -CONFIG -= qt -CONFIG += plugin release warn_on - -TARGET = pyin - -SOURCES += \ - ../YinUtil.cpp \ - ../Yin.cpp \ - ../SparseHMM.cpp \ - ../MonoPitchHMM.cpp \ - ../MonoNoteParameters.cpp \ - ../MonoNoteHMM.cpp \ - ../MonoNote.cpp \ - ../libmain.cpp \ - ../YinVamp.cpp \ - ../PYinVamp.cpp \ - ../LocalCandidatePYIN.cpp - -HEADERS += \ - ../YinUtil.h \ - ../Yin.h \ - ../SparseHMM.h \ - ../MonoPitchHMM.h \ - ../MonoNoteParameters.h \ - ../MonoNoteHMM.h \ - ../MonoNote.h \ - ../MeanFilter.h \ - ../YinVamp.h \ - ../PYinVamp.h \ - ../LocalCandidatePYIN.h -
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/win32-build/pyin.vcxproj Thu Feb 06 14:25:59 2020 +0000 @@ -0,0 +1,160 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <ItemGroup Label="ProjectConfigurations"> + <ProjectConfiguration Include="Debug|Win32"> + <Configuration>Debug</Configuration> + <Platform>Win32</Platform> + </ProjectConfiguration> + <ProjectConfiguration Include="Release|Win32"> + <Configuration>Release</Configuration> + <Platform>Win32</Platform> + </ProjectConfiguration> + <ProjectConfiguration Include="Debug|x64"> + <Configuration>Debug</Configuration> + <Platform>x64</Platform> + </ProjectConfiguration> + <ProjectConfiguration Include="Release|x64"> + <Configuration>Release</Configuration> + <Platform>x64</Platform> + </ProjectConfiguration> + </ItemGroup> + <PropertyGroup Label="Globals"> + <ProjectGuid>{E3D050ED-1FF6-3735-9954-36D5ED2E5027}</ProjectGuid> + <RootNamespace>pyin</RootNamespace> + <WindowsTargetPlatformVersion>10.0.18362.0</WindowsTargetPlatformVersion> + <WindowsTargetPlatformMinVersion>10.0.18362.0</WindowsTargetPlatformMinVersion> + </PropertyGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" /> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration"> + <ConfigurationType>DynamicLibrary</ConfigurationType> + <UseDebugLibraries>true</UseDebugLibraries> + <PlatformToolset>v142</PlatformToolset> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration"> + <ConfigurationType>DynamicLibrary</ConfigurationType> + <UseDebugLibraries>false</UseDebugLibraries> + <PlatformToolset>v142</PlatformToolset> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration"> + <ConfigurationType>DynamicLibrary</ConfigurationType> + <UseDebugLibraries>true</UseDebugLibraries> + <PlatformToolset>v142</PlatformToolset> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration"> + <ConfigurationType>DynamicLibrary</ConfigurationType> + <UseDebugLibraries>false</UseDebugLibraries> + <PlatformToolset>v142</PlatformToolset> + </PropertyGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" /> + <ImportGroup Label="ExtensionSettings" /> + <PropertyGroup Label="UserMacros" /> + <PropertyGroup> + <TargetName>pyin</TargetName> + </PropertyGroup> + + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> + <ClCompile> + <AdditionalIncludeDirectories>..\..\vamp-plugin-sdk;/Libraries/boost_1_69_0;..\..\boost_1_69_0;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> + <DebugInformationFormat>None</DebugInformationFormat> + <DisableSpecificWarnings>4577;4467;4996;%(DisableSpecificWarnings)</DisableSpecificWarnings> + <Optimization>MaxSpeed</Optimization> + <PreprocessorDefinitions>_WINDOWS;UNICODE;_UNICODE;WIN32;_ENABLE_EXTENDED_ALIGNED_STORAGE;WIN64;NDEBUG;NOMINMAX;_USE_MATH_DEFINES;HAVE_C99_VARARGS_MACROS;_HAS_STD_BYTE=0;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <RuntimeLibrary>MultiThreaded</RuntimeLibrary> + <TreatWChar_tAsBuiltInType>true</TreatWChar_tAsBuiltInType> + <WarningLevel>Level3</WarningLevel> + </ClCompile> + <Link> + <LinkDLL>true</LinkDLL> + <DataExecutionPrevention>true</DataExecutionPrevention> + <AdditionalOptions>/EXPORT:vampGetPluginDescriptor %(AdditionalOptions)</AdditionalOptions> + <OutputFile>$(OutDir)\pyin.dll</OutputFile> + </Link> + </ItemDefinitionGroup> + + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'"> + <ClCompile> + <AdditionalIncludeDirectories>..\..\vamp-plugin-sdk;/Libraries/boost_1_69_0;..\..\boost_1_69_0;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> + <DebugInformationFormat>ProgramDatabase</DebugInformationFormat> + <DisableSpecificWarnings>4577;4467;4996;%(DisableSpecificWarnings)</DisableSpecificWarnings> + <Optimization>Disabled</Optimization> + <PreprocessorDefinitions>_WINDOWS;UNICODE;_UNICODE;WIN32;_ENABLE_EXTENDED_ALIGNED_STORAGE;WIN64;_DEBUG;NOMINMAX;_USE_MATH_DEFINES;HAVE_C99_VARARGS_MACROS;_HAS_STD_BYTE=0;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary> + <TreatWChar_tAsBuiltInType>true</TreatWChar_tAsBuiltInType> + <WarningLevel>Level3</WarningLevel> + </ClCompile> + <Link> + <LinkDLL>true</LinkDLL> + <DataExecutionPrevention>true</DataExecutionPrevention> + <AdditionalOptions>/EXPORT:vampGetPluginDescriptor %(AdditionalOptions)</AdditionalOptions> + <OutputFile>$(OutDir)\pyin.dll</OutputFile> + </Link> + </ItemDefinitionGroup> + + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> + <ClCompile> + <AdditionalIncludeDirectories>..\..\vamp-plugin-sdk;/Libraries/boost_1_69_0;..\..\boost_1_69_0;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> + <DebugInformationFormat>None</DebugInformationFormat> + <DisableSpecificWarnings>4577;4467;4996;%(DisableSpecificWarnings)</DisableSpecificWarnings> + <Optimization>MaxSpeed</Optimization> + <PreprocessorDefinitions>_WINDOWS;UNICODE;_UNICODE;WIN32;_ENABLE_EXTENDED_ALIGNED_STORAGE;WIN64;NDEBUG;NOMINMAX;_USE_MATH_DEFINES;HAVE_C99_VARARGS_MACROS;_HAS_STD_BYTE=0;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <RuntimeLibrary>MultiThreaded</RuntimeLibrary> + <WarningLevel>Level3</WarningLevel> + </ClCompile> + <Link> + <LinkDLL>true</LinkDLL> + <DataExecutionPrevention>true</DataExecutionPrevention> + <AdditionalOptions>/EXPORT:vampGetPluginDescriptor %(AdditionalOptions)</AdditionalOptions> + <OutputFile>$(OutDir)\pyin.dll</OutputFile> + </Link> + </ItemDefinitionGroup> + + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> + <ClCompile> + <AdditionalIncludeDirectories>..\..\vamp-plugin-sdk;/Libraries/boost_1_69_0;..\..\boost_1_69_0;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> + <DebugInformationFormat>ProgramDatabase</DebugInformationFormat> + <DisableSpecificWarnings>4577;4467;4996;%(DisableSpecificWarnings)</DisableSpecificWarnings> + <Optimization>Disabled</Optimization> + <PreprocessorDefinitions>_WINDOWS;UNICODE;_UNICODE;WIN32;_ENABLE_EXTENDED_ALIGNED_STORAGE;WIN64;_DEBUG;NOMINMAX;_USE_MATH_DEFINES;HAVE_C99_VARARGS_MACROS;_HAS_STD_BYTE=0;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary> + <WarningLevel>Level3</WarningLevel> + </ClCompile> + <Link> + <LinkDLL>true</LinkDLL> + <DataExecutionPrevention>true</DataExecutionPrevention> + <AdditionalOptions>/EXPORT:vampGetPluginDescriptor %(AdditionalOptions)</AdditionalOptions> + <OutputFile>$(OutDir)\pyin.dll</OutputFile> + </Link> + </ItemDefinitionGroup> + + <ItemGroup> + <ClCompile Include="..\..\vamp-plugin-sdk\src\vamp-sdk\FFT.cpp" /> + <ClCompile Include="..\LocalCandidatePYIN.cpp" /> + <ClCompile Include="..\MonoNote.cpp" /> + <ClCompile Include="..\MonoNoteHMM.cpp" /> + <ClCompile Include="..\MonoNoteParameters.cpp" /> + <ClCompile Include="..\MonoPitchHMM.cpp" /> + <ClCompile Include="..\PYinVamp.cpp" /> + <ClCompile Include="..\..\vamp-plugin-sdk\src\vamp-sdk\PluginAdapter.cpp" /> + <ClCompile Include="..\..\vamp-plugin-sdk\src\vamp-sdk\RealTime.cpp" /> + <ClCompile Include="..\SparseHMM.cpp" /> + <ClCompile Include="..\Yin.cpp" /> + <ClCompile Include="..\YinUtil.cpp" /> + <ClCompile Include="..\YinVamp.cpp" /> + <ClCompile Include="..\libmain.cpp" /> + </ItemGroup> + <ItemGroup> + <ClInclude Include="LocalCandidatePYIN.h" /> + <ClInclude Include="MeanFilter.h" /> + <ClInclude Include="MonoNote.h" /> + <ClInclude Include="MonoNoteHMM.h" /> + <ClInclude Include="MonoNoteParameters.h" /> + <ClInclude Include="MonoPitchHMM.h" /> + <ClInclude Include="PYinVamp.h" /> + <ClInclude Include="SparseHMM.h" /> + <ClInclude Include="Yin.h" /> + <ClInclude Include="YinUtil.h" /> + <ClInclude Include="YinVamp.h" /> + </ItemGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" /> + <ImportGroup Label="ExtensionTargets" /> +</Project>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/win32-build/pyin.wxs Thu Feb 06 14:25:59 2020 +0000 @@ -0,0 +1,123 @@ +<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi"> + + <Product + Name="pYIN" + Id="*" + Language="1033" + Codepage="1252" + Version="1.2" + UpgradeCode="3b77b120-609d-41d6-a181-ae612cace655" + Manufacturer="Queen Mary, University of London"> + + <Package + Id="*" + Keywords="Installer" + Description="pYIN 64-bit Installer" + Comments="Copyright (c) 2020 Queen Mary, University of London" + Manufacturer="Queen Mary, University of London" + InstallerVersion="200" + Languages="1033" + Compressed="yes" + Platform="x64" + SummaryCodepage="1252"/> + + <MajorUpgrade DowngradeErrorMessage="A later version of pYIN is already installed. Setup will now exit."/> + + <Media Id="1" Cabinet="PYIN.cab" EmbedCab="yes" DiskPrompt="CD-ROM #1"/> + <Property Id="DiskPrompt" Value="pYIN Installation [1]"/> + + <Directory Id="TARGETDIR" Name="SourceDir"> + + <Directory Id="ProgramFiles64Folder" Name="PFiles64"> + <Directory Id="VampPlugins" Name="Vamp Plugins"> + + <Component Win64="yes" + Id="Plugin64" + Guid="cbd4079a-6d13-4103-98f2-8c00b0307a4e"> + <File + Id="README64" + Name="pyin-README.txt" + Source="..\README"/> + <File + Id="COPYING64" + Name="pyin-COPYING.txt" + Source="..\COPYING"/> + <File + Id="Cat64" + Name="pyin.cat" + Source="..\pyin.cat"/> + <File + Id="Turtle64" + Name="pyin.n3" + Source="..\pyin.n3"/> + <File + Id="PluginLibrary64" + Name="pyin.dll" + Source="x64\Release\pyin.dll"/> + </Component> + + </Directory> <!-- vamp --> + </Directory> <!-- pfiles64 --> + + <Directory Id="ProgramFilesFolder" Name="PFiles"> + <Directory Id="Vamp32Plugins" Name="Vamp Plugins"> + + <Component + Id="Plugin32" + Guid="229efe01-7741-43f0-a9d9-a11d8ec6ed21"> + <File + Id="README32" + Name="pyin-README.txt" + Source="..\README"/> + <File + Id="COPYING32" + Name="pyin-COPYING.txt" + Source="..\COPYING"/> + <File + Id="Cat32" + Name="pyin.cat" + Source="..\pyin.cat"/> + <File + Id="Turtle32" + Name="pyin.n3" + Source="..\pyin.n3"/> + <File + Id="PluginLibrary32" + Name="pyin.dll" + Source="Release\pyin.dll"/> + </Component> + + </Directory> + </Directory> + + </Directory> + + <Feature + Id="Complete" + Title="Required files" + Description="Installs the required files for pYIN." + AllowAdvertise="no" + Absent="disallow" + Level="1"> + <ComponentRef Id="Plugin64"/> + <ComponentRef Id="Plugin32"/> + </Feature> + + <UI> + <UIRef Id="WixUI_Minimal" /> + <UIRef Id="WixUI_ErrorProgressText" /> + </UI> + + <Property Id="WIXUI_DONTVALIDATEPATH" Value="1" /> + <Property Id="WixAppFolder" Value="WixPerMachineFolder" /> + <WixVariable Id="WixUILicenseRtf" Value="License.rtf" /> + + <Icon Id="winicon.ico" SourceFile="winicon.ico"/> + <Property Id="ARPPRODUCTICON" Value="winicon.ico" /> + + <WixVariable Id="WixUIBannerBmp" Value="top.bmp"/> + <WixVariable Id="WixUIDialogBmp" Value="main.bmp"/> + + </Product> +</Wix> +