mirror of
https://github.com/pytorch/pytorch.git
synced 2025-10-20 21:14:14 +08:00
Summary: s/pip/pip3/ (because unversioned pip can reference either pip2 or pip3 depending on setup) Always invoke `pip install` with user option (otherwise, unless one is using conda environment, it will try to install in system folder, which should not be writable to regular users) Do not install shellcheck in `/usr/bin`, but rather rely on `~/.local/bin` and add it to the PATH Pull Request resolved: https://github.com/pytorch/pytorch/pull/61798 Reviewed By: zhouzhuojie, seemethere Differential Revision: D29747286 Pulled By: malfet fbshipit-source-id: 30cb51fe60b5096b758f430d1c51465205532a19
123 lines
3.9 KiB
Makefile
123 lines
3.9 KiB
Makefile
# This makefile does nothing but delegating the actual building to cmake.
|
|
PYTHON = python3
|
|
|
|
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/linter/run_shellcheck.sh $(SHELLCHECK_GHA_GENERATED_FOLDER)
|
|
|
|
generate-gha-workflows:
|
|
.github/scripts/generate_ci_workflows.py
|
|
$(MAKE) shellcheck-gha
|
|
|
|
shellcheck:
|
|
@$(PYTHON) tools/actions_local_runner.py \
|
|
--file .github/workflows/lint.yml \
|
|
--job 'shellcheck' \
|
|
--step "Regenerate workflows"
|
|
@$(PYTHON) tools/actions_local_runner.py \
|
|
--file .github/workflows/lint.yml \
|
|
--job 'shellcheck' \
|
|
--step "Assert that regenerating the workflows didn't change them"
|
|
@$(PYTHON) tools/actions_local_runner.py \
|
|
--file .github/workflows/lint.yml \
|
|
--job 'shellcheck' \
|
|
--step 'Extract scripts from GitHub Actions workflows'
|
|
@$(PYTHON) tools/actions_local_runner.py \
|
|
$(CHANGED_ONLY) \
|
|
--job 'shellcheck'
|
|
|
|
setup_lint:
|
|
$(PYTHON) tools/actions_local_runner.py --file .github/workflows/lint.yml \
|
|
--job 'flake8-py3' --step 'Install dependencies' --no-quiet
|
|
$(PYTHON) tools/actions_local_runner.py --file .github/workflows/lint.yml \
|
|
--job 'cmakelint' --step 'Install dependencies' --no-quiet
|
|
$(PYTHON) tools/actions_local_runner.py --file .github/workflows/lint.yml \
|
|
--job 'mypy' --step 'Install dependencies' --no-quiet
|
|
$(PYTHON) tools/actions_local_runner.py --file .github/workflows/lint.yml \
|
|
--job 'shellcheck' --step 'Install Jinja2' --no-quiet
|
|
|
|
@if [ "$$(uname)" = "Darwin" ]; then \
|
|
if [ -z "$$(which brew)" ]; then \
|
|
echo "'brew' is required to install ShellCheck, get it here: https://brew.sh "; \
|
|
exit 1; \
|
|
fi; \
|
|
brew install shellcheck; \
|
|
else \
|
|
$(PYTHON) tools/actions_local_runner.py --file .github/workflows/lint.yml \
|
|
--job 'shellcheck' --step 'Install ShellCheck' --no-quiet; \
|
|
fi
|
|
$(PYTHON) -mpip install jinja2 --user
|
|
$(PYTHON) -mpip install -r tools/linter/clang_tidy/requirements.txt --user
|
|
$(PYTHON) -m tools.linter.install.clang_tidy
|
|
|
|
quick_checks:
|
|
# TODO: This is broken when 'git config submodule.recurse' is 'true' since the
|
|
# lints will descend into third_party submodules
|
|
@$(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 versionless Python shebangs' \
|
|
--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 \
|
|
$(CHANGED_ONLY) \
|
|
--job 'flake8-py3'
|
|
|
|
mypy:
|
|
@$(PYTHON) tools/actions_local_runner.py \
|
|
$(CHANGED_ONLY) \
|
|
--job 'mypy'
|
|
|
|
cmakelint:
|
|
@$(PYTHON) tools/actions_local_runner.py \
|
|
--file .github/workflows/lint.yml \
|
|
--job 'cmakelint' \
|
|
--step 'Run cmakelint'
|
|
|
|
clang-tidy:
|
|
@$(PYTHON) tools/actions_local_runner.py \
|
|
$(CHANGED_ONLY) \
|
|
--job 'clang-tidy'
|
|
|
|
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 shellcheck
|
|
|
|
quicklint: CHANGED_ONLY=--changed-only
|
|
quicklint: mypy flake8 quick_checks cmakelint shellcheck clang-tidy
|