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 #ifdef _MSC_VER
using RubberBand::usleep; using RubberBand::usleep;
#define strdup _strdup
#endif #endif
double tempo_convert(const char *str) double tempo_convert(const char *str)

View File

@@ -5,7 +5,9 @@ project(
version: '1.9.0', version: '1.9.0',
license: 'GPL-2.0-or-later', license: 'GPL-2.0-or-later',
default_options: [ 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', 'buildtype=release',
'b_ndebug=if-release', 'b_ndebug=if-release',
'b_lundef=true', 'b_lundef=true',
@@ -271,6 +273,13 @@ if not sndfile_dep.found()
has_headers: ['sndfile.h'], has_headers: ['sndfile.h'],
header_args: extra_include_args, header_args: extra_include_args,
required: false) 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 endif
have_sndfile = sndfile_dep.found() have_sndfile = sndfile_dep.found()
@@ -323,8 +332,8 @@ if system == 'darwin'
endif # end architecture endif # end architecture
elif system == 'windows' elif system == 'windows'
feature_defines += ['-D_WIN32', '-DNOMINMAX', '-D_USE_MATH_DEFINES', '-DGETOPT_API=']
if cpp.get_id() == 'msvc' if cpp.get_id() == 'msvc'
feature_defines += ['-DWIN32', '-D__MSVC__', '-DNOMINMAX', '-D_USE_MATH_DEFINES', '-DGETOPT_API=']
ladspa_symbol_args += ['-EXPORT:ladspa_descriptor'] ladspa_symbol_args += ['-EXPORT:ladspa_descriptor']
vamp_symbol_args += ['-EXPORT:vampGetPluginDescriptor'] vamp_symbol_args += ['-EXPORT:vampGetPluginDescriptor']
endif endif

View File

@@ -6,7 +6,7 @@ OPTFLAGS := -DNDEBUG -ffast-math -O3 -ftree-vectorize
ARCHFLAGS := 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) CFLAGS := $(ARCHFLAGS) $(OPTFLAGS)

View File

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

View File

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

View File

@@ -24,13 +24,6 @@
#ifndef RUBBERBAND_SYSUTILS_H #ifndef RUBBERBAND_SYSUTILS_H
#define 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__ #ifdef __clang__
# define R__ __restrict__ # define R__ __restrict__
#else #else
@@ -39,6 +32,15 @@
# endif # endif
#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__ #ifndef R__
# define R__ # define R__
#endif #endif