Skip to content
Closed
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
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,9 @@ builds/gnu/.dirstamp
# pkg-config pc file from .pc.in
builds/gnu/*.pc

# configured headers from in-tree configure
builds/gnu/include

# msbuild/msvc
/.vs
*.db
Expand Down
25 changes: 23 additions & 2 deletions builds/cmake/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ find_package(Git QUIET)
set( GIT_COMMIT_HASH "unknown" )
set( GIT_COMMIT_HEIGHT 0 )
set( GIT_DIRTY 0 )
set( GIT_ORIGIN_URL "https://github.com/libbitcoin/libbitcoin-node" )
set( GIT_ORIGIN_URL "unknown" )

if ( GIT_EXECUTABLE )
execute_process(
Expand All @@ -21,6 +21,10 @@ if ( GIT_EXECUTABLE )
OUTPUT_STRIP_TRAILING_WHITESPACE
ERROR_QUIET )

if ( NOT GIT_COMMIT_HASH )
set( GIT_COMMIT_HASH "unknown" )
endif()

execute_process(
COMMAND ${GIT_EXECUTABLE} rev-list --count HEAD
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
Expand All @@ -33,12 +37,16 @@ if ( GIT_EXECUTABLE )
endif()

execute_process(
COMMAND ${GIT_EXECUTABLE} remote get-url origin
COMMAND ${GIT_EXECUTABLE} ls-remote --get-url
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
OUTPUT_VARIABLE GIT_ORIGIN_URL
OUTPUT_STRIP_TRAILING_WHITESPACE
ERROR_QUIET )

if ( NOT GIT_ORIGIN_URL MATCHES "://|@" )
set( GIT_ORIGIN_URL "unknown" )
endif()

execute_process(
COMMAND ${GIT_EXECUTABLE} status --porcelain
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
Expand Down Expand Up @@ -171,6 +179,15 @@ endif()
#------------------------------------------------------------------------------
include(CheckLinkerFlag)

#------------------------------------------------------------------------------
# Configurable file(s).
#------------------------------------------------------------------------------

configure_file(
${CMAKE_CURRENT_SOURCE_DIR}/../../include/bitcoin/node/version.hpp.in
${CMAKE_CURRENT_BINARY_DIR}/include/bitcoin/node/version.hpp
@ONLY )

#------------------------------------------------------------------------------
# libbitcoin-node library
#------------------------------------------------------------------------------
Expand Down Expand Up @@ -212,6 +229,10 @@ target_sources( libbitcoin-node
BASE_DIRS "${CMAKE_CURRENT_SOURCE_DIR}/../../include"
FILES
${libbitcoin_node_HEADERS}
FILE_SET HEADERS
BASE_DIRS "${CMAKE_CURRENT_BINARY_DIR}/include"
FILES
"${CMAKE_CURRENT_BINARY_DIR}/include/bitcoin/node/version.hpp"
PRIVATE
${libbitcoin_node_SOURCES}
)
Expand Down
4 changes: 3 additions & 1 deletion builds/gnu/Makefile.am
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,7 @@ lib_LTLIBRARIES = src/libbitcoin-node.la
src_libbitcoin_node_la_LIBS = src/libbitcoin-node.la

src_libbitcoin_node_la_CPPFLAGS = \
-I${top_builddir}/include \
-I${srcdir}/../../include \
${libbitcoin_database_BUILD_CPPFLAGS} \
${libbitcoin_network_BUILD_CPPFLAGS}
Expand Down Expand Up @@ -115,7 +116,8 @@ include_bitcoin_node_HEADERS = \
${srcdir}/../../include/bitcoin/node/events.hpp \
${srcdir}/../../include/bitcoin/node/full_node.hpp \
${srcdir}/../../include/bitcoin/node/settings.hpp \
${srcdir}/../../include/bitcoin/node/version.hpp
${srcdir}/../../include/bitcoin/node/version.hpp \
include/bitcoin/node/version.hpp

include_bitcoin_node_channelsdir = \
${includedir}/bitcoin/node/channels
Expand Down
3 changes: 2 additions & 1 deletion builds/gnu/configure.ac
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ m4_define([_git_dirty],
m4_define([_GIT_DIRTY], m4_ifnblank(_git_dirty, [_git_dirty], [0]))

m4_define([_GIT_ORIGIN_URL],
m4_dquote(m4_esyscmd_s([git remote get-url origin 2>/dev/null || echo https://github.com/libbitcoin/libbitcoin-node])))
m4_dquote(m4_esyscmd_s([git ls-remote --get-url 2>/dev/null | grep -e '://' -e '@' || echo unknown])))

m4_define([_LIBBITCOIN_VERSION_MAJOR], [4])
m4_define([_LIBBITCOIN_VERSION_MINOR], [0])
Expand Down Expand Up @@ -296,6 +296,7 @@ AS_IF([(test "x${with_tests}" != "xno")],
AC_CONFIG_FILES([
Makefile
libbitcoin-node.pc
include/bitcoin/node/version.hpp:${repository_root_dir}/include/bitcoin/node/version.hpp.in
])

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

<PropertyGroup>
<_PropertySheetDisplayName>Git Settings</_PropertySheetDisplayName>
</PropertyGroup>

<!-- Substitutes @TOKEN@ values into each ConfigurableFile, writing %(Generated) only when its content changes. -->
<Target Name="ConfigureFiles" BeforeTargets="ClCompile;ResourceCompile" Inputs="%(ConfigurableFile.Identity)" Outputs="%(ConfigurableFile.Generated)">

<Exec Command="git -C &quot;$(RepoRoot).&quot; rev-parse HEAD 2&gt;nul" Condition="'$(GitCommitHash)' == ''" ConsoleToMSBuild="true" EchoOff="true" IgnoreExitCode="true" IgnoreStandardErrorWarningFormat="true" StandardOutputImportance="low">
<Output TaskParameter="ConsoleOutput" PropertyName="GitCommitHash" />
</Exec>
<Exec Command="git -C &quot;$(RepoRoot).&quot; rev-list --count HEAD 2&gt;nul" Condition="'$(GitCommitHeight)' == ''" ConsoleToMSBuild="true" EchoOff="true" IgnoreExitCode="true" IgnoreStandardErrorWarningFormat="true" StandardOutputImportance="low">
<Output TaskParameter="ConsoleOutput" PropertyName="GitCommitHeight" />
</Exec>
<Exec Command="git -C &quot;$(RepoRoot).&quot; status --porcelain 2&gt;nul" Condition="'$(GitDirty)' == ''" ConsoleToMSBuild="true" EchoOff="true" IgnoreExitCode="true" IgnoreStandardErrorWarningFormat="true" StandardOutputImportance="low">
<Output TaskParameter="ConsoleOutput" PropertyName="_GitStatus" />
</Exec>
<Exec Command="git -C &quot;$(RepoRoot).&quot; ls-remote --get-url 2&gt;nul" Condition="'$(GitOriginUrl)' == ''" ConsoleToMSBuild="true" EchoOff="true" IgnoreExitCode="true" IgnoreStandardErrorWarningFormat="true" StandardOutputImportance="low">
<Output TaskParameter="ConsoleOutput" PropertyName="GitOriginUrl" />
</Exec>

<PropertyGroup>
<GitCommitHash Condition="!$([System.Text.RegularExpressions.Regex]::IsMatch('$(GitCommitHash)', '^[0-9a-f]{40}$'))">unknown</GitCommitHash>
<GitCommitHeight Condition="!$([System.Text.RegularExpressions.Regex]::IsMatch('$(GitCommitHeight)', '^[0-9]+$'))">0</GitCommitHeight>
<GitDirty Condition="'$(GitDirty)' == '' And '$(_GitStatus)' != ''">1</GitDirty>
<GitDirty Condition="'$(GitDirty)' == ''">0</GitDirty>
<GitOriginUrl Condition="!$([System.Text.RegularExpressions.Regex]::IsMatch('$(GitOriginUrl)', '^(https?|ssh|git)://[^;\s]+$|^[^@;\s]+@[^:;\s]+:[^;\s]+$'))">unknown</GitOriginUrl>
<VersionPatch Condition="'$(VersionPatch)' == ''">$(GitCommitHeight)</VersionPatch>
</PropertyGroup>

<PropertyGroup>
<_Configured>$([System.IO.File]::ReadAllText('%(ConfigurableFile.FullPath)'))</_Configured>
<_Configured>$(_Configured.Replace('@LIBBITCOIN_VERSION_MAJOR@', '$(VersionMajor)'))</_Configured>
<_Configured>$(_Configured.Replace('@LIBBITCOIN_VERSION_MINOR@', '$(VersionMinor)'))</_Configured>
<_Configured>$(_Configured.Replace('@LIBBITCOIN_VERSION_PATCH@', '$(VersionPatch)'))</_Configured>
<_Configured>$(_Configured.Replace('@GIT_COMMIT_HASH@', '$(GitCommitHash)'))</_Configured>
<_Configured>$(_Configured.Replace('@GIT_ORIGIN_URL@', '$(GitOriginUrl)'))</_Configured>
<_Configured>$(_Configured.Replace('@GIT_DIRTY@', '$(GitDirty)'))</_Configured>
</PropertyGroup>

<MakeDir Directories="$([System.IO.Path]::GetDirectoryName('%(ConfigurableFile.Generated)'))" />
<WriteLinesToFile File="%(ConfigurableFile.Generated)" Lines="$([MSBuild]::Escape($(_Configured.TrimEnd())))" Overwrite="true" WriteOnlyWhenDifferent="true" />
<Message Text="Configured : %(ConfigurableFile.Generated)" Importance="high" />
</Target>

<Target Name="CleanConfiguredFiles" AfterTargets="Clean">
<Delete Files="@(ConfigurableFile->'%(Generated)')" />
</Target>

</Project>
1 change: 1 addition & 0 deletions builds/msvc/properties/Output.props
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@

<ImportGroup Label="PropertySheets">
<Import Project="Messages.props" />
<Import Project="Git.props" />
</ImportGroup>

</Project>
3 changes: 2 additions & 1 deletion builds/msvc/vs2026/libbitcoin-database.import.props
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@
<ItemDefinitionGroup>
<ClCompile>
<AdditionalIncludeDirectories>$(ProjectDir)..\..\..\..\..\libbitcoin-database\include\;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<AdditionalIncludeDirectories>$(ProjectDir)..\..\..\..\..\libbitcoin-database\build\include\;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions Condition="'$(Linkage-libbitcoin-database)' == 'static' Or '$(Linkage-libbitcoin-database)' == 'ltcg'">BCD_STATIC;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
<Link>
Expand All @@ -32,4 +33,4 @@
</AdditionalLibraryDirectories>
</Link>
</ItemDefinitionGroup>
</Project>
</Project>
3 changes: 2 additions & 1 deletion builds/msvc/vs2026/libbitcoin-network.import.props
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@
<ItemDefinitionGroup>
<ClCompile>
<AdditionalIncludeDirectories>$(ProjectDir)..\..\..\..\..\libbitcoin-network\include\;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<AdditionalIncludeDirectories>$(ProjectDir)..\..\..\..\..\libbitcoin-network\build\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>
Expand Down Expand Up @@ -59,4 +60,4 @@
</ItemGroup>
</Target>

</Project>
</Project>
3 changes: 2 additions & 1 deletion builds/msvc/vs2026/libbitcoin-node.import.props
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@
<ItemDefinitionGroup>
<ClCompile>
<AdditionalIncludeDirectories>$(ProjectDir)..\..\..\..\..\libbitcoin-node\include\;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<AdditionalIncludeDirectories>$(ProjectDir)..\..\..\..\..\libbitcoin-node\build\include\;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions Condition="'$(Linkage-libbitcoin-node)' == 'static' Or '$(Linkage-libbitcoin-node)' == 'ltcg'">BCN_STATIC;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
<Link>
Expand All @@ -32,4 +33,4 @@
</AdditionalLibraryDirectories>
</Link>
</ItemDefinitionGroup>
</Project>
</Project>
1 change: 1 addition & 0 deletions builds/msvc/vs2026/libbitcoin-node/libbitcoin-node.props
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@
<ItemDefinitionGroup>
<ClCompile>
<AdditionalIncludeDirectories>$(RepoRoot)include\;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<AdditionalIncludeDirectories>$(RepoRoot)build\include\;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<EnablePREfast>false</EnablePREfast>
<PreprocessorDefinitions Condition="'$(ConfigurationType)' == 'DynamicLibrary'">BCN_DLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<PreprocessorDefinitions Condition="'$(ConfigurationType)' == 'StaticLibrary'">BCN_STATIC;%(PreprocessorDefinitions)</PreprocessorDefinitions>
Expand Down
13 changes: 11 additions & 2 deletions builds/msvc/vs2026/libbitcoin-node/libbitcoin-node.vcxproj
Original file line number Diff line number Diff line change
Expand Up @@ -120,6 +120,16 @@
<Import Project="$(ProjectDir)..\..\properties\Output.props" />
<Import Project="$(ProjectDir)$(ProjectName).props" />
</ImportGroup>
<PropertyGroup Label="Git">
<VersionMajor>4</VersionMajor>
<VersionMinor>0</VersionMinor>
</PropertyGroup>
<ItemGroup>
<ConfigurableFile Include="..\..\..\..\include\bitcoin\node\version.hpp.in">
<Generated>..\..\..\..\build\include\bitcoin\node\version.hpp</Generated>
</ConfigurableFile>
<ClInclude Include="..\..\..\..\build\include\bitcoin\node\version.hpp" />
</ItemGroup>
<ItemGroup>
<ClCompile Include="..\..\..\..\src\block_arena.cpp" />
<ClCompile Include="..\..\..\..\src\block_memory.cpp" />
Expand Down Expand Up @@ -167,7 +177,6 @@
<ClCompile Include="..\..\..\..\src\settings.cpp" />
</ItemGroup>
<ItemGroup>
<ClInclude Include="..\..\..\..\builds\msvc\resource.h" />
<ClInclude Include="..\..\..\..\include\bitcoin\node.hpp" />
<ClInclude Include="..\..\..\..\include\bitcoin\node\block_arena.hpp" />
<ClInclude Include="..\..\..\..\include\bitcoin\node\block_memory.hpp" />
Expand Down Expand Up @@ -223,10 +232,10 @@
</ItemGroup>
<ItemGroup>
<None Include="..\..\..\..\include\bitcoin\node\impl\sessions\session_peer.ipp" />
<None Include="..\..\..\..\include\bitcoin\node\version.hpp.in" />
<None Include="packages.config" />
</ItemGroup>
<ItemGroup>
<ResourceCompile Include="..\..\..\..\builds\msvc\resource.rc" />
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets" />
Expand Down
29 changes: 13 additions & 16 deletions builds/msvc/vs2026/libbitcoin-node/libbitcoin-node.vcxproj.filters
Original file line number Diff line number Diff line change
Expand Up @@ -34,23 +34,20 @@
<Filter Include="include\bitcoin\node\sessions">
<UniqueIdentifier>{5FFB5F52-0772-4404-0000-000000000008}</UniqueIdentifier>
</Filter>
<Filter Include="resource">
<UniqueIdentifier>{5FFB5F52-0772-4404-0000-000000000009}</UniqueIdentifier>
</Filter>
<Filter Include="src">
<UniqueIdentifier>{5FFB5F52-0772-4404-0000-00000000000A}</UniqueIdentifier>
<UniqueIdentifier>{5FFB5F52-0772-4404-0000-000000000009}</UniqueIdentifier>
</Filter>
<Filter Include="src\channels">
<UniqueIdentifier>{5FFB5F52-0772-4404-0000-00000000000B}</UniqueIdentifier>
<UniqueIdentifier>{5FFB5F52-0772-4404-0000-00000000000A}</UniqueIdentifier>
</Filter>
<Filter Include="src\chasers">
<UniqueIdentifier>{5FFB5F52-0772-4404-0000-00000000000C}</UniqueIdentifier>
<UniqueIdentifier>{5FFB5F52-0772-4404-0000-00000000000B}</UniqueIdentifier>
</Filter>
<Filter Include="src\protocols">
<UniqueIdentifier>{5FFB5F52-0772-4404-0000-00000000000D}</UniqueIdentifier>
<UniqueIdentifier>{5FFB5F52-0772-4404-0000-00000000000C}</UniqueIdentifier>
</Filter>
<Filter Include="src\sessions">
<UniqueIdentifier>{5FFB5F52-0772-4404-0000-00000000000E}</UniqueIdentifier>
<UniqueIdentifier>{5FFB5F52-0772-4404-0000-00000000000D}</UniqueIdentifier>
</Filter>
</ItemGroup>
<ItemGroup>
Expand Down Expand Up @@ -188,9 +185,6 @@
</ClCompile>
</ItemGroup>
<ItemGroup>
<ClInclude Include="..\..\..\..\builds\msvc\resource.h">
<Filter>resource</Filter>
</ClInclude>
<ClInclude Include="..\..\..\..\include\bitcoin\node.hpp">
<Filter>include\bitcoin</Filter>
</ClInclude>
Expand Down Expand Up @@ -348,18 +342,21 @@
<Filter>include\bitcoin\node</Filter>
</ClInclude>
</ItemGroup>
<ItemGroup>
<ClInclude Include="..\..\..\..\build\include\bitcoin\node\version.hpp">
<Filter>include\bitcoin\node</Filter>
</ClInclude>
</ItemGroup>
<ItemGroup>
<None Include="..\..\..\..\include\bitcoin\node\impl\sessions\session_peer.ipp">
<Filter>include\bitcoin\node\impl\sessions</Filter>
</None>
<None Include="..\..\..\..\include\bitcoin\node\version.hpp.in">
<Filter>include\bitcoin\node</Filter>
</None>
<None Include="packages.config" />
</ItemGroup>
<ItemGroup>
<Natvis Include="..\..\debug.natvis" />
</ItemGroup>
<ItemGroup>
<ResourceCompile Include="..\..\..\..\builds\msvc\resource.rc">
<Filter>resource</Filter>
</ResourceCompile>
</ItemGroup>
</Project>
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 @@ -52,6 +52,8 @@
<ItemDefinitionGroup>
<ClCompile>
<AdditionalIncludeDirectories>$(ProjectDir)..\..\..\..\..\libbitcoin-system\include\;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<AdditionalIncludeDirectories>$(ProjectDir)..\..\..\..\..\libbitcoin-system\build\include\;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>

<!-- NOMINMAX enables use of std::min/max without conflict. -->
<!-- WIN32_LEAN_AND_MEAN avoids inclusion of certain headers, winsock.h conflicts with boost and protocol use of winsock2.h. -->
<PreprocessorDefinitions>WIN32_LEAN_AND_MEAN;NOMINMAX;_WIN32_WINNT=0x0A00;%(PreprocessorDefinitions)</PreprocessorDefinitions>
Expand Down
23 changes: 23 additions & 0 deletions include/bitcoin/node/version.hpp.in
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
///////////////////////////////////////////////////////////////////////////////
// Copyright (c) 2014-2026 libbitcoin-node developers (see COPYING).
//
// GENERATED SOURCE CODE, DO NOT EDIT EXCEPT EXPERIMENTALLY
//
///////////////////////////////////////////////////////////////////////////////
#ifndef LIBBITCOIN_NODE_VERSION_HPP
#define LIBBITCOIN_NODE_VERSION_HPP

/**
* The semantic version of this repository as: [major].[minor].[patch]
* For interpretation of the versioning scheme see: http://semver.org
*/

#define LIBBITCOIN_NODE_VERSION "@LIBBITCOIN_VERSION_MAJOR@.@LIBBITCOIN_VERSION_MINOR@.@LIBBITCOIN_VERSION_PATCH@"
#define LIBBITCOIN_NODE_MAJOR_VERSION @LIBBITCOIN_VERSION_MAJOR@
#define LIBBITCOIN_NODE_MINOR_VERSION @LIBBITCOIN_VERSION_MINOR@
#define LIBBITCOIN_NODE_PATCH_VERSION @LIBBITCOIN_VERSION_PATCH@
#define LIBBITCOIN_NODE_COMMIT_HASH "@GIT_COMMIT_HASH@"
#define LIBBITCOIN_NODE_REPOSITORY_URL "@GIT_ORIGIN_URL@"
#define LIBBITCOIN_NODE_IS_DIRTY @GIT_DIRTY@

#endif
Loading