426 lines
19 KiB
YAML
426 lines
19 KiB
YAML
name: Build Cromite
|
|
permissions:
|
|
actions: none
|
|
checks: none
|
|
contents: none
|
|
deployments: none
|
|
issues: none
|
|
packages: none
|
|
pull-requests: none
|
|
repository-projects: none
|
|
security-events: none
|
|
statuses: none
|
|
|
|
on:
|
|
workflow_dispatch:
|
|
inputs:
|
|
sha:
|
|
description: 'uazo/cromite SHA'
|
|
required: true
|
|
default: ''
|
|
target_os:
|
|
description: 'targetos [android/win/linux/all]'
|
|
required: true
|
|
default: 'all'
|
|
build:
|
|
description: 'android arch [arm/arm64/x64/all]'
|
|
required: true
|
|
default: 'all'
|
|
type:
|
|
description: 'runner? [dev/ci]'
|
|
required: true
|
|
default: 'ci'
|
|
debug:
|
|
description: 'debug? [true/false]'
|
|
required: true
|
|
default: 'false'
|
|
clangd:
|
|
description: 'clangd? [true/false]'
|
|
required: true
|
|
default: 'false'
|
|
|
|
env:
|
|
CROMITE_SHA: ${{ github.event.inputs.sha }}
|
|
REMOVEDOCKERSUPPORT: true
|
|
USELOCALIMAGE: true
|
|
|
|
jobs:
|
|
check_images:
|
|
runs-on: ${{ github.event.inputs.type }}
|
|
steps:
|
|
- name: Checkout repo
|
|
uses: actions/checkout@v2
|
|
with:
|
|
path: cromite
|
|
ref: ${{ github.event.inputs.sha }}
|
|
fetch-depth: 1
|
|
|
|
- name: Enable proxy on container
|
|
shell: bash
|
|
run: |
|
|
if ! [[ -z "${HTTP_PROXY}" ]]; then
|
|
PROXY_ADDR=http://$(hostname -I | cut -d' ' -f1 | xargs):8118
|
|
echo "PROXY_ADDR=$PROXY_ADDR" >> $GITHUB_ENV
|
|
sudo iptables -D INPUT -p tcp -s localhost --dport 8118 -j ACCEPT
|
|
sudo iptables -D INPUT -p tcp --dport 8118 -j DROP
|
|
fi
|
|
|
|
- name: Get current chromium version
|
|
shell: bash
|
|
run: |
|
|
export VERSION=$( cat ./cromite/build/RELEASE )
|
|
|
|
echo Current version is $VERSION
|
|
echo "VERSION=$VERSION" >> $GITHUB_ENV
|
|
|
|
cd cromite/tools
|
|
|
|
- name: Building build-deps container ${{ env.VERSION }}
|
|
shell: bash
|
|
run: |
|
|
IS_PRESENT=$(docker inspect --type=image uazo/build-deps:$VERSION > /dev/null ; echo $?)
|
|
if [ $IS_PRESENT -ne "0" ]; then
|
|
IS_PRESENT=$(docker manifest inspect uazo/build-deps:$VERSION > /dev/null ; echo $?)
|
|
if [ $IS_PRESENT -ne "0" ]; then
|
|
DOCKER_BUILDKIT=1 docker build -t uazo/build-deps:$VERSION \
|
|
--progress plain \
|
|
--build-arg VERSION=$VERSION \
|
|
--build-arg HTTP_PROXY="$PROXY_ADDR" \
|
|
--no-cache \
|
|
cromite/tools/images/build-deps/.
|
|
fi
|
|
fi
|
|
|
|
- name: Building chromium container ${{ env.VERSION }}
|
|
shell: bash
|
|
run: |
|
|
IS_PRESENT=$(docker inspect --type=image uazo/chromium:$VERSION > /dev/null ; echo $?)
|
|
if [ $IS_PRESENT -ne "0" ]; then
|
|
IS_PRESENT=$(docker manifest inspect uazo/chromium:$VERSION > /dev/null ; echo $?)
|
|
if [ $IS_PRESENT -ne "0" ]; then
|
|
DOCKER_BUILDKIT=1 docker build -t uazo/chromium:$VERSION \
|
|
--progress plain \
|
|
--build-arg VERSION=$VERSION \
|
|
--build-arg HTTP_PROXY="$PROXY_ADDR" \
|
|
cromite/tools/images/chr-source/.
|
|
fi
|
|
fi
|
|
|
|
- name: Building cromite container ${{ env.VERSION }}-${{ env.CROMITE_SHA }}
|
|
shell: bash
|
|
run: |
|
|
IS_PRESENT=$(docker inspect --type=image uazo/cromite:$VERSION-$CROMITE_SHA > /dev/null ; echo $?)
|
|
if [ $IS_PRESENT -ne "0" ]; then
|
|
IS_PRESENT=$(docker manifest inspect uazo/cromite:$VERSION-$CROMITE_SHA > /dev/null ; echo $?)
|
|
if [ $IS_PRESENT -ne "0" ]; then
|
|
DOCKER_BUILDKIT=1 docker build -t uazo/cromite:$VERSION-$CROMITE_SHA --progress plain \
|
|
--build-arg CROMITE_SHA=$CROMITE_SHA \
|
|
--build-arg VERSION=$VERSION \
|
|
--build-arg HTTP_PROXY="$PROXY_ADDR" \
|
|
cromite/tools/images/cromite-source/.
|
|
fi
|
|
fi
|
|
|
|
- name: Building cromite-build container ${{ env.VERSION }}-${{ env.CROMITE_SHA }}
|
|
shell: bash
|
|
run: |
|
|
IS_PRESENT=$(docker inspect --type=image uazo/cromite-build:$VERSION-$CROMITE_SHA > /dev/null ; echo $?)
|
|
if [ $IS_PRESENT -ne "0" ]; then
|
|
IS_PRESENT=$(docker manifest inspect uazo/cromite-build:$VERSION-$CROMITE_SHA > /dev/null ; echo $?)
|
|
if [ $IS_PRESENT -ne "0" ]; then
|
|
DOCKER_BUILDKIT=1 docker build -t uazo/cromite-build:$VERSION-$CROMITE_SHA --progress plain \
|
|
--build-arg CROMITE_SHA=$CROMITE_SHA \
|
|
--build-arg VERSION=$VERSION \
|
|
--build-arg HTTP_PROXY="$PROXY_ADDR" \
|
|
--no-cache \
|
|
cromite/tools/images/cromite-build/.
|
|
fi
|
|
fi
|
|
|
|
- name: Get uazo/cromite-build from docker hub if present
|
|
shell: bash
|
|
run: |
|
|
IS_PRESENT=$(docker manifest inspect uazo/cromite-build:$VERSION-$CROMITE_SHA > /dev/null ; echo $?)
|
|
if [ $IS_PRESENT -eq "0" ]; then
|
|
docker pull uazo/cromite-build:$VERSION-$CROMITE_SHA
|
|
fi
|
|
|
|
- name: Mark image to build
|
|
shell: bash
|
|
run: |
|
|
IS_PRESENT=$(docker inspect --type=image uazo/cromite-build:build > /dev/null ; echo $?)
|
|
if [ $IS_PRESENT -eq "0" ]; then
|
|
docker rmi uazo/cromite-build:build
|
|
fi
|
|
docker tag uazo/cromite-build:$VERSION-$CROMITE_SHA uazo/cromite-build:build
|
|
|
|
build:
|
|
runs-on: ${{ github.event.inputs.type }}
|
|
needs: check_images
|
|
if: success()
|
|
timeout-minutes: 1440
|
|
|
|
container:
|
|
image: uazo/cromite-build:build
|
|
env:
|
|
REMOVEDOCKERSUPPORT: true # CUSTOM RUNNER: remove sharing of docker socket
|
|
USELOCALIMAGE: true # CUSTOM RUNNER: permit use of local images
|
|
USEINTERNALNETWORK: true # CUSTOM RUNNER: create the docker network as internal
|
|
WORKSPACE: /home/lg/working_dir
|
|
# kythe
|
|
KYTHE_CORPUS: chromium.googlesource.com/chromium/src
|
|
KYTHE_ROOT_DIRECTORY: /home/lg/working_dir/chromium/src
|
|
KYTHE_OUTPUT_DIRECTORY: /home/lg/working_dir/chromium/src/out/arm64/kythe
|
|
# cross build
|
|
DEPOT_TOOLS_WIN_TOOLCHAIN_BASE_URL: /win_sdk/10.0.22621.0/
|
|
WINDOWSSDKDIR: "/win_sdk/10.0.22621.0/Windows Kits/10/"
|
|
GYP_MSVS_OVERRIDE_PATH: /win_sdk/10.0.22621.0/
|
|
# compile in debug mode
|
|
TARGET_ISDEBUG: ${{ github.event.inputs.debug }}
|
|
TARGET_OS: ${{ github.event.inputs.target_os }}
|
|
USE_KEYSTORE: true
|
|
KEYSTORE_PASSWORD: ${{ secrets.KEYSTORE_PASSWORD }}
|
|
CROMITE_PREF_HASH_SEED_BIN: ${{ secrets.CROMITE_PREF_HASH_SEED_BIN }}
|
|
volumes:
|
|
- /storage/images/${{ github.event.inputs.sha }}/android/${{ github.event.inputs.debug }}/arm:/home/lg/working_dir/chromium/src/out/arm
|
|
- /storage/images/${{ github.event.inputs.sha }}/android/${{ github.event.inputs.debug }}/arm64:/home/lg/working_dir/chromium/src/out/arm64
|
|
- /storage/images/${{ github.event.inputs.sha }}/android/${{ github.event.inputs.debug }}/x64:/home/lg/working_dir/chromium/src/out/x64
|
|
- /storage/images/${{ github.event.inputs.sha }}/linux/${{ github.event.inputs.debug }}/lin64:/home/lg/working_dir/chromium/src/out/lin64
|
|
- /storage/images/${{ github.event.inputs.sha }}/win/x64:/home/lg/working_dir/chromium/src/out/win64
|
|
- /tmp/proxy:/tmp/proxy
|
|
- /win_sdk:/win_sdk
|
|
|
|
steps:
|
|
- name: Prepare Build Container
|
|
shell: bash
|
|
run: |
|
|
# set workspace paths
|
|
PATH=$WORKSPACE/chromium/src/third_party/llvm-build/Release+Asserts/bin:$WORKSPACE/depot_tools/:/usr/local/go/bin:$WORKSPACE/mtool/bin:$PATH
|
|
cd $WORKSPACE
|
|
|
|
# reset proxy env
|
|
HTTP_PROXY=
|
|
HTTPS_PROXY=
|
|
http_proxy=
|
|
https_proxy=
|
|
|
|
# set out folder permissions
|
|
test -d chromium/src/out/arm || sudo mkdir -p chromium/src/out/arm && \
|
|
sudo chown lg chromium/src/out &&
|
|
sudo chown lg chromium/src/out/arm
|
|
|
|
test -d chromium/src/out/arm64 || sudo mkdir -p chromium/src/out/arm64 && \
|
|
sudo chown lg chromium/src/out &&
|
|
sudo chown lg chromium/src/out/arm64
|
|
|
|
test -d chromium/src/out/win64 || sudo mkdir -p chromium/src/out/win64 && \
|
|
sudo chown lg chromium/src/out &&
|
|
sudo chown lg chromium/src/out/win64
|
|
|
|
test -d chromium/src/out/x64 || sudo mkdir -p chromium/src/out/x64 && \
|
|
sudo chown lg chromium/src/out &&
|
|
sudo chown lg chromium/src/out/x64
|
|
|
|
test -d chromium/src/out/lin64 || sudo mkdir -p chromium/src/out/lin64 && \
|
|
sudo chown lg chromium/src/out &&
|
|
sudo chown lg chromium/src/out/lin64
|
|
|
|
# make kythe output directory
|
|
test -d $KYTHE_OUTPUT_DIRECTORY || mkdir -p $KYTHE_OUTPUT_DIRECTORY
|
|
|
|
sudo mkdir -p /run/user/1000/
|
|
sudo chown lg /run/user/1000/
|
|
sudo chmod g-rxw /run/user/1000/
|
|
sudo chmod o-rxw /run/user/1000/
|
|
|
|
# prepare keystore
|
|
echo "::group::-------- prepare keystore"
|
|
cd $WORKSPACE
|
|
echo "${{ secrets.KEYSTORE }}" > cromite.keystore.asc
|
|
gpg --homedir ./ -d --passphrase "${{ secrets.KEYSTORE_PASSPHRASE }}" --batch cromite.keystore.asc > cromite.keystore
|
|
echo "::endgroup::"
|
|
|
|
- name: Build Cromite Android x64
|
|
if: ${{ (github.event.inputs.target_os == 'android' || github.event.inputs.target_os == 'all') && (github.event.inputs.build == 'x64' || github.event.inputs.build == 'all') }}
|
|
shell: bash
|
|
run: |
|
|
PATH=$WORKSPACE/chromium/src/third_party/llvm-build/Release+Asserts/bin:$WORKSPACE/depot_tools/:/usr/local/go/bin:$WORKSPACE/mtool/bin:$PATH
|
|
cd $WORKSPACE/chromium/src
|
|
|
|
echo "::group::-------- gn gen"
|
|
gn gen --args="target_os = \"android\" $(cat /home/lg/working_dir/cromite/build/cromite.gn_args) target_cpu = \"x64\" " out/x64
|
|
echo "::endgroup::"
|
|
|
|
echo "::group::-------- gn args"
|
|
gn args out/x64/ --list --short
|
|
gn args out/x64/ --list >out/x64/gn_list
|
|
echo "::endgroup::"
|
|
|
|
ninja -C out/x64 chrome_public_bundle
|
|
ninja -C out/x64 chrome_public_apk
|
|
|
|
cp ../../cromite/build/RELEASE out/x64
|
|
|
|
- name: Get ninja logs Android x64
|
|
if: ${{ (github.event.inputs.target_os == 'android' || github.event.inputs.target_os == 'all') && (github.event.inputs.build == 'x64' || github.event.inputs.build == 'all') }}
|
|
shell: bash
|
|
run: |
|
|
cd $WORKSPACE
|
|
$WORKSPACE/ninjatracing/ninjatracing -a $WORKSPACE/chromium/src/out/x64/.ninja_log >$WORKSPACE/chromium/src/out/x64/ninja_log_trace.json
|
|
python3 $WORKSPACE/chromium/src/third_party/catapult/tracing/bin/trace2html $WORKSPACE/chromium/src/out/x64/ninja_log_trace.json
|
|
|
|
- name: Build Cromite Windows x64
|
|
if: ${{ github.event.inputs.target_os == 'win' || github.event.inputs.target_os == 'all' }}
|
|
shell: bash
|
|
run: |
|
|
PATH=$WORKSPACE/chromium/src/third_party/llvm-build/Release+Asserts/bin:$WORKSPACE/depot_tools/:/usr/local/go/bin:$WORKSPACE/mtool/bin:$PATH
|
|
cd $WORKSPACE/chromium/src
|
|
|
|
echo "::group::-------- gn gen"
|
|
gn gen --args="target_os = \"win\" $(cat /home/lg/working_dir/cromite/build/cromite.gn_args) target_cpu = \"x64\" " out/win64
|
|
echo "::endgroup::"
|
|
|
|
echo "::group::-------- gn args"
|
|
gn args out/win64/ --list --short
|
|
gn args out/win64/ --list >out/win64/gn_list
|
|
echo "::endgroup::"
|
|
|
|
ninja -C out/win64 chrome
|
|
|
|
cp ../../cromite/build/RELEASE out/win64
|
|
|
|
- name: Get ninja logs Windows x64
|
|
if: ${{ github.event.inputs.target_os == 'win' || github.event.inputs.target_os == 'all' }}
|
|
shell: bash
|
|
run: |
|
|
cd $WORKSPACE
|
|
$WORKSPACE/ninjatracing/ninjatracing -a $WORKSPACE/chromium/src/out/win64/.ninja_log >$WORKSPACE/chromium/src/out/win64/ninja_log_trace.json
|
|
python3 $WORKSPACE/chromium/src/third_party/catapult/tracing/bin/trace2html $WORKSPACE/chromium/src/out/win64/ninja_log_trace.json
|
|
|
|
- name: Build Cromite Android arm64
|
|
if: ${{ (github.event.inputs.target_os == 'android' || github.event.inputs.target_os == 'all') && (github.event.inputs.build == 'arm64' || github.event.inputs.build == 'all') }}
|
|
shell: bash
|
|
run: |
|
|
PATH=$WORKSPACE/chromium/src/third_party/llvm-build/Release+Asserts/bin:$WORKSPACE/depot_tools/:/usr/local/go/bin:$WORKSPACE/mtool/bin:$PATH
|
|
cd $WORKSPACE/chromium/src
|
|
|
|
echo "::group::-------- gn gen"
|
|
gn gen --args="target_os = \"android\" $(cat /home/lg/working_dir/cromite/build/cromite.gn_args) target_cpu = \"arm64\" " out/arm64
|
|
echo "::endgroup::"
|
|
|
|
echo "::group::-------- gn args"
|
|
gn args out/arm64/ --list --short
|
|
gn args out/arm64/ --list >out/arm64/gn_list
|
|
echo "::endgroup::"
|
|
|
|
ninja -C out/arm64 chrome_public_bundle
|
|
ninja -C out/arm64 chrome_public_apk
|
|
|
|
cp ../../cromite/build/RELEASE out/arm64
|
|
|
|
- name: Get ninja logs Android arm64
|
|
if: ${{ (github.event.inputs.target_os == 'android' || github.event.inputs.target_os == 'all') && (github.event.inputs.build == 'arm64' || github.event.inputs.build == 'all') }}
|
|
shell: bash
|
|
run: |
|
|
cd $WORKSPACE
|
|
$WORKSPACE/ninjatracing/ninjatracing -a $WORKSPACE/chromium/src/out/arm64/.ninja_log >$WORKSPACE/chromium/src/out/arm64/ninja_log_trace.json
|
|
python3 $WORKSPACE/chromium/src/third_party/catapult/tracing/bin/trace2html $WORKSPACE/chromium/src/out/arm64/ninja_log_trace.json
|
|
|
|
- name: Generate breakpad symbols for Android arm64
|
|
if: ${{ (github.event.inputs.target_os == 'android' || github.event.inputs.target_os == 'all') && (github.event.inputs.build == 'arm64' || github.event.inputs.build == 'all') }}
|
|
shell: bash
|
|
run: |
|
|
PATH=$WORKSPACE/chromium/src/third_party/llvm-build/Release+Asserts/bin:$WORKSPACE/depot_tools/:/usr/local/go/bin:$WORKSPACE/mtool/bin:$PATH
|
|
cd $WORKSPACE/chromium/src
|
|
|
|
echo "::group::-------- generating breakpad symbols"
|
|
ninja -C out/arm64 minidump_stackwalk dump_syms
|
|
components/crash/content/tools/generate_breakpad_symbols.py --build-dir=out/arm64 \
|
|
--symbols-dir=out/arm64/symbols/ --binary=out/arm64/lib.unstripped/libchrome.so \
|
|
--platform=android --clear --verbose
|
|
cp out/arm64/lib.unstripped/libchrome.so out/arm64/symbols/libchrome.lib.so
|
|
cp out/arm64/minidump_stackwalk out/arm64/symbols
|
|
cp out/arm64/dump_syms out/arm64/symbols
|
|
echo "::endgroup::"
|
|
|
|
- name: Generate Supersize data for Android arm64
|
|
if: ${{ github.event.inputs.debug == 'false' && (github.event.inputs.target_os == 'android' || github.event.inputs.target_os == 'all') && (github.event.inputs.build == 'arm64' || github.event.inputs.build == 'all') }}
|
|
shell: bash
|
|
run: |
|
|
PATH=$WORKSPACE/chromium/src/third_party/llvm-build/Release+Asserts/bin:$WORKSPACE/depot_tools/:/usr/local/go/bin:$WORKSPACE/mtool/bin:$PATH
|
|
cd $WORKSPACE/chromium/src
|
|
|
|
tools/binary_size/supersize archive out/arm64/chrome.size --apk-file out/arm64/apks/ChromePublic.apk -v
|
|
|
|
- name: Build Cromite Android arm
|
|
if: ${{ (github.event.inputs.target_os == 'android' || github.event.inputs.target_os == 'all') && (github.event.inputs.build == 'arm' || github.event.inputs.build == 'all') }}
|
|
shell: bash
|
|
run: |
|
|
PATH=$WORKSPACE/chromium/src/third_party/llvm-build/Release+Asserts/bin:$WORKSPACE/depot_tools/:/usr/local/go/bin:$WORKSPACE/mtool/bin:$PATH
|
|
cd $WORKSPACE/chromium/src
|
|
|
|
echo "::group::-------- gn gen"
|
|
gn gen --args="target_os = \"android\" $(cat /home/lg/working_dir/cromite/build/cromite.gn_args) target_cpu = \"arm\" " out/arm
|
|
echo "::endgroup::"
|
|
|
|
echo "::group::-------- gn args"
|
|
gn args out/arm/ --list --short
|
|
gn args out/arm/ --list >out/arm/gn_list
|
|
echo "::endgroup::"
|
|
|
|
ninja -C out/arm chrome_public_bundle
|
|
ninja -C out/arm chrome_public_apk
|
|
|
|
cp ../../cromite/build/RELEASE out/arm
|
|
|
|
- name: Get ninja logs Android arm
|
|
if: ${{ (github.event.inputs.target_os == 'android' || github.event.inputs.target_os == 'all') && (github.event.inputs.build == 'arm' || github.event.inputs.build == 'all') }}
|
|
shell: bash
|
|
run: |
|
|
cd $WORKSPACE
|
|
$WORKSPACE/ninjatracing/ninjatracing -a $WORKSPACE/chromium/src/out/arm/.ninja_log >$WORKSPACE/chromium/src/out/arm/ninja_log_trace.json
|
|
python3 $WORKSPACE/chromium/src/third_party/catapult/tracing/bin/trace2html $WORKSPACE/chromium/src/out/arm/ninja_log_trace.json
|
|
|
|
- name: Build Cromite Linux 64
|
|
if: ${{ (github.event.inputs.target_os == 'linux' || github.event.inputs.target_os == 'all') }}
|
|
shell: bash
|
|
run: |
|
|
PATH=$WORKSPACE/chromium/src/third_party/llvm-build/Release+Asserts/bin:$WORKSPACE/depot_tools/:/usr/local/go/bin:$WORKSPACE/mtool/bin:$PATH
|
|
cd $WORKSPACE/chromium/src
|
|
|
|
echo "::group::-------- gn gen"
|
|
gn gen --args="target_os = \"linux\" $(cat /home/lg/working_dir/cromite/build/cromite.gn_args) target_cpu = \"x64\" " out/lin64
|
|
echo "::endgroup::"
|
|
|
|
echo "::group::-------- gn args"
|
|
gn args out/lin64/ --list --short
|
|
gn args out/lin64/ --list >out/lin64/gn_list
|
|
echo "::endgroup::"
|
|
|
|
ninja -C out/lin64 chrome
|
|
|
|
cp ../../cromite/build/RELEASE out/lin64
|
|
|
|
- name: Get ninja logs Linux 64
|
|
if: ${{ (github.event.inputs.target_os == 'linux' || github.event.inputs.target_os == 'all') }}
|
|
shell: bash
|
|
run: |
|
|
cd $WORKSPACE
|
|
$WORKSPACE/ninjatracing/ninjatracing -a $WORKSPACE/chromium/src/out/lin64/.ninja_log >$WORKSPACE/chromium/src/out/lin64/ninja_log_trace.json
|
|
python3 $WORKSPACE/chromium/src/third_party/catapult/tracing/bin/trace2html $WORKSPACE/chromium/src/out/lin64/ninja_log_trace.json
|
|
|
|
- name: Generate clangd index for Android arm64
|
|
if: ${{ github.event.inputs.clangd == 'true' }}
|
|
shell: bash
|
|
run: |
|
|
PATH=$WORKSPACE/chromium/src/third_party/llvm-build/Release+Asserts/bin:$WORKSPACE/depot_tools/:/usr/local/go/bin:$WORKSPACE/mtool/bin:$PATH
|
|
cd $WORKSPACE/chromium/src
|
|
|
|
test -f out/arm64/cromite.idx || \
|
|
cp -r out/arm64 out/clangd && \
|
|
gn gen --args="import(\"/home/lg/working_dir/cromite/build/cromite.gn_args\") $(cat ../../build_args.gni) skip_clangd_unsupported_options = true" out/clangd && \
|
|
$WORKSPACE/ninja/ninja -C $WORKSPACE/chromium/src/out/clangd -a chrome_public_apk \
|
|
-t compdb cc cxx objc objcxx >$WORKSPACE/chromium/src/out/clangd/compile_commands.json && \
|
|
/home/lg/working_dir/clangd_snapshot_20211205/bin/clangd-indexer --executor=all-TUs out/clangd/compile_commands.json >out/arm64/cromite.idx && \
|
|
rm -rf out/clangd
|