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
1 change: 1 addition & 0 deletions builds/gnu/Makefile.am
Original file line number Diff line number Diff line change
Expand Up @@ -142,6 +142,7 @@ include_bitcoin_node_HEADERS = \
${srcdir}/../../include/bitcoin/node/estimator.hpp \
${srcdir}/../../include/bitcoin/node/events.hpp \
${srcdir}/../../include/bitcoin/node/full_node.hpp \
${srcdir}/../../include/bitcoin/node/preprocessor.hpp \
${srcdir}/../../include/bitcoin/node/settings.hpp \
include/bitcoin/node/version.hpp

Expand Down
2 changes: 2 additions & 0 deletions builds/msvc/properties/Output.props
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,8 @@
<RepoRoot>$(ProjectDir)..\..\..\..\</RepoRoot>
<SourceRoot>$(ProjectDir)..\..\..\..\..\</SourceRoot>
<OutDir>$(ProjectDir)..\..\..\..\bin\$(PlatformName)\$(DebugOrRelease)\$(PlatformToolset)\$(DefaultLinkage)\</OutDir>
<!-- Dynamic outputs of all repositories share one directory, so each executable loads its dependency DLLs in place. -->
<OutDir Condition="'$(DefaultLinkage)' == 'dynamic'">$(ProjectDir)..\..\..\..\..\bin\$(PlatformName)\$(DebugOrRelease)\$(PlatformToolset)\$(DefaultLinkage)\</OutDir>
<IntDir>$(ProjectDir)..\..\..\..\obj\$(TargetName)\$(PlatformName)\$(DebugOrRelease)\$(PlatformToolset)\$(DefaultLinkage)\</IntDir>
<TargetDir>$(OutDir)</TargetDir>
<TargetName>$(TargetName)</TargetName>
Expand Down
2 changes: 2 additions & 0 deletions builds/msvc/vs2026/libbitcoin-database.import.props
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,8 @@
$(ProjectDir)..\..\..\..\..\libbitcoin-database\bin\$(PlatformName)\Release\$(PlatformToolset)\$(Linkage-libbitcoin-database)\;
$(ProjectDir)..\..\..\..\..\libbitcoin-database\obj\libbitcoin-database\$(PlatformName)\Release\$(PlatformToolset)\$(Linkage-libbitcoin-database)\;%(AdditionalLibraryDirectories)
</AdditionalLibraryDirectories>
<AdditionalLibraryDirectories Condition="'$(Linkage-libbitcoin-database)' == 'dynamic' And $(Configuration.IndexOf('Debug')) != -1">$(ProjectDir)..\..\..\..\..\bin\$(PlatformName)\Debug\$(PlatformToolset)\dynamic\;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<AdditionalLibraryDirectories Condition="'$(Linkage-libbitcoin-database)' == 'dynamic' And $(Configuration.IndexOf('Release')) != -1">$(ProjectDir)..\..\..\..\..\bin\$(PlatformName)\Release\$(PlatformToolset)\dynamic\;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
</Link>
</ItemDefinitionGroup>
</Project>
2 changes: 2 additions & 0 deletions builds/msvc/vs2026/libbitcoin-network.import.props
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,8 @@
$(ProjectDir)..\..\..\..\..\libbitcoin-network\bin\$(PlatformName)\Release\$(PlatformToolset)\$(Linkage-libbitcoin-network)\;
$(ProjectDir)..\..\..\..\..\libbitcoin-network\obj\libbitcoin-network\$(PlatformName)\Release\$(PlatformToolset)\$(Linkage-libbitcoin-network)\;%(AdditionalLibraryDirectories)
</AdditionalLibraryDirectories>
<AdditionalLibraryDirectories Condition="'$(Linkage-libbitcoin-network)' == 'dynamic' And $(Configuration.IndexOf('Debug')) != -1">$(ProjectDir)..\..\..\..\..\bin\$(PlatformName)\Debug\$(PlatformToolset)\dynamic\;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<AdditionalLibraryDirectories Condition="'$(Linkage-libbitcoin-network)' == 'dynamic' And $(Configuration.IndexOf('Release')) != -1">$(ProjectDir)..\..\..\..\..\bin\$(PlatformName)\Release\$(PlatformToolset)\dynamic\;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
</Link>
</ItemDefinitionGroup>

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,6 @@
<Linkage-libbitcoin-node>dynamic</Linkage-libbitcoin-node>
</PropertyGroup>
<PropertyGroup Condition="'$(DefaultLinkage)' == 'ltcg'">
<Linkage-openssl>static</Linkage-openssl>
<Linkage-secp256k1 Condition="'$(Option-secp256k1)' == 'true'">ltcg</Linkage-secp256k1>
<Linkage-libbitcoin-system>ltcg</Linkage-libbitcoin-system>
<Linkage-libbitcoin-database>ltcg</Linkage-libbitcoin-database>
Expand Down
2 changes: 2 additions & 0 deletions builds/msvc/vs2026/libbitcoin-node.import.props
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,8 @@
$(ProjectDir)..\..\..\..\..\libbitcoin-node\bin\$(PlatformName)\Release\$(PlatformToolset)\$(Linkage-libbitcoin-node)\;
$(ProjectDir)..\..\..\..\..\libbitcoin-node\obj\libbitcoin-node\$(PlatformName)\Release\$(PlatformToolset)\$(Linkage-libbitcoin-node)\;%(AdditionalLibraryDirectories)
</AdditionalLibraryDirectories>
<AdditionalLibraryDirectories Condition="'$(Linkage-libbitcoin-node)' == 'dynamic' And $(Configuration.IndexOf('Debug')) != -1">$(ProjectDir)..\..\..\..\..\bin\$(PlatformName)\Debug\$(PlatformToolset)\dynamic\;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<AdditionalLibraryDirectories Condition="'$(Linkage-libbitcoin-node)' == 'dynamic' And $(Configuration.IndexOf('Release')) != -1">$(ProjectDir)..\..\..\..\..\bin\$(PlatformName)\Release\$(PlatformToolset)\dynamic\;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
</Link>
</ItemDefinitionGroup>
</Project>
30 changes: 30 additions & 0 deletions builds/msvc/vs2026/libbitcoin-node.sln
Original file line number Diff line number Diff line change
Expand Up @@ -9,34 +9,64 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libbitcoin-node-test", "lib
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
DynamicDebug|ARM64 = DynamicDebug|ARM64
DynamicRelease|ARM64 = DynamicRelease|ARM64
StaticDebug|ARM64 = StaticDebug|ARM64
StaticRelease|ARM64 = StaticRelease|ARM64
DynamicDebug|Win32 = DynamicDebug|Win32
DynamicRelease|Win32 = DynamicRelease|Win32
StaticDebug|Win32 = StaticDebug|Win32
StaticRelease|Win32 = StaticRelease|Win32
DynamicDebug|x64 = DynamicDebug|x64
DynamicRelease|x64 = DynamicRelease|x64
StaticDebug|x64 = StaticDebug|x64
StaticRelease|x64 = StaticRelease|x64
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{5FFB5F52-0772-4404-BB2F-39BE5F82A158}.DynamicDebug|ARM64.ActiveCfg = DebugDLL|ARM64
{5FFB5F52-0772-4404-BB2F-39BE5F82A158}.DynamicDebug|ARM64.Build.0 = DebugDLL|ARM64
{5FFB5F52-0772-4404-BB2F-39BE5F82A158}.DynamicRelease|ARM64.ActiveCfg = ReleaseDLL|ARM64
{5FFB5F52-0772-4404-BB2F-39BE5F82A158}.DynamicRelease|ARM64.Build.0 = ReleaseDLL|ARM64
{5FFB5F52-0772-4404-BB2F-39BE5F82A158}.StaticDebug|ARM64.ActiveCfg = DebugLIB|ARM64
{5FFB5F52-0772-4404-BB2F-39BE5F82A158}.StaticDebug|ARM64.Build.0 = DebugLIB|ARM64
{5FFB5F52-0772-4404-BB2F-39BE5F82A158}.StaticRelease|ARM64.ActiveCfg = ReleaseLIB|ARM64
{5FFB5F52-0772-4404-BB2F-39BE5F82A158}.StaticRelease|ARM64.Build.0 = ReleaseLIB|ARM64
{5FFB5F52-0772-4404-BB2F-39BE5F82A158}.DynamicDebug|Win32.ActiveCfg = DebugDLL|Win32
{5FFB5F52-0772-4404-BB2F-39BE5F82A158}.DynamicDebug|Win32.Build.0 = DebugDLL|Win32
{5FFB5F52-0772-4404-BB2F-39BE5F82A158}.DynamicRelease|Win32.ActiveCfg = ReleaseDLL|Win32
{5FFB5F52-0772-4404-BB2F-39BE5F82A158}.DynamicRelease|Win32.Build.0 = ReleaseDLL|Win32
{5FFB5F52-0772-4404-BB2F-39BE5F82A158}.StaticDebug|Win32.ActiveCfg = DebugLIB|Win32
{5FFB5F52-0772-4404-BB2F-39BE5F82A158}.StaticDebug|Win32.Build.0 = DebugLIB|Win32
{5FFB5F52-0772-4404-BB2F-39BE5F82A158}.StaticRelease|Win32.ActiveCfg = ReleaseLIB|Win32
{5FFB5F52-0772-4404-BB2F-39BE5F82A158}.StaticRelease|Win32.Build.0 = ReleaseLIB|Win32
{5FFB5F52-0772-4404-BB2F-39BE5F82A158}.DynamicDebug|x64.ActiveCfg = DebugDLL|x64
{5FFB5F52-0772-4404-BB2F-39BE5F82A158}.DynamicDebug|x64.Build.0 = DebugDLL|x64
{5FFB5F52-0772-4404-BB2F-39BE5F82A158}.DynamicRelease|x64.ActiveCfg = ReleaseDLL|x64
{5FFB5F52-0772-4404-BB2F-39BE5F82A158}.DynamicRelease|x64.Build.0 = ReleaseDLL|x64
{5FFB5F52-0772-4404-BB2F-39BE5F82A158}.StaticDebug|x64.ActiveCfg = DebugLIB|x64
{5FFB5F52-0772-4404-BB2F-39BE5F82A158}.StaticDebug|x64.Build.0 = DebugLIB|x64
{5FFB5F52-0772-4404-BB2F-39BE5F82A158}.StaticRelease|x64.ActiveCfg = ReleaseLIB|x64
{5FFB5F52-0772-4404-BB2F-39BE5F82A158}.StaticRelease|x64.Build.0 = ReleaseLIB|x64
{4BD50864-D3BC-4F64-AEBB-DDEB8A622FA8}.DynamicDebug|ARM64.ActiveCfg = DebugDEXE|ARM64
{4BD50864-D3BC-4F64-AEBB-DDEB8A622FA8}.DynamicDebug|ARM64.Build.0 = DebugDEXE|ARM64
{4BD50864-D3BC-4F64-AEBB-DDEB8A622FA8}.DynamicRelease|ARM64.ActiveCfg = ReleaseDEXE|ARM64
{4BD50864-D3BC-4F64-AEBB-DDEB8A622FA8}.DynamicRelease|ARM64.Build.0 = ReleaseDEXE|ARM64
{4BD50864-D3BC-4F64-AEBB-DDEB8A622FA8}.StaticDebug|ARM64.ActiveCfg = DebugSEXE|ARM64
{4BD50864-D3BC-4F64-AEBB-DDEB8A622FA8}.StaticDebug|ARM64.Build.0 = DebugSEXE|ARM64
{4BD50864-D3BC-4F64-AEBB-DDEB8A622FA8}.StaticRelease|ARM64.ActiveCfg = ReleaseSEXE|ARM64
{4BD50864-D3BC-4F64-AEBB-DDEB8A622FA8}.StaticRelease|ARM64.Build.0 = ReleaseSEXE|ARM64
{4BD50864-D3BC-4F64-AEBB-DDEB8A622FA8}.DynamicDebug|Win32.ActiveCfg = DebugDEXE|Win32
{4BD50864-D3BC-4F64-AEBB-DDEB8A622FA8}.DynamicDebug|Win32.Build.0 = DebugDEXE|Win32
{4BD50864-D3BC-4F64-AEBB-DDEB8A622FA8}.DynamicRelease|Win32.ActiveCfg = ReleaseDEXE|Win32
{4BD50864-D3BC-4F64-AEBB-DDEB8A622FA8}.DynamicRelease|Win32.Build.0 = ReleaseDEXE|Win32
{4BD50864-D3BC-4F64-AEBB-DDEB8A622FA8}.StaticDebug|Win32.ActiveCfg = DebugSEXE|Win32
{4BD50864-D3BC-4F64-AEBB-DDEB8A622FA8}.StaticDebug|Win32.Build.0 = DebugSEXE|Win32
{4BD50864-D3BC-4F64-AEBB-DDEB8A622FA8}.StaticRelease|Win32.ActiveCfg = ReleaseSEXE|Win32
{4BD50864-D3BC-4F64-AEBB-DDEB8A622FA8}.StaticRelease|Win32.Build.0 = ReleaseSEXE|Win32
{4BD50864-D3BC-4F64-AEBB-DDEB8A622FA8}.DynamicDebug|x64.ActiveCfg = DebugDEXE|x64
{4BD50864-D3BC-4F64-AEBB-DDEB8A622FA8}.DynamicDebug|x64.Build.0 = DebugDEXE|x64
{4BD50864-D3BC-4F64-AEBB-DDEB8A622FA8}.DynamicRelease|x64.ActiveCfg = ReleaseDEXE|x64
{4BD50864-D3BC-4F64-AEBB-DDEB8A622FA8}.DynamicRelease|x64.Build.0 = ReleaseDEXE|x64
{4BD50864-D3BC-4F64-AEBB-DDEB8A622FA8}.StaticDebug|x64.ActiveCfg = DebugSEXE|x64
{4BD50864-D3BC-4F64-AEBB-DDEB8A622FA8}.StaticDebug|x64.Build.0 = DebugSEXE|x64
{4BD50864-D3BC-4F64-AEBB-DDEB8A622FA8}.StaticRelease|x64.ActiveCfg = ReleaseSEXE|x64
Expand Down
1 change: 1 addition & 0 deletions builds/msvc/vs2026/libbitcoin-node/libbitcoin-node.vcxproj
Original file line number Diff line number Diff line change
Expand Up @@ -190,6 +190,7 @@
<ClInclude Include="..\..\..\..\include\bitcoin\node\estimator.hpp" />
<ClInclude Include="..\..\..\..\include\bitcoin\node\events.hpp" />
<ClInclude Include="..\..\..\..\include\bitcoin\node\full_node.hpp" />
<ClInclude Include="..\..\..\..\include\bitcoin\node\preprocessor.hpp" />
<ClInclude Include="..\..\..\..\include\bitcoin\node\protocols\protocol.hpp" />
<ClInclude Include="..\..\..\..\include\bitcoin\node\protocols\protocol_block_in_31800.hpp" />
<ClInclude Include="..\..\..\..\include\bitcoin\node\protocols\protocol_block_out_106.hpp" />
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -278,6 +278,9 @@
<ClInclude Include="..\..\..\..\include\bitcoin\node\full_node.hpp">
<Filter>include\bitcoin\node</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\include\bitcoin\node\preprocessor.hpp">
<Filter>include\bitcoin\node</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\include\bitcoin\node\protocols\protocol.hpp">
<Filter>include\bitcoin\node\protocols</Filter>
</ClInclude>
Expand Down
2 changes: 2 additions & 0 deletions builds/msvc/vs2026/libbitcoin-system.import.props
Original file line number Diff line number Diff line change
Expand Up @@ -81,6 +81,8 @@
$(ProjectDir)..\..\..\..\..\libbitcoin-system\bin\$(PlatformName)\Release\$(PlatformToolset)\$(Linkage-libbitcoin-system)\;
$(ProjectDir)..\..\..\..\..\libbitcoin-system\obj\libbitcoin-system\$(PlatformName)\Release\$(PlatformToolset)\$(Linkage-libbitcoin-system)\;%(AdditionalLibraryDirectories)
</AdditionalLibraryDirectories>
<AdditionalLibraryDirectories Condition="'$(Linkage-libbitcoin-system)' == 'dynamic' And $(Configuration.IndexOf('Debug')) != -1">$(ProjectDir)..\..\..\..\..\bin\$(PlatformName)\Debug\$(PlatformToolset)\dynamic\;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<AdditionalLibraryDirectories Condition="'$(Linkage-libbitcoin-system)' == 'dynamic' And $(Configuration.IndexOf('Release')) != -1">$(ProjectDir)..\..\..\..\..\bin\$(PlatformName)\Release\$(PlatformToolset)\dynamic\;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
</Link>
</ItemDefinitionGroup>
</Project>
1 change: 1 addition & 0 deletions include/bitcoin/node.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@
#include <bitcoin/node/estimator.hpp>
#include <bitcoin/node/events.hpp>
#include <bitcoin/node/full_node.hpp>
#include <bitcoin/node/preprocessor.hpp>
#include <bitcoin/node/settings.hpp>
#include <bitcoin/node/version.hpp>
#include <bitcoin/node/channels/channel.hpp>
Expand Down
15 changes: 0 additions & 15 deletions include/bitcoin/node/define.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -24,21 +24,6 @@
/// Pulls in common /node headers (excluding settings/config/full_node).
#include <bitcoin/node/chase.hpp>

/// Now we use the generic helper definitions above to define BCN_API
/// and BCN_INTERNAL. BCN_API is used for the public API symbols. It either DLL
/// imports or DLL exports (or does nothing for static build) BCN_INTERNAL is
/// used for non-api symbols.
#if defined BCN_STATIC
#define BCN_API
#define BCN_INTERNAL
#elif defined BCN_DLL
#define BCN_API BC_HELPER_DLL_EXPORT
#define BCN_INTERNAL BC_HELPER_DLL_LOCAL
#else
#define BCN_API BC_HELPER_DLL_IMPORT
#define BCN_INTERNAL BC_HELPER_DLL_LOCAL
#endif

/// For common types below.
#include <bitcoin/network.hpp>

Expand Down
4 changes: 2 additions & 2 deletions include/bitcoin/node/error.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@
#ifndef LIBBITCOIN_NODE_ERROR_HPP
#define LIBBITCOIN_NODE_ERROR_HPP

#include <bitcoin/system.hpp>
#include <bitcoin/node/preprocessor.hpp>
#include <bitcoin/node/version.hpp>

namespace libbitcoin {
Expand Down Expand Up @@ -146,7 +146,7 @@ enum error_t : uint8_t
};

// No current need for error_code equivalence mapping.
DECLARE_ERROR_T_CODE_CATEGORY(error);
DECLARE_ERROR_T_CODE_CATEGORY(error, BCN_API);

} // namespace error
} // namespace node
Expand Down
39 changes: 39 additions & 0 deletions include/bitcoin/node/preprocessor.hpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
/**
* Copyright (c) 2011-2026 libbitcoin developers
*
* This file is part of libbitcoin.
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#ifndef LIBBITCOIN_NODE_PREPROCESSOR_HPP
#define LIBBITCOIN_NODE_PREPROCESSOR_HPP

#include <bitcoin/system.hpp>

/// Now we use the generic helper definitions above to define BCN_API
/// and BCN_INTERNAL. BCN_API is used for the public API symbols. It either DLL
/// imports or DLL exports (or does nothing for static build) BCN_INTERNAL is
/// used for non-api symbols.
#if defined BCN_STATIC
#define BCN_API
#define BCN_INTERNAL
#elif defined BCN_DLL
#define BCN_API BC_HELPER_DLL_EXPORT
#define BCN_INTERNAL BC_HELPER_DLL_LOCAL
#else
#define BCN_API BC_HELPER_DLL_IMPORT
#define BCN_INTERNAL BC_HELPER_DLL_LOCAL
#endif

#endif
Loading