aboutsummaryrefslogtreecommitdiff
path: root/build2/install
diff options
context:
space:
mode:
authorBoris Kolpackov <boris@codesynthesis.com>2016-07-30 13:34:41 +0200
committerBoris Kolpackov <boris@codesynthesis.com>2016-07-30 17:24:28 +0200
commitbd9b1fa4b6c20b7eedf7f96d9b9aae6ff5edfbfb (patch)
tree81bf71d660b88d668e9e7677cb8006a6270205a9 /build2/install
parent988fd0eec5d88bf6534fb1f645777350c20d4723 (diff)
Construct paths to use canonical directory separators
Hardcoding separators as in "build/root.build" is now a big no-no.
Diffstat (limited to 'build2/install')
-rw-r--r--build2/install/module.cxx37
1 files changed, 26 insertions, 11 deletions
diff --git a/build2/install/module.cxx b/build2/install/module.cxx
index 5a18899..89b8a96 100644
--- a/build2/install/module.cxx
+++ b/build2/install/module.cxx
@@ -112,6 +112,20 @@ namespace build2
r.operations.insert (install_id, install);
}
+ static const dir_path dir_root ("root");
+
+ static const dir_path dir_sbin (dir_path ("exec_root") /= "sbin");
+ static const dir_path dir_bin (dir_path ("exec_root") /= "bin");
+ static const dir_path dir_lib (dir_path ("exec_root") /= "lib");
+ static const dir_path dir_libexec (dir_path ("exec_root") /= "libexec");
+
+ static const dir_path dir_data (dir_path ("data_root") /= "share");
+ static const dir_path dir_include (dir_path ("data_root") /= "include");
+
+ static const dir_path dir_doc (dir_path (dir_data) /= "doc");
+ static const dir_path dir_man (dir_path (dir_data) /= "man");
+ static const dir_path dir_man1 (dir_path ("man") /= "man1");
+
bool
init (scope& r,
scope& b,
@@ -167,20 +181,21 @@ namespace build2
const string& n (cast<string> (r["project"]));
set_dir (s, r, "root", abs_dir_path (), false, "", "755", path ("install"));
- set_dir (s, r, "data_root", dir_path ("root"), false, "644");
- set_dir (s, r, "exec_root", dir_path ("root"), false, "755");
- set_dir (s, r, "sbin", dir_path ("exec_root/sbin"));
- set_dir (s, r, "bin", dir_path ("exec_root/bin"));
- set_dir (s, r, "lib", dir_path ("exec_root/lib"));
- set_dir (s, r, "libexec", dir_path ("exec_root/libexec/" + n), true);
+ set_dir (s, r, "data_root", dir_root, false, "644");
+ set_dir (s, r, "exec_root", dir_root, false, "755");
+
+ set_dir (s, r, "sbin", dir_sbin);
+ set_dir (s, r, "bin", dir_bin);
+ set_dir (s, r, "lib", dir_lib);
+ set_dir (s, r, "libexec", dir_path (dir_libexec) /= n, true);
- set_dir (s, r, "data", dir_path ("data_root/share/" + n), true);
- set_dir (s, r, "include", dir_path ("data_root/include"));
+ set_dir (s, r, "data", dir_path (dir_data) /= n, true);
+ set_dir (s, r, "include", dir_include);
- set_dir (s, r, "doc", dir_path ("data_root/share/doc/" + n), true);
- set_dir (s, r, "man", dir_path ("data_root/share/man"));
- set_dir (s, r, "man1", dir_path ("man/man1"));
+ set_dir (s, r, "doc", dir_path (dir_doc) /= n, true);
+ set_dir (s, r, "man", dir_man);
+ set_dir (s, r, "man1", dir_man1);
}
// Configure "installability" for built-in target types.