Nicolas Noble | 563b8a2 | 2015-07-30 15:39:43 -0700 | [diff] [blame] | 1 | <%def name="gen_solution(solution_projects, use_dlls = 'no')">\ |
Jan Tattermusch | 8ed4c3e | 2015-05-27 09:01:17 -0700 | [diff] [blame] | 2 | ## Template for Visual Studio solution |
| 3 | ## based on http://msdn.microsoft.com/en-us/library/bb165951(v=vs.90).aspx |
| 4 | ## NOTE: tabs in this file are needed by Visual Studio to correctly interpret |
| 5 | ## the file. |
| 6 | |
| 7 | Microsoft Visual Studio Solution File, Format Version 12.00 |
| 8 | # Visual Studio 2013 |
| 9 | VisualStudioVersion = 12.0.21005.1 |
| 10 | MinimumVisualStudioVersion = 10.0.40219.1 |
| 11 | <% |
| 12 | ## Visual Studio uses GUIDs for project types |
| 13 | ## http://msdn.microsoft.com/en-us/library/hb23x61k%28v=vs.80%29.aspx |
| 14 | cpp_proj_type = "{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}" |
| 15 | %>\ |
| 16 | % for project in solution_projects: |
Craig Tiller | 1ebb7c8 | 2015-08-31 15:53:36 -0700 | [diff] [blame] | 17 | Project("${cpp_proj_type}") = "${project.name}", "vcxproj\${project.vs_proj_dir}\${project.name}\${project.name}.vcxproj", "${project.vs_project_guid}" |
Michael Larson | 6e081e0 | 2015-07-19 10:48:35 -0700 | [diff] [blame] | 18 | ProjectSection(myProperties) = preProject |
| 19 | % if project.is_library: |
| 20 | lib = "True" |
| 21 | % else: |
| 22 | lib = "False" |
| 23 | % endif |
| 24 | EndProjectSection |
Jan Tattermusch | 8ed4c3e | 2015-05-27 09:01:17 -0700 | [diff] [blame] | 25 | % if project.get('deps', None): |
| 26 | ProjectSection(ProjectDependencies) = postProject |
| 27 | % for dep in project.get('deps', []): |
| 28 | ${vsproject_dict[dep].vs_project_guid} = ${vsproject_dict[dep].vs_project_guid} |
| 29 | % endfor |
| 30 | EndProjectSection |
| 31 | % endif |
| 32 | EndProject |
| 33 | % endfor |
| 34 | Global |
| 35 | GlobalSection(SolutionConfigurationPlatforms) = preSolution |
| 36 | Debug|Win32 = Debug|Win32 |
| 37 | Debug|x64 = Debug|x64 |
Nicolas Noble | 563b8a2 | 2015-07-30 15:39:43 -0700 | [diff] [blame] | 38 | % if use_dlls == 'yes': |
| 39 | Debug-DLL|Win32 = Debug-DLL|Win32 |
| 40 | Debug-DLL|x64 = Debug-DLL|x64 |
| 41 | % endif |
Jan Tattermusch | 8ed4c3e | 2015-05-27 09:01:17 -0700 | [diff] [blame] | 42 | Release|Win32 = Release|Win32 |
| 43 | Release|x64 = Release|x64 |
Nicolas Noble | 563b8a2 | 2015-07-30 15:39:43 -0700 | [diff] [blame] | 44 | % if use_dlls == 'yes': |
| 45 | Release-DLL|Win32 = Release-DLL|Win32 |
| 46 | Release-DLL|x64 = Release-DLL|x64 |
| 47 | % endif |
Jan Tattermusch | 8ed4c3e | 2015-05-27 09:01:17 -0700 | [diff] [blame] | 48 | EndGlobalSection |
| 49 | GlobalSection(ProjectConfigurationPlatforms) = postSolution |
| 50 | % for project in solution_projects: |
Nicolas Noble | 563b8a2 | 2015-07-30 15:39:43 -0700 | [diff] [blame] | 51 | % if use_dlls != 'only': |
| 52 | ${project.vs_project_guid}.Debug|Win32.ActiveCfg = Debug|Win32 |
| 53 | ${project.vs_project_guid}.Debug|x64.ActiveCfg = Debug|x64 |
| 54 | ${project.vs_project_guid}.Release|Win32.ActiveCfg = Release|Win32 |
| 55 | ${project.vs_project_guid}.Release|x64.ActiveCfg = Release|x64 |
Craig Tiller | 1ebb7c8 | 2015-08-31 15:53:36 -0700 | [diff] [blame] | 56 | % if project.get('dll', False) != 'only': |
Nicolas Noble | 563b8a2 | 2015-07-30 15:39:43 -0700 | [diff] [blame] | 57 | ${project.vs_project_guid}.Debug|Win32.Build.0 = Debug|Win32 |
| 58 | ${project.vs_project_guid}.Debug|x64.Build.0 = Debug|x64 |
| 59 | ${project.vs_project_guid}.Release|Win32.Build.0 = Release|Win32 |
| 60 | ${project.vs_project_guid}.Release|x64.Build.0 = Release|x64 |
| 61 | % endif |
| 62 | % endif |
| 63 | % if use_dlls == 'yes': |
Craig Tiller | 1ebb7c8 | 2015-08-31 15:53:36 -0700 | [diff] [blame] | 64 | % if project.get('dll', False) == False: |
Nicolas Noble | 563b8a2 | 2015-07-30 15:39:43 -0700 | [diff] [blame] | 65 | ${project.vs_project_guid}.Debug-DLL|Win32.ActiveCfg = Debug|Win32 |
| 66 | ${project.vs_project_guid}.Debug-DLL|Win32.Build.0 = Debug|Win32 |
| 67 | ${project.vs_project_guid}.Debug-DLL|x64.ActiveCfg = Debug|x64 |
| 68 | ${project.vs_project_guid}.Debug-DLL|x64.Build.0 = Debug|x64 |
| 69 | ${project.vs_project_guid}.Release-DLL|Win32.ActiveCfg = Release|Win32 |
| 70 | ${project.vs_project_guid}.Release-DLL|Win32.Build.0 = Release|Win32 |
| 71 | ${project.vs_project_guid}.Release-DLL|x64.ActiveCfg = Release|x64 |
| 72 | ${project.vs_project_guid}.Release-DLL|x64.Build.0 = Release|x64 |
| 73 | % else: |
| 74 | ${project.vs_project_guid}.Debug-DLL|Win32.ActiveCfg = Debug-DLL|Win32 |
| 75 | ${project.vs_project_guid}.Debug-DLL|Win32.Build.0 = Debug-DLL|Win32 |
| 76 | ${project.vs_project_guid}.Debug-DLL|x64.ActiveCfg = Debug-DLL|x64 |
| 77 | ${project.vs_project_guid}.Debug-DLL|x64.Build.0 = Debug-DLL|x64 |
| 78 | ${project.vs_project_guid}.Release-DLL|Win32.ActiveCfg = Release-DLL|Win32 |
| 79 | ${project.vs_project_guid}.Release-DLL|Win32.Build.0 = Release-DLL|Win32 |
| 80 | ${project.vs_project_guid}.Release-DLL|x64.ActiveCfg = Release-DLL|x64 |
| 81 | ${project.vs_project_guid}.Release-DLL|x64.Build.0 = Release-DLL|x64 |
| 82 | % endif |
| 83 | % endif |
| 84 | % if use_dlls == 'only': |
Craig Tiller | 1ebb7c8 | 2015-08-31 15:53:36 -0700 | [diff] [blame] | 85 | % if project.get('dll', False) == True: |
Nicolas Noble | 563b8a2 | 2015-07-30 15:39:43 -0700 | [diff] [blame] | 86 | ${project.vs_project_guid}.Debug|Win32.ActiveCfg = Debug-DLL|Win32 |
| 87 | ${project.vs_project_guid}.Debug|Win32.Build.0 = Debug-DLL|Win32 |
| 88 | ${project.vs_project_guid}.Debug|x64.ActiveCfg = Debug-DLL|x64 |
| 89 | ${project.vs_project_guid}.Debug|x64.Build.0 = Debug-DLL|x64 |
| 90 | ${project.vs_project_guid}.Release|Win32.ActiveCfg = Release-DLL|Win32 |
| 91 | ${project.vs_project_guid}.Release|Win32.Build.0 = Release-DLL|Win32 |
| 92 | ${project.vs_project_guid}.Release|x64.ActiveCfg = Release-DLL|x64 |
| 93 | ${project.vs_project_guid}.Release|x64.Build.0 = Release-DLL|x64 |
| 94 | % else: |
Jan Tattermusch | 8ed4c3e | 2015-05-27 09:01:17 -0700 | [diff] [blame] | 95 | ${project.vs_project_guid}.Debug|Win32.ActiveCfg = Debug|Win32 |
| 96 | ${project.vs_project_guid}.Debug|Win32.Build.0 = Debug|Win32 |
| 97 | ${project.vs_project_guid}.Debug|x64.ActiveCfg = Debug|x64 |
| 98 | ${project.vs_project_guid}.Debug|x64.Build.0 = Debug|x64 |
| 99 | ${project.vs_project_guid}.Release|Win32.ActiveCfg = Release|Win32 |
| 100 | ${project.vs_project_guid}.Release|Win32.Build.0 = Release|Win32 |
| 101 | ${project.vs_project_guid}.Release|x64.ActiveCfg = Release|x64 |
| 102 | ${project.vs_project_guid}.Release|x64.Build.0 = Release|x64 |
Nicolas Noble | 563b8a2 | 2015-07-30 15:39:43 -0700 | [diff] [blame] | 103 | % endif |
| 104 | % endif |
Jan Tattermusch | 8ed4c3e | 2015-05-27 09:01:17 -0700 | [diff] [blame] | 105 | % endfor |
| 106 | EndGlobalSection |
| 107 | GlobalSection(SolutionProperties) = preSolution |
| 108 | HideSolutionNode = FALSE |
| 109 | EndGlobalSection |
| 110 | EndGlobal |
Michael Larson | 6e081e0 | 2015-07-19 10:48:35 -0700 | [diff] [blame] | 111 | </%def>\ |