aboutsummaryrefslogtreecommitdiff
path: root/build2/install/utility
diff options
context:
space:
mode:
Diffstat (limited to 'build2/install/utility')
-rw-r--r--build2/install/utility40
1 files changed, 40 insertions, 0 deletions
diff --git a/build2/install/utility b/build2/install/utility
new file mode 100644
index 0000000..3cfc3e2
--- /dev/null
+++ b/build2/install/utility
@@ -0,0 +1,40 @@
+// file : build2/install/utility -*- C++ -*-
+// copyright : Copyright (c) 2014-2015 Code Synthesis Ltd
+// license : MIT; see accompanying LICENSE file
+
+#ifndef BUILD2_INSTALL_UTILITY
+#define BUILD2_INSTALL_UTILITY
+
+#include <string>
+#include <utility>
+
+#include <build2/scope>
+#include <build2/types>
+
+namespace build2
+{
+ namespace install
+ {
+ // Set install path, mode for a target type.
+ //
+ template <typename T>
+ inline void
+ path (scope& s, dir_path d)
+ {
+ auto r (s.target_vars[T::static_type]["*"].assign ("install"));
+ if (r.second) // Already set by the user?
+ r.first.get () = std::move (d);
+ }
+
+ template <typename T>
+ inline void
+ mode (scope& s, std::string m)
+ {
+ auto r (s.target_vars[T::static_type]["*"].assign ("install.mode"));
+ if (r.second) // Already set by the user?
+ r.first.get () = std::move (m);
+ }
+ }
+}
+
+#endif // BUILD2_INSTALL_UTILITY