diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 3fb52583..3060e975 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -1,5 +1,5 @@ ############################################################################### -# Copyright (c) 2014-2020 libbitcoin-blockchain developers (see COPYING). +# Copyright (c) 2014-2023 libbitcoin-blockchain developers (see COPYING). # # GENERATED SOURCE CODE, DO NOT EDIT EXCEPT EXPERIMENTALLY # @@ -28,6 +28,7 @@ jobs: icu: "" cc: "clang" flags: "-Os -fPIE" + options: "--enable-isystem" packager: "apt" packages: "" @@ -42,6 +43,7 @@ jobs: icu: "--build-icu --with-icu" cc: "clang" flags: "-Os -fPIE" + options: "--enable-isystem" packager: "apt" packages: "" @@ -56,6 +58,7 @@ jobs: icu: "" cc: "gcc" flags: "-Os -fPIE" + options: "--enable-isystem" packager: "apt" packages: "" @@ -70,6 +73,7 @@ jobs: icu: "--build-icu --with-icu" cc: "gcc" flags: "-Og -g --coverage -fPIE" + options: "--enable-isystem" packager: "apt" packages: "lcov" @@ -84,6 +88,7 @@ jobs: icu: "--build-icu --with-icu" cc: "clang" flags: "-Os -fPIE" + options: "--enable-isystem" packager: "brew" packages: "" @@ -98,6 +103,7 @@ jobs: icu: "--build-icu --with-icu" cc: "clang" flags: "-Os -fvisibility=hidden -fPIE" + options: "--enable-isystem" packager: "brew" packages: "" @@ -149,11 +155,16 @@ jobs: echo "LDFLAGS=-Wl,-rpath,$WORKSPACE_SUBPATH/prefix/lib" >> $GITHUB_ENV fi + - name: Display CPU details + if: ${{ (runner.os == 'Linux') }} + shell: bash + run: | + lscpu + - name: Execute install.sh run: > ./install.sh - --enable-isystem - --build-dir=$LIBBITCOIN_SRC_PATH + --build-dir=$LIBBITCOIN_SRC_PATH ${{ matrix.options }} --prefix=$LIBBITCOIN_SRC_PATH/prefix ${{ env.LINKAGE }} ${{ env.ASSERT_NDEBUG }} @@ -207,11 +218,11 @@ jobs: run: | cat ${{ github.workspace }}/build/build-*/bootstrap.log + - name: Failure display otool output if: ${{ failure() && (matrix.os == 'macos-latest') }} run: | otool -L ${{ github.workspace }}/test/.libs/libbitcoin-blockchain-test - - name: Failure display DYLD_PRINT_LIBRARIES if: ${{ failure() && (matrix.os == 'macos-latest') }} run: | @@ -241,6 +252,7 @@ jobs: icu: "" cc: "clang" flags: "-Os -fPIE" + options: "" packager: "apt" packages: "" @@ -255,6 +267,7 @@ jobs: icu: "--build-icu --with-icu" cc: "clang" flags: "-Os -fPIE" + options: "" packager: "apt" packages: "" @@ -269,6 +282,7 @@ jobs: icu: "" cc: "gcc" flags: "-Os -fPIE" + options: "" packager: "apt" packages: "" @@ -283,6 +297,7 @@ jobs: icu: "--build-icu --with-icu" cc: "gcc" flags: "-Og -fPIE" + options: "" packager: "apt" packages: "" @@ -297,6 +312,7 @@ jobs: icu: "--build-icu --with-icu" cc: "clang" flags: "-Os -fPIE" + options: "" packager: "brew" packages: "" @@ -311,6 +327,7 @@ jobs: icu: "--build-icu --with-icu" cc: "clang" flags: "-Os -fvisibility=hidden -fPIE" + options: "" packager: "brew" packages: "" @@ -365,10 +382,16 @@ jobs: echo "LDFLAGS=-Wl,-rpath,$WORKSPACE_SUBPATH/prefix/lib" >> $GITHUB_ENV fi + - name: Display CPU details + if: ${{ (runner.os == 'Linux') }} + shell: bash + run: | + lscpu + - name: Execute install-cmake.sh run: > ./install-cmake.sh - --build-dir=$LIBBITCOIN_SRC_PATH + --build-dir=$LIBBITCOIN_SRC_PATH ${{ matrix.options }} --prefix=$LIBBITCOIN_SRC_PATH/prefix ${{ env.LINKAGE }} ${{ env.ASSERT_NDEBUG }} @@ -422,11 +445,11 @@ jobs: run: | cat ${{ github.workspace }}/build/build-*/bootstrap.log + - name: Failure display otool output if: ${{ failure() && (matrix.os == 'macos-latest') }} run: | otool -L ${{ github.workspace }}/test/.libs/libbitcoin-blockchain-test - - name: Failure display DYLD_PRINT_LIBRARIES if: ${{ failure() && (matrix.os == 'macos-latest') }} run: | @@ -467,6 +490,7 @@ jobs: icu: "" cc: "clang" flags: "-Os -fPIE" + options: "" packager: "apt" packages: "" @@ -482,6 +506,7 @@ jobs: icu: "--build-icu --with-icu" cc: "clang" flags: "-Os -fPIE" + options: "" packager: "apt" packages: "" @@ -497,6 +522,7 @@ jobs: icu: "" cc: "gcc" flags: "-Os -fPIE" + options: "" packager: "apt" packages: "" @@ -551,10 +577,16 @@ jobs: echo "LDFLAGS=-Wl,-rpath,$WORKSPACE_SUBPATH/prefix/${{ matrix.preset }}/lib" >> $GITHUB_ENV fi + - name: Display CPU details + if: ${{ (runner.os == 'Linux') }} + shell: bash + run: | + lscpu + - name: Execute install-cmakepresets.sh run: > ./install-cmakepresets.sh - --build-dir=$LIBBITCOIN_SRC_PATH + --build-dir=$LIBBITCOIN_SRC_PATH ${{ matrix.options }} --prefix=$LIBBITCOIN_SRC_PATH/prefix/${{ matrix.preset }} --preset=${{ matrix.preset }} ${{ env.LINKAGE }} @@ -609,11 +641,11 @@ jobs: run: | cat ${{ github.workspace }}/build/build-*/bootstrap.log + - name: Failure display otool output if: ${{ failure() && (matrix.os == 'macos-latest') }} run: | otool -L ${{ github.workspace }}/test/.libs/libbitcoin-blockchain-test - - name: Failure display DYLD_PRINT_LIBRARIES if: ${{ failure() && (matrix.os == 'macos-latest') }} run: | @@ -658,6 +690,8 @@ jobs: steps: - name: Add msbuild to PATH uses: microsoft/setup-msbuild@v1.1 + with: + msbuild-architecture: x64 - name: Checkout repository uses: actions/checkout@v3 diff --git a/Makefile.am b/Makefile.am index e54d14f0..684d7a0c 100644 --- a/Makefile.am +++ b/Makefile.am @@ -1,5 +1,5 @@ ############################################################################### -# Copyright (c) 2014-2020 libbitcoin-blockchain developers (see COPYING). +# Copyright (c) 2014-2023 libbitcoin-blockchain developers (see COPYING). # # GENERATED SOURCE CODE, DO NOT EDIT EXCEPT EXPERIMENTALLY # diff --git a/autogen.sh b/autogen.sh index 4069adc0..6532123d 100755 --- a/autogen.sh +++ b/autogen.sh @@ -1,6 +1,6 @@ #!/bin/sh ############################################################################### -# Copyright (c) 2014-2020 libbitcoin-blockchain developers (see COPYING). +# Copyright (c) 2014-2023 libbitcoin-blockchain developers (see COPYING). # # GENERATED SOURCE CODE, DO NOT EDIT EXCEPT EXPERIMENTALLY # diff --git a/build.cmd b/build.cmd index 4011146c..4048f6c2 100644 --- a/build.cmd +++ b/build.cmd @@ -1,5 +1,5 @@ REM ########################################################################### -REM # Copyright (c) 2014-2020 libbitcoin-blockchain developers (see COPYING). +REM # Copyright (c) 2014-2023 libbitcoin-blockchain developers (see COPYING). REM # REM # GENERATED SOURCE CODE, DO NOT EDIT EXCEPT EXPERIMENTALLY REM # diff --git a/builds/cmake/CMakeLists.txt b/builds/cmake/CMakeLists.txt index 0e8f4364..80aeee08 100644 --- a/builds/cmake/CMakeLists.txt +++ b/builds/cmake/CMakeLists.txt @@ -1,5 +1,5 @@ ############################################################################### -# Copyright (c) 2014-2020 libbitcoin-blockchain developers (see COPYING). +# Copyright (c) 2014-2023 libbitcoin-blockchain developers (see COPYING). # # GENERATED SOURCE CODE, DO NOT EDIT EXCEPT EXPERIMENTALLY # @@ -16,6 +16,8 @@ enable_testing() list( APPEND CMAKE_MODULE_PATH "${PROJECT_SOURCE_DIR}/modules" ) include(CheckIncludeFiles) include(CheckSymbolExists) +include(CheckCXXCompilerFlag) +include(CheckCXXSourceCompiles) set_property(GLOBAL PROPERTY USE_FOLDERS ON) @@ -40,32 +42,77 @@ set( CMAKE_CXX_STANDARD_REQUIRED ON ) # Add compiler options #------------------------------------------------------------------------------ # Warn on all stuff. -add_compile_options( "-Wall" ) +check_cxx_compiler_flag( "-Wall" HAS_FLAG_WALL ) +if ( HAS_FLAG_WALL ) + add_compile_options( "-Wall" ) +else() + message( FATAL_ERROR "Compiler does not support -Wall" ) +endif() # Warn on extra stuff. -add_compile_options( "-Wextra" ) +check_cxx_compiler_flag( "-Wextra" HAS_FLAG_WEXTRA ) +if ( HAS_FLAG_WEXTRA ) + add_compile_options( "-Wextra" ) +else() + message( FATAL_ERROR "Compiler does not support -Wextra" ) +endif() # Be really annoying. -add_compile_options( "-Wpedantic" ) +check_cxx_compiler_flag( "-Wpedantic" HAS_FLAG_WPEDANTIC ) +if ( HAS_FLAG_WPEDANTIC ) + add_compile_options( "-Wpedantic" ) +else() + message( FATAL_ERROR "Compiler does not support -Wpedantic" ) +endif() # Disallow warning on style order of declarations. -add_compile_options( "-Wno-reorder" ) +check_cxx_compiler_flag( "-Wno-reorder" HAS_FLAG_WNO-REORDER ) +if ( HAS_FLAG_WNO-REORDER ) + add_compile_options( "-Wno-reorder" ) +else() + message( FATAL_ERROR "Compiler does not support -Wno-reorder" ) +endif() # Suppress warning for incomplete field initialization. -add_compile_options( "-Wno-missing-field-initializers" ) +check_cxx_compiler_flag( "-Wno-missing-field-initializers" HAS_FLAG_WNO-MISSING-FIELD-INITIALIZERS ) +if ( HAS_FLAG_WNO-MISSING-FIELD-INITIALIZERS ) + add_compile_options( "-Wno-missing-field-initializers" ) +else() + message( FATAL_ERROR "Compiler does not support -Wno-missing-field-initializers" ) +endif() # Conform to style. -add_compile_options( "-Wno-missing-braces" ) +check_cxx_compiler_flag( "-Wno-missing-braces" HAS_FLAG_WNO-MISSING-BRACES ) +if ( HAS_FLAG_WNO-MISSING-BRACES ) + add_compile_options( "-Wno-missing-braces" ) +else() + message( FATAL_ERROR "Compiler does not support -Wno-missing-braces" ) +endif() # Ignore comments within comments or commenting of backslash extended lines. -add_compile_options( "-Wno-comment" ) +check_cxx_compiler_flag( "-Wno-comment" HAS_FLAG_WNO-COMMENT ) +if ( HAS_FLAG_WNO-COMMENT ) + add_compile_options( "-Wno-comment" ) +else() + message( FATAL_ERROR "Compiler does not support -Wno-comment" ) +endif() # Suppress warning for copy of implicitly generated copy constructor. -add_compile_options( "-Wno-deprecated-copy" ) +check_cxx_compiler_flag( "-Wno-deprecated-copy" HAS_FLAG_WNO-DEPRECATED-COPY ) +if ( HAS_FLAG_WNO-DEPRECATED-COPY ) + add_compile_options( "-Wno-deprecated-copy" ) +else() + message( FATAL_ERROR "Compiler does not support -Wno-deprecated-copy" ) +endif() # Conflict in stdlib under clang. if ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang") - add_compile_options( "-Wno-mismatched-tags" ) + check_cxx_compiler_flag( "-Wno-mismatched-tags" HAS_FLAG_WNO-MISMATCHED-TAGS ) + if ( HAS_FLAG_WNO-MISMATCHED-TAGS ) + add_compile_options( "-Wno-mismatched-tags" ) + else() + message( FATAL_ERROR "Compiler does not support -Wno-mismatched-tags" ) + endif() endif() # Implement -Dwith-consensus and define WITH_CONSENSUS. diff --git a/builds/cmake/modules/FindBitcoin-Consensus.cmake b/builds/cmake/modules/FindBitcoin-Consensus.cmake index 8867ae8d..ed50996f 100644 --- a/builds/cmake/modules/FindBitcoin-Consensus.cmake +++ b/builds/cmake/modules/FindBitcoin-Consensus.cmake @@ -1,5 +1,5 @@ ############################################################################### -# Copyright (c) 2014-2020 libbitcoin-blockchain developers (see COPYING). +# Copyright (c) 2014-2023 libbitcoin-blockchain developers (see COPYING). # # GENERATED SOURCE CODE, DO NOT EDIT EXCEPT EXPERIMENTALLY # diff --git a/builds/cmake/modules/FindBitcoin-Database.cmake b/builds/cmake/modules/FindBitcoin-Database.cmake index 5315b2bd..faf75c28 100644 --- a/builds/cmake/modules/FindBitcoin-Database.cmake +++ b/builds/cmake/modules/FindBitcoin-Database.cmake @@ -1,5 +1,5 @@ ############################################################################### -# Copyright (c) 2014-2020 libbitcoin-blockchain developers (see COPYING). +# Copyright (c) 2014-2023 libbitcoin-blockchain developers (see COPYING). # # GENERATED SOURCE CODE, DO NOT EDIT EXCEPT EXPERIMENTALLY # diff --git a/builds/msvc/debug.natvis b/builds/msvc/debug.natvis index adf68148..c8739e49 100644 --- a/builds/msvc/debug.natvis +++ b/builds/msvc/debug.natvis @@ -1,6 +1,6 @@