# This makefile does nothing but delegating the actual building to cmake. all: @mkdir -p build && cd build && cmake .. $(shell python ./scripts/get_python_cmake_flags.py) && $(MAKE) local: @./scripts/build_local.sh android: @./scripts/build_android.sh ios: @./scripts/build_ios.sh clean: # This will remove ALL build folders. @rm -r build*/ @$(RM) -r $(SHELLCHECK_GHA_GENERATED_FOLDER) linecount: @cloc --read-lang-def=caffe.cloc caffe2 || \ echo "Cloc is not available on the machine. You can install cloc with " && \ echo " sudo apt-get install cloc" SHELLCHECK_GHA_GENERATED_FOLDER=.shellcheck_generated_gha shellcheck-gha: @$(RM) -r $(SHELLCHECK_GHA_GENERATED_FOLDER) tools/extract_scripts.py --out=$(SHELLCHECK_GHA_GENERATED_FOLDER) tools/run_shellcheck.sh $(SHELLCHECK_GHA_GENERATED_FOLDER) generate-gha-workflows: ./.github/scripts/generate_linux_ci_workflows.py $(MAKE) shellcheck-gha setup_lint: python tools/actions_local_runner.py --file .github/workflows/lint.yml \ --job 'flake8-py3' --step 'Install dependencies' python tools/actions_local_runner.py --file .github/workflows/lint.yml \ --job 'cmakelint' --step 'Install dependencies' pip install jinja2 quick_checks: # TODO: This is broken when 'git config submodule.recurse' is 'true' @python tools/actions_local_runner.py \ --file .github/workflows/lint.yml \ --job 'quick-checks' \ --step 'Ensure no trailing spaces' \ --step 'Ensure no tabs' \ --step 'Ensure no non-breaking spaces' \ --step 'Ensure canonical include' \ --step 'Ensure no unqualified noqa' \ --step 'Ensure no unqualified type ignore' \ --step 'Ensure no direct cub include' \ --step 'Ensure correct trailing newlines' flake8: @python tools/actions_local_runner.py \ --file .github/workflows/lint.yml \ --file-filter '.py' \ $(CHANGED_ONLY) \ --job 'flake8-py3' \ --step 'Run flake8' mypy: @python tools/actions_local_runner.py \ --file .github/workflows/lint.yml \ --file-filter '.py' \ $(CHANGED_ONLY) \ --job 'mypy' \ --step 'Run mypy' cmakelint: @python tools/actions_local_runner.py \ --file .github/workflows/lint.yml \ --job 'cmakelint' \ --step 'Run cmakelint' clang_tidy: echo "clang-tidy local lint is not yet implemented" exit 1 toc: @python tools/actions_local_runner.py \ --file .github/workflows/lint.yml \ --job 'toc' \ --step "Regenerate ToCs and check that they didn't change" lint: flake8 mypy quick_checks cmakelint generate-gha-workflows quicklint: CHANGED_ONLY=--changed-only quicklint: mypy flake8 mypy quick_checks cmakelint generate-gha-workflows