forked from mirrors/gecko-dev
		
	Bug 1799952 - Add rust-analyzer scip index for Searchfox. r=asuth,glandium
Package rust-analyzer in the rust repack, and use it to generate a scip index. Differential Revision: https://phabricator.services.mozilla.com/D161716
This commit is contained in:
		
							parent
							
								
									d38d7fc847
								
							
						
					
					
						commit
						9d9d8869e5
					
				
					 7 changed files with 67 additions and 7 deletions
				
			
		|  | @ -16,7 +16,7 @@ fn main() { | ||||||
|     println!("cargo:rerun-if-changed=wrappers.cpp"); |     println!("cargo:rerun-if-changed=wrappers.cpp"); | ||||||
| 
 | 
 | ||||||
|     let ver = version().unwrap(); |     let ver = version().unwrap(); | ||||||
|     let max_oom_hook_version = Version::parse("1.66.0-alpha").unwrap(); |     let max_oom_hook_version = Version::parse("1.68.0-alpha").unwrap(); | ||||||
| 
 | 
 | ||||||
|     if ver < max_oom_hook_version { |     if ver < max_oom_hook_version { | ||||||
|         println!("cargo:rustc-cfg=feature=\"oom_with_hook\""); |         println!("cargo:rustc-cfg=feature=\"oom_with_hook\""); | ||||||
|  |  | ||||||
|  | @ -54,7 +54,7 @@ jobs: | ||||||
|                 - linux64-clang |                 - linux64-clang | ||||||
|                 - linux64-nasm |                 - linux64-nasm | ||||||
|                 - linux64-node |                 - linux64-node | ||||||
|                 - linux64-rust |                 - linux64-rust-nightly | ||||||
|                 - linux64-cbindgen |                 - linux64-cbindgen | ||||||
|                 - linux64-dump_syms |                 - linux64-dump_syms | ||||||
|                 - linux64-pkgconf |                 - linux64-pkgconf | ||||||
|  | @ -94,7 +94,7 @@ jobs: | ||||||
|                 - linux64-libdmg |                 - linux64-libdmg | ||||||
|                 - linux64-nasm |                 - linux64-nasm | ||||||
|                 - linux64-node |                 - linux64-node | ||||||
|                 - linux64-rust-macos |                 - linux64-rust-cross-nightly | ||||||
|                 - linux64-cbindgen |                 - linux64-cbindgen | ||||||
|                 - linux64-dump_syms |                 - linux64-dump_syms | ||||||
|                 - macosx64-sdk |                 - macosx64-sdk | ||||||
|  | @ -135,7 +135,7 @@ jobs: | ||||||
|             toolchain: |             toolchain: | ||||||
|                 - linux64-binutils |                 - linux64-binutils | ||||||
|                 - linux64-clang |                 - linux64-clang | ||||||
|                 - linux64-rust-cross |                 - linux64-rust-cross-nightly | ||||||
|                 - linux64-rust-size |                 - linux64-rust-size | ||||||
|                 - linux64-nasm |                 - linux64-nasm | ||||||
|                 - linux64-node |                 - linux64-node | ||||||
|  | @ -185,6 +185,9 @@ jobs: | ||||||
|                 - android-sdk-linux |                 - android-sdk-linux | ||||||
|                 - linux64-jdk |                 - linux64-jdk | ||||||
|                 - linux64-clang |                 - linux64-clang | ||||||
|  |                 # TODO: Change to rust-cross-nightly once | ||||||
|  |                 # https://github.com/rust-lang/rust/pull/104628 is merged | ||||||
|  |                 # (that'd provide better scip indexing). | ||||||
|                 - linux64-rust-android |                 - linux64-rust-android | ||||||
|                 - linux64-rust-size |                 - linux64-rust-size | ||||||
|                 - linux64-cbindgen |                 - linux64-cbindgen | ||||||
|  |  | ||||||
|  | @ -56,6 +56,23 @@ linux64-rust-1.65: | ||||||
|         toolchain: |         toolchain: | ||||||
|             - linux64-clang-toolchain |             - linux64-clang-toolchain | ||||||
| 
 | 
 | ||||||
|  | linux64-rust-nightly: | ||||||
|  |     treeherder: | ||||||
|  |         symbol: TL(rust-nightly) | ||||||
|  |     run: | ||||||
|  |         arguments: [ | ||||||
|  |             '--channel', 'nightly-2022-11-11', | ||||||
|  |             '--host', 'x86_64-unknown-linux-gnu', | ||||||
|  |             '--target', 'x86_64-unknown-linux-gnu', | ||||||
|  |             '--target', 'i686-unknown-linux-gnu', | ||||||
|  |             '--target', 'aarch64-unknown-linux-gnu', | ||||||
|  |             '--target', 'wasm32-wasi', | ||||||
|  |             '--compiler-builtins-hack', | ||||||
|  |         ] | ||||||
|  |     fetches: | ||||||
|  |         toolchain: | ||||||
|  |             - linux64-clang-toolchain | ||||||
|  | 
 | ||||||
| # A patched rust toolchain that allows us to use sanitizers in our vendored | # A patched rust toolchain that allows us to use sanitizers in our vendored | ||||||
| # build environment. See the rust fetch's comments for more details. | # build environment. See the rust fetch's comments for more details. | ||||||
| linux64-rust-dev: | linux64-rust-dev: | ||||||
|  | @ -78,7 +95,6 @@ linux64-rust-dev: | ||||||
|             - linux64-clang-toolchain |             - linux64-clang-toolchain | ||||||
|             - linux64-binutils |             - linux64-binutils | ||||||
| 
 | 
 | ||||||
| 
 |  | ||||||
| linux64-rust-cross-1.65: | linux64-rust-cross-1.65: | ||||||
|     description: "rust repack with macos and windows cross support" |     description: "rust repack with macos and windows cross support" | ||||||
|     treeherder: |     treeherder: | ||||||
|  | @ -102,6 +118,28 @@ linux64-rust-cross-1.65: | ||||||
|         ] |         ] | ||||||
|         toolchain-alias: linux64-rust-cross |         toolchain-alias: linux64-rust-cross | ||||||
| 
 | 
 | ||||||
|  | linux64-rust-cross-nightly: | ||||||
|  |     description: "rust nightly repack with macos and windows cross support" | ||||||
|  |     treeherder: | ||||||
|  |         symbol: TL(rust-cross-nightly) | ||||||
|  |     run: | ||||||
|  |         arguments: [ | ||||||
|  |             '--channel', 'nightly-2022-11-11', | ||||||
|  |             '--host', 'x86_64-unknown-linux-gnu', | ||||||
|  |             '--target', 'x86_64-unknown-linux-gnu', | ||||||
|  |             '--target', 'i686-unknown-linux-gnu', | ||||||
|  |             '--target', 'x86_64-apple-darwin', | ||||||
|  |             '--target', 'aarch64-apple-darwin', | ||||||
|  |             '--target', 'x86_64-pc-windows-msvc', | ||||||
|  |             '--target', 'i686-pc-windows-msvc', | ||||||
|  |             '--target', 'aarch64-pc-windows-msvc', | ||||||
|  |             '--target', 'armv7-linux-androideabi', | ||||||
|  |             '--target', 'thumbv7neon-linux-androideabi', | ||||||
|  |             '--target', 'aarch64-linux-android', | ||||||
|  |             '--target', 'i686-linux-android', | ||||||
|  |             '--target', 'x86_64-linux-android', | ||||||
|  |         ] | ||||||
|  | 
 | ||||||
| linux64-rust-static-1.65: | linux64-rust-static-1.65: | ||||||
|     description: "rust repack with static linking support" |     description: "rust repack with static linking support" | ||||||
|     treeherder: |     treeherder: | ||||||
|  |  | ||||||
|  | @ -306,7 +306,13 @@ def fetch_manifest(channel="stable", host=None, targets=()): | ||||||
|                 "available": requests.head(url).status_code == 200, |                 "available": requests.head(url).status_code == 200, | ||||||
|             } |             } | ||||||
| 
 | 
 | ||||||
|         for pkg in ("cargo", "rustc", "rustfmt-preview", "clippy-preview"): |         for pkg in ( | ||||||
|  |             "cargo", | ||||||
|  |             "rustc", | ||||||
|  |             "rustfmt-preview", | ||||||
|  |             "clippy-preview", | ||||||
|  |             "rust-analyzer-preview", | ||||||
|  |         ): | ||||||
|             manifest["pkg"][pkg] = { |             manifest["pkg"][pkg] = { | ||||||
|                 "version": "bors", |                 "version": "bors", | ||||||
|                 "target": { |                 "target": { | ||||||
|  | @ -395,7 +401,7 @@ def build_src(install_dir, host, targets, patches): | ||||||
|         docs = false |         docs = false | ||||||
|         sanitizers = true |         sanitizers = true | ||||||
|         extended = true |         extended = true | ||||||
|         tools = ["analysis", "cargo", "rustfmt", "clippy", "src"] |         tools = ["analysis", "cargo", "rustfmt", "clippy", "src", "rust-analyzer"] | ||||||
| 
 | 
 | ||||||
|         [rust] |         [rust] | ||||||
|         ignore-git = false |         ignore-git = false | ||||||
|  | @ -489,6 +495,7 @@ def repack( | ||||||
|         rustsrc = fetch_package(manifest, "rust-src", host) |         rustsrc = fetch_package(manifest, "rust-src", host) | ||||||
|         rustfmt = fetch_optional(manifest, "rustfmt-preview", host) |         rustfmt = fetch_optional(manifest, "rustfmt-preview", host) | ||||||
|         clippy = fetch_optional(manifest, "clippy-preview", host) |         clippy = fetch_optional(manifest, "clippy-preview", host) | ||||||
|  |         rust_analyzer = fetch_optional(manifest, "rust-analyzer-preview", host) | ||||||
| 
 | 
 | ||||||
|         log("Installing packages...") |         log("Installing packages...") | ||||||
| 
 | 
 | ||||||
|  | @ -505,6 +512,8 @@ def repack( | ||||||
|             install(os.path.basename(rustfmt["url"]), install_dir) |             install(os.path.basename(rustfmt["url"]), install_dir) | ||||||
|         if clippy: |         if clippy: | ||||||
|             install(os.path.basename(clippy["url"]), install_dir) |             install(os.path.basename(clippy["url"]), install_dir) | ||||||
|  |         if rust_analyzer: | ||||||
|  |             install(os.path.basename(rust_analyzer["url"]), install_dir) | ||||||
|         for std in stds: |         for std in stds: | ||||||
|             install(os.path.basename(std["url"]), install_dir) |             install(os.path.basename(std["url"]), install_dir) | ||||||
|             pass |             pass | ||||||
|  |  | ||||||
|  | @ -93,6 +93,7 @@ MOZSEARCH_ARCHIVE_BASENAME = $(PKG_BASENAME).mozsearch-index | ||||||
| MOZSEARCH_RUST_ANALYSIS_BASENAME = $(PKG_BASENAME).mozsearch-rust | MOZSEARCH_RUST_ANALYSIS_BASENAME = $(PKG_BASENAME).mozsearch-rust | ||||||
| MOZSEARCH_RUST_STDLIB_BASENAME = $(PKG_BASENAME).mozsearch-rust-stdlib | MOZSEARCH_RUST_STDLIB_BASENAME = $(PKG_BASENAME).mozsearch-rust-stdlib | ||||||
| MOZSEARCH_INCLUDEMAP_BASENAME = $(PKG_BASENAME).mozsearch-distinclude | MOZSEARCH_INCLUDEMAP_BASENAME = $(PKG_BASENAME).mozsearch-distinclude | ||||||
|  | MOZSEARCH_SCIP_INDEX_BASENAME = $(PKG_BASENAME).mozsearch-scip-index | ||||||
| 
 | 
 | ||||||
| # Mozharness naming
 | # Mozharness naming
 | ||||||
| MOZHARNESS_PACKAGE = mozharness.zip | MOZHARNESS_PACKAGE = mozharness.zip | ||||||
|  |  | ||||||
|  | @ -90,6 +90,14 @@ ifdef ENABLE_MOZSEARCH_PLUGIN | ||||||
|           rustlib/$(RUST_TARGET)/analysis/ rustlib/src/ |           rustlib/$(RUST_TARGET)/analysis/ rustlib/src/ | ||||||
| 	@echo 'Generating mozsearch distinclude map...' | 	@echo 'Generating mozsearch distinclude map...' | ||||||
| 	cd $(topobjdir)/ && cp _build_manifests/install/dist_include '$(ABS_DIST)/$(PKG_PATH)$(MOZSEARCH_INCLUDEMAP_BASENAME).map' | 	cd $(topobjdir)/ && cp _build_manifests/install/dist_include '$(ABS_DIST)/$(PKG_PATH)$(MOZSEARCH_INCLUDEMAP_BASENAME).map' | ||||||
|  | 	@echo 'Generating mozsearch scip index...' | ||||||
|  | 	$(RM) $(MOZSEARCH_SCIP_INDEX_BASENAME).zip | ||||||
|  | 	cd $(topsrcdir)/ && \
 | ||||||
|  |           CARGO=$(MOZ_FETCHES_DIR)/rustc/bin/cargo \
 | ||||||
|  |           RUSTC=$(MOZ_FETCHES_DIR)/rustc/bin/rustc \
 | ||||||
|  |           $(MOZ_FETCHES_DIR)/rustc/bin/rust-analyzer scip . && \
 | ||||||
|  |           zip -r5D '$(ABS_DIST)/$(PKG_PATH)$(MOZSEARCH_SCIP_INDEX_BASENAME).zip' \
 | ||||||
|  |           index.scip | ||||||
| endif | endif | ||||||
| ifeq (Darwin, $(OS_ARCH)) | ifeq (Darwin, $(OS_ARCH)) | ||||||
| 	@echo 'Generating macOS codesigning bundle ($(MACOS_CODESIGN_ARCHIVE_BASENAME).zip)' | 	@echo 'Generating macOS codesigning bundle ($(MACOS_CODESIGN_ARCHIVE_BASENAME).zip)' | ||||||
|  |  | ||||||
|  | @ -393,6 +393,7 @@ ifdef ENABLE_MOZSEARCH_PLUGIN | ||||||
|   UPLOAD_FILES += $(call QUOTED_WILDCARD,$(DIST)/$(PKG_PATH)$(MOZSEARCH_ARCHIVE_BASENAME).zip) |   UPLOAD_FILES += $(call QUOTED_WILDCARD,$(DIST)/$(PKG_PATH)$(MOZSEARCH_ARCHIVE_BASENAME).zip) | ||||||
|   UPLOAD_FILES += $(call QUOTED_WILDCARD,$(DIST)/$(PKG_PATH)$(MOZSEARCH_RUST_ANALYSIS_BASENAME).zip) |   UPLOAD_FILES += $(call QUOTED_WILDCARD,$(DIST)/$(PKG_PATH)$(MOZSEARCH_RUST_ANALYSIS_BASENAME).zip) | ||||||
|   UPLOAD_FILES += $(call QUOTED_WILDCARD,$(DIST)/$(PKG_PATH)$(MOZSEARCH_RUST_STDLIB_BASENAME).zip) |   UPLOAD_FILES += $(call QUOTED_WILDCARD,$(DIST)/$(PKG_PATH)$(MOZSEARCH_RUST_STDLIB_BASENAME).zip) | ||||||
|  |   UPLOAD_FILES += $(call QUOTED_WILDCARD,$(DIST)/$(PKG_PATH)$(MOZSEARCH_SCIP_INDEX_BASENAME).zip) | ||||||
|   UPLOAD_FILES += $(call QUOTED_WILDCARD,$(DIST)/$(PKG_PATH)$(MOZSEARCH_INCLUDEMAP_BASENAME).map) |   UPLOAD_FILES += $(call QUOTED_WILDCARD,$(DIST)/$(PKG_PATH)$(MOZSEARCH_INCLUDEMAP_BASENAME).map) | ||||||
| endif | endif | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
		Loading…
	
		Reference in a new issue
	
	 Emilio Cobos Álvarez
						Emilio Cobos Álvarez