diff --git a/.github/workflows/ubuntu20.yml b/.github/workflows/ubuntu20.yml index 2bbd973..88c09ba 100644 --- a/.github/workflows/ubuntu20.yml +++ b/.github/workflows/ubuntu20.yml @@ -4,7 +4,7 @@ on: [push, pull_request] jobs: ubuntu-build: - runs-on: ubuntu-20.04 , arch: -DCMAKE_CXX_FLAGS="-m32"} # default=gcc9 + runs-on: ubuntu-20.04 steps: - uses: actions/checkout@v3 - name: Use cmake diff --git a/.github/workflows/vs17-arm-ci.yml b/.github/workflows/vs17-arm-ci.yml index 7e0ec0b..7c2791a 100644 --- a/.github/workflows/vs17-arm-ci.yml +++ b/.github/workflows/vs17-arm-ci.yml @@ -4,18 +4,27 @@ on: [push, pull_request] jobs: ci: - name: windows-vs17 + name: vs17/${{matrix.arch}}/${{matrix.cfg}} runs-on: windows-latest strategy: fail-fast: false matrix: include: - - {arch: ARM} - - {arch: ARM64} + - {gen: Visual Studio 17 2022, arch: ARM, cfg: Release} + - {gen: Visual Studio 17 2022, arch: ARM, cfg: Debug} + - {gen: Visual Studio 17 2022, arch: ARM64, cfg: Release} + - {gen: Visual Studio 17 2022, arch: ARM64, cfg: Debug} steps: - name: checkout uses: actions/checkout@v3 - - name: Use cmake + - name: configure run: | - cmake -A ${{ matrix.arch }} -DCMAKE_CROSSCOMPILING=1 -DFASTFLOAT_TEST=ON -B build && - cmake --build build --verbose + cmake -S . -B build -G "${{matrix.gen}}" -A ${{matrix.arch}} -DCMAKE_CROSSCOMPILING=1 -DFASTFLOAT_TEST=ON + - name: build + run: | + cmake --build build --verbose --config ${{matrix.cfg}} --parallel + # disabled because it requires a toolchain + #- name: test + # run: | + # cd build && + # ctest --output-on-failure -C ${{matrix.cfg}} diff --git a/.github/workflows/vs17-ci.yml b/.github/workflows/vs17-ci.yml index 68e5ce1..91a79f4 100644 --- a/.github/workflows/vs17-ci.yml +++ b/.github/workflows/vs17-ci.yml @@ -4,26 +4,40 @@ on: [push, pull_request] jobs: ci: - name: windows-vs17 + name: vs17/${{matrix.arch}}/${{matrix.cfg}} runs-on: windows-latest strategy: fail-fast: false matrix: include: - - {gen: Visual Studio 17 2022, arch: Win32} - - {gen: Visual Studio 17 2022, arch: x64} + - {gen: Visual Studio 17 2022, arch: Win32, cfg: Release} + - {gen: Visual Studio 17 2022, arch: Win32, cfg: Debug} + - {gen: Visual Studio 17 2022, arch: x64, cfg: Release} + - {gen: Visual Studio 17 2022, arch: x64, cfg: Debug} steps: - name: checkout uses: actions/checkout@v3 - - name: Use cmake + - name: configure + run: | + cmake -S . -B build -G "${{matrix.gen}}" -A ${{matrix.arch}} -DFASTFLOAT_TEST=ON -DCMAKE_INSTALL_PREFIX:PATH=destination + - name: build + run: | + cmake --build build --verbose --config ${{matrix.cfg}} --parallel + - name: test run: | - mkdir build && cd build && - cmake ${{matrix.cxx}} ${{matrix.arch}} -DFASTFLOAT_TEST=ON -DCMAKE_INSTALL_PREFIX:PATH=destination .. && - cmake --build . --verbose && - ctest --output-on-failure && - cmake --install . && - cd ../tests/installation_tests/find && - mkdir build && cd build && cmake -DCMAKE_INSTALL_PREFIX:PATH=../../../build/destination .. && cmake --build . --verbose - cd ../../issue72_installation && - mkdir build && cd build && cmake -DCMAKE_INSTALL_PREFIX:PATH=../../../build/destination .. && cmake --build . --verbose + ctest --output-on-failure -C ${{matrix.cfg}} + - name: install + run: | + cd build && + cmake --install . + - name: test install (find) + run: | + cd tests/installation_tests/find && + cmake -S . -B build -G "${{matrix.gen}}" -A ${{matrix.arch}} -DCMAKE_INSTALL_PREFIX:PATH=../../../build/destination && + cmake --build build --verbose --config ${{matrix.cfg}} --parallel + - name: test install (issue 72) + run: | + cd tests/installation_tests/issue72_installation && + cmake -S . -B build -G "${{matrix.gen}}" -A ${{matrix.arch}} -DCMAKE_INSTALL_PREFIX:PATH=../../../build/destination && + cmake --build build --verbose --config ${{matrix.cfg}} --parallel diff --git a/.github/workflows/vs17-clang-ci.yml b/.github/workflows/vs17-clang-ci.yml index e116e72..e99d5d4 100644 --- a/.github/workflows/vs17-clang-ci.yml +++ b/.github/workflows/vs17-clang-ci.yml @@ -4,24 +4,25 @@ on: [push, pull_request] jobs: ci: - name: windows-vs17 + name: vs17/${{matrix.arch}}/${{matrix.cfg}} runs-on: windows-latest strategy: fail-fast: false matrix: include: - - {gen: Visual Studio 17 2022, arch: Win32} - - {gen: Visual Studio 17 2022, arch: x64} + - {gen: Visual Studio 17 2022, arch: Win32, cfg: Release} + - {gen: Visual Studio 17 2022, arch: Win32, cfg: Debug} + - {gen: Visual Studio 17 2022, arch: x64, cfg: Release} + - {gen: Visual Studio 17 2022, arch: x64, cfg: Debug} steps: - name: checkout uses: actions/checkout@v3 - name: Configure run: | - mkdir build - cd build && cmake -G "${{matrix.gen}}" -A ${{matrix.arch}} -T ClangCL -DFASTFLOAT_TEST=ON .. + cmake -S . -B build -G "${{matrix.gen}}" -A ${{matrix.arch}} -T ClangCL -DFASTFLOAT_TEST=ON - name: Build - run: cmake --build build --config Release --parallel + run: cmake --build build --config ${{matrix.cfg}} --parallel --verbose - name: Run basic tests run: | cd build - ctest -C Release --output-on-failure -R basictest + ctest -C ${{matrix.cfg}} --output-on-failure -R basictest diff --git a/.github/workflows/vs17-cxx20.yml b/.github/workflows/vs17-cxx20.yml index 8eca7db..4231340 100644 --- a/.github/workflows/vs17-cxx20.yml +++ b/.github/workflows/vs17-cxx20.yml @@ -4,21 +4,26 @@ on: [push, pull_request] jobs: ci: - name: windows-vs17 + name: vs17/${{matrix.arch}}/${{matrix.cfg}} runs-on: windows-latest strategy: fail-fast: false matrix: include: - - {gen: Visual Studio 17 2022, arch: Win32} - - {gen: Visual Studio 17 2022, arch: x64} + - {gen: Visual Studio 17 2022, arch: Win32, cfg: Release} + - {gen: Visual Studio 17 2022, arch: Win32, cfg: Debug} + - {gen: Visual Studio 17 2022, arch: x64, cfg: Release} + - {gen: Visual Studio 17 2022, arch: x64, cfg: Debug} steps: - name: checkout uses: actions/checkout@v3 - - name: Use cmake + - name: configure + run: | + cmake -S . -B build -G "${{matrix.gen}}" -A ${{matrix.arch}} -DCMAKE_CXX_STANDARD=20 -DFASTFLOAT_TEST=ON -DCMAKE_INSTALL_PREFIX:PATH=destination .. + - name: build + run: | + cmake --build build --verbose --config ${{matrix.cfg}} --parallel + - name: test run: | - mkdir build && cd build && - cmake ${{matrix.cxx}} ${{matrix.arch}} -DCMAKE_CXX_STANDARD=20 -DFASTFLOAT_TEST=ON -DCMAKE_INSTALL_PREFIX:PATH=destination .. && - cmake --build . --verbose && - ctest --output-on-failure + ctest --output-on-failure -C ${{matrix.cfg}} diff --git a/include/fast_float/float_common.h b/include/fast_float/float_common.h index c2084e0..5ea8764 100644 --- a/include/fast_float/float_common.h +++ b/include/fast_float/float_common.h @@ -218,8 +218,8 @@ constexpr static int32_t invalid_am_bias = -0x8000; constexpr static double powers_of_ten_double[] = { 1e0, 1e1, 1e2, 1e3, 1e4, 1e5, 1e6, 1e7, 1e8, 1e9, 1e10, 1e11, 1e12, 1e13, 1e14, 1e15, 1e16, 1e17, 1e18, 1e19, 1e20, 1e21, 1e22}; -constexpr static float powers_of_ten_float[] = {1e0, 1e1, 1e2, 1e3, 1e4, 1e5, - 1e6, 1e7, 1e8, 1e9, 1e10}; +constexpr static float powers_of_ten_float[] = {1e0f, 1e1f, 1e2f, 1e3f, 1e4f, 1e5f, + 1e6f, 1e7f, 1e8f, 1e9f, 1e10f}; // used for max_mantissa_double and max_mantissa_float constexpr uint64_t constant_55555 = 5 * 5 * 5 * 5 * 5; // Largest integer value v so that (5**index * v) <= 1<<53. diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index 6534217..b4a5767 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -38,7 +38,11 @@ add_library(supplemental-data INTERFACE) target_compile_definitions(supplemental-data INTERFACE SUPPLEMENTAL_TEST_DATA_DIR="${supplemental_test_files_BINARY_DIR}/data") function(fast_float_add_cpp_test TEST_NAME) add_executable(${TEST_NAME} ${TEST_NAME}.cpp) - add_test(${TEST_NAME} ${TEST_NAME}) + if(CMAKE_CROSSCOMPILING) + set(ccemulator ${CMAKE_CROSSCOMPILING_EMULATOR}) + endif() + add_test(NAME ${TEST_NAME} + COMMAND ${ccemulator} $) if(CMAKE_CXX_COMPILER_ID MATCHES "MSVC") target_compile_options(${TEST_NAME} PUBLIC /EHsc) endif()