Build updates for Windows

This commit is contained in:
Chris Cannam
2021-03-05 10:31:00 +00:00
parent 8b86e0862c
commit 120edca223
8 changed files with 119 additions and 87 deletions

9
cross/windows-cl.txt Normal file
View File

@@ -0,0 +1,9 @@
[properties]
needs_exe_wrapper = false
[binaries]
c = 'cl'
cpp = 'cl'

9
cross/windows-clang.txt Normal file
View File

@@ -0,0 +1,9 @@
[properties]
needs_exe_wrapper = false
[binaries]
c = 'clang'
cpp = 'clang++'

View File

@@ -54,6 +54,7 @@ using RubberBand::gettimeofday;
#ifdef _MSC_VER
using RubberBand::usleep;
#define strdup _strdup
#endif
double tempo_convert(const char *str)

View File

@@ -5,7 +5,9 @@ project(
version: '1.9.0',
license: 'GPL-2.0-or-later',
default_options: [
'cpp_std=c++11',
# All Rubber Band code is actually C++98, but some compilers no
# longer support that
'cpp_std=c++14',
'buildtype=release',
'b_ndebug=if-release',
'b_lundef=true',
@@ -271,6 +273,13 @@ if not sndfile_dep.found()
has_headers: ['sndfile.h'],
header_args: extra_include_args,
required: false)
if not sndfile_dep.found()
sndfile_dep = cpp.find_library('sndfile-1',
dirs: get_option('extra_lib_dirs'),
has_headers: ['sndfile.h'],
header_args: extra_include_args,
required: false)
endif
endif
have_sndfile = sndfile_dep.found()
@@ -323,8 +332,8 @@ if system == 'darwin'
endif # end architecture
elif system == 'windows'
feature_defines += ['-D_WIN32', '-DNOMINMAX', '-D_USE_MATH_DEFINES', '-DGETOPT_API=']
if cpp.get_id() == 'msvc'
feature_defines += ['-DWIN32', '-D__MSVC__', '-DNOMINMAX', '-D_USE_MATH_DEFINES', '-DGETOPT_API=']
ladspa_symbol_args += ['-EXPORT:ladspa_descriptor']
vamp_symbol_args += ['-EXPORT:vampGetPluginDescriptor']
endif

View File

@@ -6,7 +6,7 @@ OPTFLAGS := -DNDEBUG -ffast-math -O3 -ftree-vectorize
ARCHFLAGS :=
CXXFLAGS := $(ARCHFLAGS) $(OPTFLAGS) -I. -Isrc -Irubberband -DHAVE_LIBSAMPLERATE -DUSE_KISSFFT -DNO_THREAD_CHECKS -DUSE_PTHREADS -DNO_TIMING -DHAVE_POSIX_MEMALIGN -DNDEBUG
CXXFLAGS := -std=c++98 $(ARCHFLAGS) $(OPTFLAGS) -I. -Isrc -Irubberband -DHAVE_LIBSAMPLERATE -DUSE_KISSFFT -DNO_THREAD_CHECKS -DUSE_PTHREADS -DNO_TIMING -DHAVE_POSIX_MEMALIGN -DNDEBUG
CFLAGS := $(ARCHFLAGS) $(OPTFLAGS)

View File

@@ -19,26 +19,27 @@
</ProjectConfiguration>
</ItemGroup>
<PropertyGroup Label="Globals">
<ProjectGuid>{06838307-FEAA-4DB0-8E08-AF19698E9C40}</ProjectGuid>
<RootNamespace>rubberband-program</RootNamespace>
<ProjectGuid>{020CEB11-EF4E-400E-971D-A35DB69D7CF9}</ProjectGuid>
<RootNamespace>rubberband-library</RootNamespace>
<Keyword>Win32Proj</Keyword>
<WindowsTargetPlatformVersion>10.0</WindowsTargetPlatformVersion>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<PlatformToolset>v140</PlatformToolset>
<ConfigurationType>StaticLibrary</ConfigurationType>
<PlatformToolset>v142</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<PlatformToolset>v140</PlatformToolset>
<ConfigurationType>StaticLibrary</ConfigurationType>
<PlatformToolset>v142</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<PlatformToolset>v140</PlatformToolset>
<ConfigurationType>StaticLibrary</ConfigurationType>
<PlatformToolset>v142</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<PlatformToolset>v140</PlatformToolset>
<ConfigurationType>StaticLibrary</ConfigurationType>
<PlatformToolset>v142</PlatformToolset>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings">
@@ -62,67 +63,43 @@
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<OutDir>Debug\</OutDir>
<IntDir>Debug\</IntDir>
<LinkIncremental>true</LinkIncremental>
<CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
<CodeAnalysisRules />
<CodeAnalysisRuleAssemblies />
<EnableManagedIncrementalBuild>true</EnableManagedIncrementalBuild>
<SourcePath>$(SourcePath)</SourcePath>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<LinkIncremental>true</LinkIncremental>
<CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
<CodeAnalysisRules />
<CodeAnalysisRuleAssemblies />
<EnableManagedIncrementalBuild>true</EnableManagedIncrementalBuild>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<OutDir>Release\</OutDir>
<IntDir>Release\</IntDir>
<LinkIncremental />
<CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
<CodeAnalysisRules />
<CodeAnalysisRuleAssemblies />
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<LinkIncremental />
<CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
<CodeAnalysisRules />
<CodeAnalysisRuleAssemblies />
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<ClCompile>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>.;.\rubberband;.\src;C:\Program Files (x86)\Mega-Nerd\libsndfile\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>__MSVC__;WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<AdditionalIncludeDirectories>..;..\src;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>__MSVC__;WIN32;_DEBUG;_LIB;NOMINMAX;_USE_MATH_DEFINES;USE_KISSFFT;USE_SPEEX;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MinimalRebuild>true</MinimalRebuild>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
<PrecompiledHeader />
<WarningLevel>Level3</WarningLevel>
<WarningLevel>Level2</WarningLevel>
<DebugInformationFormat>EditAndContinue</DebugInformationFormat>
<ShowIncludes>false</ShowIncludes>
</ClCompile>
<Link>
<AdditionalDependencies>.\Debug\rubberband-library.lib;C:\Program Files (x86)\Mega-Nerd\libsndfile\lib\libsndfile-1.lib;%(AdditionalDependencies)</AdditionalDependencies>
<GenerateDebugInformation>true</GenerateDebugInformation>
<SubSystem>Console</SubSystem>
<TargetMachine>MachineX86</TargetMachine>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<ClCompile>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>.;.\rubberband;.\src;C:\Program Files\Mega-Nerd\libsndfile\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>__MSVC__;WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<AdditionalIncludeDirectories>..;..\src;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>__MSVC__;WIN32;_DEBUG;_LIB;NOMINMAX;_USE_MATH_DEFINES;USE_KISSFFT;USE_SPEEX;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
<PrecompiledHeader>
</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<WarningLevel>Level2</WarningLevel>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
<ShowIncludes>false</ShowIncludes>
</ClCompile>
<Link>
<AdditionalDependencies>.\x64\Debug\rubberband-library.lib;C:\Program Files\Mega-Nerd\libsndfile\lib\libsndfile-1.lib;%(AdditionalDependencies)</AdditionalDependencies>
<GenerateDebugInformation>true</GenerateDebugInformation>
<SubSystem>Console</SubSystem>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<ClCompile>
@@ -131,23 +108,16 @@
<IntrinsicFunctions>true</IntrinsicFunctions>
<FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
<OmitFramePointers>true</OmitFramePointers>
<AdditionalIncludeDirectories>.;.\rubberband;.\src;C:\Program Files (x86)\Mega-Nerd\libsndfile\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>__MSVC__;WIN32;NDEBUG;_CONSOLE;WANT_TIMING;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<AdditionalIncludeDirectories>..;..\src;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>__MSVC__;WIN32;NDEBUG;_LIB;NOMINMAX;_USE_MATH_DEFINES;USE_KISSFFT;NO_TIMING;USE_SPEEX;NO_THREAD_CHECKS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<BufferSecurityCheck>false</BufferSecurityCheck>
<EnableEnhancedInstructionSet>StreamingSIMDExtensions</EnableEnhancedInstructionSet>
<FloatingPointModel>Fast</FloatingPointModel>
<PrecompiledHeader />
<WarningLevel>Level2</WarningLevel>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
</ClCompile>
<Link>
<AdditionalDependencies>.\Release\rubberband-library.lib;C:\Program Files (x86)\Mega-Nerd\libsndfile\lib\libsndfile-1.lib;%(AdditionalDependencies)</AdditionalDependencies>
<GenerateDebugInformation>false</GenerateDebugInformation>
<SubSystem>Console</SubSystem>
<OptimizeReferences>true</OptimizeReferences>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<TargetMachine>MachineX86</TargetMachine>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<ClCompile>
@@ -156,9 +126,10 @@
<IntrinsicFunctions>true</IntrinsicFunctions>
<FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
<OmitFramePointers>true</OmitFramePointers>
<AdditionalIncludeDirectories>.;.\rubberband;.\src;C:\Program Files\Mega-Nerd\libsndfile\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>__MSVC__;WIN32;NDEBUG;_CONSOLE;WANT_TIMING;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<AdditionalIncludeDirectories>..;..\src;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>__MSVC__;WIN32;NDEBUG;_LIB;NOMINMAX;_USE_MATH_DEFINES;USE_KISSFFT;NO_TIMING;USE_SPEEX;NO_THREAD_CHECKS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<BufferSecurityCheck>false</BufferSecurityCheck>
<EnableEnhancedInstructionSet>StreamingSIMDExtensions</EnableEnhancedInstructionSet>
<FloatingPointModel>Fast</FloatingPointModel>
<PrecompiledHeader>
@@ -166,28 +137,59 @@
<WarningLevel>Level2</WarningLevel>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
</ClCompile>
<Link>
<AdditionalDependencies>.\x64\Release\rubberband-library.lib;C:\Program Files\Mega-Nerd\libsndfile\lib\libsndfile-1.lib;%(AdditionalDependencies)</AdditionalDependencies>
<GenerateDebugInformation>false</GenerateDebugInformation>
<SubSystem>Console</SubSystem>
<OptimizeReferences>true</OptimizeReferences>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
</Link>
</ItemDefinitionGroup>
<ItemGroup>
<ClInclude Include="rubberband\RubberBandStretcher.h" />
<ClInclude Include="src\float_cast\float_cast.h" />
<ClInclude Include="src\getopt\getopt.h" />
<ClInclude Include="src\getopt\unistd.h" />
<ClInclude Include="..\rubberband\rubberband-c.h" />
<ClInclude Include="..\rubberband\RubberBandStretcher.h" />
<ClInclude Include="..\src\audiocurves\CompoundAudioCurve.h" />
<ClInclude Include="..\src\audiocurves\ConstantAudioCurve.h" />
<ClInclude Include="..\src\audiocurves\HighFrequencyAudioCurve.h" />
<ClInclude Include="..\src\audiocurves\PercussiveAudioCurve.h" />
<ClInclude Include="..\src\audiocurves\SilentAudioCurve.h" />
<ClInclude Include="..\src\audiocurves\SpectralDifferenceAudioCurve.h" />
<ClInclude Include="..\src\base\Profiler.h" />
<ClInclude Include="..\src\base\RingBuffer.h" />
<ClInclude Include="..\src\base\Scavenger.h" />
<ClInclude Include="..\src\dsp\AudioCurveCalculator.h" />
<ClInclude Include="..\src\dsp\FFT.h" />
<ClInclude Include="..\src\dsp\MovingMedian.h" />
<ClInclude Include="..\src\dsp\Resampler.h" />
<ClInclude Include="..\src\dsp\SampleFilter.h" />
<ClInclude Include="..\src\dsp\SincWindow.h" />
<ClInclude Include="..\src\dsp\Window.h" />
<ClInclude Include="..\src\float_cast\float_cast.h" />
<ClInclude Include="..\src\speex\speex_resampler.h" />
<ClInclude Include="..\src\StretchCalculator.h" />
<ClInclude Include="..\src\StretcherChannelData.h" />
<ClInclude Include="..\src\StretcherImpl.h" />
<ClInclude Include="..\src\system\Allocators.h" />
<ClInclude Include="..\src\system\sysutils.h" />
<ClInclude Include="..\src\system\Thread.h" />
<ClInclude Include="..\src\system\VectorOps.h" />
</ItemGroup>
<ItemGroup>
<ClCompile Include="main\main.cpp" />
<ClCompile Include="src\getopt\getopt.c" />
<ClCompile Include="src\getopt\getopt_long.c" />
</ItemGroup>
<ItemGroup>
<None Include="debug\BuildLog.htm" />
<None Include="wub\index.html" />
<ClCompile Include="..\src\audiocurves\CompoundAudioCurve.cpp" />
<ClCompile Include="..\src\audiocurves\ConstantAudioCurve.cpp" />
<ClCompile Include="..\src\audiocurves\HighFrequencyAudioCurve.cpp" />
<ClCompile Include="..\src\audiocurves\PercussiveAudioCurve.cpp" />
<ClCompile Include="..\src\audiocurves\SilentAudioCurve.cpp" />
<ClCompile Include="..\src\audiocurves\SpectralDifferenceAudioCurve.cpp" />
<ClCompile Include="..\src\base\Profiler.cpp" />
<ClCompile Include="..\src\dsp\AudioCurveCalculator.cpp" />
<ClCompile Include="..\src\dsp\FFT.cpp" />
<ClCompile Include="..\src\dsp\Resampler.cpp" />
<ClCompile Include="..\src\kissfft\kiss_fft.c" />
<ClCompile Include="..\src\kissfft\kiss_fftr.c" />
<ClCompile Include="..\src\rubberband-c.cpp" />
<ClCompile Include="..\src\RubberBandStretcher.cpp" />
<ClCompile Include="..\src\speex\resample.c" />
<ClCompile Include="..\src\StretchCalculator.cpp" />
<ClCompile Include="..\src\StretcherChannelData.cpp" />
<ClCompile Include="..\src\StretcherImpl.cpp" />
<ClCompile Include="..\src\StretcherProcess.cpp" />
<ClCompile Include="..\src\system\Allocators.cpp" />
<ClCompile Include="..\src\system\sysutils.cpp" />
<ClCompile Include="..\src\system\Thread.cpp" />
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">

View File

@@ -29,7 +29,7 @@
#include <utility>
#include <iostream>
#ifndef WIN32
#ifndef _MSC_VER
#include <sys/time.h>
#endif

View File

@@ -24,13 +24,6 @@
#ifndef RUBBERBAND_SYSUTILS_H
#define RUBBERBAND_SYSUTILS_H
#ifdef _MSC_VER
# if _MSC_VER < 1800
# include "float_cast/float_cast.h"
# endif
# define R__ __restrict
#endif
#ifdef __clang__
# define R__ __restrict__
#else
@@ -39,6 +32,15 @@
# endif
#endif
#ifdef _MSC_VER
# if _MSC_VER < 1800
# include "float_cast/float_cast.h"
# endif
# ifndef R__
# define R__ __restrict
# endif
#endif
#ifndef R__
# define R__
#endif