The Meson Build System
http://mesonbuild.com/
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
82 lines
1.7 KiB
82 lines
1.7 KiB
|
|
import std.stdio; |
|
import std.array : split; |
|
import std.string : strip; |
|
|
|
import extra; |
|
|
|
auto getMenu () |
|
{ |
|
auto foods = import ("food.txt").strip.split ("\n"); |
|
return foods; |
|
} |
|
|
|
auto getPeople () |
|
{ |
|
return import ("people.txt").strip.split ("\n"); |
|
} |
|
|
|
void main (string[] args) |
|
{ |
|
import std.array : join; |
|
import core.stdc.stdlib : exit; |
|
|
|
immutable request = args[1]; |
|
if (request == "menu") { |
|
version (No_Menu) { |
|
} else { |
|
writeln ("On the menu: ", getMenu.join (", ")); |
|
exit (0); |
|
} |
|
} |
|
|
|
version (With_People) { |
|
if (request == "people") { |
|
writeln ("People: ", getPeople.join (", ")); |
|
|
|
// only exit successfully if the second module also had its module version set. |
|
// this checks for issue https://github.com/mesonbuild/meson/issues/3337 |
|
if (secondModulePeopleVersionSet ()) |
|
exit (0); |
|
exit (1); |
|
} |
|
} |
|
|
|
version (With_VersionInteger) |
|
version(3) exit(0); |
|
|
|
version (With_Debug) |
|
debug exit(0); |
|
|
|
version (With_DebugInteger) |
|
debug(3) exit(0); |
|
|
|
version (With_DebugIdentifier) |
|
debug(DebugIdentifier) exit(0); |
|
|
|
version (With_DebugAll) { |
|
int dbg = 0; |
|
debug dbg++; |
|
debug(2) dbg++; |
|
debug(3) dbg++; |
|
debug(4) dbg++; |
|
debug(DebugIdentifier) dbg++; |
|
|
|
if (dbg == 5) |
|
exit(0); |
|
} |
|
|
|
// we fail here |
|
exit (1); |
|
} |
|
|
|
unittest |
|
{ |
|
writeln ("TEST"); |
|
import core.stdc.stdlib : exit; |
|
|
|
writeln(getMenu); |
|
assert (getMenu () == ["Spam", "Eggs", "Spam", "Baked Beans", "Spam", "Spam"]); |
|
|
|
exit (0); |
|
}
|
|
|