Welcome to mirror list, hosted at ThFree Co, Russian Federation.

curlpp.jam « jam-files - github.com/moses-smt/mosesdecoder.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
blob: 757891a8b29b218348482667099d9bb3098ba93a (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
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
# -*- jam -*-
# configuration for curlpp
# I haven't been able to wrap my mind around bjam yet, so chances are 
# there's a much better way to do things.

module curlppvars { } # this stores the variables we want to keep 

if [ option.get "no-curlpp" : : yes ] 
{
  rule curlpp ( what ? ) { } # never return anything
}
else
{
  local version ; 
  local prefix ; 
  # check if a non-standard location for curl is given 
  local curlpp = [ option.get "with-curlpp" ] ;
  if ! $(curlpp) # maybe via environment variable CURLPP_ROOT ? 
  {
    local where = [ os.environ "CURLPP_ROOT" ] ;
    if $(where) 
    { 
      option.set "with-curlpp" : $(where) ; 
      local msg = "CURLPP:   setting --with-curlpp=$(where) via environment" ;
      echo "$(msg) variable CURLPP_ROOT" ;
    }
    curlpp = [ option.get "with-curlpp" ] ; 
  }
  
  local config ; 
  if $(curlpp) 
  { 
    config = $(curlpp)/bin/curlpp-config ; 
  }
  else # is curlpp-config in the path ? 
  {
    local curlpp-check = [ _shell "curlpp-config >/dev/null" : exit-status ] ; 
    if $(curlpp-check[2]) = 0 { config = curlpp-config ; }
  }
  
  if $(config) 
  {
    prefix = [ shell_or_die "$(config) --prefix" ] ;
    version = [ shell_or_die "$(config) --version" ] ;
    version = [ SPLIT_BY_CHARACTERS $(version) : " " ] ;
    version = [ trim-nl $(version[2]) ] ; 
    modules.poke curlppvars : prefix : $(prefix) ; 
    modules.poke curlppvars : version : $(version) ; 

    requirements += <define>HAVE_CURLPP ; 
    local cpp-cflags = [ shell_or_die "$(config) --cflags" ] ;
    for local i in [ SPLIT_BY_CHARACTERS $(cpp-cflags) : " " ]
    {
      local incpath = [ MATCH "-I(.*)" : $(i) ] ; 
      if $(incpath) 
      { 
	# echo "CURLPP: $(i)" ; 
	requirements += <cxxflags>"-isystem $(incpath)" ;
	# requirements += <include>$(incpath) ; 
      }
    }
    local cpp-libs = [ shell_or_die "$(config) --libs" ] ;
    local cpp-prefix = [ shell_or_die "$(config) --prefix" ] ;
    for local i in [ SPLIT_BY_CHARACTERS $(cpp-libs) : " " ]
    {
      local libpath = [ MATCH "^-L(.*)" : $(i) ] ; 
      if $(libpath) { requirements += <library-path>$(libpath) ; }
      local libname = [ MATCH "^-l(.*)" : $(i) ] ; 
      if $(libname) 
      { 
	# local curl = [ MATCH "^-l(.*pp)" : $(i) ] ;
	# if [ path.exists $(cpp-prefix)/lib/lib$(libname).a ]
	# {
	#   echo "CURLPP:   STATIC LINKING FOR LIBRARY: $(libname)" ;
	#   lib $(libname) : : <link>static ;
	# }
	# else
	# {
	  external-lib $(libname) : $(cpp-prefix)/lib ; 
	# }
	requirements += <library>$(libname)/<link>shared ; 
	# requirements += <library>$(libname) ; 
      }
      else
      {
	requirements += <linkflags>$(i) ;
      }

      # requirements += <library-path>/usr/lib/x86_64-linux-gnu ; 
      # for local xtra in idn rtmp ssl crypto ssl crypto ldap rt 
      # {
      # 	external-lib $(xtra) : /usr/lib/x86_64-linux-gnu ; 
      #   requirements += <library>$(xtra) ; 
      # }
    }
  
    # the rule curlpp provides access to all the variables defined in this file
    # if none argument is given, it returns $(version), which should only be 
    # defined if curl is available
    rule curlpp ( what ? )
    {
      if $(what) 
      {
	  retval = [ modules.peek curlppvars : $(what) ] ; 
	  if $(retval) { return $(retval) ; }
      }
      else { return "yes" ; }
    }
  }
  else { rule curlpp { } } 
}

if [ curlpp ] 
{
   local prefix  = [ curlpp prefix ] ; 
   local version = [ curlpp version ] ;
   echo "CULRPP:   USING VERSION $(version)  FROM $(prefix)" ; 
}