mirror of
				https://github.com/libsdl-org/SDL.git
				synced 2025-10-26 12:27:44 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			56 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			Python
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			56 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			Python
		
	
	
		
			Executable File
		
	
	
	
	
| import os
 | |
| import pathlib
 | |
| import uuid
 | |
| 
 | |
| REPOSITORY_ROOT = pathlib.Path(__file__).parent.parent.parent
 | |
| 
 | |
| 
 | |
| def generate(category, example_name, c_source_file):
 | |
|     guid = str(uuid.uuid4()).upper()
 | |
|     text = f"""
 | |
| <?xml version="1.0" encoding="utf-8"?>
 | |
| <Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
 | |
|   <PropertyGroup Label="Globals">
 | |
|     <ProjectGuid>{{{guid}}}</ProjectGuid>
 | |
|   </PropertyGroup>
 | |
|   <Import Project="$(VCTargetsPath)\\Microsoft.Cpp.Default.props" />
 | |
|   <Import Project="$(VCTargetsPath)\\Microsoft.Cpp.props" />
 | |
|   <ItemGroup>
 | |
|     <None Include="$(SolutionDir)\\..\\examples\\{category}\\{example_name}\\README.txt" />
 | |
|     <ClCompile Include="$(SolutionDir)\\..\\examples\\{category}\\{example_name}\\{c_source_file}" />
 | |
|   </ItemGroup>
 | |
|   <Import Project="$(VCTargetsPath)\\Microsoft.Cpp.targets" />
 | |
| </Project>
 | |
| """.strip()
 | |
| 
 | |
|     project_file = REPOSITORY_ROOT / "VisualC" / "examples" / category / example_name / f"{example_name}.vcxproj"
 | |
| 
 | |
|     if project_file.exists():
 | |
|         print("Skipping:", project_file)
 | |
|         return
 | |
| 
 | |
|     print("Generating file:", project_file)
 | |
|     os.makedirs(project_file.parent, exist_ok=True)
 | |
|     with open(project_file, "w", encoding="utf-8") as f:
 | |
|         f.write(text)
 | |
| 
 | |
| 
 | |
| def get_c_source_filename(example_dir: pathlib.Path):
 | |
|     """Gets the one and only C source file name in the directory of the example."""
 | |
|     c_files = [f.name for f in example_dir.iterdir() if f.name.endswith(".c")]
 | |
|     assert len(c_files) == 1
 | |
|     return c_files[0]
 | |
| 
 | |
| 
 | |
| def main():
 | |
|     path = REPOSITORY_ROOT / "examples"
 | |
|     for category in path.iterdir():
 | |
|         if category.is_dir():
 | |
|             for example in category.iterdir():
 | |
|                 if example.is_dir():
 | |
|                      generate(category.name, example.name, get_c_source_filename(example))
 | |
| 
 | |
| 
 | |
| if __name__ == "__main__":
 | |
|     main()
 | 
