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