From a7f7b7dd93efd0f5485fa47a2caa5ea25be4f4f5 Mon Sep 17 00:00:00 2001 From: "Kramer, Arend Jan" Date: Wed, 6 Nov 2024 14:15:11 +0100 Subject: [PATCH] Working Flutter CI for Linux and Windows, version 2024.4 --- .github/workflows/linux-build.yaml | 141 ++++++++ .github/workflows/macos-build.yaml | 50 +++ .github/workflows/windows-build.yaml | 221 ++++++++++++ openvino_bindings/Dockerfile.ubuntu | 17 +- .../third_party/model_api/model_api.BUILD | 16 +- .../third_party/opencv/linux.BUILD | 1 + .../third_party/openvino/linux.BUILD | 10 +- pubspec.lock | 333 ++++++++++++++++++ pubspec.yaml | 1 + 9 files changed, 777 insertions(+), 13 deletions(-) create mode 100644 .github/workflows/linux-build.yaml create mode 100644 .github/workflows/macos-build.yaml create mode 100644 .github/workflows/windows-build.yaml diff --git a/.github/workflows/linux-build.yaml b/.github/workflows/linux-build.yaml new file mode 100644 index 00000000..7597f5c8 --- /dev/null +++ b/.github/workflows/linux-build.yaml @@ -0,0 +1,141 @@ +name: Linux build + +on: push + +jobs: + build-linux-bindings: + name: Build Linux bindings + runs-on: ubuntu-22.04-16-cores + permissions: + contents: write + + steps: + # Step 1: Checkout the repository + - name: Checkout repository + uses: actions/checkout@v4 + + # Step 2: Set up Docker Buildx (if you want cross-platform support, otherwise you can skip this) + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v3 + + # Step 3: Navigate to the src directory and build the Docker image + - name: Build Docker image + run: | + cd openvino_bindings + docker build -f Dockerfile.ubuntu -t linux-bindings-ubuntu . + docker create --name bindings_container linux-bindings-ubuntu + docker cp bindings_container:/bindings-out/linux_bindings.tgz ./linux_bindings.tgz + docker rm bindings_container + pwd + ls -lh + + - name: Upload Release Artifact + uses: actions/upload-artifact@v4 + with: + name: "linux_bindings.tgz" + path: openvino_bindings/linux_bindings.tgz + if-no-files-found: error + + + build-linux-ui: + name: Build Linux UI + + runs-on: ubuntu-22.04 + permissions: + contents: write + + steps: + - uses: actions/checkout@v4 + - uses: subosito/flutter-action@v2 + with: + channel: 'stable' + flutter-version: '3.24.0' + - name: Install dependencies + run: sudo apt-get install -y clang cmake ninja-build pkg-config libgtk-3-dev liblzma-dev libmpv-dev + - name: Install project dependencies + run: flutter pub get + - name: Generate intermediates + run: flutter pub run build_runner build --delete-conflicting-outputs + - name: Enable linux build + run: flutter config --enable-linux-desktop + - name: Build artifacts + run: flutter build linux --release + - name: Archive Release + uses: thedoctor0/zip-release@master + with: + type: 'zip' + filename: "OpenVINO-TestDrive-no-bindings-linux.zip" + path: build/linux/x64/release/bundle + - name: Upload Release Artifact + uses: actions/upload-artifact@v4 + with: + name: "OpenVINO-TestDrive-no-bindings-linux.zip" + path: build/linux/x64/release/bundle + + package: + name: Package combined Linux release + runs-on: ubuntu-22.04 + needs: [ build-linux-bindings, build-linux-ui ] # Waits for both jobs to succeed + steps: + # Step 1: Check out the repository + - name: Checkout repository + uses: actions/checkout@v4 + + # Step 2: Set filename for release + - name: Set safe filename + id: set_filename + run: | + SAFE_REF_NAME=${GITHUB_REF_NAME//\//_} + echo "SANITIZED_FILENAME=OpenVINO-TestDrive-${SAFE_REF_NAME}-linux.zip" >> $GITHUB_ENV + + # Step 3: Download artifact from build-linux-ui + - name: Download bindings build artifact + uses: actions/download-artifact@v4 + with: + name: "linux_bindings.tgz" # Matches the artifact name from build-linux-ui + path: ./bindings # Directory to store the downloaded artifact + + # Step 4: Download artifact from build-linux-ui + - name: Download flutter build artifact + uses: actions/download-artifact@v4 + with: + name: "OpenVINO-TestDrive-no-bindings-linux.zip" # Matches the artifact name from build-linux-ui + path: ./flutter # Directory to store the downloaded artifact + + # Step 5: Combine artifacts + - name: Combine artifacts + run: | + ls -la ./ + ls -la ./bindings + ls -la ./flutter + + tar -xvf ./bindings/linux_bindings.tgz -C ./bindings + rm ./bindings/linux_bindings.tgz + + ls -la ./bindings + mkdir -p ./flutter/data/flutter_assets/bindings + mv ./bindings/* ./flutter/data/flutter_assets/bindings + + # Step 5: Archive combined folder + - name: Archive Release artifact + uses: thedoctor0/zip-release@master + with: + type: 'zip' + filename: ${{ env.SANITIZED_FILENAME }} + path: ./flutter/ + + # Step 5: Upload new artifact + - name: Upload Release Artifact + uses: actions/upload-artifact@v4 + with: + name: ${{ env.SANITIZED_FILENAME }} + path: ./flutter/ + + # Step 6: Update release + - name: Linux Release + uses: softprops/action-gh-release@v1 + if: startsWith(github.ref, 'refs/tags/') + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + files: ${{ env.SANITIZED_FILENAME }} diff --git a/.github/workflows/macos-build.yaml b/.github/workflows/macos-build.yaml new file mode 100644 index 00000000..1331f3b4 --- /dev/null +++ b/.github/workflows/macos-build.yaml @@ -0,0 +1,50 @@ +name: macOS build + +on: push + +jobs: + build-macos-ui: + name: Build macOS ui + runs-on: macos-latest + permissions: + contents: write + + if: false + + steps: + - uses: actions/checkout@v4 + - name: Set safe filename + id: set_filename + run: | + SAFE_REF_NAME=${GITHUB_REF_NAME//\//_} + echo "SANITIZED_FILENAME=OpenVINO-TestDrive-${SAFE_REF_NAME}-macos.zip" >> $GITHUB_ENV + - uses: subosito/flutter-action@v2 + with: + channel: 'stable' + flutter-version: '3.24.0' + - name: Install project dependencies + run: flutter pub get + - name: Generate intermediates + run: flutter pub run build_runner build --delete-conflicting-outputs + - name: Enable macOS build + run: flutter config --enable-macos-desktop + - name: Build artifacts + run: flutter build macos --release + - name: Archive Release + uses: thedoctor0/zip-release@master + with: + type: 'zip' + filename: ${{ env.SANITIZED_FILENAME }} + path: build/macos/Build/Products/Release + - name: Upload Release Artifact + uses: actions/upload-artifact@v4 + with: + name: ${{ env.SANITIZED_FILENAME }} + path: build/macos/Build/Products/Release + - name: macOS Release + uses: softprops/action-gh-release@v1 + if: startsWith(github.ref, 'refs/tags/') + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + files: ${{ env.SANITIZED_FILENAME }} \ No newline at end of file diff --git a/.github/workflows/windows-build.yaml b/.github/workflows/windows-build.yaml new file mode 100644 index 00000000..3897dc36 --- /dev/null +++ b/.github/workflows/windows-build.yaml @@ -0,0 +1,221 @@ +name: Windows build + +on: push + +jobs: + build-windows-bindings: + name: Build Windows bindings + runs-on: windows-2019-16-core + + steps: + # Step 1: Checkout the repository + - name: Checkout repository + uses: actions/checkout@v4 + +# Step 2: Install Visual Studio Build Tools (only needed on windows-latest or runners without VS2019) +# - name: Install Visual Studio Build Tools +# run: | +# choco install visualstudio2019buildtools -y +# choco install visualstudio2019-workload-vctools -y +# shell: cmd + + # Step 3: Install Python 3.13 + - name: Install Python 3.13 + uses: actions/setup-python@v5 + with: + python-version: '3.13' + + - name: Add Python to PATH + run: | + setx PATH "%PATH%;C:\hostedtoolcache\windows\Python\3.13.0\x64" + shell: cmd + + # Step 4: Add Python to PATH + - name: Install numpy + run: | + C:/hostedtoolcache/windows/Python/3.13.0/x64/python.exe -m pip install numpy + shell: cmd + + # Step 5: Install MSYS2 + - name: Install MSYS2 + run: | + choco install msys2 -y + setx PATH "%PATH%;C:\tools\msys64\usr\bin" + shell: cmd + + - name: Initialize MSYS2 + run: | + C:/tools/msys64/msys2_shell.cmd -defterm -no-start -c "pacman -Syuu --noconfirm" + C:/tools/msys64/msys2_shell.cmd -defterm -no-start -c "pacman -Sy --noconfirm" + shell: cmd + + # Step 6: Install Bazelisk + - name: Install Bazelisk + run: | + choco install bazelisk -y + shell: cmd + + # Step 7: Set up Bazel environment variables + - name: Set up Bazel environment variables + env: + BAZEL_VC: C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\VC + BAZEL_VS: C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools + BAZEL_VC_FULL_VERSION: 14.29.30133 + BAZEL_SH: C:\msys64\usr\bin\bash.exe + run: echo "Bazel environment variables set." + + # Step 8: Download and Install OpenCV + - name: Download OpenCV + run: | + curl -L -o opencv.exe https://github.com/opencv/opencv/releases/download/4.9.0/opencv-4.9.0-windows.exe + start /wait opencv.exe -suppresslaunch -y -gm2 -o"C:\" + shell: cmd + + # Step 9: Install vcpkg and ffmpeg + - name: Install vcpkg and ffmpeg + run: | + git clone https://github.com/microsoft/vcpkg.git C:\vcpkg + C:\vcpkg\bootstrap-vcpkg.bat + C:\vcpkg\vcpkg install ffmpeg + shell: cmd + + # Step 10: Download and Install OpenVINO Runtime + - name: Download and Install OpenVINO Runtime 24.4.0 + shell: powershell + run: | + Invoke-WebRequest -Uri https://storage.openvinotoolkit.org/repositories/openvino_genai/packages/2024.4/windows/openvino_genai_windows_2024.4.0.0_x86_64.zip -OutFile openvino_runtime.zip + Expand-Archive -Path openvino_runtime.zip -DestinationPath C:/Intel/ + Rename-Item -Path "C:/Intel/openvino_genai_windows_2024.4.0.0_x86_64" -NewName "openvino_2024.4.0" + dir C:/Intel/openvino_2024.4.0/ + + # Step 11: Install Mediapipe Requirements + - name: Install Mediapipe Requirements + run: | + C:/tools/msys64/msys2_shell.cmd -defterm -no-start -c "pacman -Sy --noconfirm git patch unzip" + shell: bash + + # Step 12: Build with Bazel + - name: Build Windows Bindings with Bazel + env: + PYTHON_BIN_PATH: "C:/hostedtoolcache/windows/Python/3.13.0/x64/python.exe" + run: | + cd openvino_bindings + bazel build -c opt :windows_bindings --action_env PYTHON_BIN_PATH="C:/hostedtoolcache/windows/Python/3.13.0/x64/python.exe" + shell: bash + + # Step 13: Verify the DLLs + - name: Verify DLLs in Bazel Output + run: | + dir openvino_bindings/bazel-out/x64_windows-opt/bin/windows_bindings.tar + + # Step 14: Upload release artifact + - name: Upload Release Artifact + uses: actions/upload-artifact@v4 + with: + name: windows_bindings.tar + path: openvino_bindings/bazel-out/x64_windows-opt/bin/windows_bindings.tar + + build-windows-ui: + name: Build Windows UI + runs-on: windows-latest + permissions: + contents: write + + steps: + - uses: actions/checkout@v4 + - uses: subosito/flutter-action@v2 + with: + channel: 'stable' + flutter-version: '3.24.0' + - name: Install project dependencies + run: flutter pub get + - name: Generate intermediates + run: flutter pub run build_runner build --delete-conflicting-outputs + - name: Enable windows build + run: flutter config --enable-windows-desktop + - name: Copy bindings # Todo + run: | + mkdir bindings + New-Item -ItemType File -Path "bindings\\fake.dll" -Force + - name: Build artifacts + run: flutter build windows --release + - name: Archive Release artifact + uses: thedoctor0/zip-release@master + with: + type: 'zip' + filename: "OpenVINO-TestDrive-no-bindings-windows.zip" + path: build/windows/x64/runner/Release + - name: Upload Release Artifact + uses: actions/upload-artifact@v4 + with: + name: "OpenVINO-TestDrive-no-bindings-windows.zip" + path: build\\windows\\x64\\runner\\Release + + package: + name: Package combined Windows release + runs-on: ubuntu-22.04 + needs: [ build-windows-bindings, build-windows-ui ] # Waits for both jobs to succeed + steps: + # Step 1: Check out the repository + - name: Checkout repository + uses: actions/checkout@v4 + + # Step 2: Set filename for release + - name: Set safe filename + id: set_filename + run: | + SAFE_REF_NAME=${GITHUB_REF_NAME//\//_} + echo "SANITIZED_FILENAME=OpenVINO-TestDrive-${SAFE_REF_NAME}-windows.zip" >> $GITHUB_ENV + + # Step 3: Download artifact from build-windows-ui + - name: Download bindings build artifact + uses: actions/download-artifact@v4 + with: + name: "windows_bindings.tar" # Matches the artifact name from build-windows-ui + path: ./bindings # Directory to store the downloaded artifact + + # Step 4: Download artifact from build-windows-ui + - name: Download flutter build artifact + uses: actions/download-artifact@v4 + with: + name: "OpenVINO-TestDrive-no-bindings-windows.zip" # Matches the artifact name from build-windows-ui + path: ./flutter # Directory to store the downloaded artifact + + # Step 5: Combine artifacts + - name: Combine artifacts + run: | + ls -la ./ + ls -la ./bindings + ls -la ./flutter + rm -rf ./flutter/fake.dll + + tar -xvf ./bindings/windows_bindings.tar -C ./bindings + rm ./bindings/windows_bindings.tar + + ls -la ./bindings + + mv ./bindings/* ./flutter/ + + # Step 5: Archive combined folder + - name: Archive Release artifact + uses: thedoctor0/zip-release@master + with: + type: 'zip' + filename: ${{ env.SANITIZED_FILENAME }} + path: ./flutter/ + + # Step 5: Upload new artifact + - name: Upload Release Artifact + uses: actions/upload-artifact@v4 + with: + name: ${{ env.SANITIZED_FILENAME }} + path: ./flutter/ + + # Step 6: Update release + - name: Windows Release + uses: softprops/action-gh-release@v1 + if: startsWith(github.ref, 'refs/tags/') + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + files: ${{ env.SANITIZED_FILENAME }} diff --git a/openvino_bindings/Dockerfile.ubuntu b/openvino_bindings/Dockerfile.ubuntu index 8ddf2f9b..761515bc 100644 --- a/openvino_bindings/Dockerfile.ubuntu +++ b/openvino_bindings/Dockerfile.ubuntu @@ -15,9 +15,9 @@ RUN curl -fSsL -O https://github.com/bazelbuild/bazel/releases/download/$BAZEL_V rm -f /bazel/bazel-$BAZEL_VERSION-installer-linux-x86_64.sh RUN cd /tmp && mkdir -p /opt/intel && \ - curl -L https://storage.openvinotoolkit.org/repositories/openvino_genai/packages/2024.3/linux/openvino_genai_ubuntu22_2024.3.0.0_x86_64.tar.gz \ + curl -L https://storage.openvinotoolkit.org/repositories/openvino_genai/packages/2024.4/linux/openvino_genai_ubuntu22_2024.4.0.0_x86_64.tar.gz \ --output openvino.tgz && tar -xf openvino.tgz && \ - mv openvino_genai_ubuntu22_2024.3.0.0_x86_64 /opt/intel/openvino && rm /tmp/openvino.tgz + mv openvino_genai_ubuntu22_2024.4.0.0_x86_64 /opt/intel/openvino && rm /tmp/openvino.tgz RUN cd /opt/intel/openvino && ./install_dependencies/install_openvino_dependencies.sh -y @@ -27,7 +27,16 @@ RUN ./setup_opencv.sh RUN pip3 install numpy -ADD . /build +COPY bazel /build/bazel +COPY src /build/src +COPY BUILD /build/BUILD +COPY WORKSPACE /build/WORKSPACE +COPY third_party /build/third_party +COPY .bazelrc /build/.bazelrc +COPY .bazelversion /build/.bazelversion + WORKDIR /build -RUN bazel build src:linux_bindings +RUN mkdir -p /bazel-out +RUN bazel build //:linux_bindings +RUN mkdir -p /bindings-out/ && mv bazel-bin/linux_bindings.tgz /bindings-out/ \ No newline at end of file diff --git a/openvino_bindings/third_party/model_api/model_api.BUILD b/openvino_bindings/third_party/model_api/model_api.BUILD index 58d41c41..327061a9 100644 --- a/openvino_bindings/third_party/model_api/model_api.BUILD +++ b/openvino_bindings/third_party/model_api/model_api.BUILD @@ -23,10 +23,10 @@ cmake( "OpenVINO_DIR": "/opt/intel/openvino/runtime/cmake", "OpenCV_DIR": "/opt/homebrew/Cellar/opencv/4.10.0_9", }, - env = { - "HTTP_PROXY": "http://proxy-dmz.intel.com:911", - "HTTPS_PROXY": "http://proxy-dmz.intel.com:912", - }, +# env = { +# "HTTP_PROXY": "http://proxy-dmz.intel.com:911", +# "HTTPS_PROXY": "http://proxy-dmz.intel.com:912", +# }, lib_source = ":all_srcs", out_static_libs = ["libmodel_api.a"], tags = ["requires-network"], @@ -47,10 +47,10 @@ cmake( "CMAKE_POSITION_INDEPENDENT_CODE": "ON", "OpenVINO_DIR": "/opt/intel/openvino/runtime/cmake", }, - env = { - "HTTP_PROXY": "http://proxy-dmz.intel.com:911", - "HTTPS_PROXY": "http://proxy-dmz.intel.com:912", - }, +# env = { +# "HTTP_PROXY": "http://proxy-dmz.intel.com:911", +# "HTTPS_PROXY": "http://proxy-dmz.intel.com:912", +# }, lib_source = ":all_srcs", out_static_libs = ["libmodel_api.a"], tags = ["requires-network"], diff --git a/openvino_bindings/third_party/opencv/linux.BUILD b/openvino_bindings/third_party/opencv/linux.BUILD index 89bcdc52..c87d753c 100644 --- a/openvino_bindings/third_party/opencv/linux.BUILD +++ b/openvino_bindings/third_party/opencv/linux.BUILD @@ -10,6 +10,7 @@ cc_library( srcs = glob( [ "lib/libopencv_*.so", + "lib/libopencv_*.so.4*", ], ), hdrs = glob(["include/opencv4/opencv2/**/*.h*"]), diff --git a/openvino_bindings/third_party/openvino/linux.BUILD b/openvino_bindings/third_party/openvino/linux.BUILD index 1871b89f..15f0657a 100644 --- a/openvino_bindings/third_party/openvino/linux.BUILD +++ b/openvino_bindings/third_party/openvino/linux.BUILD @@ -8,21 +8,29 @@ filegroup( name = "shared_objects", srcs = [ "3rdparty/tbb/lib/libtbb.so.12", + "lib/intel64/libcore_tokenizers.so", "lib/intel64/libopenvino.so." + OPENVINO_VERSION, "lib/intel64/libopenvino_c.so", + "lib/intel64/libopenvino_c.so." + OPENVINO_VERSION, "lib/intel64/libopenvino_genai.so." + OPENVINO_VERSION, "lib/intel64/libopenvino_tokenizers.so", "lib/intel64/libopenvino_auto_plugin.so", "lib/intel64/libopenvino_hetero_plugin.so", "lib/intel64/libopenvino_onnx_frontend.so", + "lib/intel64/libopenvino_onnx_frontend.so." + OPENVINO_VERSION, "lib/intel64/libopenvino_paddle_frontend.so", + "lib/intel64/libopenvino_paddle_frontend.so." + OPENVINO_VERSION, "lib/intel64/libopenvino_intel_cpu_plugin.so", "lib/intel64/libopenvino_intel_gpu_plugin.so", "lib/intel64/libopenvino_intel_npu_plugin.so", "lib/intel64/libopenvino_pytorch_frontend.so", + "lib/intel64/libopenvino_pytorch_frontend.so." + OPENVINO_VERSION, + "lib/intel64/libopenvino_ir_frontend.so." + OPENVINO_VERSION, "lib/intel64/libopenvino_auto_batch_plugin.so", "lib/intel64/libopenvino_tensorflow_frontend.so", - "lib/intel64/libopenvino_tensorflow_lite_frontend.so" + "lib/intel64/libopenvino_tensorflow_frontend.so."+ OPENVINO_VERSION, + "lib/intel64/libopenvino_tensorflow_lite_frontend.so", + "lib/intel64/libopenvino_tensorflow_lite_frontend.so." + OPENVINO_VERSION, ] ) diff --git a/pubspec.lock b/pubspec.lock index dc8eb519..b0b541f3 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -1,6 +1,27 @@ # Generated by pub # See https://dart.dev/tools/pub/glossary#lockfile packages: + _fe_analyzer_shared: + dependency: transitive + description: + name: _fe_analyzer_shared + sha256: f256b0c0ba6c7577c15e2e4e114755640a875e885099367bf6e012b19314c834 + url: "https://pub.dev" + source: hosted + version: "72.0.0" + _macros: + dependency: transitive + description: dart + source: sdk + version: "0.3.2" + analyzer: + dependency: transitive + description: + name: analyzer + sha256: b652861553cd3990d8ed361f7979dc6d7053a9ac8843fa73820ab68ce5410139 + url: "https://pub.dev" + source: hosted + version: "6.7.0" archive: dependency: transitive description: @@ -33,6 +54,70 @@ packages: url: "https://pub.dev" source: hosted version: "2.1.1" + build: + dependency: transitive + description: + name: build + sha256: "80184af8b6cb3e5c1c4ec6d8544d27711700bc3e6d2efad04238c7b5290889f0" + url: "https://pub.dev" + source: hosted + version: "2.4.1" + build_config: + dependency: transitive + description: + name: build_config + sha256: bf80fcfb46a29945b423bd9aad884590fb1dc69b330a4d4700cac476af1708d1 + url: "https://pub.dev" + source: hosted + version: "1.1.1" + build_daemon: + dependency: transitive + description: + name: build_daemon + sha256: "79b2aef6ac2ed00046867ed354c88778c9c0f029df8a20fe10b5436826721ef9" + url: "https://pub.dev" + source: hosted + version: "4.0.2" + build_resolvers: + dependency: transitive + description: + name: build_resolvers + sha256: "339086358431fa15d7eca8b6a36e5d783728cf025e559b834f4609a1fcfb7b0a" + url: "https://pub.dev" + source: hosted + version: "2.4.2" + build_runner: + dependency: "direct dev" + description: + name: build_runner + sha256: "028819cfb90051c6b5440c7e574d1896f8037e3c96cf17aaeb054c9311cfbf4d" + url: "https://pub.dev" + source: hosted + version: "2.4.13" + build_runner_core: + dependency: transitive + description: + name: build_runner_core + sha256: f8126682b87a7282a339b871298cc12009cb67109cfa1614d6436fb0289193e0 + url: "https://pub.dev" + source: hosted + version: "7.3.2" + built_collection: + dependency: transitive + description: + name: built_collection + sha256: "376e3dd27b51ea877c28d525560790aee2e6fbb5f20e2f85d5081027d94e2100" + url: "https://pub.dev" + source: hosted + version: "5.1.1" + built_value: + dependency: transitive + description: + name: built_value + sha256: c7913a9737ee4007efedaffc968c049fd0f3d0e49109e778edc10de9426005cb + url: "https://pub.dev" + source: hosted + version: "8.9.2" characters: dependency: transitive description: @@ -41,6 +126,14 @@ packages: url: "https://pub.dev" source: hosted version: "1.3.0" + checked_yaml: + dependency: transitive + description: + name: checked_yaml + sha256: feb6bed21949061731a7a75fc5d2aa727cf160b91af9a3e464c5e3a32e28b5ff + url: "https://pub.dev" + source: hosted + version: "2.0.3" cli_util: dependency: transitive description: @@ -57,6 +150,14 @@ packages: url: "https://pub.dev" source: hosted version: "1.1.1" + code_builder: + dependency: transitive + description: + name: code_builder + sha256: "0ec10bf4a89e4c613960bf1e8b42c64127021740fb21640c29c909826a5eea3e" + url: "https://pub.dev" + source: hosted + version: "4.10.1" collection: dependency: "direct main" description: @@ -73,6 +174,14 @@ packages: url: "https://pub.dev" source: hosted version: "4.1.0" + convert: + dependency: transitive + description: + name: convert + sha256: b30acd5944035672bc15c6b7a8b47d773e41e2f17de064350988c5d02adb1c68 + url: "https://pub.dev" + source: hosted + version: "3.1.2" cross_file: dependency: transitive description: @@ -113,6 +222,22 @@ packages: url: "https://pub.dev" source: hosted version: "1.0.8" + dart_style: + dependency: transitive + description: + name: dart_style + sha256: "7856d364b589d1f08986e140938578ed36ed948581fbc3bc9aef1805039ac5ab" + url: "https://pub.dev" + source: hosted + version: "2.3.7" + dbus: + dependency: transitive + description: + name: dbus + sha256: "365c771ac3b0e58845f39ec6deebc76e3276aa9922b0cc60840712094d9047ac" + url: "https://pub.dev" + source: hosted + version: "0.7.10" desktop_drop: dependency: "direct main" description: @@ -229,6 +354,14 @@ packages: description: flutter source: sdk version: "0.0.0" + frontend_server_client: + dependency: transitive + description: + name: frontend_server_client + sha256: f64a0333a82f30b0cca061bc3d143813a486dc086b574bfb233b7c1372427694 + url: "https://pub.dev" + source: hosted + version: "4.0.0" fuchsia_remote_debug_protocol: dependency: transitive description: flutter @@ -258,6 +391,14 @@ packages: url: "https://pub.dev" source: hosted version: "14.3.0" + graphs: + dependency: transitive + description: + name: graphs + sha256: "741bbf84165310a68ff28fe9e727332eef1407342fca52759cb21ad8177bb8d0" + url: "https://pub.dev" + source: hosted + version: "2.3.2" html: dependency: "direct dev" description: @@ -274,6 +415,14 @@ packages: url: "https://pub.dev" source: hosted version: "1.2.2" + http_multi_server: + dependency: transitive + description: + name: http_multi_server + sha256: "97486f20f9c2f7be8f514851703d0119c3596d14ea63227af6f7a481ef2b2f8b" + url: "https://pub.dev" + source: hosted + version: "3.2.1" http_parser: dependency: transitive description: @@ -303,6 +452,30 @@ packages: url: "https://pub.dev" source: hosted version: "0.19.0" + io: + dependency: transitive + description: + name: io + sha256: "2ec25704aba361659e10e3e5f5d672068d332fc8ac516421d483a11e5cbd061e" + url: "https://pub.dev" + source: hosted + version: "1.0.4" + js: + dependency: transitive + description: + name: js + sha256: f2c445dce49627136094980615a031419f7f3eb393237e4ecd97ac15dea343f3 + url: "https://pub.dev" + source: hosted + version: "0.6.7" + json_annotation: + dependency: transitive + description: + name: json_annotation + sha256: "1ce844379ca14835a50d2f019a3099f419082cfdd231cd86a142af94dd5c6bb1" + url: "https://pub.dev" + source: hosted + version: "4.9.0" leak_tracker: dependency: transitive description: @@ -343,6 +516,14 @@ packages: url: "https://pub.dev" source: hosted version: "1.2.0" + macros: + dependency: transitive + description: + name: macros + sha256: "0acaed5d6b7eab89f63350bccd82119e6c602df0f391260d0e32b5e23db79536" + url: "https://pub.dev" + source: hosted + version: "0.1.2-main.4" matcher: dependency: transitive description: @@ -487,6 +668,14 @@ packages: url: "https://pub.dev" source: hosted version: "2.1.8" + pool: + dependency: transitive + description: + name: pool + sha256: "20fe868b6314b322ea036ba325e6fc0711a22948856475e2c2b6306e8ab39c2a" + url: "https://pub.dev" + source: hosted + version: "1.5.1" process: dependency: transitive description: @@ -511,6 +700,14 @@ packages: url: "https://pub.dev" source: hosted version: "2.1.4" + pubspec_parse: + dependency: transitive + description: + name: pubspec_parse + sha256: c799b721d79eb6ee6fa56f00c04b472dcd44a30d258fac2174a6ec57302678f8 + url: "https://pub.dev" + source: hosted + version: "1.3.0" quiver: dependency: transitive description: @@ -519,6 +716,78 @@ packages: url: "https://pub.dev" source: hosted version: "3.2.2" + safe_local_storage: + dependency: transitive + description: + name: safe_local_storage + sha256: ede4eb6cb7d88a116b3d3bf1df70790b9e2038bc37cb19112e381217c74d9440 + url: "https://pub.dev" + source: hosted + version: "1.0.2" + screen_brightness: + dependency: transitive + description: + name: screen_brightness + sha256: ed8da4a4511e79422fc1aa88138e920e4008cd312b72cdaa15ccb426c0faaedd + url: "https://pub.dev" + source: hosted + version: "0.2.2+1" + screen_brightness_android: + dependency: transitive + description: + name: screen_brightness_android + sha256: "3df10961e3a9e968a5e076fe27e7f4741fa8a1d3950bdeb48cf121ed529d0caf" + url: "https://pub.dev" + source: hosted + version: "0.1.0+2" + screen_brightness_ios: + dependency: transitive + description: + name: screen_brightness_ios + sha256: "99adc3ca5490b8294284aad5fcc87f061ad685050e03cf45d3d018fe398fd9a2" + url: "https://pub.dev" + source: hosted + version: "0.1.0" + screen_brightness_macos: + dependency: transitive + description: + name: screen_brightness_macos + sha256: "64b34e7e3f4900d7687c8e8fb514246845a73ecec05ab53483ed025bd4a899fd" + url: "https://pub.dev" + source: hosted + version: "0.1.0+1" + screen_brightness_platform_interface: + dependency: transitive + description: + name: screen_brightness_platform_interface + sha256: b211d07f0c96637a15fb06f6168617e18030d5d74ad03795dd8547a52717c171 + url: "https://pub.dev" + source: hosted + version: "0.1.0" + screen_brightness_windows: + dependency: transitive + description: + name: screen_brightness_windows + sha256: "9261bf33d0fc2707d8cf16339ce25768100a65e70af0fcabaf032fc12408ba86" + url: "https://pub.dev" + source: hosted + version: "0.1.3" + shelf: + dependency: transitive + description: + name: shelf + sha256: ad29c505aee705f41a4d8963641f91ac4cee3c8fad5947e033390a7bd8180fa4 + url: "https://pub.dev" + source: hosted + version: "1.4.1" + shelf_web_socket: + dependency: transitive + description: + name: shelf_web_socket + sha256: "073c147238594ecd0d193f3456a5fe91c4b0abbcc68bf5cd95b36c4e194ac611" + url: "https://pub.dev" + source: hosted + version: "2.0.0" shimmer: dependency: "direct main" description: @@ -564,6 +833,14 @@ packages: url: "https://pub.dev" source: hosted version: "2.1.2" + stream_transform: + dependency: transitive + description: + name: stream_transform + sha256: "14a00e794c7c11aa145a170587321aedce29769c08d7f58b1d141da75e3b1c6f" + url: "https://pub.dev" + source: hosted + version: "2.1.0" string_scanner: dependency: transitive description: @@ -596,6 +873,14 @@ packages: url: "https://pub.dev" source: hosted version: "0.7.2" + timing: + dependency: transitive + description: + name: timing + sha256: "70a3b636575d4163c477e6de42f247a23b315ae20e86442bebe32d3cabf61c32" + url: "https://pub.dev" + source: hosted + version: "1.0.1" typed_data: dependency: transitive description: @@ -652,6 +937,38 @@ packages: url: "https://pub.dev" source: hosted version: "14.2.5" + volume_controller: + dependency: transitive + description: + name: volume_controller + sha256: c71d4c62631305df63b72da79089e078af2659649301807fa746088f365cb48e + url: "https://pub.dev" + source: hosted + version: "2.0.8" + wakelock_plus: + dependency: transitive + description: + name: wakelock_plus + sha256: bf4ee6f17a2fa373ed3753ad0e602b7603f8c75af006d5b9bdade263928c0484 + url: "https://pub.dev" + source: hosted + version: "1.2.8" + wakelock_plus_platform_interface: + dependency: transitive + description: + name: wakelock_plus_platform_interface + sha256: "422d1cdbb448079a8a62a5a770b69baa489f8f7ca21aef47800c726d404f9d16" + url: "https://pub.dev" + source: hosted + version: "1.2.1" + watcher: + dependency: transitive + description: + name: watcher + sha256: "3d2ad6751b3c16cf07c7fca317a1413b3f26530319181b37e3b9039b84fc01d8" + url: "https://pub.dev" + source: hosted + version: "1.1.0" web: dependency: transitive description: @@ -660,6 +977,22 @@ packages: url: "https://pub.dev" source: hosted version: "1.1.0" + web_socket: + dependency: transitive + description: + name: web_socket + sha256: "3c12d96c0c9a4eec095246debcea7b86c0324f22df69893d538fcc6f1b8cce83" + url: "https://pub.dev" + source: hosted + version: "0.1.6" + web_socket_channel: + dependency: transitive + description: + name: web_socket_channel + sha256: "9f187088ed104edd8662ca07af4b124465893caf063ba29758f97af57e61da8f" + url: "https://pub.dev" + source: hosted + version: "3.0.1" webdriver: dependency: transitive description: diff --git a/pubspec.yaml b/pubspec.yaml index 6f047999..b6eea996 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -70,6 +70,7 @@ dev_dependencies: sdk: flutter path_provider_platform_interface: ^2.1.2 plugin_platform_interface: ^2.1.8 + build_runner: ^2.4.13 # For information on the generic Dart part of this file, see the # following page: https://dart.dev/tools/pub/pubspec