|
1 #! |
|
2 #! This TMAKE template - Microsoft Visual C++ 5.0 applications |
|
3 #! |
|
4 #${ |
|
5 if ( Config("qt") ) { |
|
6 if ( !(Project("DEFINES") =~ /QT_NODLL/) && |
|
7 ((Project("DEFINES") =~ /QT_(?:MAKE)?DLL/) || |
|
8 ($ENV{"QT_DLL"} && !$ENV{"QT_NODLL"})) ) { |
|
9 Project('TMAKE_QT_DLL = 1'); |
|
10 if ( (Project("TARGET") eq "qt") && Project("TMAKE_LIB_FLAG") ) { |
|
11 Project('CONFIG += dll'); |
|
12 } |
|
13 } |
|
14 } |
|
15 if ( Config("qt") || Config("opengl") ) { |
|
16 Project('CONFIG += windows'); |
|
17 } |
|
18 if ( Config("qt") ) { |
|
19 $moc_aware = 1; |
|
20 AddIncludePath(Project('TMAKE_INCDIR_QT')); |
|
21 if ( Config("opengl") ) { |
|
22 Project('TMAKE_LIBS *= $$TMAKE_LIBS_QT_OPENGL'); |
|
23 } |
|
24 if ( Project("TMAKE_QT_DLL") ) { |
|
25 Project('DEFINES *= QT_DLL'); |
|
26 } |
|
27 Project('TMAKE_LIBS *= $$TMAKE_LIBS_QT'); |
|
28 if ( Project("TMAKE_QT_DLL") ) { |
|
29 my $qtver =FindHighestLibVersion($ENV{"QTDIR"} . "/lib", "qt"); |
|
30 Project("TMAKE_LIBS /= s/qt.lib/qt${qtver}.lib/"); |
|
31 Project('TMAKE_LIBS *= $$TMAKE_LIBS_QT_DLL'); |
|
32 } |
|
33 } |
|
34 if ( Config("opengl") ) { |
|
35 Project('TMAKE_LIBS *= $$TMAKE_LIBS_OPENGL'); |
|
36 } |
|
37 Project('TMAKE_LIBS += $$LIBS'); |
|
38 |
|
39 if ( Config("console") ) { |
|
40 $project{"VC_PROJ_TYPE"} = 'Win32 (x86) Console Application'; |
|
41 $project{"VC_PROJ_CODE"} = '0x0103'; |
|
42 $vc_base_libs = 'kernel32.lib user32.lib gdi32.lib winspool.lib ' . |
|
43 'comdlg32.lib advapi32.lib shell32.lib ole32.lib ' . |
|
44 'oleaut32.lib uuid.lib odbc32.lib odbccp32.lib '; |
|
45 $vc_libs = $vc_base_libs; |
|
46 $vc_link_release = '/nologo /subsystem:console /machine:I386'; |
|
47 $vc_link_debug = '/nologo /subsystem:console /debug /machine:I386 /pdbtype:sept'; |
|
48 $vc_cpp_def_release = '/D "NDEBUG" /D "WIN32" /D "_CONSOLE" /D "_MBCS" '; |
|
49 $vc_cpp_def_debug = '/D "_DEBUG" /D "WIN32" /D "_CONSOLE" /D "_MBCS" '; |
|
50 } else { |
|
51 $project{"VC_PROJ_TYPE"} = 'Win32 (x86) Application'; |
|
52 $project{"VC_PROJ_CODE"} = '0x0101'; |
|
53 $vc_base_libs = 'kernel32.lib user32.lib gdi32.lib winspool.lib ' . |
|
54 'comdlg32.lib advapi32.lib shell32.lib ole32.lib ' . |
|
55 'oleaut32.lib uuid.lib odbc32.lib odbccp32.lib '; |
|
56 $vc_libs = $vc_base_libs . 'wsock32.lib '; |
|
57 $vc_link_release = '/nologo /subsystem:windows /machine:I386'; |
|
58 $vc_link_debug = '/nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept'; |
|
59 $vc_cpp_def_release = '/D "NDEBUG" /D "WIN32" /D "_WINDOWS" '; |
|
60 $vc_cpp_def_debug = '/D "_DEBUG" /D "WIN32" /D "_WINDOWS" '; |
|
61 } |
|
62 $project{"VC_BASE_LINK_RELEASE"} = $vc_base_libs . $vc_link_release; |
|
63 $project{"VC_BASE_LINK_DEBUG"} = $vc_base_libs . $vc_link_debug; |
|
64 $tmake_libs = Project('TMAKE_LIBS') ? (Project('TMAKE_LIBS') . " ") : ""; |
|
65 $project{"VC_LINK_RELEASE"} = $vc_libs . $tmake_libs . $vc_link_release; |
|
66 $project{"VC_LINK_DEBUG"} = $vc_libs . $tmake_libs . $vc_link_debug; |
|
67 |
|
68 $vc_cpp_opt_release = '/nologo /W3 /GX /O2 '; |
|
69 $vc_cpp_opt_debug = '/nologo /W3 /Gm /GX /Zi /Od '; |
|
70 $vc_cpp_opt_common = '/YX /FD /c'; |
|
71 $project{"VC_BASE_CPP_RELEASE"} = $vc_cpp_opt_release . $vc_cpp_def_release . $vc_cpp_opt_common; |
|
72 $project{"VC_BASE_CPP_DEBUG"} = $vc_cpp_opt_debug . $vc_cpp_def_debug . $vc_cpp_opt_common; |
|
73 ExpandPath("INCPATH",'/I ',' /I ',''); |
|
74 if ( $text ne "" ) { $vc_inc = $text . " "; $text = ""; } else { $vc_inc = ""; } |
|
75 ExpandGlue("DEFINES",'/D "','" /D "','"'); |
|
76 if ( $text ne "" ) { $vc_def = $text . " "; $text = ""; } else { $vc_def = ""; } |
|
77 $project{"VC_CPP_RELEASE"} = $vc_cpp_opt_release . $vc_inc . $vc_cpp_def_release . $vc_def . $vc_cpp_opt_common; |
|
78 $project{"VC_CPP_DEBUG"} = $vc_cpp_opt_debug . $vc_inc . $vc_cpp_def_debug . $vc_def . $vc_cpp_opt_common; |
|
79 |
|
80 $project{"MAKEFILE"} = $project{"PROJECT"} . ".mak"; |
|
81 $project{"TARGETAPP"} = $project{"TARGET"} . ".exe"; |
|
82 Project('TMAKE_FILETAGS = HEADERS SOURCES TARGET DESTDIR $$FILETAGS'); |
|
83 foreach ( split(/\s/,Project('TMAKE_FILETAGS')) ) { |
|
84 $project{$_} =~ s-/-\\-g; |
|
85 } |
|
86 StdInit(); |
|
87 if ( defined($project{"DESTDIR"}) ) { |
|
88 $project{"TARGETAPP"} = $project{"DESTDIR"} . "\\" . $project{"TARGETAPP"}; |
|
89 $project{"TARGETAPP"} =~ s/\\+/\\/g; |
|
90 } |
|
91 %all_files = (); |
|
92 @files = split(/\s+/,$project{"HEADERS"}); |
|
93 foreach ( @files ) { $all_files{$_} = "h" }; |
|
94 @files = split(/\s+/,$project{"SOURCES"}); |
|
95 foreach ( @files ) { $all_files{$_} = "s" }; |
|
96 if ( $moc_aware ) { |
|
97 @files = split(/\s+/,$project{"_HDRMOC"}); |
|
98 foreach ( @files ) { $all_files{$_} = "m"; } |
|
99 @files = split(/\s+/,$project{"_SRCMOC"}); |
|
100 foreach ( @files ) { $all_files{$_} = "i"; } |
|
101 } |
|
102 %file_names = (); |
|
103 foreach $f ( %all_files ) { |
|
104 $n = $f; |
|
105 $n =~ s/^.*\\//; |
|
106 $file_names{$n} = $f; |
|
107 $file_path{$n} = ".\\" . $f; |
|
108 $file_path2{$n} = (($f =~ /^\./) ? "" : ".\\") . $f; |
|
109 } |
|
110 #$} |
|
111 # Microsoft Developer Studio Project File - #$ Substitute('Name="$$TARGET" - Package Owner=<4>'); |
|
112 # Microsoft Developer Studio Generated Build File, Format Version 5.00 |
|
113 # ** DO NOT EDIT ** |
|
114 |
|
115 # TARGTYPE #$ Substitute('"$$VC_PROJ_TYPE" $$VC_PROJ_CODE'); |
|
116 |
|
117 CFG=#$ Substitute('$$TARGET - Win32 Debug'); |
|
118 !MESSAGE This is not a valid makefile. To build this project using NMAKE, |
|
119 !MESSAGE use the Export Makefile command and run |
|
120 !MESSAGE |
|
121 !MESSAGE NMAKE /f "#$ ExpandGlue('MAKEFILE','','','".'); |
|
122 !MESSAGE |
|
123 !MESSAGE You can specify a configuration when running NMAKE |
|
124 !MESSAGE by defining the macro CFG on the command line. For example: |
|
125 !MESSAGE |
|
126 !MESSAGE NMAKE /f #$ Substitute('"$$MAKEFILE" CFG="$$TARGET - Win32 Debug"'); |
|
127 !MESSAGE |
|
128 !MESSAGE Possible choices for configuration are: |
|
129 !MESSAGE |
|
130 !MESSAGE #$ Substitute('"$$TARGET - Win32 Release" (based on "$$VC_PROJ_TYPE")'); |
|
131 !MESSAGE #$ Substitute('"$$TARGET - Win32 Debug" (based on "$$VC_PROJ_TYPE")'); |
|
132 !MESSAGE |
|
133 |
|
134 # Begin Project |
|
135 # PROP Scc_ProjName "" |
|
136 # PROP Scc_LocalPath "" |
|
137 CPP=cl.exe |
|
138 #$ Config("windows") && ($text='MTL=midl.exe'); |
|
139 RSC=rc.exe |
|
140 |
|
141 !IF "$(CFG)" == #$ Substitute('"$$TARGET - Win32 Release"'); |
|
142 |
|
143 # PROP BASE Use_MFC 0 |
|
144 # PROP BASE Use_Debug_Libraries 0 |
|
145 # PROP BASE Output_Dir "Release" |
|
146 # PROP BASE Intermediate_Dir "Release" |
|
147 # PROP BASE Target_Dir "" |
|
148 # PROP Use_MFC 0 |
|
149 # PROP Use_Debug_Libraries 0 |
|
150 # PROP Output_Dir "Release" |
|
151 # PROP Intermediate_Dir "Release" |
|
152 #$ Config("windows") && ($text='# PROP Ignore_Export_Lib 0'); |
|
153 # PROP Target_Dir "" |
|
154 # ADD BASE CPP #$ Expand("VC_BASE_CPP_RELEASE"); |
|
155 # ADD CPP #$ Expand("VC_CPP_RELEASE"); |
|
156 #$ Config("windows") || DisableOutput(); |
|
157 # ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /o NUL /win32 |
|
158 # ADD MTL /nologo /D "NDEBUG" /mktyplib203 /o NUL /win32 |
|
159 #$ Config("windows") || EnableOutput(); |
|
160 # ADD BASE RSC /l 0x409 /d "NDEBUG" |
|
161 # ADD RSC /l 0x409 /d "NDEBUG" |
|
162 BSC32=bscmake.exe |
|
163 # ADD BASE BSC32 /nologo |
|
164 # ADD BSC32 /nologo |
|
165 LINK32=link.exe |
|
166 # ADD BASE LINK32 #$ Expand("VC_BASE_LINK_RELEASE"); |
|
167 # ADD LINK32 #$ Expand("VC_LINK_RELEASE"); |
|
168 |
|
169 !ELSEIF "$(CFG)" == #$ Substitute('"$$TARGET - Win32 Debug"'); |
|
170 |
|
171 # PROP BASE Use_MFC 0 |
|
172 # PROP BASE Use_Debug_Libraries 1 |
|
173 # PROP BASE Output_Dir "Debug" |
|
174 # PROP BASE Intermediate_Dir "Debug" |
|
175 # PROP BASE Target_Dir "" |
|
176 # PROP Use_MFC 0 |
|
177 # PROP Use_Debug_Libraries 1 |
|
178 # PROP Output_Dir "Debug" |
|
179 # PROP Intermediate_Dir "Debug" |
|
180 #$ Config("windows") && ($text='# PROP Ignore_Export_Lib 0'); |
|
181 # PROP Target_Dir "" |
|
182 # ADD BASE CPP #$ Expand("VC_BASE_CPP_DEBUG"); |
|
183 # ADD CPP #$ Expand("VC_CPP_DEBUG"); |
|
184 #$ Config("windows") || DisableOutput(); |
|
185 # ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /o NUL /win32 |
|
186 # ADD MTL /nologo /D "_DEBUG" /mktyplib203 /o NUL /win32 |
|
187 #$ Config("windows") || EnableOutput(); |
|
188 # ADD BASE RSC /l 0x409 /d "_DEBUG" |
|
189 # ADD RSC /l 0x409 /d "_DEBUG" |
|
190 BSC32=bscmake.exe |
|
191 # ADD BASE BSC32 /nologo |
|
192 # ADD BSC32 /nologo |
|
193 LINK32=link.exe |
|
194 # ADD BASE LINK32 #$ Expand("VC_BASE_LINK_DEBUG"); |
|
195 # ADD LINK32 #$ Expand("VC_LINK_DEBUG"); |
|
196 |
|
197 !ENDIF |
|
198 |
|
199 # Begin Target |
|
200 |
|
201 # Name #$Substitute('"$$TARGET - Win32 Release"'); |
|
202 # Name #$Substitute('"$$TARGET - Win32 Debug"'); |
|
203 #${ |
|
204 foreach $n ( sort keys %file_names ) { |
|
205 $f = $file_names{$n}; |
|
206 $p = $file_path{$n}; |
|
207 $p2 = $file_path2{$n}; |
|
208 $t = $all_files{$f}; |
|
209 if ( ($t eq "h") && $moc_output{$f} ) { |
|
210 my($build); |
|
211 $build = "\n\n# Begin Custom Build - Running moc...\nInputPath=" . $p2 . "\n\n" |
|
212 . '"' . $moc_output{$f} . '" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"' |
|
213 . "\n\tmoc $p2 -o " . $moc_output{$f} . "\n\n" |
|
214 . "# End Custom Build\n\n"; |
|
215 $text .= ("# Begin Source File\n\nSOURCE=$p\n\n" |
|
216 . '!IF "$(CFG)" == "' . $project{"TARGET"} . ' - Win32 Release"' |
|
217 . $build); |
|
218 $text .= ('!ELSEIF "$(CFG)" == "' . $project{"TARGET"} . ' - Win32 Debug"' |
|
219 . $build |
|
220 . "!ENDIF \n\n# End Source File\n"); |
|
221 } elsif ( $t eq "i" ) { |
|
222 my($build,$dn); |
|
223 $build = "\n\n# Begin Custom Build - Running moc...\nInputPath=" . $p2 . "\n\n" |
|
224 . '"' . $f . '" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"' |
|
225 . "\n\tmoc ". $moc_input{$f} . " -o $f\n\n" |
|
226 . "# End Custom Build\n\n"; |
|
227 $dn = $n; |
|
228 $dn =~ s/\..*//; |
|
229 $dn =~ tr/a-z/A-Z/; |
|
230 $text .= ("# Begin Source File\n\nSOURCE=$p\n" |
|
231 . "USERDEP__$dn=" . '"' . $moc_input{$f} . '"' . "\n\n" |
|
232 . '!IF "$(CFG)" == "' . $project{"TARGET"} . ' - Win32 Release"' |
|
233 . $build); |
|
234 $text .= ('!ELSEIF "$(CFG)" == "' . $project{"TARGET"} . ' - Win32 Debug"' |
|
235 . $build |
|
236 . "!ENDIF \n\n# End Source File\n"); |
|
237 } elsif ( $t eq "s" || $t eq "m" || $t eq "h" ) { |
|
238 $text .= "# Begin Source File\n\nSOURCE=$p\n# End Source File\n"; |
|
239 } |
|
240 } |
|
241 chop $text; |
|
242 #$} |
|
243 # End Target |
|
244 # End Project |