feat(third_party/bazel): Check in rules_haskell from Tweag
This commit is contained in:
		
							parent
							
								
									2eb1dc26e4
								
							
						
					
					
						commit
						f723b8b878
					
				
					 479 changed files with 51484 additions and 0 deletions
				
			
		
							
								
								
									
										47
									
								
								third_party/bazel/rules_haskell/haskell/private/version_macros.bzl
									
										
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										47
									
								
								third_party/bazel/rules_haskell/haskell/private/version_macros.bzl
									
										
									
									
										vendored
									
									
										Normal file
									
								
							|  | @ -0,0 +1,47 @@ | |||
| load(":private/set.bzl", "set") | ||||
| 
 | ||||
| def generate_version_macros(ctx, name, version): | ||||
|     """Generate a version macros header file. | ||||
| 
 | ||||
|     Args: | ||||
|         ctx: Rule context. Needs to define a _version_macros executable attribute. | ||||
|         name: The package name. | ||||
|         version: The package version. | ||||
| 
 | ||||
|     Returns: | ||||
|         Version macros header File. | ||||
|     """ | ||||
|     version_macros_file = ctx.actions.declare_file("{}_version_macros.h".format(name)) | ||||
|     ctx.actions.run_shell( | ||||
|         inputs = [ctx.executable._version_macros], | ||||
|         outputs = [version_macros_file], | ||||
|         command = """ | ||||
|         "$1" "$2" "$3" > "$4" | ||||
|         """, | ||||
|         arguments = [ | ||||
|             ctx.executable._version_macros.path, | ||||
|             name, | ||||
|             version, | ||||
|             version_macros_file.path, | ||||
|         ], | ||||
|     ) | ||||
|     return version_macros_file | ||||
| 
 | ||||
| def version_macro_includes(hs_info): | ||||
|     """Generate a list of version macro header includes. | ||||
| 
 | ||||
|     Args: | ||||
|         hs_info: HaskellInfo provider. | ||||
| 
 | ||||
|     Returns: | ||||
|         (files, flags): | ||||
|         files: Set of version macros header files. | ||||
|         flags: List of C preprocessor flags to include version macros. | ||||
|     """ | ||||
|     files = hs_info.version_macros | ||||
|     flags = [ | ||||
|         f | ||||
|         for include in set.to_list(files) | ||||
|         for f in ["-include", include.path] | ||||
|     ] | ||||
|     return (files, flags) | ||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue