spack location: fix attribute lookup after multiple build systems (#33791)
fixes #33785
This commit is contained in:
		 Massimiliano Culpo
					Massimiliano Culpo
				
			
				
					committed by
					
						 GitHub
						GitHub
					
				
			
			
				
	
			
			
			 GitHub
						GitHub
					
				
			
						parent
						
							60b3d32072
						
					
				
				
					commit
					cfd0dc6d89
				
			| @@ -9,6 +9,7 @@ | |||||||
| 
 | 
 | ||||||
| import llnl.util.tty as tty | import llnl.util.tty as tty | ||||||
| 
 | 
 | ||||||
|  | import spack.builder | ||||||
| import spack.cmd | import spack.cmd | ||||||
| import spack.cmd.common.arguments as arguments | import spack.cmd.common.arguments as arguments | ||||||
| import spack.environment as ev | import spack.environment as ev | ||||||
| @@ -134,6 +135,7 @@ def location(parser, args): | |||||||
|     # Either concretize or filter from already concretized environment |     # Either concretize or filter from already concretized environment | ||||||
|     spec = spack.cmd.matching_spec_from_env(spec) |     spec = spack.cmd.matching_spec_from_env(spec) | ||||||
|     pkg = spec.package |     pkg = spec.package | ||||||
|  |     builder = spack.builder.create(pkg) | ||||||
| 
 | 
 | ||||||
|     if args.stage_dir: |     if args.stage_dir: | ||||||
|         print(pkg.stage.path) |         print(pkg.stage.path) | ||||||
| @@ -141,10 +143,10 @@ def location(parser, args): | |||||||
| 
 | 
 | ||||||
|     if args.build_dir: |     if args.build_dir: | ||||||
|         # Out of source builds have build_directory defined |         # Out of source builds have build_directory defined | ||||||
|         if hasattr(pkg, "build_directory"): |         if hasattr(builder, "build_directory"): | ||||||
|             # build_directory can be either absolute or relative to the stage path |             # build_directory can be either absolute or relative to the stage path | ||||||
|             # in either case os.path.join makes it absolute |             # in either case os.path.join makes it absolute | ||||||
|             print(os.path.normpath(os.path.join(pkg.stage.path, pkg.build_directory))) |             print(os.path.normpath(os.path.join(pkg.stage.path, builder.build_directory))) | ||||||
|             return |             return | ||||||
| 
 | 
 | ||||||
|         # Otherwise assume in-source builds |         # Otherwise assume in-source builds | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user