File: Jamfile.v2

package info (click to toggle)
boost1.90 1.90.0-1
  • links: PTS, VCS
  • area: main
  • in suites:
  • size: 593,120 kB
  • sloc: cpp: 4,190,908; xml: 196,648; python: 34,618; ansic: 23,145; asm: 5,468; sh: 3,774; makefile: 1,161; perl: 1,020; sql: 728; ruby: 676; yacc: 478; java: 77; lisp: 24; csh: 6
file content (57 lines) | stat: -rw-r--r-- 1,553 bytes parent folder | download | duplicates (3)
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
45
46
47
48
49
50
51
52
53
54
55
56
57
import generate ;
import path ;
import property-set ;
import virtual-target ;

path-constant HERE : . ;

make html/index.html : build_antora.sh : @run-script ;
generate files-to-install : html/index.html : <generating-rule>@delayed-glob ;
install install
  : files-to-install
  : <location>html
    <install-source-root>html/openmethod
  ;
explicit html/index.html files-to-install ;

# this runs the antora script
actions run-script
{
    bash $(>)
}

# this globs after its sources are created
rule delayed-glob ( project name : property-set : sources * )
{
  for local src in $(sources)
  {
    # the next line causes the source to be generated immediately
    # and not later (which it normally would)
    UPDATE_NOW [ $(src).actualize ] ;
  }

  # we need to construct the path to the globbed directory;
  # this path would be <current-project>/antora
  local root = [ path.root html [ $(project).location ] ] ;
  local files ;

  # actual globbing happens here
  for local file in [ path.glob-tree $(root) : * ]
  {
    # we have to skip directories, because our match expression accepts anything
    if [ CHECK_IF_FILE $(file) ]
    {
      # we construct a list of targets to copy
      files += [ virtual-target.from-file $(file:D=) : $(file:D) : $(project) ] ;
    }
  }

  # we prepend empty usage requirements to the result
  return [ property-set.empty ] $(files) ;
}

###############################################################################
alias boostdoc ;
explicit boostdoc ;
alias boostrelease : install ;
explicit boostrelease ;