uppsrc_umk_14542.diff

Proposed patch for uppsrc (since 14542 revision) - Sender Ghost, 06/04/2020 11:16 AM

Download (2.69 KB)

View differences:

uppsrc/umk/umake.cpp
85 85
	int  exporting = 0;
86 86
	bool run = false;
87 87
	String mkf;
88
	String platformFlags;
88 89

  
89 90
	Vector<String> param, runargs;
90 91
	
......
129 130
					ide.console.SetSlots(n);
130 131
					break;
131 132
				}
133
				case 't': {
134
					if(s[1] == '=') {
135
						static const VectorMap<String, String> flags = {
136
							{"windows", "WIN32"},
137
							{"linux", "POSIX LINUX"},
138
							{"android", "POSIX LINUX ANDROID"},
139
							{"osx", "POSIX BSD OSX"},
140
							{"osx11", "POSIX BSD OSX OSX11 X11"},
141
							{"freebsd", "POSIX BSD FREEBSD"},
142
							{"openbsd", "POSIX BSD OPENBSD"},
143
							{"netbsd", "POSIX BSD NETBSD"},
144
							{"dragonfly", "POSIX BSD DRAGONFLY"},
145
							{"solaris", "POSIX SOLARIS"}
146
						};
147
						String p(s += 2);
148
						int q = flags.Find(ToLower(p));
149
						if(q >= 0)
150
							platformFlags = flags[q];
151
						else {
152
							SilentMode = false;
153
							Puts("Invalid target platform option: " << p << '\n');
154
							Puts("Available target platform options:\n" << Join(flags.GetKeys(), ", ") << '\n');
155
							SetExitCode(3);
156
							return;
157
						}
158
						s += p.GetCount();
159
					}
160
					break;
161
				}
132 162
				default:
133 163
					SilentMode = false;
134
					Puts("Invalid build option(s)");
164
					Puts("Invalid build option(s)\n");
135 165
					SetExitCode(3);
136 166
					return;
137 167
				}
......
202 232
			if(f.GetCount())
203 233
				ide.mainconfigparam = f[0].param;
204 234
		}
235
		if(!IsNull(platformFlags)) {
236
			if(!IsNull(ide.mainconfigparam)) {
237
				Vector<String> a = Split(platformFlags, ' '),
238
					b = Split(ide.mainconfigparam, ' ');
239
				const int n = b.GetCount();
240
				for(int i = n - 1; i >= 0; --i)
241
					for(const String& p : a)
242
						if(p == b[i])
243
							b.Remove(i);
244
				if(n != b.GetCount())
245
					ide.mainconfigparam = Join(b, " ");
246
				if(!IsNull(ide.mainconfigparam))
247
					ide.mainconfigparam.Insert(0, ' ');
248
			}
249
			ide.mainconfigparam.Insert(0, platformFlags);
250
		}
205 251
		PutVerbose("Build flags: " << ide.mainconfigparam);
206 252
		String m = 2 < param.GetCount() ? param[2] : "CLANG";
207 253
		String bp = GetBuildMethodPath(m);
......
260 306
			SetExitCode(1);
261 307
	}
262 308
	else
263
		Puts("Usage: [-options] umk assembly main_package [build_method] [+flags] [output]\n\n"
309
		Puts("Usage: umk assembly main_package [build_method] [-options] [+flags] [output]\n\n"
264 310
		     "Examples: umk examples Bombs GCC -ab +GUI,SHARED ~/bombs\n"
265 311
		     "          umk examples,uppsrc Bombs ~/GCC.bm -rv +GUI,SHARED ~/bin\n\n"
266 312
		     "See http://www.ultimatepp.org/app$ide$umk$en-us.html for details\n");