blob: a0489411c6c9e920f57a4a00b37ab15f9a3fa811 [file] [log] [blame]
Nicolas Noble563b8a22015-07-30 15:39:43 -07001<%def name="gen_solution(solution_projects, use_dlls = 'no')">\
Jan Tattermusch8ed4c3e2015-05-27 09:01:17 -07002## 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
7Microsoft Visual Studio Solution File, Format Version 12.00
8# Visual Studio 2013
9VisualStudioVersion = 12.0.21005.1
10MinimumVisualStudioVersion = 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
14cpp_proj_type = "{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}"
15%>\
16% for project in solution_projects:
Craig Tiller1ebb7c82015-08-31 15:53:36 -070017Project("${cpp_proj_type}") = "${project.name}", "vcxproj\${project.vs_proj_dir}\${project.name}\${project.name}.vcxproj", "${project.vs_project_guid}"
Michael Larson6e081e02015-07-19 10:48:35 -070018 ProjectSection(myProperties) = preProject
19 % if project.is_library:
20 lib = "True"
21 % else:
22 lib = "False"
23 % endif
24 EndProjectSection
Jan Tattermusch8ed4c3e2015-05-27 09:01:17 -070025 % 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
32EndProject
33% endfor
34Global
35 GlobalSection(SolutionConfigurationPlatforms) = preSolution
36 Debug|Win32 = Debug|Win32
37 Debug|x64 = Debug|x64
Nicolas Noble563b8a22015-07-30 15:39:43 -070038% if use_dlls == 'yes':
39 Debug-DLL|Win32 = Debug-DLL|Win32
40 Debug-DLL|x64 = Debug-DLL|x64
41% endif
Jan Tattermusch8ed4c3e2015-05-27 09:01:17 -070042 Release|Win32 = Release|Win32
43 Release|x64 = Release|x64
Nicolas Noble563b8a22015-07-30 15:39:43 -070044% if use_dlls == 'yes':
45 Release-DLL|Win32 = Release-DLL|Win32
46 Release-DLL|x64 = Release-DLL|x64
47% endif
Jan Tattermusch8ed4c3e2015-05-27 09:01:17 -070048 EndGlobalSection
49 GlobalSection(ProjectConfigurationPlatforms) = postSolution
50% for project in solution_projects:
Nicolas Noble563b8a22015-07-30 15:39:43 -070051 % 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 Tiller1ebb7c82015-08-31 15:53:36 -070056 % if project.get('dll', False) != 'only':
Nicolas Noble563b8a22015-07-30 15:39:43 -070057 ${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 Tiller1ebb7c82015-08-31 15:53:36 -070064 % if project.get('dll', False) == False:
Nicolas Noble563b8a22015-07-30 15:39:43 -070065 ${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 Tiller1ebb7c82015-08-31 15:53:36 -070085 % if project.get('dll', False) == True:
Nicolas Noble563b8a22015-07-30 15:39:43 -070086 ${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 Tattermusch8ed4c3e2015-05-27 09:01:17 -070095 ${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 Noble563b8a22015-07-30 15:39:43 -0700103 % endif
104 % endif
Jan Tattermusch8ed4c3e2015-05-27 09:01:17 -0700105% endfor
106 EndGlobalSection
107 GlobalSection(SolutionProperties) = preSolution
108 HideSolutionNode = FALSE
109 EndGlobalSection
110EndGlobal
Michael Larson6e081e02015-07-19 10:48:35 -0700111</%def>\