diff --git a/.github/workflows/ci-expanded.yml b/.github/workflows/ci-expanded.yml index 6cf6f2e54..59c94a0e6 100644 --- a/.github/workflows/ci-expanded.yml +++ b/.github/workflows/ci-expanded.yml @@ -1435,6 +1435,22 @@ jobs: coverage: "" options: "" + - image: windows-latest + preset: "win-msvc-release-shared" + cc: "" + cxx: "" + flags: "" + coverage: "" + options: "" + + - image: windows-latest + preset: "win-clangcl-release-shared" + cc: "" + cxx: "" + flags: "" + coverage: "" + options: "" + - image: ubuntu-24.04 preset: "nix-gnu-debug-shared" cc: "clang-19" @@ -1756,7 +1772,7 @@ jobs: - name: Environmental Computation shell: bash run: | - if [[ "${{ matrix.preset }}" == *shared* ]]; then + if [[ "${{ matrix.preset }}" == *shared* && "${{ matrix.image }}" != windows* ]]; then echo "LDFLAGS=-Wl,-rpath,${{ github.workspace }}/prefix/lib" >> $GITHUB_ENV fi @@ -1864,6 +1880,20 @@ jobs: tests: "*" options: "" + - image: windows-latest + configuration: "DynamicRelease" + platform: "x64" + version: "vs2026" + tests: "*" + options: "" + + - image: windows-latest + configuration: "DynamicDebug" + platform: "x64" + version: "vs2026" + tests: "*" + options: "" + - image: windows-2025-vs2026 configuration: "StaticRelease" platform: "x64" @@ -1892,6 +1922,13 @@ jobs: tests: "*" options: "--build-compiler clang" + - image: windows-latest + configuration: "DynamicRelease" + platform: "x64" + version: "vs2026" + tests: "*" + options: "--build-compiler clang" + - image: windows-11-vs2026-arm configuration: "StaticRelease" platform: "ARM64" @@ -2017,7 +2054,7 @@ jobs: working-directory: 'libbitcoin-node' run: | Write-Host "Locating test executables..." -ForegroundColor Yellow; - $BC_TEST_EXES = @(Get-ChildItem -Path "bin" -recurse | Where-Object { $_.Name -eq "libbitcoin-node-test.exe" }); + $BC_TEST_EXES = @(Get-ChildItem -Path "bin", "..\bin" -recurse -ErrorAction SilentlyContinue | Where-Object { $_.Name -eq "libbitcoin-node-test.exe" }); If ($BC_TEST_EXES.Count -ne 1) { Write-Host "Failure, invalid count of test executables." -ForegroundColor Red; exit 1; diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index a979447db..d97842276 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -783,7 +783,7 @@ jobs: - name: Environmental Computation shell: bash run: | - if [[ "${{ matrix.preset }}" == *shared* ]]; then + if [[ "${{ matrix.preset }}" == *shared* && "${{ matrix.image }}" != windows* ]]; then echo "LDFLAGS=-Wl,-rpath,${{ github.workspace }}/prefix/lib" >> $GITHUB_ENV fi @@ -1016,7 +1016,7 @@ jobs: working-directory: 'libbitcoin-node' run: | Write-Host "Locating test executables..." -ForegroundColor Yellow; - $BC_TEST_EXES = @(Get-ChildItem -Path "bin" -recurse | Where-Object { $_.Name -eq "libbitcoin-node-test.exe" }); + $BC_TEST_EXES = @(Get-ChildItem -Path "bin", "..\bin" -recurse -ErrorAction SilentlyContinue | Where-Object { $_.Name -eq "libbitcoin-node-test.exe" }); If ($BC_TEST_EXES.Count -ne 1) { Write-Host "Failure, invalid count of test executables." -ForegroundColor Red; exit 1; diff --git a/builds/cmake/CMakeLists.txt b/builds/cmake/CMakeLists.txt index a6c17485a..69b8c6ca0 100644 --- a/builds/cmake/CMakeLists.txt +++ b/builds/cmake/CMakeLists.txt @@ -70,25 +70,48 @@ set( repository_root_dir "${CMAKE_CURRENT_SOURCE_DIR}/../.." ) if ( MSVC ) set( CMAKE_STATIC_LIBRARY_PREFIX "lib" ) set( CMAKE_SHARED_LIBRARY_PREFIX "lib" ) + set( CMAKE_IMPORT_LIBRARY_PREFIX "lib" ) if ( BUILD_SHARED_LIBS ) - message( FATAL_ERROR "Shared libraries are not supported with the MSVC frontend." ) + set( CMAKE_MSVC_RUNTIME_LIBRARY + "$,MultiThreadedDebugDLL,MultiThreadedDLL>" ) + else() + set( CMAKE_MSVC_RUNTIME_LIBRARY + "$,MultiThreadedDebug,MultiThreaded>" ) endif() + set( CMAKE_C_FLAGS_DEBUG "/Od /Ob1 /Oi /Gy /RTC1 /Zi" ) + set( CMAKE_CXX_FLAGS_DEBUG "/Od /Ob1 /Oi /Gy /RTC1 /Zi" ) + set( CMAKE_C_FLAGS_RELEASE "/O2 /Ob2 /Oi /Ot /Oy /GT /Qpar /Gy /GF /GS- /guard:cf- /Zi" ) + set( CMAKE_CXX_FLAGS_RELEASE "/O2 /Ob2 /Oi /Ot /Oy /GT /Qpar /Gy /GF /GS- /guard:cf- /Zi" ) + add_compile_options( /W4 - /bigobj /permissive- + /bigobj /Zc:__cplusplus /Zc:preprocessor - $<$:-Wno-unused-command-line-argument> ) + $<$:-Wno-unused-command-line-argument> + ) add_compile_definitions( UNICODE _UNICODE WIN32_LEAN_AND_MEAN NOMINMAX - _WIN32_WINNT=0x0A00 ) + _WIN32_WINNT=0x0A00 + $<$:_DEBUG> + $<$:_CRTDBG_MAP_ALLOC> + $<$:NDEBUG> + ) + + add_link_options( + /ignore:4099 + $<$:/DEBUG> + $<$:/DEBUG> + $<$:/OPT:REF> + $<$:/OPT:ICF> + ) endif() # Link POSIX threads on BSD. @@ -244,10 +267,21 @@ if ( NOT MSVC ) endif() if ( MSVC ) - target_compile_definitions( libbitcoin-node - PUBLIC - BCN_STATIC - ) + if ( BUILD_SHARED_LIBS ) + target_compile_definitions( libbitcoin-node + PRIVATE + BCN_DLL + _DLL + _WINDLL + ) + else() + target_compile_definitions( libbitcoin-node + PUBLIC + BCN_STATIC + PRIVATE + _LIB + ) + endif() endif() file( GLOB_RECURSE libbitcoin_node_HEADERS CONFIGURE_DEPENDS @@ -326,6 +360,14 @@ if ( with-tests ) --build_info=yes ) + if ( WIN32 AND BUILD_SHARED_LIBS ) + set_tests_properties( libbitcoin-node-test + PROPERTIES + ENVIRONMENT_MODIFICATION + "PATH=path_list_prepend:$,\;>" + ) + endif() + target_compile_features( libbitcoin-node-test PUBLIC cxx_std_20 @@ -349,6 +391,13 @@ if ( with-tests ) ) endif() + if ( MSVC ) + target_compile_definitions( libbitcoin-node-test + PRIVATE + _CONSOLE + ) + endif() + file( GLOB_RECURSE libbitcoin_node_test_SOURCES CONFIGURE_DEPENDS "${CMAKE_CURRENT_SOURCE_DIR}/../../test/*.c" "${CMAKE_CURRENT_SOURCE_DIR}/../../test/*.cpp" diff --git a/builds/cmake/CMakePresets.json b/builds/cmake/CMakePresets.json index f2cb8f0fc..597abe5db 100644 --- a/builds/cmake/CMakePresets.json +++ b/builds/cmake/CMakePresets.json @@ -136,8 +136,7 @@ "CMAKE_INSTALL_PREFIX_PATH": { "type": "PATH", "value": "${sourceParentDir}/../../../prefix/${presetName}" - }, - "CMAKE_MSVC_RUNTIME_LIBRARY": "MultiThreaded$<$:Debug>" + } } }, { @@ -198,6 +197,30 @@ "win-base" ] }, + { + "name": "win-msvc-debug-shared", + "displayName": "Windows/MSVC/Debug/Shared", + "description": "Debug build with msvc and shared linking.", + "hidden": false, + "inherits": [ + "shared", + "win-debug", + "msvc", + "win-base" + ] + }, + { + "name": "win-msvc-release-shared", + "displayName": "Windows/MSVC/Release/Shared", + "description": "Release build with msvc and shared linking.", + "hidden": false, + "inherits": [ + "shared", + "win-release", + "msvc", + "win-base" + ] + }, { "name": "win-clangcl-debug-static", "displayName": "Windows/clang-cl/Debug/Static", @@ -221,6 +244,30 @@ "clangcl", "win-base" ] + }, + { + "name": "win-clangcl-debug-shared", + "displayName": "Windows/clang-cl/Debug/Shared", + "description": "Debug build with clang-cl and shared linking.", + "hidden": false, + "inherits": [ + "shared", + "win-debug", + "clangcl", + "win-base" + ] + }, + { + "name": "win-clangcl-release-shared", + "displayName": "Windows/clang-cl/Release/Shared", + "description": "Release build with clang-cl and shared linking.", + "hidden": false, + "inherits": [ + "shared", + "win-release", + "clangcl", + "win-base" + ] } ], "buildPresets": [ @@ -268,6 +315,18 @@ "inherits": [ "nix-target-list" ], "configurePreset": "win-msvc-release-static" }, + { + "name": "win-msvc-debug-shared", + "displayName": "Windows/MSVC/Debug/Shared", + "inherits": [ "nix-target-list" ], + "configurePreset": "win-msvc-debug-shared" + }, + { + "name": "win-msvc-release-shared", + "displayName": "Windows/MSVC/Release/Shared", + "inherits": [ "nix-target-list" ], + "configurePreset": "win-msvc-release-shared" + }, { "name": "win-clangcl-debug-static", "displayName": "Windows/clang-cl/Debug/Static", @@ -279,6 +338,18 @@ "displayName": "Windows/clang-cl/Release/Static", "inherits": [ "nix-target-list" ], "configurePreset": "win-clangcl-release-static" + }, + { + "name": "win-clangcl-debug-shared", + "displayName": "Windows/clang-cl/Debug/Shared", + "inherits": [ "nix-target-list" ], + "configurePreset": "win-clangcl-debug-shared" + }, + { + "name": "win-clangcl-release-shared", + "displayName": "Windows/clang-cl/Release/Shared", + "inherits": [ "nix-target-list" ], + "configurePreset": "win-clangcl-release-shared" } ] } diff --git a/builds/cmake/install-presets.sh b/builds/cmake/install-presets.sh index 4df8031a4..313ca69d1 100755 --- a/builds/cmake/install-presets.sh +++ b/builds/cmake/install-presets.sh @@ -239,6 +239,14 @@ main() msg_verbose "BUILD_PRESET value 'win-msvc-release-static'." BUILD_CONFIG="release" BUILD_LINK="static" + elif [[ "${BUILD_PRESET}" == "win-msvc-debug-shared" ]]; then + msg_verbose "BUILD_PRESET value 'win-msvc-debug-shared'." + BUILD_CONFIG="debug" + BUILD_LINK="dynamic" + elif [[ "${BUILD_PRESET}" == "win-msvc-release-shared" ]]; then + msg_verbose "BUILD_PRESET value 'win-msvc-release-shared'." + BUILD_CONFIG="release" + BUILD_LINK="dynamic" elif [[ "${BUILD_PRESET}" == "win-clangcl-debug-static" ]]; then msg_verbose "BUILD_PRESET value 'win-clangcl-debug-static'." BUILD_CONFIG="debug" @@ -247,6 +255,14 @@ main() msg_verbose "BUILD_PRESET value 'win-clangcl-release-static'." BUILD_CONFIG="release" BUILD_LINK="static" + elif [[ "${BUILD_PRESET}" == "win-clangcl-debug-shared" ]]; then + msg_verbose "BUILD_PRESET value 'win-clangcl-debug-shared'." + BUILD_CONFIG="debug" + BUILD_LINK="dynamic" + elif [[ "${BUILD_PRESET}" == "win-clangcl-release-shared" ]]; then + msg_verbose "BUILD_PRESET value 'win-clangcl-release-shared'." + BUILD_CONFIG="release" + BUILD_LINK="dynamic" else msg_error "Unrecognized build-preset value '${BUILD_PRESET}'." help diff --git a/builds/msvc/properties/Arm64.props b/builds/msvc/properties/ARM64.props similarity index 56% rename from builds/msvc/properties/Arm64.props rename to builds/msvc/properties/ARM64.props index c66e5e7dc..faff07fec 100644 --- a/builds/msvc/properties/Arm64.props +++ b/builds/msvc/properties/ARM64.props @@ -1,15 +1,18 @@ - + + - + <_PropertySheetDisplayName>ARM64 Settings - + - WIN32;_WIN32;_ARM64;%(PreprocessorDefinitions) @@ -20,4 +23,10 @@ - \ No newline at end of file + + + --target=aarch64-pc-windows-msvc %(AdditionalOptions) + + + + diff --git a/builds/msvc/properties/Arm.props b/builds/msvc/properties/Arm.props deleted file mode 100644 index 53f05a3a8..000000000 --- a/builds/msvc/properties/Arm.props +++ /dev/null @@ -1,23 +0,0 @@ - - - - - <_PropertySheetDisplayName>ARM32 Settings - - - - - - WIN32;_WIN32;_ARM_;%(PreprocessorDefinitions) - - - MachineARM - - - /MACHINE:ARM %(AdditionalOptions) - - - - \ No newline at end of file diff --git a/builds/msvc/properties/Common.props b/builds/msvc/properties/Common.props index f5abe044e..b3efa3bb6 100644 --- a/builds/msvc/properties/Common.props +++ b/builds/msvc/properties/Common.props @@ -1,93 +1,51 @@ - + + - - <_PropertySheetDisplayName>Common Settings - Unicode - - - + + <_PropertySheetDisplayName>Common Settings + Unicode + AllRules.ruleset + false x64 - UNICODE;_UNICODE;%(PreprocessorDefinitions) - - - + UNICODE;_UNICODE;WIN32_LEAN_AND_MEAN;NOMINMAX;_WIN32_WINNT=0x0A00;%(PreprocessorDefinitions) Level4 - false - false - true - /bigobj %(AdditionalOptions) - - - - /Zc:__cplusplus /Zc:preprocessor %(AdditionalOptions) + Level4 + true + stdc11 true true false false - stdc11 - stdcpp14 - stdcpp17 - stdcpp20 - stdcpp20 - stdcpp20 - false - true - true - true - true - - - - - Level4 + false + false + true + false + /bigobj /Zc:__cplusplus /Zc:preprocessor %(AdditionalOptions) + + /ignore:4099 %(AdditionalOptions) + - - --target=i686-pc-windows-msvc %(AdditionalOptions) - --target=aarch64-pc-windows-msvc %(AdditionalOptions) - -Wno-unused-command-line-argument %(AdditionalOptions) TurnOffAllWarnings + -Wno-unused-command-line-argument %(AdditionalOptions) - - - - -msse4.1 -msha %(AdditionalOptions) - -mavx2 -msha512 %(AdditionalOptions) - -mavx512ifma -mavx512vl %(AdditionalOptions) - -mavxifma %(AdditionalOptions) - -msse4.1 -maes -mpclmul %(AdditionalOptions) - -mavx2 -maes -mpclmul -mvaes -mvpclmulqdq %(AdditionalOptions) - - - - - - - armv8-a - armv8.2-a - %(ArmExtensions)+sha2 - %(ArmExtensions)+aes - %(ArmExtensions)+sha3 - - - - - -march=%(ArmBase)%(ArmExtensions) %(AdditionalOptions) - - - - \ No newline at end of file + diff --git a/builds/msvc/properties/DLL.props b/builds/msvc/properties/DLL.props index b5aa1f07f..2199899c0 100644 --- a/builds/msvc/properties/DLL.props +++ b/builds/msvc/properties/DLL.props @@ -1,16 +1,22 @@ - + + - + - <_PropertySheetDisplayName>Dynamic Library + <_PropertySheetDisplayName>Dynamic Library Settings dynamic .dll - + _DLL;_WINDLL;%(PreprocessorDefinitions) - \ No newline at end of file + diff --git a/builds/msvc/properties/Debug.props b/builds/msvc/properties/Debug.props index 1a54192f3..27216ba35 100644 --- a/builds/msvc/properties/Debug.props +++ b/builds/msvc/properties/Debug.props @@ -1,34 +1,37 @@ - + + - + - + <_PropertySheetDisplayName>Debug Settings Debug - + - + _DEBUG;_CRTDBG_MAP_ALLOC;%(PreprocessorDefinitions) + Disabled + OnlyExplicitInline + true + true EnableFastChecks ProgramDatabase - true - true - - OnlyExplicitInline - Disabled - _DEBUG;%(PreprocessorDefinitions) _DEBUG;%(PreprocessorDefinitions) true - + - - \ No newline at end of file + + diff --git a/builds/msvc/properties/DebugDEXE.props b/builds/msvc/properties/DebugDEXE.props index 18a066fce..390055518 100644 --- a/builds/msvc/properties/DebugDEXE.props +++ b/builds/msvc/properties/DebugDEXE.props @@ -1,8 +1,14 @@ - + + - <_PropertySheetDisplayName>Console Debug Dynamic + <_PropertySheetDisplayName>DebugDEXE Settings dynamic @@ -10,11 +16,11 @@ - + MultiThreadedDebugDLL - - \ No newline at end of file + + diff --git a/builds/msvc/properties/DebugDLL.props b/builds/msvc/properties/DebugDLL.props index c60aeed11..a4b71bfa0 100644 --- a/builds/msvc/properties/DebugDLL.props +++ b/builds/msvc/properties/DebugDLL.props @@ -1,8 +1,14 @@ - + + - <_PropertySheetDisplayName>Dynamic Debug Library + <_PropertySheetDisplayName>DebugDLL Settings @@ -15,5 +21,5 @@ MultiThreadedDebugDLL - - \ No newline at end of file + + diff --git a/builds/msvc/properties/DebugLEXE.props b/builds/msvc/properties/DebugLEXE.props index 7fa92c035..f644ed706 100644 --- a/builds/msvc/properties/DebugLEXE.props +++ b/builds/msvc/properties/DebugLEXE.props @@ -1,8 +1,14 @@ - + + - <_PropertySheetDisplayName>Console Debug Link Time Code Generation + <_PropertySheetDisplayName>DebugLEXE Settings @@ -17,4 +23,4 @@ - \ No newline at end of file + diff --git a/builds/msvc/properties/DebugLIB.props b/builds/msvc/properties/DebugLIB.props index 91762b460..08eaa1e32 100644 --- a/builds/msvc/properties/DebugLIB.props +++ b/builds/msvc/properties/DebugLIB.props @@ -1,19 +1,25 @@ - + + - + - <_PropertySheetDisplayName>Static Debug Library + <_PropertySheetDisplayName>DebugLIB Settings - + - + MultiThreadedDebug - \ No newline at end of file + diff --git a/builds/msvc/properties/DebugLTCG.props b/builds/msvc/properties/DebugLTCG.props index 8dafd5f4e..d282bda0a 100644 --- a/builds/msvc/properties/DebugLTCG.props +++ b/builds/msvc/properties/DebugLTCG.props @@ -1,13 +1,20 @@ - + + - + - <_PropertySheetDisplayName>Static Debug Link Time Code Generation Library + <_PropertySheetDisplayName>DebugLTCG Settings - + - + + @@ -16,4 +23,4 @@ - \ No newline at end of file + diff --git a/builds/msvc/properties/DebugSEXE.props b/builds/msvc/properties/DebugSEXE.props index fcd4e3300..98a9db11f 100644 --- a/builds/msvc/properties/DebugSEXE.props +++ b/builds/msvc/properties/DebugSEXE.props @@ -1,8 +1,14 @@ - + + - <_PropertySheetDisplayName>Console Debug Static + <_PropertySheetDisplayName>DebugSEXE Settings static @@ -17,4 +23,4 @@ - \ No newline at end of file + diff --git a/builds/msvc/properties/EXE.props b/builds/msvc/properties/EXE.props index 354906458..fce70c33b 100644 --- a/builds/msvc/properties/EXE.props +++ b/builds/msvc/properties/EXE.props @@ -1,9 +1,15 @@ - + + - + - <_PropertySheetDisplayName>Console Application - true + <_PropertySheetDisplayName>Console Application Settings + true @@ -14,4 +20,5 @@ Console - \ No newline at end of file + + diff --git a/builds/msvc/properties/LIB.props b/builds/msvc/properties/LIB.props index 3835777cf..5ef6e8f7c 100644 --- a/builds/msvc/properties/LIB.props +++ b/builds/msvc/properties/LIB.props @@ -1,16 +1,22 @@ - + + - + - <_PropertySheetDisplayName>Static Library + <_PropertySheetDisplayName>Static Library Settings static .lib - + _LIB;%(PreprocessorDefinitions) - \ No newline at end of file + diff --git a/builds/msvc/properties/LTCG.props b/builds/msvc/properties/LTCG.props deleted file mode 100644 index 02292938c..000000000 --- a/builds/msvc/properties/LTCG.props +++ /dev/null @@ -1,13 +0,0 @@ - - - - - <_PropertySheetDisplayName>Link Time Code Generation Library - - - - - - - - \ No newline at end of file diff --git a/builds/msvc/properties/Link.props b/builds/msvc/properties/Link.props index 1323369c1..7acc0c0d5 100644 --- a/builds/msvc/properties/Link.props +++ b/builds/msvc/properties/Link.props @@ -1,6 +1,12 @@ - + + - + <_PropertySheetDisplayName>Link Time Code Generation Settings ltcg @@ -9,7 +15,6 @@ true - true UseLinkTimeCodeGeneration @@ -19,4 +24,4 @@ - \ No newline at end of file + diff --git a/builds/msvc/properties/Release.props b/builds/msvc/properties/Release.props index 419a4f712..d137bc181 100644 --- a/builds/msvc/properties/Release.props +++ b/builds/msvc/properties/Release.props @@ -1,44 +1,45 @@ - + + - + <_PropertySheetDisplayName>Release Settings Release - - - - - false - false - true - true - Speed - true + NDEBUG;%(PreprocessorDefinitions) + MaxSpeed AnySuitable true + Speed true - MaxSpeed - - - ProgramDatabase + true + true + true true - NDEBUG;%(PreprocessorDefinitions) + false + false + ProgramDatabase NDEBUG;%(PreprocessorDefinitions) - true true true - + true + - \ No newline at end of file + + diff --git a/builds/msvc/properties/ReleaseDEXE.props b/builds/msvc/properties/ReleaseDEXE.props index 73deeae93..8e1e6ade0 100644 --- a/builds/msvc/properties/ReleaseDEXE.props +++ b/builds/msvc/properties/ReleaseDEXE.props @@ -1,8 +1,14 @@ - + + - <_PropertySheetDisplayName>Console Release Dynamic + <_PropertySheetDisplayName>ReleaseDEXE Settings dynamic @@ -17,4 +23,4 @@ - \ No newline at end of file + diff --git a/builds/msvc/properties/ReleaseDLL.props b/builds/msvc/properties/ReleaseDLL.props index 2071b33f6..3f8fb276e 100644 --- a/builds/msvc/properties/ReleaseDLL.props +++ b/builds/msvc/properties/ReleaseDLL.props @@ -1,19 +1,25 @@ - + + - + - <_PropertySheetDisplayName>Dynamic Release Library + <_PropertySheetDisplayName>ReleaseDLL Settings - + MultiThreadedDLL - \ No newline at end of file + diff --git a/builds/msvc/properties/ReleaseLEXE.props b/builds/msvc/properties/ReleaseLEXE.props index beb73ef27..fe4a07e01 100644 --- a/builds/msvc/properties/ReleaseLEXE.props +++ b/builds/msvc/properties/ReleaseLEXE.props @@ -1,8 +1,14 @@ - + + - <_PropertySheetDisplayName>Console Release Link Time Code Generation + <_PropertySheetDisplayName>ReleaseLEXE Settings @@ -17,4 +23,4 @@ - \ No newline at end of file + diff --git a/builds/msvc/properties/ReleaseLIB.props b/builds/msvc/properties/ReleaseLIB.props index 2b250d579..23a247d04 100644 --- a/builds/msvc/properties/ReleaseLIB.props +++ b/builds/msvc/properties/ReleaseLIB.props @@ -1,10 +1,16 @@ - + + - <_PropertySheetDisplayName>Static Release Library + <_PropertySheetDisplayName>ReleaseLIB Settings - + @@ -16,4 +22,4 @@ - \ No newline at end of file + diff --git a/builds/msvc/properties/ReleaseLTCG.props b/builds/msvc/properties/ReleaseLTCG.props index 1814c6f3d..b2444c795 100644 --- a/builds/msvc/properties/ReleaseLTCG.props +++ b/builds/msvc/properties/ReleaseLTCG.props @@ -1,13 +1,20 @@ - + + - <_PropertySheetDisplayName>Static Release Link Time Code Generation Library + <_PropertySheetDisplayName>ReleaseLTCG Settings - + - + + @@ -16,4 +23,4 @@ - \ No newline at end of file + diff --git a/builds/msvc/properties/ReleaseSEXE.props b/builds/msvc/properties/ReleaseSEXE.props index 2f5600a06..3d6e573cd 100644 --- a/builds/msvc/properties/ReleaseSEXE.props +++ b/builds/msvc/properties/ReleaseSEXE.props @@ -1,8 +1,14 @@ - + + - <_PropertySheetDisplayName>Console Release Static + <_PropertySheetDisplayName>ReleaseSEXE Settings static @@ -17,4 +23,4 @@ - \ No newline at end of file + diff --git a/builds/msvc/properties/Win32.props b/builds/msvc/properties/Win32.props index 744098fe9..871318103 100644 --- a/builds/msvc/properties/Win32.props +++ b/builds/msvc/properties/Win32.props @@ -1,30 +1,26 @@ - + + - - - <_PropertySheetDisplayName>x86 Settings - - - + + <_PropertySheetDisplayName>Win32 Settings AdvancedVectorExtensions2 - + WIN32;_WIN32;%(PreprocessorDefinitions) StreamingSIMDExtensions StreamingSIMDExtensions2 AdvancedVectorExtensions AdvancedVectorExtensions2 AdvancedVectorExtensions512 - - - - - WIN32;_WIN32;%(PreprocessorDefinitions) - MachineX86 @@ -33,4 +29,10 @@ - \ No newline at end of file + + + --target=i686-pc-windows-msvc %(AdditionalOptions) + + + + diff --git a/builds/msvc/properties/x64.props b/builds/msvc/properties/x64.props index 4b997e4f9..1ec028cc7 100644 --- a/builds/msvc/properties/x64.props +++ b/builds/msvc/properties/x64.props @@ -1,33 +1,26 @@ - + + - + <_PropertySheetDisplayName>x64 Settings - - - - AdvancedVectorExtensions2 - + WIN32;_WIN32;WIN64;_WIN64;%(PreprocessorDefinitions) StreamingSIMDExtensions StreamingSIMDExtensions2 AdvancedVectorExtensions AdvancedVectorExtensions2 AdvancedVectorExtensions512 - - - - - - WIN32;_WIN32;WIN64;_WIN64;%(PreprocessorDefinitions) - MachineX64 @@ -36,4 +29,4 @@ - \ No newline at end of file + diff --git a/builds/msvc/vs2026/libbitcoin-database.import.props b/builds/msvc/vs2026/libbitcoin-database.import.props index db77a39a9..2280838ac 100644 --- a/builds/msvc/vs2026/libbitcoin-database.import.props +++ b/builds/msvc/vs2026/libbitcoin-database.import.props @@ -1,38 +1,32 @@ - + + - <_PropertySheetDisplayName>Libbitcoin Database Import Settings + <_PropertySheetDisplayName>libbitcoin-database Import Settings - - - - - $(ProjectDir)..\..\..\..\..\libbitcoin-database\include\;%(AdditionalIncludeDirectories) - $(ProjectDir)..\..\..\..\..\libbitcoin-database\build\include\;%(AdditionalIncludeDirectories) + $(ProjectDir)..\..\..\..\..\libbitcoin-database\build\include\;$(ProjectDir)..\..\..\..\..\libbitcoin-database\include\;%(AdditionalIncludeDirectories) BCD_STATIC;%(PreprocessorDefinitions) libbitcoin-database.lib;%(AdditionalDependencies) - - - - $(ProjectDir)..\..\..\..\..\libbitcoin-database\bin\$(PlatformName)\Debug\$(PlatformToolset)\$(Linkage-libbitcoin-database)\; - $(ProjectDir)..\..\..\..\..\libbitcoin-database\obj\libbitcoin-database\$(PlatformName)\Debug\$(PlatformToolset)\$(Linkage-libbitcoin-database)\;%(AdditionalLibraryDirectories) - - - $(ProjectDir)..\..\..\..\..\libbitcoin-database\bin\$(PlatformName)\Release\$(PlatformToolset)\$(Linkage-libbitcoin-database)\; - $(ProjectDir)..\..\..\..\..\libbitcoin-database\obj\libbitcoin-database\$(PlatformName)\Release\$(PlatformToolset)\$(Linkage-libbitcoin-database)\;%(AdditionalLibraryDirectories) - + $(ProjectDir)..\..\..\..\..\libbitcoin-database\bin\$(PlatformName)\Debug\$(PlatformToolset)\$(Linkage-libbitcoin-database)\;$(ProjectDir)..\..\..\..\..\libbitcoin-database\obj\libbitcoin-database\$(PlatformName)\Debug\$(PlatformToolset)\$(Linkage-libbitcoin-database)\;%(AdditionalLibraryDirectories) + $(ProjectDir)..\..\..\..\..\libbitcoin-database\bin\$(PlatformName)\Release\$(PlatformToolset)\$(Linkage-libbitcoin-database)\;$(ProjectDir)..\..\..\..\..\libbitcoin-database\obj\libbitcoin-database\$(PlatformName)\Release\$(PlatformToolset)\$(Linkage-libbitcoin-database)\;%(AdditionalLibraryDirectories) $(ProjectDir)..\..\..\..\..\bin\$(PlatformName)\Debug\$(PlatformToolset)\dynamic\;%(AdditionalLibraryDirectories) $(ProjectDir)..\..\..\..\..\bin\$(PlatformName)\Release\$(PlatformToolset)\dynamic\;%(AdditionalLibraryDirectories) + diff --git a/builds/msvc/vs2026/libbitcoin-network.import.props b/builds/msvc/vs2026/libbitcoin-network.import.props index f95585518..dcf27e28d 100644 --- a/builds/msvc/vs2026/libbitcoin-network.import.props +++ b/builds/msvc/vs2026/libbitcoin-network.import.props @@ -1,40 +1,32 @@ - + + - <_PropertySheetDisplayName>Libbitcoin Network Import Settings + <_PropertySheetDisplayName>libbitcoin-network Import Settings - - - - - $(ProjectDir)..\..\..\..\..\libbitcoin-network\include\;%(AdditionalIncludeDirectories) - $(ProjectDir)..\..\..\..\..\libbitcoin-network\build\include\;%(AdditionalIncludeDirectories) + $(ProjectDir)..\..\..\..\..\libbitcoin-network\build\include\;$(ProjectDir)..\..\..\..\..\libbitcoin-network\include\;%(AdditionalIncludeDirectories) BCT_STATIC;%(PreprocessorDefinitions) libbitcoin-network.lib;%(AdditionalDependencies) - - - - $(ProjectDir)..\..\..\..\..\libbitcoin-network\bin\$(PlatformName)\Debug\$(PlatformToolset)\$(Linkage-libbitcoin-network)\; - $(ProjectDir)..\..\..\..\..\libbitcoin-network\obj\libbitcoin-network\$(PlatformName)\Debug\$(PlatformToolset)\$(Linkage-libbitcoin-network)\;%(AdditionalLibraryDirectories) - - - $(ProjectDir)..\..\..\..\..\libbitcoin-network\bin\$(PlatformName)\Release\$(PlatformToolset)\$(Linkage-libbitcoin-network)\; - $(ProjectDir)..\..\..\..\..\libbitcoin-network\obj\libbitcoin-network\$(PlatformName)\Release\$(PlatformToolset)\$(Linkage-libbitcoin-network)\;%(AdditionalLibraryDirectories) - + $(ProjectDir)..\..\..\..\..\libbitcoin-network\bin\$(PlatformName)\Debug\$(PlatformToolset)\$(Linkage-libbitcoin-network)\;$(ProjectDir)..\..\..\..\..\libbitcoin-network\obj\libbitcoin-network\$(PlatformName)\Debug\$(PlatformToolset)\$(Linkage-libbitcoin-network)\;%(AdditionalLibraryDirectories) + $(ProjectDir)..\..\..\..\..\libbitcoin-network\bin\$(PlatformName)\Release\$(PlatformToolset)\$(Linkage-libbitcoin-network)\;$(ProjectDir)..\..\..\..\..\libbitcoin-network\obj\libbitcoin-network\$(PlatformName)\Release\$(PlatformToolset)\$(Linkage-libbitcoin-network)\;%(AdditionalLibraryDirectories) $(ProjectDir)..\..\..\..\..\bin\$(PlatformName)\Debug\$(PlatformToolset)\dynamic\;%(AdditionalLibraryDirectories) $(ProjectDir)..\..\..\..\..\bin\$(PlatformName)\Release\$(PlatformToolset)\dynamic\;%(AdditionalLibraryDirectories) - diff --git a/builds/msvc/vs2026/libbitcoin-node-test/libbitcoin-node-test.props b/builds/msvc/vs2026/libbitcoin-node-test/libbitcoin-node-test.props index c387a47f9..0fd289c9b 100644 --- a/builds/msvc/vs2026/libbitcoin-node-test/libbitcoin-node-test.props +++ b/builds/msvc/vs2026/libbitcoin-node-test/libbitcoin-node-test.props @@ -1,25 +1,29 @@ - + + - <_PropertySheetDisplayName>Libbitcoin Node Test Common Settings - AllRules.ruleset - false + <_PropertySheetDisplayName>libbitcoin-node-test Settings - + + + - false + stdcpp20 - + "$(TargetPath)" --log_level=warning --run_test=* --show_progress=no --build_info=yes - - @@ -27,36 +31,18 @@ - - ..\..\..\..\..\.nuget\packages\ - - - - dynamic - dynamic - dynamic - dynamic - - - ltcg - ltcg - ltcg - ltcg - - - static - static - static - static + + $(DefaultLinkage) + $(DefaultLinkage) + $(DefaultLinkage) + $(DefaultLinkage) - - - - - - + + + + diff --git a/builds/msvc/vs2026/libbitcoin-node.import.props b/builds/msvc/vs2026/libbitcoin-node.import.props index 85622a780..5159474e8 100644 --- a/builds/msvc/vs2026/libbitcoin-node.import.props +++ b/builds/msvc/vs2026/libbitcoin-node.import.props @@ -1,38 +1,32 @@ - + + - <_PropertySheetDisplayName>Libbitcoin Node Import Settings + <_PropertySheetDisplayName>libbitcoin-node Import Settings - - - - - $(ProjectDir)..\..\..\..\..\libbitcoin-node\include\;%(AdditionalIncludeDirectories) - $(ProjectDir)..\..\..\..\..\libbitcoin-node\build\include\;%(AdditionalIncludeDirectories) + $(ProjectDir)..\..\..\..\..\libbitcoin-node\build\include\;$(ProjectDir)..\..\..\..\..\libbitcoin-node\include\;%(AdditionalIncludeDirectories) BCN_STATIC;%(PreprocessorDefinitions) libbitcoin-node.lib;%(AdditionalDependencies) - - - - $(ProjectDir)..\..\..\..\..\libbitcoin-node\bin\$(PlatformName)\Debug\$(PlatformToolset)\$(Linkage-libbitcoin-node)\; - $(ProjectDir)..\..\..\..\..\libbitcoin-node\obj\libbitcoin-node\$(PlatformName)\Debug\$(PlatformToolset)\$(Linkage-libbitcoin-node)\;%(AdditionalLibraryDirectories) - - - $(ProjectDir)..\..\..\..\..\libbitcoin-node\bin\$(PlatformName)\Release\$(PlatformToolset)\$(Linkage-libbitcoin-node)\; - $(ProjectDir)..\..\..\..\..\libbitcoin-node\obj\libbitcoin-node\$(PlatformName)\Release\$(PlatformToolset)\$(Linkage-libbitcoin-node)\;%(AdditionalLibraryDirectories) - + $(ProjectDir)..\..\..\..\..\libbitcoin-node\bin\$(PlatformName)\Debug\$(PlatformToolset)\$(Linkage-libbitcoin-node)\;$(ProjectDir)..\..\..\..\..\libbitcoin-node\obj\libbitcoin-node\$(PlatformName)\Debug\$(PlatformToolset)\$(Linkage-libbitcoin-node)\;%(AdditionalLibraryDirectories) + $(ProjectDir)..\..\..\..\..\libbitcoin-node\bin\$(PlatformName)\Release\$(PlatformToolset)\$(Linkage-libbitcoin-node)\;$(ProjectDir)..\..\..\..\..\libbitcoin-node\obj\libbitcoin-node\$(PlatformName)\Release\$(PlatformToolset)\$(Linkage-libbitcoin-node)\;%(AdditionalLibraryDirectories) $(ProjectDir)..\..\..\..\..\bin\$(PlatformName)\Debug\$(PlatformToolset)\dynamic\;%(AdditionalLibraryDirectories) $(ProjectDir)..\..\..\..\..\bin\$(PlatformName)\Release\$(PlatformToolset)\dynamic\;%(AdditionalLibraryDirectories) + diff --git a/builds/msvc/vs2026/libbitcoin-node/libbitcoin-node.props b/builds/msvc/vs2026/libbitcoin-node/libbitcoin-node.props index 19c89492a..13134c01a 100644 --- a/builds/msvc/vs2026/libbitcoin-node/libbitcoin-node.props +++ b/builds/msvc/vs2026/libbitcoin-node/libbitcoin-node.props @@ -1,64 +1,45 @@ - + + - <_PropertySheetDisplayName>Libbitcoin Node Library Common Settings - AllRules.ruleset - false + <_PropertySheetDisplayName>libbitcoin-node Settings - - - + - - - $(RepoRoot)include\;%(AdditionalIncludeDirectories) - $(RepoRoot)build\include\;%(AdditionalIncludeDirectories) - false + stdcpp20 + $(RepoRoot)build\include\;$(RepoRoot)include\;%(AdditionalIncludeDirectories) BCN_DLL;%(PreprocessorDefinitions) BCN_STATIC;%(PreprocessorDefinitions) - - - - ..\..\..\..\..\.nuget\packages\ - - - - dynamic - dynamic - dynamic - - - ltcg - ltcg - ltcg - - - static - static - static + + $(DefaultLinkage) + $(DefaultLinkage) + $(DefaultLinkage) - - - - - + + + diff --git a/builds/msvc/vs2026/libbitcoin-system.import.props b/builds/msvc/vs2026/libbitcoin-system.import.props index 612b7c138..480ed3d07 100644 --- a/builds/msvc/vs2026/libbitcoin-system.import.props +++ b/builds/msvc/vs2026/libbitcoin-system.import.props @@ -1,97 +1,108 @@ - + + - <_PropertySheetDisplayName>Libbitcoin System Import Settings + <_PropertySheetDisplayName>libbitcoin-system Import Settings - - - - - - - false false - false - false false false + false + false + false + false + false false false false - true - - - AdvancedVectorExtensions - AdvancedVectorExtensions2 + + AdvancedVectorExtensions + AdvancedVectorExtensions2 AdvancedVectorExtensions512 - - - - - - - - - - - - - - - - - - $(ProjectDir)..\..\..\..\..\libbitcoin-system\include\;%(AdditionalIncludeDirectories) - $(ProjectDir)..\..\..\..\..\libbitcoin-system\build\include\;%(AdditionalIncludeDirectories) - - - - WIN32_LEAN_AND_MEAN;NOMINMAX;_WIN32_WINNT=0x0A00;%(PreprocessorDefinitions) + $(ProjectDir)..\..\..\..\..\libbitcoin-system\build\include\;$(ProjectDir)..\..\..\..\..\libbitcoin-system\include\;%(AdditionalIncludeDirectories) BC_STATIC;%(PreprocessorDefinitions) - _CRTDBG_MAP_ALLOC;%(PreprocessorDefinitions) - - WITH_SHANI;%(PreprocessorDefinitions) - WITH_SHA512;%(PreprocessorDefinitions) WITH_AVX512IFMA;%(PreprocessorDefinitions) WITH_AVXIFMA;%(PreprocessorDefinitions) + WITH_SHANI;%(PreprocessorDefinitions) + WITH_SHA512;%(PreprocessorDefinitions) WITH_AESNI;%(PreprocessorDefinitions) WITH_VAES;%(PreprocessorDefinitions) + WITH_AES;%(PreprocessorDefinitions) WITH_SHA2;%(PreprocessorDefinitions) WITH_SHA3;%(PreprocessorDefinitions) - WITH_AES;%(PreprocessorDefinitions) - - - - /ignore:4099 %(AdditionalOptions) - + libbitcoin-system.lib;%(AdditionalDependencies) - - - - $(ProjectDir)..\..\..\..\..\libbitcoin-system\bin\$(PlatformName)\Debug\$(PlatformToolset)\$(Linkage-libbitcoin-system)\; - $(ProjectDir)..\..\..\..\..\libbitcoin-system\obj\libbitcoin-system\$(PlatformName)\Debug\$(PlatformToolset)\$(Linkage-libbitcoin-system)\;%(AdditionalLibraryDirectories) - - - $(ProjectDir)..\..\..\..\..\libbitcoin-system\bin\$(PlatformName)\Release\$(PlatformToolset)\$(Linkage-libbitcoin-system)\; - $(ProjectDir)..\..\..\..\..\libbitcoin-system\obj\libbitcoin-system\$(PlatformName)\Release\$(PlatformToolset)\$(Linkage-libbitcoin-system)\;%(AdditionalLibraryDirectories) - + $(ProjectDir)..\..\..\..\..\libbitcoin-system\bin\$(PlatformName)\Debug\$(PlatformToolset)\$(Linkage-libbitcoin-system)\;$(ProjectDir)..\..\..\..\..\libbitcoin-system\obj\libbitcoin-system\$(PlatformName)\Debug\$(PlatformToolset)\$(Linkage-libbitcoin-system)\;%(AdditionalLibraryDirectories) + $(ProjectDir)..\..\..\..\..\libbitcoin-system\bin\$(PlatformName)\Release\$(PlatformToolset)\$(Linkage-libbitcoin-system)\;$(ProjectDir)..\..\..\..\..\libbitcoin-system\obj\libbitcoin-system\$(PlatformName)\Release\$(PlatformToolset)\$(Linkage-libbitcoin-system)\;%(AdditionalLibraryDirectories) $(ProjectDir)..\..\..\..\..\bin\$(PlatformName)\Debug\$(PlatformToolset)\dynamic\;%(AdditionalLibraryDirectories) $(ProjectDir)..\..\..\..\..\bin\$(PlatformName)\Release\$(PlatformToolset)\dynamic\;%(AdditionalLibraryDirectories) + + + + -mavx -mavx2 %(AdditionalOptions) + -mavx512f -mavx512bw -mavx512vl %(AdditionalOptions) + -mavx512ifma -mavx512vl %(AdditionalOptions) + -mavxifma %(AdditionalOptions) + -msse4 -msha %(AdditionalOptions) + -mavx2 -msha512 %(AdditionalOptions) + -msse4.1 %(AdditionalOptions) + -msse4.1 -maes -mpclmul %(AdditionalOptions) + -mavx2 -maes -mpclmul -mvaes -mvpclmulqdq %(AdditionalOptions) + + + + + + armv8-a + armv8-a + armv8.2-a + %(ArmExtensions)+aes + %(ArmExtensions)+sha2 + %(ArmExtensions)+sha3 + + + + + + -march=%(ArmBase)%(ArmExtensions) %(AdditionalOptions) + + + + + + + + + + + + + + + + + +