aboutsummaryrefslogtreecommitdiff
path: root/build2/file.ixx
blob: 2d6e99d8219585e48f8b90542dba3aa9c77c0df1 (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
34
35
36
37
38
39
40
41
42
43
44
// file      : build2/file.ixx -*- C++ -*-
// copyright : Copyright (c) 2014-2019 Code Synthesis Ltd
// license   : MIT; see accompanying LICENSE file

namespace build2
{
  inline bool
  source_once (scope& root, scope& base, const path& bf)
  {
    return source_once (root, base, bf, base);
  }

  const target*
  import (const prerequisite_key&, bool existing);

  inline const target&
  import (const prerequisite_key& pk)
  {
    assert (phase == run_phase::match);
    return *import (pk, false);
  }

  inline const target*
  import_existing (const prerequisite_key& pk)
  {
    assert (phase == run_phase::match || phase == run_phase::execute);
    return import (pk, true);
  }

  void
  source_hooks (scope&, const dir_path&, bool);

  inline void
  bootstrap_pre (scope& root)
  {
    source_hooks (root, bootstrap_dir, true /* pre */);
  }

  inline void
  bootstrap_post (scope& root)
  {
    source_hooks (root, bootstrap_dir, false /* pre */);
  }
}