diff --git a/.github/workflows/coverage.yml b/.github/workflows/coverage.yml index 7d20763..35d5518 100644 --- a/.github/workflows/coverage.yml +++ b/.github/workflows/coverage.yml @@ -43,7 +43,7 @@ jobs: run: xargs -a config/apt-get.txt sudo apt-get install -yq - name: Install gcc if: contains(matrix.cc, 'gcc') - run: sudo apt-get install -yq g++-12 gcc-12 libdatetime-perl libdatetime-format-w3cdtf-perl + run: sudo apt-get install -yq g++-12 gcc-12 libdatetime-perl libdatetime-format-w3cdtf-perl libcapture-tiny-perl - name: Install clang if: contains(matrix.cc, 'clang') run: sudo apt-get install -yq clang-14 llvm-14 tidy diff --git a/.github/workflows/emscripten.yml b/.github/workflows/emscripten.yml index 33d83ea..097d9fc 100644 --- a/.github/workflows/emscripten.yml +++ b/.github/workflows/emscripten.yml @@ -49,7 +49,7 @@ jobs: run: sudo apt-get install -yq sshpass - name: Install emscripten run: | - git clone --depth=1 https://github.com/emscripten-core/emsdk.git + git clone --depth=1 https://github.com/bansan85/emsdk.git cd emsdk ./emsdk install latest ./emsdk activate latest @@ -66,7 +66,6 @@ jobs: - name: cmake run: | source ./emsdk/emsdk_env.sh - echo "EMSDK_NODE=/opt/hostedtoolcache/node/18.12.0/x64/bin/node" >> $GITHUB_ENV npm install -g npm mkdir build emcmake cmake -S . -B build -DCMAKE_BUILD_TYPE=${{ matrix.config }} -DVCPKG_CHAINLOAD_TOOLCHAIN_FILE=${{ env.EMSDK }}/upstream/emscripten/cmake/Modules/Platform/Emscripten.cmake -DVCPKG_TARGET_TRIPLET=wasm32-emscripten -DCMAKE_TOOLCHAIN_FILE=${{ github.workspace }}/vcpkg/scripts/buildsystems/vcpkg.cmake -DCMAKE_PREFIX_PATH=${{ github.workspace }}/vcpkg/installed/wasm32-emscripten/share/spdlog @@ -92,16 +91,18 @@ jobs: if: failure() with: name: cypress-screenshots - path: src/angular/cypress/screenshots + path: | + src/angular/cypress/screenshots + src/angular/projects/app-main/dist - uses: actions/upload-artifact@v3 if: always() with: name: cypress-videos path: src/angular/cypress/videos - #- name: pa11y - # run: | - # cd src/angular || exit 1 - # npx pa11y http://localhost:4200 + - name: pa11y + run: | + cd src/angular || exit 1 + npx pa11y http://localhost:4200 - name: Lighthouse run: | cd src/angular || exit 1 diff --git a/.iwyu-suppressions b/.iwyu-suppressions index 7675906..0cab88b 100644 --- a/.iwyu-suppressions +++ b/.iwyu-suppressions @@ -1,4 +1,5 @@ [ + { include: ["@", "private", "", "public"] }, { include: ["@", "private", "", "public"] }, { include: ["@", "private", "", "public"] }, { include: ["@", "private", "", "public"] }, diff --git a/CMakeLists.txt b/CMakeLists.txt index 9b93b94..41d4caa 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,4 +1,4 @@ -cmake_minimum_required(VERSION 3.15) +cmake_minimum_required(VERSION 3.21) project(Jessica VERSION 0.0.1) @@ -89,7 +89,7 @@ if(NOT EMSCRIPTEN) FetchContent_Declare( drogon GIT_REPOSITORY https://github.com/drogonframework/drogon.git - GIT_TAG cf543716ce33fce395bac3e34fc8aa4c81353783) + GIT_TAG v1.8.2) FetchContent_MakeAvailable(drogon) @@ -228,7 +228,8 @@ elseif(CMAKE_CXX_COMPILER_ID STREQUAL "MSVC") /wd5039 /wd5045 /EHsc - /showIncludes) + /showIncludes + /Wv:18) else() message(WARNING "${CMAKE_CXX_COMPILER_ID} is unknown") endif() diff --git a/src/angular/package-lock.json b/src/angular/package-lock.json index 4e38f78..051ca9c 100644 --- a/src/angular/package-lock.json +++ b/src/angular/package-lock.json @@ -4992,6 +4992,15 @@ "node": ">=8" } }, + "node_modules/cross-fetch": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.5.tgz", + "integrity": "sha512-lvb1SBsI0Z7GDwmuid+mU3kWVBwTVUbe7S0H52yaaAdQOXq2YktTCZdlAcNKFzE6QtRz0snpw9bNiPeOIkkQvw==", + "dev": true, + "dependencies": { + "node-fetch": "2.6.7" + } + }, "node_modules/cross-spawn": { "version": "7.0.3", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", @@ -5481,9 +5490,9 @@ "dev": true }, "node_modules/devtools-protocol": { - "version": "0.0.869402", - "resolved": "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.869402.tgz", - "integrity": "sha512-VvlVYY+VDJe639yHs5PHISzdWTLL3Aw8rO4cvUtwvoxFd6FHbE4OpHHcde52M6096uYYazAmd4l0o5VuFRO2WA==", + "version": "0.0.1056733", + "resolved": "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.1056733.tgz", + "integrity": "sha512-CmTu6SQx2g3TbZzDCAV58+LTxVdKplS7xip0g5oDXpZ+isr0rv5dDP8ToyVRywzPHkCCPKgKgScEcwz4uPWDIA==", "dev": true }, "node_modules/di": { @@ -9730,6 +9739,22 @@ "node": "^12.20.0 || >=14" } }, + "node_modules/ng-packagr/node_modules/rollup": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-3.4.0.tgz", + "integrity": "sha512-4g8ZrEFK7UbDvy3JF+d5bLiC8UKkS3n/27/cnVeESwB1LVPl6MoPL32/6+SCQ1vHTp6Mvp2veIHtwELhi+uXEw==", + "dev": true, + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=14.18.0", + "npm": ">=8.0.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, "node_modules/nice-napi": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/nice-napi/-/nice-napi-1.0.2.tgz", @@ -10510,7 +10535,7 @@ "mustache": "~4.2.0", "node.extend": "~2.0.2", "p-timeout": "~4.1.0", - "puppeteer": "~9.1.1", + "puppeteer": "~19.2.2", "semver": "~7.3.5" }, "bin": { @@ -11151,28 +11176,85 @@ } }, "node_modules/puppeteer": { - "version": "9.1.1", - "resolved": "https://registry.npmjs.org/puppeteer/-/puppeteer-9.1.1.tgz", - "integrity": "sha512-W+nOulP2tYd/ZG99WuZC/I5ljjQQ7EUw/jQGcIb9eu8mDlZxNY2SgcJXTLG9h5gRvqA3uJOe4hZXYsd3EqioMw==", - "deprecated": "Version no longer supported. Upgrade to @latest", + "version": "19.2.2", + "resolved": "https://registry.npmjs.org/puppeteer/-/puppeteer-19.2.2.tgz", + "integrity": "sha512-m1T5Mog5qu5+dMBptWYTn6pXRdnFbydbVUCthqwbfd8/kOiMlzZBR9ywjX79LpvI1Sj+/z8+FKeIsjnMul8ZYA==", "dev": true, "hasInstallScript": true, "dependencies": { - "debug": "^4.1.0", - "devtools-protocol": "0.0.869402", - "extract-zip": "^2.0.0", - "https-proxy-agent": "^5.0.0", - "node-fetch": "^2.6.1", - "pkg-dir": "^4.2.0", - "progress": "^2.0.1", - "proxy-from-env": "^1.1.0", - "rimraf": "^3.0.2", - "tar-fs": "^2.0.0", - "unbzip2-stream": "^1.3.3", - "ws": "^7.2.3" + "cosmiconfig": "7.0.1", + "devtools-protocol": "0.0.1056733", + "https-proxy-agent": "5.0.1", + "progress": "2.0.3", + "proxy-from-env": "1.1.0", + "puppeteer-core": "19.2.2" }, "engines": { - "node": ">=10.18.1" + "node": ">=14.1.0" + } + }, + "node_modules/puppeteer-core": { + "version": "19.2.2", + "resolved": "https://registry.npmjs.org/puppeteer-core/-/puppeteer-core-19.2.2.tgz", + "integrity": "sha512-faojf+1pZ/tHXSr4x1q+9MVd9FrL3rpdbC0w7qN7MNClMoLuCvMbpR4vzcjoiJYgclt1n+SOPUOmHQViTw6frw==", + "dev": true, + "dependencies": { + "cross-fetch": "3.1.5", + "debug": "4.3.4", + "devtools-protocol": "0.0.1056733", + "extract-zip": "2.0.1", + "https-proxy-agent": "5.0.1", + "proxy-from-env": "1.1.0", + "rimraf": "3.0.2", + "tar-fs": "2.1.1", + "unbzip2-stream": "1.4.3", + "ws": "8.10.0" + }, + "engines": { + "node": ">=14.1.0" + } + }, + "node_modules/puppeteer-core/node_modules/proxy-from-env": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", + "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==", + "dev": true + }, + "node_modules/puppeteer-core/node_modules/ws": { + "version": "8.10.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.10.0.tgz", + "integrity": "sha512-+s49uSmZpvtAsd2h37vIPy1RBusaLawVe8of+GyEPsaJTCMpj/2v8NpeK1SHXjBlQ95lQTmQofOJnFiLoaN3yw==", + "dev": true, + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": "^5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/puppeteer/node_modules/cosmiconfig": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.0.1.tgz", + "integrity": "sha512-a1YWNUV2HwGimB7dU2s1wUMurNKjpx60HxBB6xUM8Re+2s1g1IIfJvFR0/iCF+XHdE0GMTKTuLR32UQff4TEyQ==", + "dev": true, + "dependencies": { + "@types/parse-json": "^4.0.0", + "import-fresh": "^3.2.1", + "parse-json": "^5.0.0", + "path-type": "^4.0.0", + "yaml": "^1.10.0" + }, + "engines": { + "node": ">=10" } }, "node_modules/puppeteer/node_modules/proxy-from-env": { @@ -11670,16 +11752,16 @@ } }, "node_modules/rollup": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-3.4.0.tgz", - "integrity": "sha512-4g8ZrEFK7UbDvy3JF+d5bLiC8UKkS3n/27/cnVeESwB1LVPl6MoPL32/6+SCQ1vHTp6Mvp2veIHtwELhi+uXEw==", + "version": "2.79.1", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.79.1.tgz", + "integrity": "sha512-uKxbd0IhMZOhjAiD5oAFp7BqvkA4Dv47qpOCtaNvng4HBwdbWtdOh8f5nZNuk2rp51PMGk3bzfWu5oayNEuYnw==", "dev": true, + "peer": true, "bin": { "rollup": "dist/bin/rollup" }, "engines": { - "node": ">=14.18.0", - "npm": ">=8.0.0" + "node": ">=10.0.0" }, "optionalDependencies": { "fsevents": "~2.3.2" diff --git a/test/backend/calc/geotechnical/CMakeLists.txt b/test/backend/calc/geotechnical/CMakeLists.txt index 97e24c5..738edfc 100644 --- a/test/backend/calc/geotechnical/CMakeLists.txt +++ b/test/backend/calc/geotechnical/CMakeLists.txt @@ -5,4 +5,14 @@ target_link_libraries( PRIVATE GTest::GTest GTest::Main nlohmann_json::nlohmann_json simdjson::simdjson spdlog::spdlog_header_only jessica) -add_test(NAME TestCalcMeyerhof COMMAND test_calc_meyerhof) +foreach(TESTI test_calc_meyerhof) + add_test(NAME ${TESTI} COMMAND ${TESTI}) + if($) + add_custom_command( + TARGET ${TESTI} + POST_BUILD + COMMAND ${CMAKE_COMMAND} -E copy_if_different + $ $ + COMMAND_EXPAND_LISTS) + endif() +endforeach() diff --git a/test/backend/data/CMakeLists.txt b/test/backend/data/CMakeLists.txt index 252a3e7..216fea5 100644 --- a/test/backend/data/CMakeLists.txt +++ b/test/backend/data/CMakeLists.txt @@ -12,6 +12,14 @@ target_link_libraries( PRIVATE GTest::GTest GTest::Main nlohmann_json::nlohmann_json simdjson::simdjson spdlog::spdlog_header_only jessica) -add_test(NAME TestGeotechnicalFoundationStrip - COMMAND test_geotechnical_foundation_strip) -add_test(NAME TestLoadVerticalEccentric COMMAND test_load_vertical_eccentric) +foreach(TESTI test_geotechnical_foundation_strip test_load_vertical_eccentric) + add_test(NAME ${TESTI} COMMAND ${TESTI}) + if($) + add_custom_command( + TARGET ${TESTI} + POST_BUILD + COMMAND ${CMAKE_COMMAND} -E copy_if_different + $ $ + COMMAND_EXPAND_LISTS) + endif() +endforeach() diff --git a/test/backend/util/CMakeLists.txt b/test/backend/util/CMakeLists.txt index 4272551..c1f5582 100644 --- a/test/backend/util/CMakeLists.txt +++ b/test/backend/util/CMakeLists.txt @@ -5,4 +5,14 @@ target_link_libraries( PRIVATE GTest::GTest GTest::Main nlohmann_json::nlohmann_json simdjson::simdjson jessica) -add_test(NAME TestUtilDecorator COMMAND test_util_decorator) +foreach(TESTI test_util_decorator) + add_test(NAME ${TESTI} COMMAND ${TESTI}) + if($) + add_custom_command( + TARGET ${TESTI} + POST_BUILD + COMMAND ${CMAKE_COMMAND} -E copy_if_different + $ $ + COMMAND_EXPAND_LISTS) + endif() +endforeach()