aboutsummaryrefslogtreecommitdiff
path: root/libbuild2/install/functions.cxx
blob: 6052dd91abfdc43e53c8eb168e67b4044268293d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
// file      : libbuild2/install/functions.cxx -*- C++ -*-
// copyright : Copyright (c) 2014-2019 Code Synthesis Ltd
// license   : MIT; see accompanying LICENSE file

#include <libbuild2/function.hxx>
#include <libbuild2/variable.hxx>

#include <libbuild2/install/utility.hxx>

using namespace std;

namespace build2
{
  namespace install
  {
    void
    functions (function_map& m)
    {
      function_family f (m, "install");

      // Resolve potentially relative install.* value to an absolute directory
      // based on (other) install.* values visible from the calling scope.
      //
      f[".resolve"] = [] (const scope* s, dir_path d)
      {
        if (s == nullptr)
          fail << "install.resolve() called out of scope" << endf;

        return resolve_dir (*s, move (d));
      };
    }
  }
}