aboutsummaryrefslogtreecommitdiffhomepage
path: root/templates/vsprojects/sln_defs.include
blob: cc525781a0c033c8adfa9c29a4536dab8a4bc1e4 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
<%def name="gen_solution(solution_top_level_projects, use_dlls = 'no')">\
## Template for Visual Studio solution
## based on http://msdn.microsoft.com/en-us/library/bb165951(v=vs.90).aspx
## NOTE: tabs in this file are needed by Visual Studio to correctly interpret
## the file.

Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 2013
VisualStudioVersion = 12.0.21005.1
MinimumVisualStudioVersion = 10.0.40219.1
<%
## Visual Studio uses GUIDs for project types
## http://msdn.microsoft.com/en-us/library/hb23x61k%28v=vs.80%29.aspx
cpp_proj_type = "{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}"

all_projects = set()
for project in solution_top_level_projects:
  for dep in project.deps:
    all_projects.add(dep)
  all_projects.add(project.name)

solution_projects = [vsproject_dict[project] for project in sorted(list(all_projects))]
%>\
% for project in solution_projects:
Project("${cpp_proj_type}") = "${project.name}", "vcxproj\${project.vs_proj_dir}\${project.name}\${project.name}.vcxproj", "${project.vs_project_guid}"
	ProjectSection(myProperties) = preProject
  % if project.is_library:
        	lib = "True"
  % else:
        	lib = "False"
  % endif
	EndProjectSection
  % if project.get('deps', None):
	ProjectSection(ProjectDependencies) = postProject
    % for dep in project.get('deps', []):
		${vsproject_dict[dep].vs_project_guid} = ${vsproject_dict[dep].vs_project_guid}
    % endfor
	EndProjectSection
  % endif
EndProject
% endfor
Global
	GlobalSection(SolutionConfigurationPlatforms) = preSolution
		Debug|Win32 = Debug|Win32
		Debug|x64 = Debug|x64
% if use_dlls == 'yes':
		Debug-DLL|Win32 = Debug-DLL|Win32
		Debug-DLL|x64 = Debug-DLL|x64
% endif
		Release|Win32 = Release|Win32
		Release|x64 = Release|x64
% if use_dlls == 'yes':
		Release-DLL|Win32 = Release-DLL|Win32
		Release-DLL|x64 = Release-DLL|x64
% endif
	EndGlobalSection
	GlobalSection(ProjectConfigurationPlatforms) = postSolution
% for project in solution_projects:
  % if use_dlls != 'only':
		${project.vs_project_guid}.Debug|Win32.ActiveCfg = Debug|Win32
		${project.vs_project_guid}.Debug|x64.ActiveCfg = Debug|x64
		${project.vs_project_guid}.Release|Win32.ActiveCfg = Release|Win32
		${project.vs_project_guid}.Release|x64.ActiveCfg = Release|x64
    % if project.get('dll', False) != 'only':
		${project.vs_project_guid}.Debug|Win32.Build.0 = Debug|Win32
		${project.vs_project_guid}.Debug|x64.Build.0 = Debug|x64
		${project.vs_project_guid}.Release|Win32.Build.0 = Release|Win32
		${project.vs_project_guid}.Release|x64.Build.0 = Release|x64
    % endif
  % endif
  % if use_dlls == 'yes':
    % if project.get('dll', False) == False:
		${project.vs_project_guid}.Debug-DLL|Win32.ActiveCfg = Debug|Win32
		${project.vs_project_guid}.Debug-DLL|Win32.Build.0 = Debug|Win32
		${project.vs_project_guid}.Debug-DLL|x64.ActiveCfg = Debug|x64
		${project.vs_project_guid}.Debug-DLL|x64.Build.0 = Debug|x64
		${project.vs_project_guid}.Release-DLL|Win32.ActiveCfg = Release|Win32
		${project.vs_project_guid}.Release-DLL|Win32.Build.0 = Release|Win32
		${project.vs_project_guid}.Release-DLL|x64.ActiveCfg = Release|x64
		${project.vs_project_guid}.Release-DLL|x64.Build.0 = Release|x64
    % else:
		${project.vs_project_guid}.Debug-DLL|Win32.ActiveCfg = Debug-DLL|Win32
		${project.vs_project_guid}.Debug-DLL|Win32.Build.0 = Debug-DLL|Win32
		${project.vs_project_guid}.Debug-DLL|x64.ActiveCfg = Debug-DLL|x64
		${project.vs_project_guid}.Debug-DLL|x64.Build.0 = Debug-DLL|x64
		${project.vs_project_guid}.Release-DLL|Win32.ActiveCfg = Release-DLL|Win32
		${project.vs_project_guid}.Release-DLL|Win32.Build.0 = Release-DLL|Win32
		${project.vs_project_guid}.Release-DLL|x64.ActiveCfg = Release-DLL|x64
		${project.vs_project_guid}.Release-DLL|x64.Build.0 = Release-DLL|x64
    % endif
  % endif
  % if use_dlls == 'only':
    % if project.get('dll', False) == True:
		${project.vs_project_guid}.Debug|Win32.ActiveCfg = Debug-DLL|Win32
		${project.vs_project_guid}.Debug|Win32.Build.0 = Debug-DLL|Win32
		${project.vs_project_guid}.Debug|x64.ActiveCfg = Debug-DLL|x64
		${project.vs_project_guid}.Debug|x64.Build.0 = Debug-DLL|x64
		${project.vs_project_guid}.Release|Win32.ActiveCfg = Release-DLL|Win32
		${project.vs_project_guid}.Release|Win32.Build.0 = Release-DLL|Win32
		${project.vs_project_guid}.Release|x64.ActiveCfg = Release-DLL|x64
		${project.vs_project_guid}.Release|x64.Build.0 = Release-DLL|x64
    % else:
		${project.vs_project_guid}.Debug|Win32.ActiveCfg = Debug|Win32
		${project.vs_project_guid}.Debug|Win32.Build.0 = Debug|Win32
		${project.vs_project_guid}.Debug|x64.ActiveCfg = Debug|x64
		${project.vs_project_guid}.Debug|x64.Build.0 = Debug|x64
		${project.vs_project_guid}.Release|Win32.ActiveCfg = Release|Win32
		${project.vs_project_guid}.Release|Win32.Build.0 = Release|Win32
		${project.vs_project_guid}.Release|x64.ActiveCfg = Release|x64
		${project.vs_project_guid}.Release|x64.Build.0 = Release|x64
    % endif
  % endif
% endfor
	EndGlobalSection
	GlobalSection(SolutionProperties) = preSolution
		HideSolutionNode = FALSE
	EndGlobalSection
EndGlobal
</%def>\