Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 11 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -680,6 +680,17 @@ jobs:
platform: "x64"
version: "vs2022"
tests: "*"
- image: windows-2025-vs2026
configuration: "StaticRelease"
platform: "x64"
version: "vs2026"
tests: "*"

- image: windows-2025-vs2026
configuration: "StaticDebug"
platform: "x64"
version: "vs2026"
tests: "*"

runs-on: ${{ matrix.image }}

Expand Down
64 changes: 64 additions & 0 deletions builds/msvc/vs2026/bn/bn.props
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">

<PropertyGroup>
<_PropertySheetDisplayName>Bitcoin Node Console Application</_PropertySheetDisplayName>
<CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
<RunCodeAnalysis>false</RunCodeAnalysis>
</PropertyGroup>

<!-- Configuration -->

<ItemDefinitionGroup>
<ClCompile>
<AdditionalIncludeDirectories>$(RepoRoot)include\;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<EnablePREfast>false</EnablePREfast>
</ClCompile>
</ItemDefinitionGroup>

<!-- Dependencies -->

<ImportGroup Label="PropertySheets">
<Import Project="$(SolutionDir)libbitcoin-system.import.props" />
<Import Project="$(SolutionDir)libbitcoin-database.import.props" />
<Import Project="$(SolutionDir)libbitcoin-network.import.props" />
<Import Project="$(SolutionDir)libbitcoin-node.import.props" />
</ImportGroup>

<PropertyGroup Condition="'$(NuGetPackageRoot)' == ''">
<NuGetPackageRoot>..\..\..\..\..\.nuget\packages\</NuGetPackageRoot>
</PropertyGroup>

<PropertyGroup Condition="'$(DefaultLinkage)' == 'dynamic'">
<Linkage-secp256k1>dynamic</Linkage-secp256k1>
<Linkage-libbitcoin-system>dynamic</Linkage-libbitcoin-system>
<Linkage-libbitcoin-database>dynamic</Linkage-libbitcoin-database>
<Linkage-libbitcoin-network>dynamic</Linkage-libbitcoin-network>
<Linkage-libbitcoin-node>dynamic</Linkage-libbitcoin-node>
</PropertyGroup>
<PropertyGroup Condition="'$(DefaultLinkage)' == 'ltcg'">
<Linkage-secp256k1>ltcg</Linkage-secp256k1>
<Linkage-libbitcoin-system>ltcg</Linkage-libbitcoin-system>
<Linkage-libbitcoin-database>ltcg</Linkage-libbitcoin-database>
<Linkage-libbitcoin-network>ltcg</Linkage-libbitcoin-network>
<Linkage-libbitcoin-node>ltcg</Linkage-libbitcoin-node>
</PropertyGroup>
<PropertyGroup Condition="'$(DefaultLinkage)' == 'static'">
<Linkage-secp256k1>static</Linkage-secp256k1>
<Linkage-libbitcoin-system>static</Linkage-libbitcoin-system>
<Linkage-libbitcoin-database>static</Linkage-libbitcoin-database>
<Linkage-libbitcoin-network>static</Linkage-libbitcoin-network>
<Linkage-libbitcoin-node>static</Linkage-libbitcoin-node>
</PropertyGroup>

<!-- Messages -->

<Target Name="LinkageInfo" BeforeTargets="PrepareForBuild">
<Message Text="Linkage-secp256k1 : $(Linkage-secp256k1)" Importance="high"/>
<Message Text="Linkage-_system : $(Linkage-libbitcoin-system)" Importance="high"/>
<Message Text="Linkage-_database : $(Linkage-libbitcoin-database)" Importance="high"/>
<Message Text="Linkage-_network : $(Linkage-libbitcoin-network)" Importance="high"/>
<Message Text="Linkage-_node : $(Linkage-libbitcoin-node)" Importance="high"/>
</Target>

</Project>
35 changes: 35 additions & 0 deletions builds/msvc/vs2026/libbitcoin-database.import.props
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">

<PropertyGroup Label="Globals">
<_PropertySheetDisplayName>Libbitcoin Database Import Settings</_PropertySheetDisplayName>
</PropertyGroup>

<!-- User Interface -->

<ItemGroup Label="BuildOptionsExtension">
<PropertyPageSchema Include="$(MSBuildThisFileDirectory)libbitcoin-database.import.xml" />
</ItemGroup>

<!-- Linkage -->

<ItemDefinitionGroup>
<ClCompile>
<AdditionalIncludeDirectories>$(ProjectDir)..\..\..\..\..\libbitcoin-database\include\;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions Condition="'$(Linkage-libbitcoin-database)' == 'static' Or '$(Linkage-libbitcoin-database)' == 'ltcg'">BCD_STATIC;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
<Link>
<AdditionalDependencies Condition="'$(Linkage-libbitcoin-database)' != ''">libbitcoin-database.lib;%(AdditionalDependencies)</AdditionalDependencies>
</Link>
<Link>
<AdditionalLibraryDirectories Condition="$(Configuration.IndexOf('Debug')) != -1">
$(ProjectDir)..\..\..\..\..\libbitcoin-database\bin\$(PlatformName)\Debug\$(PlatformToolset)\$(Linkage-libbitcoin-database)\;
$(ProjectDir)..\..\..\..\..\libbitcoin-database\obj\libbitcoin-database\$(PlatformName)\Debug\$(PlatformToolset)\$(Linkage-libbitcoin-database)\;%(AdditionalLibraryDirectories)
</AdditionalLibraryDirectories>
<AdditionalLibraryDirectories Condition="$(Configuration.IndexOf('Release')) != -1">
$(ProjectDir)..\..\..\..\..\libbitcoin-database\bin\$(PlatformName)\Release\$(PlatformToolset)\$(Linkage-libbitcoin-database)\;
$(ProjectDir)..\..\..\..\..\libbitcoin-database\obj\libbitcoin-database\$(PlatformName)\Release\$(PlatformToolset)\$(Linkage-libbitcoin-database)\;%(AdditionalLibraryDirectories)
</AdditionalLibraryDirectories>
</Link>
</ItemDefinitionGroup>
</Project>
17 changes: 17 additions & 0 deletions builds/msvc/vs2026/libbitcoin-database.import.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
<?xml version="1.0" encoding="utf-8"?>
<ProjectSchemaDefinitions xmlns="clr-namespace:Microsoft.Build.Framework.XamlTypes;assembly=Microsoft.Build.Framework">
<Rule Name="libbitcoin-database-linkage-uiextension" PageTemplate="tool" DisplayName="Local Dependencies" SwitchPrefix="/" Order="1">
<Rule.Categories>
<Category Name="libbitcoin-database" DisplayName="libbitcoin-database" />
</Rule.Categories>
<Rule.DataSource>
<DataSource Persistence="ProjectFile" ItemType="" />
</Rule.DataSource>
<EnumProperty Name="Linkage-libbitcoin-database" DisplayName="Linkage" Description="How Libbitcoin Database will be linked into the output of this project" Category="libbitcoin-database">
<EnumValue Name="" DisplayName="Not linked" />
<EnumValue Name="dynamic" DisplayName="Dynamic (DLL)" />
<EnumValue Name="static" DisplayName="Static (LIB)" />
<EnumValue Name="ltcg" DisplayName="Static using link time compile generation (LTCG)" />
</EnumProperty>
</Rule>
</ProjectSchemaDefinitions>
62 changes: 62 additions & 0 deletions builds/msvc/vs2026/libbitcoin-network.import.props
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">

<PropertyGroup Label="Globals">
<_PropertySheetDisplayName>Libbitcoin Network Import Settings</_PropertySheetDisplayName>
</PropertyGroup>

<!-- User Interface -->

<ItemGroup Label="BuildOptionsExtension">
<PropertyPageSchema Include="$(MSBuildThisFileDirectory)libbitcoin-network.import.xml" />
</ItemGroup>

<!-- Options -->

<PropertyGroup>
<Option-ssl>true</Option-ssl>
</PropertyGroup>

<!-- Messages -->

<Target Name="OptionInfo" BeforeTargets="PrepareForBuild">
<Message Text="Option-ssl : $(Option-ssl)" Importance="high"/>
</Target>

<!-- Linkage -->

<ItemDefinitionGroup>
<ClCompile>
<AdditionalIncludeDirectories>$(ProjectDir)..\..\..\..\..\libbitcoin-network\include\;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>

<!-- Prevent boost from seeing ssl includes when ssl is deselected (requires external headers). -->
<AdditionalIncludeDirectories Condition="'$(Option-ssl)' == 'true'">$(ProjectDir)..\..\..\..\..\libbitcoin-network\include\bitcoin\network\ssl\;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<AdditionalOptions>/bigobj %(AdditionalOptions)</AdditionalOptions>
<PreprocessorDefinitions Condition="'$(Linkage-libbitcoin-network)' == 'static' Or '$(Linkage-libbitcoin-network)' == 'ltcg'">BCT_STATIC;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<PreprocessorDefinitions Condition="'$(Option-ssl)' == 'true'">WOLFSSL_USER_SETTINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
<Link>
<AdditionalDependencies Condition="'$(Linkage-libbitcoin-network)' != ''">libbitcoin-network.lib;%(AdditionalDependencies)</AdditionalDependencies>
</Link>
<Link>
<AdditionalLibraryDirectories Condition="$(Configuration.IndexOf('Debug')) != -1">
$(ProjectDir)..\..\..\..\..\libbitcoin-network\bin\$(PlatformName)\Debug\$(PlatformToolset)\$(Linkage-libbitcoin-network)\;
$(ProjectDir)..\..\..\..\..\libbitcoin-network\obj\libbitcoin-network\$(PlatformName)\Debug\$(PlatformToolset)\$(Linkage-libbitcoin-network)\;%(AdditionalLibraryDirectories)
</AdditionalLibraryDirectories>
<AdditionalLibraryDirectories Condition="$(Configuration.IndexOf('Release')) != -1">
$(ProjectDir)..\..\..\..\..\libbitcoin-network\bin\$(PlatformName)\Release\$(PlatformToolset)\$(Linkage-libbitcoin-network)\;
$(ProjectDir)..\..\..\..\..\libbitcoin-network\obj\libbitcoin-network\$(PlatformName)\Release\$(PlatformToolset)\$(Linkage-libbitcoin-network)\;%(AdditionalLibraryDirectories)
</AdditionalLibraryDirectories>
</Link>
</ItemDefinitionGroup>

<Target Name="WolfSSLSuppressions" BeforeTargets="ClCompile">
<ItemGroup>
<ClCompile Update="@(ClCompile)">
<!-- Exclude wolfssl test sources when ssl is deselected (requires external linkage). -->
<ExcludedFromBuild Condition="$([System.String]::new('%(RelativeDir)').StartsWith('..\..\..\..\test\ssl\')) And '$(Option-ssl)' == 'false'">true</ExcludedFromBuild>
</ClCompile>
</ItemGroup>
</Target>

</Project>
29 changes: 29 additions & 0 deletions builds/msvc/vs2026/libbitcoin-network.import.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
<?xml version="1.0" encoding="utf-8"?>
<ProjectSchemaDefinitions xmlns="clr-namespace:Microsoft.Build.Framework.XamlTypes;assembly=Microsoft.Build.Framework">
<Rule Name="libbitcoin-network-linkage-uiextension" PageTemplate="tool" DisplayName="Local Dependencies" SwitchPrefix="/" Order="1">
<Rule.Categories>
<Category Name="libbitcoin-network" DisplayName="libbitcoin-network" />
</Rule.Categories>
<Rule.DataSource>
<DataSource Persistence="ProjectFile" ItemType="" />
</Rule.DataSource>
<EnumProperty Name="Linkage-libbitcoin-network" DisplayName="Linkage" Description="How Libbitcoin network will be linked into the output of this project" Category="libbitcoin-network">
<EnumValue Name="" DisplayName="Not linked" />
<EnumValue Name="dynamic" DisplayName="Dynamic (DLL)" />
<EnumValue Name="static" DisplayName="Static (LIB)" />
<EnumValue Name="ltcg" DisplayName="Static using link time compile generation (LTCG)" />
</EnumProperty>
</Rule>
<Rule Name="libbitcoin-network-options-uiextension" PageTemplate="tool" DisplayName="Bitcoin Network Options" SwitchPrefix="/" Order="1">
<Rule.Categories>
<Category Name="ssl" DisplayName="ssl" />
</Rule.Categories>
<Rule.DataSource>
<DataSource Persistence="ProjectFile" ItemType="" />
</Rule.DataSource>
<EnumProperty Name="Option-ssl" DisplayName="Enable Embedded SSL" Description="Requires external SSL if not enabled." Category="ssl">
<EnumValue Name="false" DisplayName="No" />
<EnumValue Name="true" DisplayName="Yes" />
</EnumProperty>
</Rule>
</ProjectSchemaDefinitions>
66 changes: 66 additions & 0 deletions builds/msvc/vs2026/libbitcoin-node-test/libbitcoin-node-test.props
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">

<PropertyGroup>
<_PropertySheetDisplayName>Libbitcoin Node Test Common Settings</_PropertySheetDisplayName>
<CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
<RunCodeAnalysis>false</RunCodeAnalysis>
</PropertyGroup>

<!-- Configuration -->

<ItemDefinitionGroup>
<ClCompile>
<EnablePREfast>false</EnablePREfast>
</ClCompile>
<PostBuildEvent Condition="'$(DebugOrRelease)' == 'release'">
<Command>"$(TargetPath)" --log_level=warning --run_test=* --show_progress=no --build_info=yes</Command>
</PostBuildEvent>
</ItemDefinitionGroup>

<!-- Dependencies -->

<ImportGroup Label="PropertySheets">
<Import Project="$(SolutionDir)libbitcoin-system.import.props" />
<Import Project="$(SolutionDir)libbitcoin-database.import.props" />
<Import Project="$(SolutionDir)libbitcoin-network.import.props" />
<Import Project="$(SolutionDir)libbitcoin-node.import.props" />
</ImportGroup>

<PropertyGroup Condition="'$(NuGetPackageRoot)' == ''">
<NuGetPackageRoot>..\..\..\..\..\.nuget\packages\</NuGetPackageRoot>
</PropertyGroup>

<PropertyGroup Condition="'$(DefaultLinkage)' == 'dynamic'">
<Linkage-secp256k1>dynamic</Linkage-secp256k1>
<Linkage-libbitcoin-system>dynamic</Linkage-libbitcoin-system>
<Linkage-libbitcoin-database>dynamic</Linkage-libbitcoin-database>
<Linkage-libbitcoin-network>dynamic</Linkage-libbitcoin-network>
<Linkage-libbitcoin-node>dynamic</Linkage-libbitcoin-node>
</PropertyGroup>
<PropertyGroup Condition="'$(DefaultLinkage)' == 'ltcg'">
<Linkage-openssl>static</Linkage-openssl> <Linkage-secp256k1>ltcg</Linkage-secp256k1>
<Linkage-libbitcoin-system>ltcg</Linkage-libbitcoin-system>
<Linkage-libbitcoin-database>ltcg</Linkage-libbitcoin-database>
<Linkage-libbitcoin-network>ltcg</Linkage-libbitcoin-network>
<Linkage-libbitcoin-node>ltcg</Linkage-libbitcoin-node>
</PropertyGroup>
<PropertyGroup Condition="'$(DefaultLinkage)' == 'static'">
<Linkage-secp256k1>static</Linkage-secp256k1>
<Linkage-libbitcoin-system>static</Linkage-libbitcoin-system>
<Linkage-libbitcoin-database>static</Linkage-libbitcoin-database>
<Linkage-libbitcoin-network>static</Linkage-libbitcoin-network>
<Linkage-libbitcoin-node>static</Linkage-libbitcoin-node>
</PropertyGroup>

<!-- Messages -->

<Target Name="LinkageInfo" BeforeTargets="PrepareForBuild">
<Message Text="Linkage-secp256k1 : $(Linkage-secp256k1)" Importance="high"/>
<Message Text="Linkage-_system : $(Linkage-libbitcoin-system)" Importance="high"/>
<Message Text="Linkage-_database : $(Linkage-libbitcoin-database)" Importance="high"/>
<Message Text="Linkage-_network : $(Linkage-libbitcoin-network)" Importance="high"/>
<Message Text="Linkage-_node : $(Linkage-libbitcoin-node)" Importance="high"/>
</Target>

</Project>
Loading
Loading