Skip to content

Commit

Permalink
Merge pull request #2 from mockingbirdnest/MSVC
Browse files Browse the repository at this point in the history
Initial support for MSVC
  • Loading branch information
pleroy authored Oct 15, 2024
2 parents c421893 + 53de452 commit 09654cd
Show file tree
Hide file tree
Showing 11 changed files with 1,415 additions and 1,133 deletions.
27 changes: 20 additions & 7 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,8 +1,21 @@
*~
*.a
*.o
perf.data
src/*/*/check_exhaustive
src/*/*/check_worst
src/*/*/check_special
src/*/*/check_exact
src/*/*/perf
bin
build
lib

Debug
Release

.vs
*.tlog
*.pdb
*.lib
*.obj
*.idb
*.exe
*.ilk
*.log
*.iobj
*.ipdb
*.exp
3 changes: 3 additions & 0 deletions include/cos.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
#pragma once

double __cdecl cr_cos(double x);
3 changes: 3 additions & 0 deletions include/sin.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
#pragma once

double __cdecl cr_sin(double x);
108 changes: 108 additions & 0 deletions msvc/core-math.props
Original file line number Diff line number Diff line change
@@ -0,0 +1,108 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup Label="Globals">
<Keyword>Win32Proj</Keyword>
<WindowsTargetPlatformVersion>10.0</WindowsTargetPlatformVersion>
</PropertyGroup>
<!--Define project configurations. Nothing interesting can happen here.-->
<ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="Debug|x64">
<Configuration>Debug</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|x64">
<Configuration>Release</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
</ItemGroup>

<!--Microsoft C++ stuff.-->
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />

<!--Definitions.-->
<PropertyGroup>
<!--Predicates.-->
<PrincipiaCompilerClangLLVM>false</PrincipiaCompilerClangLLVM>
<PrincipiaCompilerClangLLVM Condition="$(Configuration)==Release_LLVM">true</PrincipiaCompilerClangLLVM>
<PrincipiaOptimize>false</PrincipiaOptimize>
<PrincipiaOptimize Condition="$(Configuration.StartsWith('Release'))">true</PrincipiaOptimize>
<PrincipiaMainProject>false</PrincipiaMainProject>
<PrincipiaMainProject Condition="$(ProjectName) == benchmarks or
$(ProjectName) == tests">true</PrincipiaMainProject>
<!--Dependency paths.-->
<PrincipiaDependencyConfiguration>Debug</PrincipiaDependencyConfiguration>
<PrincipiaDependencyConfiguration Condition="$(PrincipiaOptimize)">Release</PrincipiaDependencyConfiguration>
</PropertyGroup>

<!--Compiler.-->
<PropertyGroup>
<PlatformToolset>v143</PlatformToolset>
<OutDir>$(SolutionDir)$(Configuration)\$(Platform)\</OutDir>
<IntDir>$(Configuration)\$(Platform)\</IntDir>
</PropertyGroup>

<!--Target.-->
<PropertyGroup>
<ConfigurationType>StaticLibrary</ConfigurationType>
<ConfigurationType Condition="$(PrincipiaMainProject)">Application</ConfigurationType>
</PropertyGroup>
<ItemDefinitionGroup Condition="$(ConfigurationType)==Application">
<Link>
<SubSystem>Console</SubSystem>
</Link>
</ItemDefinitionGroup>

<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />

<!--Common options.-->
<PropertyGroup>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<ItemDefinitionGroup>
<ClCompile>
<AdditionalOptions>/Zc:__cplusplus %(AdditionalOptions)</AdditionalOptions>
<CallingConvention>vectorcall</CallingConvention>
<LanguageStandard>stdcpp20</LanguageStandard>
<WarningLevel>Level3</WarningLevel>
<TreatWarningAsError>true</TreatWarningAsError>
<SDLCheck>true</SDLCheck>
<AdditionalIncludeDirectories>$(SolutionDir)..\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
<DisableSpecificWarnings>4068;4146;4244;%(DisableSpecificWarnings)</DisableSpecificWarnings>
<MultiProcessorCompilation>true</MultiProcessorCompilation>
</ClCompile>
<Link>
<GenerateDebugInformation>DebugFastLink</GenerateDebugInformation>
<LinkTimeCodeGeneration>Default</LinkTimeCodeGeneration>
</Link>
</ItemDefinitionGroup>
<!--Debug options.-->
<PropertyGroup Condition="!$(PrincipiaOptimize)">
<UseDebugLibraries>true</UseDebugLibraries>
</PropertyGroup>
<ItemDefinitionGroup Condition="!$(PrincipiaOptimize)">
<ClCompile>
<Optimization>Disabled</Optimization>
</ClCompile>
<Link></Link>
</ItemDefinitionGroup>
<!--Release options.-->
<PropertyGroup Condition="$(PrincipiaOptimize)">
<UseDebugLibraries>false</UseDebugLibraries>
</PropertyGroup>
<ItemDefinitionGroup Condition="$(PrincipiaOptimize)">
<ClCompile>
<Optimization>MaxSpeed</Optimization>
<FunctionLevelLinking>true</FunctionLevelLinking>
<IntrinsicFunctions>true</IntrinsicFunctions>
<PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
<Link>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<OptimizeReferences>true</OptimizeReferences>
</Link>
</ItemDefinitionGroup>

<!--This import must be at the end.-->
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
</Project>
25 changes: 25 additions & 0 deletions msvc/core-math.sln
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@

Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 16
VisualStudioVersion = 16.0.29613.14
MinimumVisualStudioVersion = 10.0.40219.1
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "core-math", "core-math.vcxproj", "{54EEAE95-1D3E-439D-9666-9A84027C7E29}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|x64 = Debug|x64
Release|x64 = Release|x64
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{54EEAE95-1D3E-439D-9666-9A84027C7E29}.Debug|x64.ActiveCfg = Debug|x64
{54EEAE95-1D3E-439D-9666-9A84027C7E29}.Debug|x64.Build.0 = Debug|x64
{54EEAE95-1D3E-439D-9666-9A84027C7E29}.Release|x64.ActiveCfg = Release|x64
{54EEAE95-1D3E-439D-9666-9A84027C7E29}.Release|x64.Build.0 = Release|x64
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {57DE90A1-982C-4D4A-B1C4-0A059CD831C7}
EndGlobalSection
EndGlobal
30 changes: 30 additions & 0 deletions msvc/core-math.vcxproj
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup Label="Globals">
<VCProjectVersion>16.0</VCProjectVersion>
<ProjectGuid>{54EEAE95-1D3E-439D-9666-9A84027C7E29}</ProjectGuid>
<RootNamespace>core_math</RootNamespace>
<WindowsTargetPlatformVersion>10.0</WindowsTargetPlatformVersion>
</PropertyGroup>
<PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
</PropertyGroup>
<PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
</PropertyGroup>
<ImportGroup Label="PropertySheets">
<Import Project="google_abseil-cpp.props" />
</ImportGroup>
<Import Project="$(SolutionDir)core-math.props" />
<ItemDefinitionGroup>
<ClCompile>
<CompileAs>CompileAsCpp</CompileAs>
</ClCompile>
</ItemDefinitionGroup>
<ItemGroup>
<ClCompile Include="..\src\binary64\cos\cos.c" />
<ClCompile Include="..\src\binary64\sin\sin.c" />
</ItemGroup>
<ItemGroup>
<ClInclude Include="..\include\cos.h" />
<ClInclude Include="..\include\sin.h" />
</ItemGroup>
</Project>
33 changes: 33 additions & 0 deletions msvc/core-math.vcxproj.filters
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<Filter Include="Source Files">
<UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
<Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
</Filter>
<Filter Include="Header Files">
<UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
<Extensions>h;hh;hpp;hxx;hm;inl;inc;ipp;xsd</Extensions>
</Filter>
<Filter Include="Resource Files">
<UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
<Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms</Extensions>
</Filter>
</ItemGroup>
<ItemGroup>
<ClCompile Include="..\src\binary64\cos\cos.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\src\binary64\sin\sin.c">
<Filter>Source Files</Filter>
</ClCompile>
</ItemGroup>
<ItemGroup>
<ClInclude Include="..\include\cos.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\include\sin.h">
<Filter>Header Files</Filter>
</ClInclude>
</ItemGroup>
</Project>
4 changes: 4 additions & 0 deletions msvc/core-math.vcxproj.user
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="Current" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup />
</Project>
15 changes: 15 additions & 0 deletions msvc/google_abseil-cpp.props
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ImportGroup Label="PropertySheets" />
<PropertyGroup Label="UserMacros" />
<ItemDefinitionGroup>
<ClCompile>
<AdditionalIncludeDirectories>$(SolutionDir)..\..\..\Google\abseil-cpp;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
</ClCompile>
<Link>
<AdditionalLibraryDirectories>$(SolutionDir)..\..\..\Google\abseil-cpp\msvc\$(PrincipiaDependencyConfiguration)\$(Platform);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<AdditionalDependencies>base.lib;container.lib;debugging.lib;flags.lib;hash.lib;numeric.lib;random.lib;status.lib;strings.lib;synchronization.lib;time.lib;types.lib;%(AdditionalDependencies)</AdditionalDependencies>
</Link>
</ItemDefinitionGroup>
<ItemGroup />
</Project>
Loading

0 comments on commit 09654cd

Please sign in to comment.