summaryrefslogtreecommitdiff
path: root/cli/build
diff options
context:
space:
mode:
Diffstat (limited to 'cli/build')
-rw-r--r--cli/build/.gitignore3
-rw-r--r--cli/build/bootstrap.build10
-rw-r--r--cli/build/export.build9
-rw-r--r--cli/build/root.build60
4 files changed, 82 insertions, 0 deletions
diff --git a/cli/build/.gitignore b/cli/build/.gitignore
new file mode 100644
index 0000000..e931f20
--- /dev/null
+++ b/cli/build/.gitignore
@@ -0,0 +1,3 @@
+config.build
+root/
+bootstrap/ \ No newline at end of file
diff --git a/cli/build/bootstrap.build b/cli/build/bootstrap.build
new file mode 100644
index 0000000..1e5c8a4
--- /dev/null
+++ b/cli/build/bootstrap.build
@@ -0,0 +1,10 @@
+# file : build/bootstrap.build
+# license : MIT; see accompanying LICENSE file
+
+project = cli
+
+using version
+using config
+using dist
+using test
+using install
diff --git a/cli/build/export.build b/cli/build/export.build
new file mode 100644
index 0000000..92c546c
--- /dev/null
+++ b/cli/build/export.build
@@ -0,0 +1,9 @@
+# file : build/export.build
+# license : MIT; see accompanying LICENSE file
+
+$out_root/
+{
+ include cli/
+}
+
+export $out_root/cli/exe{cli}
diff --git a/cli/build/root.build b/cli/build/root.build
new file mode 100644
index 0000000..c611c4f
--- /dev/null
+++ b/cli/build/root.build
@@ -0,0 +1,60 @@
+# file : build/root.build
+# license : MIT; see accompanying LICENSE file
+
+# Regenerate the options parsing code (included into the repository).
+#
+# Note that this is the same variable as what's used by the import machinery
+# when we import cli%exe{cli}. Here, however, we require it to be explicitly
+# specified (i.e., no default search in PATH) in order for the regeneration
+# to be enabled.
+#
+# Normally, in the development build, this variable will be set only in the
+# cli package configuration to point to its own binary (or a binary in another
+# build configuration if you want to play it safe).
+#
+# Note, though, that currently referring to the cli target in the project
+# itself ends up with the 'dependency cycle detected' error. In the future we
+# will fix that by using an ad hoc recipe instead of the cli module. But for
+# now you can workaround this issue by pointing to a binary in another
+# configuration.
+#
+config [path] config.cli
+
+cxx.std = latest
+
+using cxx
+
+hxx{*}: extension = hxx
+ixx{*}: extension = ixx
+txx{*}: extension = txx
+cxx{*}: extension = cxx
+
+if ($cxx.target.system == 'win32-msvc')
+ cxx.poptions += -D_CRT_SECURE_NO_WARNINGS -D_SCL_SECURE_NO_WARNINGS
+
+if ($cxx.class == 'msvc')
+ cxx.coptions += /wd4251 /wd4275 /wd4800
+
+cxx.poptions =+ "-I$out_root" "-I$src_root"
+
+# Load the cli module only if explicitly requested. This way a distribution
+# that includes pre-generated files can be built without installing cli. This
+# is also the reason why we need to explicitly spell out individual source
+# file prerequisites instead of using the cli.cxx{} group (it won't be there
+# unless the module is configured).
+#
+# @@ Replace with import when the parsing code regenerating is implemented
+# via an ad hoc recipe.
+#
+if ($config.cli != [null] && $config.cli != false)
+ using cli
+
+# All exe{} in unit-tests/ are, well, tests. Also don't link whole archives
+# by default there.
+#
+unit-tests/exe{*}: test = true
+unit-tests/{libue libul}{*}: bin.whole = false
+
+# Specify the test target for cross-testing.
+#
+test.target = $cxx.target