Not logged in

Artifact eb47d0b51f17f49cd829ee7b069edda68452cb60:

Wiki page [WorkingWithPremake] by zester 2014-01-07 10:46:11.
0000: 44 20 32 30 31 34 2d 30 31 2d 30 37 54 31 30 3a  D 2014-01-07T10:
0010: 34 36 3a 31 31 2e 32 38 33 0a 4c 20 57 6f 72 6b  46:11.283.L Work
0020: 69 6e 67 57 69 74 68 50 72 65 6d 61 6b 65 0a 50  ingWithPremake.P
0030: 20 38 39 30 32 62 38 33 64 66 37 63 36 61 62 38   8902b83df7c6ab8
0040: 39 35 66 63 36 37 32 36 31 63 31 30 31 65 66 39  95fc67261c101ef9
0050: 36 31 64 62 32 64 66 39 30 0a 55 20 7a 65 73 74  61db2df90.U zest
0060: 65 72 0a 57 20 33 37 32 30 0a 3c 68 32 3e 57 6f  er.W 3720.<h2>Wo
0070: 72 6b 69 6e 67 20 77 69 74 68 20 50 72 65 6d 61  rking with Prema
0080: 6b 65 3c 2f 68 32 3e 0d 0a 0d 0a 3c 74 61 62 6c  ke</h2>....<tabl
0090: 65 20 62 6f 72 64 65 72 3d 22 30 22 20 77 69 64  e border="0" wid
00a0: 74 68 3d 22 31 30 30 25 22 3e 0d 0a 3c 74 72 3e  th="100%">..<tr>
00b0: 0d 0a 20 20 0d 0a 20 20 3c 74 64 20 76 61 6c 69  ..  ..  <td vali
00c0: 67 6e 3d 22 74 6f 70 22 20 77 69 64 74 68 3d 22  gn="top" width="
00d0: 33 30 30 70 78 22 3e 0d 0a 20 20 3c 64 6c 3e 0d  300px">..  <dl>.
00e0: 0a 0d 0a 20 20 3c 73 6d 61 6c 6c 3e 0d 0a 20 20  ...  <small>..  
00f0: 3c 64 74 3e 3c 62 3e 31 2e 20 44 65 76 65 6c 6f  <dt><b>1. Develo
0100: 70 6d 65 6e 74 20 54 6f 6f 6c 73 3c 2f 62 3e 3c  pment Tools</b><
0110: 2f 64 74 3e 0d 0a 20 20 20 20 3c 64 64 3e 31 2e  /dt>..    <dd>1.
0120: 31 20 49 6e 74 72 6f 64 75 63 74 69 6f 6e 3c 2f  1 Introduction</
0130: 64 64 3e 0d 0a 20 20 20 20 3c 64 64 3e 3c 61 20  dd>..    <dd><a 
0140: 68 72 65 66 3d 22 68 74 74 70 73 3a 2f 2f 63 68  href="https://ch
0150: 69 73 65 6c 61 70 70 2e 63 6f 6d 2f 75 73 65 72  iselapp.com/user
0160: 2f 7a 65 73 74 65 72 2f 72 65 70 6f 73 69 74 6f  /zester/reposito
0170: 72 79 2f 48 79 64 72 61 2f 77 69 6b 69 3f 6e 61  ry/Hydra/wiki?na
0180: 6d 65 3d 50 72 6f 67 72 61 6d 6d 69 6e 67 57 69  me=ProgrammingWi
0190: 74 68 4c 75 61 41 6e 64 43 22 3e 31 2e 32 20 50  thLuaAndC">1.2 P
01a0: 72 6f 67 72 61 6d 6d 69 6e 67 20 77 69 74 68 20  rogramming with 
01b0: 4c 75 61 20 61 6e 64 20 6f 72 20 43 3c 2f 61 3e  Lua and or C</a>
01c0: 3c 2f 64 64 3e 0d 0a 20 20 20 20 3c 64 64 3e 3c  </dd>..    <dd><
01d0: 61 20 68 72 65 66 3d 22 68 74 74 70 73 3a 2f 2f  a href="https://
01e0: 63 68 69 73 65 6c 61 70 70 2e 63 6f 6d 2f 75 73  chiselapp.com/us
01f0: 65 72 2f 7a 65 73 74 65 72 2f 72 65 70 6f 73 69  er/zester/reposi
0200: 74 6f 72 79 2f 48 79 64 72 61 2f 77 69 6b 69 3f  tory/Hydra/wiki?
0210: 6e 61 6d 65 3d 57 6f 72 6b 69 6e 67 57 69 74 68  name=WorkingWith
0220: 50 72 65 6d 61 6b 65 22 3e 31 2e 33 20 57 6f 72  Premake">1.3 Wor
0230: 6b 69 6e 67 20 77 69 74 68 20 50 72 65 6d 61 6b  king with Premak
0240: 65 3c 2f 61 3e 3c 2f 64 64 3e 0d 0a 20 20 20 20  e</a></dd>..    
0250: 3c 64 64 3e 31 2e 34 20 42 6d 61 6b 65 3c 2f 64  <dd>1.4 Bmake</d
0260: 64 3e 0d 0a 20 20 20 20 3c 64 64 3e 31 2e 35 20  d>..    <dd>1.5 
0270: 44 65 62 75 67 67 69 6e 67 3c 2f 64 64 3e 0d 0a  Debugging</dd>..
0280: 20 20 20 20 3c 64 64 3e 31 2e 36 20 55 73 69 6e      <dd>1.6 Usin
0290: 67 20 46 6f 73 73 69 6c 20 28 44 56 43 53 29 3c  g Fossil (DVCS)<
02a0: 2f 64 64 3e 0d 0a 20 20 20 20 3c 64 64 3e 31 2e  /dd>..    <dd>1.
02b0: 37 20 46 75 72 74 68 65 72 20 52 65 61 64 69 6e  7 Further Readin
02c0: 67 3c 2f 64 64 3e 0d 0a 20 20 3c 2f 73 6d 61 6c  g</dd>..  </smal
02d0: 6c 3e 0d 0a 0d 0a 20 20 3c 2f 64 6c 3e 0d 0a 20  l>....  </dl>.. 
02e0: 20 3c 2f 74 64 3e 0d 0a 0d 0a 0d 0a 0d 0a 3c 74   </td>........<t
02f0: 64 20 76 61 6c 69 67 6e 3d 22 74 6f 70 22 3e 0d  d valign="top">.
0300: 0a 3c 68 33 3e 50 72 65 6d 61 6b 65 20 49 6e 74  .<h3>Premake Int
0310: 72 6f 64 75 63 74 69 6f 6e 3c 2f 68 33 3e 0d 0a  roduction</h3>..
0320: 3c 70 3e 54 68 65 20 48 79 64 72 61 20 41 72 63  <p>The Hydra Arc
0330: 68 69 74 65 63 74 75 72 65 20 75 73 65 73 20 61  hitecture uses a
0340: 20 73 70 65 63 69 61 6c 20 66 6f 72 6b 65 64 20   special forked 
0350: 76 65 72 73 69 6f 6e 20 6f 66 20 70 72 65 6d 61  version of prema
0360: 6b 65 20 74 68 61 74 20 75 73 65 20 4c 75 61 6a  ke that use Luaj
0370: 69 74 20 77 69 74 68 20 74 68 65 20 4c 75 61 6a  it with the Luaj
0380: 69 74 20 46 46 49 20 6d 6f 64 75 6c 65 20 65 6e  it FFI module en
0390: 61 62 6c 65 64 2e 20 54 68 69 73 20 67 69 76 65  abled. This give
03a0: 73 20 70 72 65 6d 61 6b 65 20 74 68 65 20 63 61  s premake the ca
03b0: 70 61 62 69 6c 69 74 79 20 74 6f 20 63 61 6c 6c  pability to call
03c0: 20 43 0d 0a 4c 69 62 72 61 72 79 20 66 75 6e 63   C..Library func
03d0: 74 69 6f 6e 73 20 66 72 6f 6d 20 6f 75 72 20 62  tions from our b
03e0: 75 69 6c 64 20 73 63 72 69 70 74 73 2e 3c 2f 70  uild scripts.</p
03f0: 3e 0d 0a 0d 0a 3c 21 2d 2d 20 55 73 69 6e 67 20  >....<!-- Using 
0400: 50 72 65 6d 61 6b 65 20 2d 2d 3e 0d 0a 3c 68 33  Premake -->..<h3
0410: 3e 55 73 69 6e 67 20 50 72 65 6d 61 6b 65 3c 2f  >Using Premake</
0420: 68 33 3e 0d 0a 0d 0a 3c 70 3e 54 68 65 20 73 69  h3>....<p>The si
0430: 6d 70 6c 65 73 74 20 50 72 65 6d 61 6b 65 20 63  mplest Premake c
0440: 6f 6d 6d 61 6e 64 20 69 73 3a 3c 2f 70 3e 0d 0a  ommand is:</p>..
0450: 0d 0a 3c 70 72 65 3e 3c 63 6f 64 65 3e 0d 0a 70  ..<pre><code>..p
0460: 72 65 6d 61 6b 65 34 20 61 63 74 69 6f 6e 0d 0a  remake4 action..
0470: 3c 2f 70 72 65 3e 3c 2f 63 6f 64 65 3e 0d 0a 0d  </pre></code>...
0480: 0a 3c 70 3e 55 73 75 61 6c 6c 79 20 79 6f 75 20  .<p>Usually you 
0490: 77 6f 75 6c 64 20 6c 69 6b 65 20 50 72 65 6d 61  would like Prema
04a0: 6b 65 20 74 6f 20 67 65 6e 65 72 61 74 65 20 70  ke to generate p
04b0: 72 6f 6a 65 63 74 20 66 69 6c 65 73 20 66 6f 72  roject files for
04c0: 20 61 20 70 61 72 74 69 63 75 6c 61 72 20 74 6f   a particular to
04d0: 6f 6c 73 65 74 2c 20 69 6e 20 77 68 69 63 68 20  olset, in which 
04e0: 63 61 73 65 20 61 63 74 69 6f 6e 20 69 73 20 6f  case action is o
04f0: 6e 65 20 6f 66 20 74 68 65 73 65 20 74 6f 6f 6c  ne of these tool
0500: 73 65 74 20 69 64 65 6e 74 69 66 69 65 72 73 3a  set identifiers:
0510: 3c 2f 70 3e 0d 0a 0d 0a 3c 70 72 65 3e 3c 63 6f  </p>....<pre><co
0520: 64 65 3e 0d 0a 76 73 32 30 31 30 09 20 20 20 20  de>..vs2010.    
0530: 20 20 20 20 56 69 73 75 61 6c 20 53 74 75 64 69      Visual Studi
0540: 6f 20 32 30 31 30 20 28 6f 72 20 45 78 70 72 65  o 2010 (or Expre
0550: 73 73 29 0d 0a 76 73 32 30 30 38 09 20 20 20 20  ss)..vs2008.    
0560: 20 20 20 20 56 69 73 75 61 6c 20 53 74 75 64 69      Visual Studi
0570: 6f 20 32 30 30 38 20 28 6f 72 20 45 78 70 72 65  o 2008 (or Expre
0580: 73 73 29 0d 0a 76 73 32 30 30 35 09 20 20 20 20  ss)..vs2005.    
0590: 20 20 20 20 56 69 73 75 61 6c 20 53 74 75 64 69      Visual Studi
05a0: 6f 20 32 30 30 35 20 28 6f 72 20 45 78 70 72 65  o 2005 (or Expre
05b0: 73 73 29 2c 20 53 68 61 72 70 44 65 76 65 6c 6f  ss), SharpDevelo
05c0: 70 2c 20 6f 72 20 4d 6f 6e 6f 44 65 76 65 6c 6f  p, or MonoDevelo
05d0: 70 0d 0a 76 73 32 30 30 33 09 20 20 20 20 20 20  p..vs2003.      
05e0: 20 20 56 69 73 75 61 6c 20 53 74 75 64 69 6f 20    Visual Studio 
05f0: 32 30 30 33 0d 0a 76 73 32 30 30 32 09 20 20 20  2003..vs2002.   
0600: 20 20 20 20 20 56 69 73 75 61 6c 20 53 74 75 64       Visual Stud
0610: 69 6f 20 32 30 30 32 0d 0a 67 6d 61 6b 65 09 20  io 2002..gmake. 
0620: 20 20 20 20 20 20 20 47 4e 55 20 4d 61 6b 65 20         GNU Make 
0630: 28 69 6e 63 6c 75 64 69 6e 67 20 43 79 67 77 69  (including Cygwi
0640: 6e 20 61 6e 64 20 4d 69 6e 47 57 29 0d 0a 78 63  n and MinGW)..xc
0650: 6f 64 65 33 09 20 20 20 20 20 20 20 20 41 70 70  ode3.        App
0660: 6c 65 20 58 63 6f 64 65 20 33 0d 0a 63 6f 64 65  le Xcode 3..code
0670: 62 6c 6f 63 6b 73 09 43 6f 64 65 3a 3a 42 6c 6f  blocks.Code::Blo
0680: 63 6b 73 0d 0a 63 6f 64 65 6c 69 74 65 09 43 6f  cks..codelite.Co
0690: 64 65 4c 69 74 65 0d 0a 3c 2f 70 72 65 3e 3c 2f  deLite..</pre></
06a0: 63 6f 64 65 3e 0d 0a 0d 0a 3c 70 3e 59 6f 75 20  code>....<p>You 
06b0: 63 61 6e 20 73 65 65 20 61 20 63 6f 6d 70 6c 65  can see a comple
06c0: 74 65 20 6c 69 73 74 20 6f 66 20 61 63 74 69 6f  te list of actio
06d0: 6e 73 20 61 6e 64 20 6f 74 68 65 72 20 6f 70 74  ns and other opt
06e0: 69 6f 6e 73 20 62 79 20 74 79 70 69 6e 67 3a 3c  ions by typing:<
06f0: 2f 70 3e 0d 0a 0d 0a 3c 70 72 65 3e 3c 63 6f 64  /p>....<pre><cod
0700: 65 3e 0d 0a 70 72 65 6d 61 6b 65 34 20 2d 2d 68  e>..premake4 --h
0710: 65 6c 70 0d 0a 3c 2f 70 72 65 3e 3c 2f 63 6f 64  elp..</pre></cod
0720: 65 3e 0d 0a 0d 0a 3c 70 3e 4f 6e 63 65 20 74 68  e>....<p>Once th
0730: 65 20 66 69 6c 65 73 20 68 61 76 65 20 62 65 65  e files have bee
0740: 6e 20 67 65 6e 65 72 61 74 65 64 20 79 6f 75 20  n generated you 
0750: 63 61 6e 20 6c 6f 61 64 20 74 68 65 20 73 6f 6c  can load the sol
0760: 75 74 69 6f 6e 20 6f 72 20 77 6f 72 6b 73 70 61  ution or workspa
0770: 63 65 20 69 6e 74 6f 20 79 6f 75 72 20 49 44 45  ce into your IDE
0780: 20 61 6e 64 20 62 75 69 6c 64 20 61 73 20 79 6f   and build as yo
0790: 75 20 6e 6f 72 6d 61 6c 6c 79 20 77 6f 75 6c 64  u normally would
07a0: 2e 3c 2f 70 3e 0d 0a 0d 0a 3c 2f 62 72 3e 0d 0a  .</p>....</br>..
07b0: 0d 0a 0d 0a 0d 0a 3c 68 33 3e 43 72 65 61 74 69  ......<h3>Creati
07c0: 6e 67 20 61 20 53 69 6d 70 6c 65 20 50 72 65 6d  ng a Simple Prem
07d0: 61 6b 65 20 53 63 72 69 70 74 3c 2f 68 33 3e 0d  ake Script</h3>.
07e0: 0a 0d 0a 3c 70 3e 50 72 65 6d 61 6b 65 20 69 73  ...<p>Premake is
07f0: 20 62 75 69 6c 74 20 6f 6e 20 4c 75 61 2c 20 61   built on Lua, a
0800: 20 70 6f 77 65 72 66 75 6c 2c 20 66 61 73 74 2c   powerful, fast,
0810: 20 6c 69 67 68 74 2d 77 65 69 67 68 74 20 73 63   light-weight sc
0820: 72 69 70 74 69 6e 67 20 6c 61 6e 67 75 61 67 65  ripting language
0830: 2e 20 50 72 65 6d 61 6b 65 20 73 63 72 69 70 74  . Premake script
0840: 73 20 61 72 65 20 72 65 61 6c 6c 79 20 4c 75 61  s are really Lua
0850: 20 70 72 6f 67 72 61 6d 73 2c 20 73 6f 20 61 6e   programs, so an
0860: 79 74 68 69 6e 67 20 79 6f 75 20 63 61 6e 20 64  ything you can d
0870: 6f 20 69 6e 20 4c 75 61 20 63 61 6e 20 61 6c 73  o in Lua can als
0880: 6f 20 62 65 20 64 6f 6e 65 20 69 6e 20 61 20 50  o be done in a P
0890: 72 65 6d 61 6b 65 20 73 63 72 69 70 74 2e 20 54  remake script. T
08a0: 6f 20 74 68 69 73 2c 20 50 72 65 6d 61 6b 65 20  o this, Premake 
08b0: 61 64 64 73 20 66 75 6e 63 74 69 6f 6e 73 20 66  adds functions f
08c0: 6f 72 20 64 65 66 69 6e 69 6e 67 20 73 6f 6c 75  or defining solu
08d0: 74 69 6f 6e 73 2c 20 70 72 6f 6a 65 63 74 73 2c  tions, projects,
08e0: 20 61 6e 64 20 63 6f 6e 66 69 67 75 72 61 74 69   and configurati
08f0: 6f 6e 73 20 61 73 20 77 65 6c 6c 20 61 73 20 73  ons as well as s
0900: 75 70 70 6f 72 74 20 66 6f 72 20 63 6f 6d 6d 6f  upport for commo
0910: 6e 20 62 75 69 6c 64 20 63 6f 6e 66 69 67 75 72  n build configur
0920: 61 74 69 6f 6e 20 74 61 73 6b 73 2e 20 50 72 65  ation tasks. Pre
0930: 6d 61 6b 65 20 61 6c 73 6f 20 70 72 6f 76 69 64  make also provid
0940: 65 73 20 63 6f 6e 76 65 6e 74 69 6f 6e 73 20 66  es conventions f
0950: 6f 72 20 64 65 66 69 6e 69 6e 67 20 61 6e 64 20  or defining and 
0960: 68 61 6e 64 6c 69 6e 67 20 63 6f 6d 6d 61 6e 64  handling command
0970: 20 6c 69 6e 65 20 6f 70 74 69 6f 6e 73 20 61 6e   line options an
0980: 64 20 61 63 74 69 6f 6e 73 2c 20 61 6c 6c 6f 77  d actions, allow
0990: 69 6e 67 20 79 6f 75 20 74 6f 20 62 75 69 6c 64  ing you to build
09a0: 20 73 6f 70 68 69 73 74 69 63 61 74 65 64 20 63   sophisticated c
09b0: 6f 6e 66 69 67 75 72 61 74 69 6f 6e 20 73 63 72  onfiguration scr
09c0: 69 70 74 73 2e 0d 0a 0d 0a 42 65 63 61 75 73 65  ipts.....Because
09d0: 20 6f 66 20 74 68 65 20 64 65 73 63 72 69 70 74   of the descript
09e0: 69 76 65 20 6e 61 74 75 72 65 20 6f 66 20 74 68  ive nature of th
09f0: 65 20 4c 75 61 20 6c 61 6e 67 75 61 67 65 2c 20  e Lua language, 
0a00: 79 6f 75 72 20 62 75 69 6c 64 20 73 63 72 69 70  your build scrip
0a10: 74 73 20 77 69 6c 6c 20 6f 66 74 65 6e 20 6c 6f  ts will often lo
0a20: 6f 6b 20 6d 6f 72 65 20 6c 69 6b 65 20 73 74 61  ok more like sta
0a30: 74 69 63 20 63 6f 6e 66 69 67 75 72 61 74 69 6f  tic configuratio
0a40: 6e 20 66 69 6c 65 73 20 74 68 61 6e 20 6d 69 6e  n files than min
0a50: 69 2d 70 72 6f 67 72 61 6d 73 2e 20 48 65 72 65  i-programs. Here
0a60: 20 69 73 20 61 6e 20 65 78 61 6d 70 6c 65 20 6f   is an example o
0a70: 66 20 61 20 66 61 69 72 6c 79 20 74 79 70 69 63  f a fairly typic
0a80: 61 6c 20 50 72 65 6d 61 6b 65 20 73 63 72 69 70  al Premake scrip
0a90: 74 20 66 6f 72 20 61 20 43 2b 2b 20 65 78 65 63  t for a C++ exec
0aa0: 75 74 61 62 6c 65 2e 20 53 65 65 20 74 68 65 20  utable. See the 
0ab0: 50 72 65 6d 61 6b 65 20 43 6f 6f 6b 62 6f 6f 6b  Premake Cookbook
0ac0: 20 66 6f 72 20 6d 6f 72 65 20 65 78 61 6d 70 6c   for more exampl
0ad0: 65 73 20 6f 66 20 63 6f 6d 6d 6f 6e 20 63 6f 6e  es of common con
0ae0: 66 69 67 75 72 61 74 69 6f 6e 20 74 61 73 6b 73  figuration tasks
0af0: 2e 3c 2f 70 3e 0d 0a 0d 0a 3c 70 72 65 3e 3c 63  .</p>....<pre><c
0b00: 6f 64 65 3e 0d 0a 2d 2d 20 41 20 73 6f 6c 75 74  ode>..-- A solut
0b10: 69 6f 6e 20 63 6f 6e 74 61 69 6e 73 20 70 72 6f  ion contains pro
0b20: 6a 65 63 74 73 2c 20 61 6e 64 20 64 65 66 69 6e  jects, and defin
0b30: 65 73 20 74 68 65 20 61 76 61 69 6c 61 62 6c 65  es the available
0b40: 20 63 6f 6e 66 69 67 75 72 61 74 69 6f 6e 73 0d   configurations.
0b50: 0a 73 6f 6c 75 74 69 6f 6e 20 22 4d 79 41 70 70  .solution "MyApp
0b60: 6c 69 63 61 74 69 6f 6e 22 0d 0a 20 20 20 63 6f  lication"..   co
0b70: 6e 66 69 67 75 72 61 74 69 6f 6e 73 20 7b 20 22  nfigurations { "
0b80: 44 65 62 75 67 22 2c 20 22 52 65 6c 65 61 73 65  Debug", "Release
0b90: 22 20 7d 0d 0a 20 0d 0a 20 20 20 2d 2d 20 41 20  " }.. ..   -- A 
0ba0: 70 72 6f 6a 65 63 74 20 64 65 66 69 6e 65 73 20  project defines 
0bb0: 6f 6e 65 20 62 75 69 6c 64 20 74 61 72 67 65 74  one build target
0bc0: 0d 0a 20 20 20 70 72 6f 6a 65 63 74 20 22 4d 79  ..   project "My
0bd0: 41 70 70 6c 69 63 61 74 69 6f 6e 22 0d 0a 20 20  Application"..  
0be0: 20 20 20 20 6b 69 6e 64 20 22 43 6f 6e 73 6f 6c      kind "Consol
0bf0: 65 41 70 70 22 0d 0a 20 20 20 20 20 20 6c 61 6e  eApp"..      lan
0c00: 67 75 61 67 65 20 22 43 2b 2b 22 0d 0a 20 20 20  guage "C++"..   
0c10: 20 20 20 66 69 6c 65 73 20 7b 20 22 2a 2a 2e 68     files { "**.h
0c20: 22 2c 20 22 2a 2a 2e 63 70 70 22 20 7d 0d 0a 20  ", "**.cpp" }.. 
0c30: 0d 0a 20 20 20 20 20 20 63 6f 6e 66 69 67 75 72  ..      configur
0c40: 61 74 69 6f 6e 20 22 44 65 62 75 67 22 0d 0a 20  ation "Debug".. 
0c50: 20 20 20 20 20 20 20 20 64 65 66 69 6e 65 73 20          defines 
0c60: 7b 20 22 44 45 42 55 47 22 20 7d 0d 0a 20 20 20  { "DEBUG" }..   
0c70: 20 20 20 20 20 20 66 6c 61 67 73 20 7b 20 22 53        flags { "S
0c80: 79 6d 62 6f 6c 73 22 20 7d 0d 0a 20 0d 0a 20 20  ymbols" }.. ..  
0c90: 20 20 20 20 63 6f 6e 66 69 67 75 72 61 74 69 6f      configuratio
0ca0: 6e 20 22 52 65 6c 65 61 73 65 22 0d 0a 20 20 20  n "Release"..   
0cb0: 20 20 20 20 20 20 64 65 66 69 6e 65 73 20 7b 20        defines { 
0cc0: 22 4e 44 45 42 55 47 22 20 7d 0d 0a 20 20 20 20  "NDEBUG" }..    
0cd0: 20 20 20 20 20 66 6c 61 67 73 20 7b 20 22 4f 70       flags { "Op
0ce0: 74 69 6d 69 7a 65 22 20 7d 20 20 20 20 0d 0a 3c  timize" }    ..<
0cf0: 2f 70 72 65 3e 3c 2f 63 6f 64 65 3e 0d 0a 0d 0a  /pre></code>....
0d00: 3c 70 3e 54 68 65 20 69 6e 64 65 6e 74 61 74 69  <p>The indentati
0d10: 6f 6e 20 69 6e 20 74 68 69 73 20 73 61 6d 70 6c  on in this sampl
0d20: 65 20 69 73 20 61 72 62 69 74 72 61 72 79 2c 20  e is arbitrary, 
0d30: 74 68 69 73 20 69 73 20 74 68 65 20 77 61 79 20  this is the way 
0d40: 49 20 68 61 70 70 65 6e 20 74 6f 20 6c 69 6b 65  I happen to like
0d50: 20 69 74 2e 0d 0a 0d 0a 54 68 65 20 66 6f 6c 6c   it.....The foll
0d60: 6f 77 69 6e 67 20 73 65 63 74 69 6f 6e 73 20 6f  owing sections o
0d70: 66 20 74 68 69 73 20 67 75 69 64 65 20 77 69 6c  f this guide wil
0d80: 6c 20 77 61 6c 6b 20 79 6f 75 20 74 68 72 6f 75  l walk you throu
0d90: 67 68 20 61 6c 6c 20 6f 66 20 74 68 65 20 66 65  gh all of the fe
0da0: 61 74 75 72 65 73 20 6f 66 20 50 72 65 6d 61 6b  atures of Premak
0db0: 65 20 69 6e 20 61 20 73 6f 6d 65 77 68 61 74 20  e in a somewhat 
0dc0: 6c 6f 67 69 63 61 6c 20 66 61 73 68 69 6f 6e 2e  logical fashion.
0dd0: 20 49 74 20 69 73 6e 27 74 20 72 6f 63 6b 65 74   It isn't rocket
0de0: 20 73 63 69 65 6e 63 65 2c 20 61 6e 64 20 79 6f   science, and yo
0df0: 75 20 70 72 6f 62 61 62 6c 79 20 61 6c 72 65 61  u probably alrea
0e00: 64 79 20 68 61 76 65 20 74 68 65 20 67 69 73 74  dy have the gist
0e10: 20 6f 66 20 69 74 20 66 72 6f 6d 20 74 68 65 20   of it from the 
0e20: 65 78 61 6d 70 6c 65 20 61 62 6f 76 65 2c 20 73  example above, s
0e30: 6f 20 66 65 65 6c 20 66 72 65 65 20 74 6f 20 73  o feel free to s
0e40: 6b 69 70 20 61 72 6f 75 6e 64 2e 20 59 6f 75 20  kip around. You 
0e50: 63 61 6e 20 61 6c 73 6f 20 72 65 66 65 72 20 74  can also refer t
0e60: 6f 20 74 68 65 20 52 65 66 65 72 65 6e 63 65 20  o the Reference 
0e70: 73 65 63 74 69 6f 6e 20 6f 72 20 74 68 65 20 4c  section or the L
0e80: 75 61 20 52 65 66 65 72 65 6e 63 65 20 4d 61 6e  ua Reference Man
0e90: 75 61 6c 20 66 6f 72 20 69 6e 66 6f 72 6d 61 74  ual for informat
0ea0: 69 6f 6e 20 6f 6e 20 61 20 70 61 72 74 69 63 75  ion on a particu
0eb0: 6c 61 72 20 66 75 6e 63 74 69 6f 6e 20 6f 72 20  lar function or 
0ec0: 76 61 72 69 61 62 6c 65 2e 3c 2f 70 3e 0d 0a 3c  variable.</p>..<
0ed0: 2f 62 72 3e 0d 0a 0d 0a 0d 0a 0d 0a 3c 2f 74 64  /br>........</td
0ee0: 3e 0d 0a 3c 2f 74 72 3e 0d 0a 3c 2f 74 61 62 6c  >..</tr>..</tabl
0ef0: 65 3e 0a 5a 20 63 38 34 37 66 34 65 34 37 35 63  e>.Z c847f4e475c
0f00: 63 35 62 38 65 32 66 37 34 31 66 39 37 36 38 61  c5b8e2f741f9768a
0f10: 35 34 39 64 34 0a                                549d4.