mirror of
				https://github.com/RGBCube/serenity
				synced 2025-10-31 10:22:45 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			50 lines
		
	
	
	
		
			1.5 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
			
		
		
	
	
			50 lines
		
	
	
	
		
			1.5 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
| # This file introduces a template for calling write_cmake_config.py.
 | |
| #
 | |
| # write_cmake_config behaves like CMake's configure_file(), but runs at build
 | |
| # time, not at generator time.  See write_cmake_config.py for details.
 | |
| #
 | |
| # Parameters:
 | |
| #
 | |
| #   input (required) [string]
 | |
| #
 | |
| #   output (required) [string]
 | |
| #
 | |
| #   values (required) [list of strings]
 | |
| #       Each entry is a '='-separated key-value pair used for substitution.
 | |
| #
 | |
| # Example use:
 | |
| #
 | |
| #   write_cmake_config("attributes_compat_func_gen") {
 | |
| #     input = "Version.inc.in"
 | |
| #     output = "$root_gen_dir/clang/include/clang/Basic/Version.inc",
 | |
| #     values = [
 | |
| #       "CLANG_VERSION=$llvm_version",
 | |
| #     ]
 | |
| #   }
 | |
| 
 | |
| template("write_cmake_config") {
 | |
|   assert(defined(invoker.input), "must set 'input' in $target_name")
 | |
|   assert(defined(invoker.output), "must set 'output' in $target_name")
 | |
|   assert(defined(invoker.values), "must set 'values' in $target_name")
 | |
| 
 | |
|   action(target_name) {
 | |
|     script = "//Meta/gn/build/write_cmake_config.py"
 | |
| 
 | |
|     sources = [ invoker.input ]
 | |
|     outputs = [ invoker.output ]
 | |
|     args = [
 | |
|              "-o",
 | |
|              rebase_path(outputs[0], root_build_dir),
 | |
|              rebase_path(sources[0], root_build_dir),
 | |
|            ] + invoker.values
 | |
| 
 | |
|     forward_variables_from(invoker,
 | |
|                            [
 | |
|                              "configs",
 | |
|                              "deps",
 | |
|                              "public_configs",
 | |
|                              "public_deps",
 | |
|                              "visibility",
 | |
|                            ])
 | |
|   }
 | |
| }
 | 
