Warning, /frameworks/syntax-highlighting/autotests/input/Jamroot is written in an unsupported language. File is not indexed.
0001 project
0002 : requirements <include>/home/ghost/Work/boost <threading>multi
0003 ;
0004 project a : : debug ;
0005
0006 exe hello : hello.cpp ;
0007
0008 exe hello
0009 : hello.cpp
0010 : <include>boost <threading>multi
0011 ;
0012 exe app : app.cpp ../util/foo//bar ;
0013 exe important : main.cpp helpers/<link>static ;
0014
0015 exe b : [ glob *.cpp ] ;
0016
0017 lib tools :
0018 [ glob *.cpp ] ;
0019
0020 lib tools : [ glob *.cpp : file_to_exclude.cpp bad*.cpp ] ;
0021
0022 lib network : network.cpp
0023 : <conditional>@my-rule
0024 ;
0025
0026 DEPENDS foo.o : foo.c ;
0027
0028 using msvc : : "Z:/Programs/Microsoft Visual Studio/vc98/bin/cl" ;
0029 using msvc : : echo Compiling && foo/bar/baz/cl ;
0030 using gcc : 5 : : <cxxflags>"-std=c++14 -O2" ;
0031 using clang : 3.9 : : <cxxflags>-std=c++14 <cxxflags>-O2 ;
0032 exe test3 : test3.cpp : -<threading>multi ;
0033 XYZ += <cxxflags>-Wzero-as-null-pointer-constant&&-Wno-zero-as-null-pointer-constant ;
0034 exe hello : hello.cpp : <os>NT,<toolset>gcc:<link>static ;
0035
0036 install dist : hello helpers :
0037 <variant>release:<location>dist/release
0038 <variant>debug:<location>dist/debug ;
0039 install dist2 : hello helpers : <location>$(DIST) ;
0040
0041 exe app : app.cpp : [ check-target-builds has_foo "System has foo" : <library>foo : <define>FOO_MISSING=1 ] ;
0042
0043 import path : * ;
0044
0045 using python
0046 : 2.7 # version
0047 : # Interpreter/path to dir
0048 : /usr/include/python2.7 # includes
0049 : /usr/lib/x86_64-linux-gnu # libs
0050 : # conditions
0051 ;
0052
0053 xx ;
0054 xx ;; ;
0055 xx ;a ;
0056 xx a; ;
0057 xx ;a; ;
0058
0059 ## comment title
0060 # BUG
0061 # TODO
0062 # aTODOa
0063
0064 #| multi
0065 line
0066 comment
0067 TODO
0068 bla bla
0069 |#
0070
0071 if cond {
0072 statements ;
0073 }
0074 else {
0075 statements ;
0076 }
0077
0078 for var in list {
0079 statements ;
0080 }
0081
0082 while cond {
0083 statements ;
0084 }
0085
0086 switch value
0087 {
0088 case pattern1 : statements ;
0089 case pattern2 : statements ;
0090 other ;
0091 }
0092
0093 if xxinxx {
0094 }
0095
0096 ifxxx s ;
0097
0098 rule a? ( x )
0099 {
0100 echo $(x) ;
0101 }
0102 a? 23 ;
0103
0104 local rule test ( a )
0105 {
0106 }
0107
0108 rule example
0109 (
0110 parameter1 :
0111 parameter2 ? :
0112 parameter3 + :
0113 parameter4 *
0114 )
0115 {
0116 if <variant>debug in $(properties)
0117 {
0118 OPTIONS on $(targets) = --debug ;
0119 }
0120 }
0121
0122 rule my-rule ( properties * )
0123 {
0124 local result ;
0125 if <toolset>gcc <optimization>speed in $(properties)
0126 {
0127 result += <define>USE_INLINE_ASSEMBLER ;
0128 return $(result) ;
0129 }
0130
0131 local m = [ CALLER_MODULE ] ;
0132 local result ;
0133 for v in $(values)
0134 {
0135 if [ modules.call-in $(m) : $(f) $(v) ]
0136 {
0137 result += $(v) ;
0138 }
0139 }
0140 return result ;
0141 return <name>$(name) ;
0142 return [ virtual-target.register $(t) ] ;
0143 return [ sequence.transform virtual-target.register : $(targets) ] ;
0144 }
0145
0146 rule run ( project name ? : property-set : sources * )
0147 {
0148 if [ $(s).type ] = PY
0149 {
0150 python = $(s) ;
0151 }
0152
0153 local new-sources ;
0154 for local s in $(sources)
0155 {
0156 if [ type.is-derived [ $(s).type ] CPP ]
0157 {
0158 local name = [ $(s).name ] ; # get the target's basename
0159 if $(name) = [ $(python).name ]
0160 {
0161 name = $(name)_ext ; # rename the target
0162 }
0163 new-sources += [ generators.construct $(project) $(name) :
0164 PYTHON_EXTENSION : $(property-set) : $(s) $(libs) ] ;
0165 }
0166 }
0167
0168 result = [ construct-result $(python) $(new-sources) : $(project) $(name)
0169 : $(property-set) ] ;
0170 }
0171
0172
0173 rule link
0174 {
0175 DEPENDS $(<) : [ on $(<) return $(DEF_FILE) ] ;
0176 }
0177
0178
0179 actions link bind DEF_FILE
0180 {
0181 $(.LD) .... /DEF:$(DEF_FILE) ....
0182 }
0183
0184 actions create-file-from-another
0185 {
0186 create-file-from-another $(OPTIONS) $(<) $(>)
0187 }
0188
0189
0190 mypackage =
0191 [ pkg-config.import mypackage : usage-requirements <conditional>@define_ns
0192 ] ;
0193
0194 me = [ modules.binding $(__name__) ] ;
0195
0196 local ZLIB_INCLUDE = [ modules.peek : ZLIB_INCLUDE ] ;
0197
0198 local t = [ new file-target $(name) : CPP : $(project) : $(a) ] ;
0199
0200 $(var) field1 : field2 : ... : fieldN ;
0201 $(var)o aaaa ;
0202
0203 on target $(var) field1 : field2 : ... : fieldN ;
0204
0205 [ $(var) field1 : field2 : ... : fieldN ]
0206 [ on target $(var) field1 : field2 : ... : fieldN ]
0207
0208 local key = "HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\App Paths" ;
0209 local values = [ W32_GETREGNAMES "$(key)\\$(subkey)" : values ] ;
0210
0211 variable = $(b) $(c) ;
0212 variable += elements ;
0213 variable on targets = elements ;
0214 variable on targets += "elements" ;
0215 variable default = elements ;
0216 variable ?= elements ;
0217
0218 defs += <define>NAME='\"$(VALUE)\"' ;
0219
0220 x = $($(Z)) ;
0221 x = $(Z)x ;
0222 x = x$(Z) ;
0223 x = x$(Z)x ;
0224
0225 x = "C:\\Program Files\\Borland" ; ECHO $(x:T) ;
0226
0227 module my_module # my module
0228 {
0229 rule salute ( x ) { ECHO $(x), world ; }
0230 rule greet ( ) { salute hello ; }
0231 greet ; # ok
0232 }
0233
0234 class verbatim-scanner : common-scanner
0235 {
0236 rule pattern ( )
0237 {
0238 return "//###include[ ]*\"([^\"]*)\"" ;
0239 }
0240 greet ; # error
0241 }
0242
0243 # test crazy (and valid) name
0244 a<b> a<b> [ a<b> a<b> a] ] ;
0245 rule a<b>() () { }
0246 actions a<b> { }
0247 local a<x> ;
0248 local a<x> = a<b> ;