Skip to content

Commit a81d154

Browse files
authored
Merge pull request #267 from evoskuil/master
Regenerate artifacts.
2 parents a79fd1e + 2b17d8c commit a81d154

File tree

2 files changed

+74
-1
lines changed

2 files changed

+74
-1
lines changed

builds/msvc/vs2022/libbitcoin-system.import.props

Lines changed: 42 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,36 @@
1010
<ItemGroup Label="BuildOptionsExtension">
1111
<PropertyPageSchema Include="$(MSBuildThisFileDirectory)libbitcoin-system.import.xml" />
1212
</ItemGroup>
13+
14+
<!-- Options -->
15+
16+
<!-- These create non-portability. -->
17+
<!-- These will compile to the target regardless of the compiling platform. -->
18+
<!-- That will result in a crash of test/executable execution if mismatched. -->
19+
<PropertyGroup>
20+
<Option-avx512>false</Option-avx512>
21+
<Option-avx2>true</Option-avx2>
22+
<Option-sse41>true</Option-sse41>
23+
<Option-shani>false</Option-shani>
24+
<Option-neon>false</Option-neon>
25+
</PropertyGroup>
26+
<ItemDefinitionGroup>
27+
<ClCompile>
28+
<!-- order matters -->
29+
<EnableEnhancedInstructionSet Condition="'$(Option-avx2)' == 'true'">AdvancedVectorExtensions2</EnableEnhancedInstructionSet>
30+
<EnableEnhancedInstructionSet Condition="'$(Option-avx512)' == 'true'">AdvancedVectorExtensions512</EnableEnhancedInstructionSet>
31+
</ClCompile>
32+
</ItemDefinitionGroup>
33+
34+
<!-- Messages -->
35+
36+
<Target Name="OptionInfo" BeforeTargets="PrepareForBuild">
37+
<Message Text="Option-avx512 : $(Option-avx512)" Importance="high"/>
38+
<Message Text="Option-avx2 : $(Option-avx2)" Importance="high"/>
39+
<Message Text="Option-sse41 : $(Option-sse41)" Importance="high"/>
40+
<Message Text="Option-shani : $(Option-shani)" Importance="high"/>
41+
<Message Text="Option-neon : $(Option-neon)" Importance="high"/>
42+
</Target>
1343

1444
<!-- Linkage -->
1545

@@ -18,11 +48,22 @@
1848
<AdditionalIncludeDirectories>$(ProjectDir)..\..\..\..\..\libbitcoin-system\include\;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
1949
<!-- WITH_ICU always defined in Visual Studio builds. -->
2050
<!-- NOMINMAX enables use of std::min/max without conflict. -->
21-
<!-- BOOST_EXCEPTION_DISABLE must be set here to be captured by all includes. -->
2251
<!-- WIN32_LEAN_AND_MEAN avoids inclusion of certain headers, winsock.h conflicts with boost and protocol use of winsock2.h. -->
2352
<PreprocessorDefinitions>WITH_ICU;WIN32_LEAN_AND_MEAN;NOMINMAX;_WIN32_WINNT=0x0600;%(PreprocessorDefinitions)</PreprocessorDefinitions>
2453
<PreprocessorDefinitions Condition="'$(Linkage-libbitcoin-system)' == 'static' Or '$(Linkage-libbitcoin-system)' == 'ltcg'">BC_STATIC;%(PreprocessorDefinitions)</PreprocessorDefinitions>
2554
</ClCompile>
55+
<ClCompile>
56+
<!-- Enable use of CPU intrinsics. -->
57+
<PreprocessorDefinitions Condition="'$(Option-avx512)' == 'true'">WITH_AVX512;%(PreprocessorDefinitions)</PreprocessorDefinitions>
58+
<PreprocessorDefinitions Condition="'$(Option-avx2)' == 'true'">WITH_AVX2;%(PreprocessorDefinitions)</PreprocessorDefinitions>
59+
<PreprocessorDefinitions Condition="'$(Option-sse41)' == 'true'">WITH_SSE41;%(PreprocessorDefinitions)</PreprocessorDefinitions>
60+
<PreprocessorDefinitions Condition="'$(Option-shani)' == 'true'">WITH_SHANI;%(PreprocessorDefinitions)</PreprocessorDefinitions>
61+
<PreprocessorDefinitions Condition="'$(Option-neon)' == 'true'">WITH_NEON;%(PreprocessorDefinitions)</PreprocessorDefinitions>
62+
</ClCompile>
63+
<Link>
64+
<!-- 4099: warns about missing PDB files. -->
65+
<AdditionalOptions>/ignore:4099 %(AdditionalOptions)</AdditionalOptions>
66+
</Link>
2667
<Link>
2768
<AdditionalDependencies Condition="'$(Linkage-libbitcoin-system)' != ''">libbitcoin-system.lib;%(AdditionalDependencies)</AdditionalDependencies>
2869
</Link>

builds/msvc/vs2022/libbitcoin-system.import.xml

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,4 +14,36 @@
1414
<EnumValue Name="ltcg" DisplayName="Static using link time compile generation (LTCG)" />
1515
</EnumProperty>
1616
</Rule>
17+
<Rule Name="libbitcoin-system-options-uiextension" PageTemplate="tool" DisplayName="Bitcoin System Options" SwitchPrefix="/" Order="1">
18+
<Rule.Categories>
19+
<Category Name="avx512" DisplayName="avx512" />
20+
<Category Name="avx2" DisplayName="avx2" />
21+
<Category Name="sse41" DisplayName="sse41" />
22+
<Category Name="shani" DisplayName="shani" />
23+
<Category Name="neon" DisplayName="neon" />
24+
</Rule.Categories>
25+
<Rule.DataSource>
26+
<DataSource Persistence="ProjectFile" ItemType="" />
27+
</Rule.DataSource>
28+
<EnumProperty Name="Option-avx512" DisplayName="Enable AVX512 Intrinsics" Description="Use AVX512 intrinsics." Category="avx512">
29+
<EnumValue Name="false" DisplayName="No" />
30+
<EnumValue Name="true" DisplayName="Yes" />
31+
</EnumProperty>
32+
<EnumProperty Name="Option-avx2" DisplayName="Enable AVX2 Intrinsics" Description="Use AVX2 intrinsics." Category="avx2">
33+
<EnumValue Name="false" DisplayName="No" />
34+
<EnumValue Name="true" DisplayName="Yes" />
35+
</EnumProperty>
36+
<EnumProperty Name="Option-sse41" DisplayName="Enable SSE4.1 Intrinsics" Description="Use SSE4.1 intrinsics." Category="sse41">
37+
<EnumValue Name="false" DisplayName="No" />
38+
<EnumValue Name="true" DisplayName="Yes" />
39+
</EnumProperty>
40+
<EnumProperty Name="Option-shani" DisplayName="Enable SHA Native Intrinsics" Description="Use SHA native intrinsics." Category="shani">
41+
<EnumValue Name="false" DisplayName="No" />
42+
<EnumValue Name="true" DisplayName="Yes" />
43+
</EnumProperty>
44+
<EnumProperty Name="Option-neon" DisplayName="Enable ARM Neon Intrinsics" Description="Use ARM Neon intrinsics." Category="neon">
45+
<EnumValue Name="false" DisplayName="No" />
46+
<EnumValue Name="true" DisplayName="Yes" />
47+
</EnumProperty>
48+
</Rule>
1749
</ProjectSchemaDefinitions>

0 commit comments

Comments
 (0)