add initial build system
This commit is contained in:
commit
8f1ef6374c
5 files changed
+188
No files matched your search
@@ -0,0 +1,3 @@
|
||||
/.lock-waf*
|
||||
/.waf*
|
||||
/build/
|
||||
@@ -0,0 +1,169 @@
|
||||
#!/usr/bin/env python
|
||||
# encoding: ISO8859-1
|
||||
# Thomas Nagy, 2005-2016
|
||||
|
||||
"""
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions
|
||||
are met:
|
||||
|
||||
1. Redistributions of source code must retain the above copyright
|
||||
notice, this list of conditions and the following disclaimer.
|
||||
|
||||
2. Redistributions in binary form must reproduce the above copyright
|
||||
notice, this list of conditions and the following disclaimer in the
|
||||
documentation and/or other materials provided with the distribution.
|
||||
|
||||
3. The name of the author may not be used to endorse or promote products
|
||||
derived from this software without specific prior written permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE AUTHOR "AS IS" AND ANY EXPRESS OR
|
||||
IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT,
|
||||
INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
||||
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
|
||||
STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
|
||||
IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||
POSSIBILITY OF SUCH DAMAGE.
|
||||
"""
|
||||
|
||||
import os, sys, inspect
|
||||
|
||||
VERSION="1.8.19"
|
||||
REVISION="886d9b5813e0debe701577920d3d2c10"
|
||||
GIT="x"
|
||||
INSTALL=''
|
||||
C1='#.'
|
||||
C2='#,'
|
||||
C3='#*'
|
||||
cwd = os.getcwd()
|
||||
join = os.path.join
|
||||
|
||||
|
||||
WAF='waf'
|
||||
def b(x):
|
||||
return x
|
||||
if sys.hexversion>0x300000f:
|
||||
WAF='waf3'
|
||||
def b(x):
|
||||
return x.encode()
|
||||
|
||||
def err(m):
|
||||
print(('\033[91mError: %s\033[0m' % m))
|
||||
sys.exit(1)
|
||||
|
||||
def unpack_wafdir(dir, src):
|
||||
f = open(src,'rb')
|
||||
c = 'corrupt archive (%d)'
|
||||
while 1:
|
||||
line = f.readline()
|
||||
if not line: err('run waf-light from a folder containing waflib')
|
||||
if line == b('#==>\n'):
|
||||
txt = f.readline()
|
||||
if not txt: err(c % 1)
|
||||
if f.readline() != b('#<==\n'): err(c % 2)
|
||||
break
|
||||
if not txt: err(c % 3)
|
||||
txt = txt[1:-1].replace(b(C1), b('\n')).replace(b(C2), b('\r')).replace(b(C3), b('\x00'))
|
||||
|
||||
import shutil, tarfile
|
||||
try: shutil.rmtree(dir)
|
||||
except OSError: pass
|
||||
try:
|
||||
for x in ('Tools', 'extras'):
|
||||
os.makedirs(join(dir, 'waflib', x))
|
||||
except OSError:
|
||||
err("Cannot unpack waf lib into %s\nMove waf in a writable directory" % dir)
|
||||
|
||||
os.chdir(dir)
|
||||
tmp = 't.bz2'
|
||||
t = open(tmp,'wb')
|
||||
try: t.write(txt)
|
||||
finally: t.close()
|
||||
|
||||
try:
|
||||
t = tarfile.open(tmp)
|
||||
except:
|
||||
try:
|
||||
os.system('bunzip2 t.bz2')
|
||||
t = tarfile.open('t')
|
||||
tmp = 't'
|
||||
except:
|
||||
os.chdir(cwd)
|
||||
try: shutil.rmtree(dir)
|
||||
except OSError: pass
|
||||
err("Waf cannot be unpacked, check that bzip2 support is present")
|
||||
|
||||
try:
|
||||
for x in t: t.extract(x)
|
||||
finally:
|
||||
t.close()
|
||||
|
||||
for x in ('Tools', 'extras'):
|
||||
os.chmod(join('waflib',x), 493)
|
||||
|
||||
if sys.hexversion<0x300000f:
|
||||
sys.path = [join(dir, 'waflib')] + sys.path
|
||||
import fixpy2
|
||||
fixpy2.fixdir(dir)
|
||||
|
||||
os.remove(tmp)
|
||||
os.chdir(cwd)
|
||||
|
||||
try: dir = unicode(dir, 'mbcs')
|
||||
except: pass
|
||||
try:
|
||||
from ctypes import windll
|
||||
windll.kernel32.SetFileAttributesW(dir, 2)
|
||||
except:
|
||||
pass
|
||||
|
||||
def test(dir):
|
||||
try:
|
||||
os.stat(join(dir, 'waflib'))
|
||||
return os.path.abspath(dir)
|
||||
except OSError:
|
||||
pass
|
||||
|
||||
def find_lib():
|
||||
src = os.path.abspath(inspect.getfile(inspect.getmodule(err)))
|
||||
base, name = os.path.split(src)
|
||||
|
||||
#devs use $WAFDIR
|
||||
w=test(os.environ.get('WAFDIR', ''))
|
||||
if w: return w
|
||||
|
||||
#waf-light
|
||||
if name.endswith('waf-light'):
|
||||
w = test(base)
|
||||
if w: return w
|
||||
err('waf-light requires waflib -> export WAFDIR=/folder')
|
||||
|
||||
dirname = '%s-%s-%s' % (WAF, VERSION, REVISION)
|
||||
for i in (INSTALL,'/usr','/usr/local','/opt'):
|
||||
w = test(i + '/lib/' + dirname)
|
||||
if w: return w
|
||||
|
||||
#waf-local
|
||||
dir = join(base, (sys.platform != 'win32' and '.' or '') + dirname)
|
||||
w = test(dir)
|
||||
if w: return w
|
||||
|
||||
#unpack
|
||||
unpack_wafdir(dir, src)
|
||||
return dir
|
||||
|
||||
wafdir = find_lib()
|
||||
sys.path.insert(0, wafdir)
|
||||
|
||||
if __name__ == '__main__':
|
||||
|
||||
from waflib import Scripting
|
||||
Scripting.waf_entry_point(cwd, VERSION, wafdir)
|
||||
|
||||
#==>
|
||||
#BZh91AY&SY"hœÕP÷ÿÿ°#*Óÿÿÿÿÿÿÿÿÿÿÿ„ Y�Âc%H4�#*`(b|÷yn�#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*¯1L õ¦Ü¹©öÒí°Õ6ÐííÝÍÝ÷ŒµÜ[Ý×_G»Ý’í¥IÝÙÞ»¤yÝÛîÑÚ—·Q°E>^ú}É©g]S©‡IbH>’{µì=´çwkBv×¶ëZ½çnw½OZéŠï£ï¾ncîîëß}óF·N}Vï7`vÛ�ß{ß'púÖ.ñ½§mmÞû7îæ»½p§Þùï#*#*#*P#*æÍ#*Àô[ ùÑC€+ܘ¹€UÖu lÚMc»\o»f€[(P«{ÞÝ:=í-€UeSm)Š`m…ì5PQ"ª#.%Ov⧬PT�’H#*•%wsŠ«ÞáÍ^ÌwÙª®�l={ÒÜž¹é¨LNÁŽÊéÔ�Þö}ö´ñÍZO¥2ï�»‡ÙÝ�žíö7ß[]vo±‰vùÝÝÛÎwݾnï�ݾͲöÜÛ�}Ÿ]÷Ø7wmîËÕ÷Ï}Ìqô#*Û[`UÐ5l§²E#,h#,(³;w¹ïnïQ½‡^�ƒïr¢Ém*7žñ]áèŠ%TFš¯cE=QO@ï{vš)mpÛ¬9uÛ›=ঌ<²]Ï·3㸶=uØeÎàµn�>=Ά›yÝÙZݤj»>ÑÚW½#*y»¹ïù^ît½ç{§__5Ó_}ƒŸ}œú(iW¶wßxyöu÷žîõuÎÛJžîï»îËË»Îïo;Mvîï½{]ïv¶Þï\½^í×ÛÜÔ{gwN,éön÷t®#,Ýêî7œ�·ÛqKZ}޼°õ³æ4iôrx›í&Ûs를YÛÝéã╲Û[o™¸Ûã=Ö$wÛ¯¹¹}w·»Ûw‰�ôïjÒºõÌ[Ýôkï8}ÎÞÏϽï7{O$öù:Àëß|îùßAöùóÞ.³�àèÐ4Ê=±R�@Ù©N›€Je'Þéâ¡ë¯xÜözÈ,ÆKwYê÷uáì»\tç^íÏf¢;«Ù*#,zô»îëÑï€#*g»Ž¤#*Aïxå»w“Ëëï{i«µôûºÛ½ï¯N/£ï{ôG¹÷²öë¤'q®º<©ë�³ÝÎòöÛní9#,×b!Þ÷�[ÜÛ6Î/|ùÁöÞöø½mÕ¯}áÒõ&÷õw‡ÓÝ—Ùs^‡Ý©5ôsÛxžûϽ×u—…·wÏn½Ç‹9XöíÜ>7¶Þîâùö}õ¾w·i7Û{|íæ1€6´P}ÜnÏZzx>íëØï…Ëu ×Û Ñx¾Z]ê¶Û;÷´û¹Þ–û#*`(•Hª—×{£W¯ußnŽ½ÎžñÒ½ëi½Öl}²Þ¯¾øwJ¾øîvêÛÝç{�Æùè/»å¹öãèí´¬”#,#*zÝeìh{op®µ®õ�н5‹œQ£Ó½æ÷‡Ý†�&€AyŽöîk¡×¼èŽMg�å}ò'·¸¾ì€™AZ÷žzûï¸ïº€C¯mËr®ÎØÏOkŽjªÎßtöÙ9Ý·QvÈ#.I#wgkwtO.¦ó9©feôî“6}wÓ'ª+Öšnwzêëã‡}ò�Ý`í½:n˜’iÑÓ½·smãŽÑ�n{Ý|½ÜÚÛv�ä©>÷¹7ÛjÒ�·]•æ×†§.íŽGßnš@€2#*™4#*� &ši‘ 4##Bž‘?JÒd4�d¤oE¦�A4#*‰„Ñ©Oa#,Éâ£Ó(¡ê #*#*#*#* ‘@šÄÐMÂ&)<F”óOUÒ&ž#Qµ#*H#*#*Ð#*#*ž©E$Ѩ#*#@ôzSõ&M=!êi¦€ÐÑ Ð#*jhh#*#*Ð#*#*I #*Ð ¡1OCM=SO ž£FPÐz�P#*#*#*#*j"#*! �#*L‰èÔi=OBŸªy'¦„§¨ž§ €ÐÈ#*>¿à¶Ú¿þæ&?¨mk›[˜×\—ííµ; 2„Ãç¶Õ× ‘!#ÁYˆ³ @òB( î?òýz$Ö¢Hýn§õÊNöa+—¹ºœJ™x‘\繪I£yw…Óš3?¾t>Cÿa)ôˆµù¡ 8I `î’Aáá‘—¼Ï á.¬ð|pøÍ¥V®ñ‡*à‰·¬bq1TA37n÷ŒW¾Zá'ã¾¾£yG#.D"‘…C©jÒµZ*Ú1µmª@nª@ªHªÁ@y&d#*¼ @U²¡[#*a÷®›kËjÚV´·tj�bVÛ_‚ÖÕj™�B$‰c3L@LˆhÆm2¢$¦¤KJQ¥ÛIPŠ™$±@°š6¦¢©(0ˆ”&h›([)Œ•™AF’XКaJ#.�$RlE¢”Ú"’”´¦E¨€@K-$$Á0e$RØ¢Ú-&¨ƒ)eE,MJ2PRJ)¥0³5�EiVÒ«R’mDÉ™2hتµ+XÍ0Í™¦mIc4Û`–›b$jZšdÔÂȦI5@ÈÔ�+I¬„TšM™%#.$´�Z)Mc$3dÑ0BÁFfšc4ØÄÁ*i`�‚1fb“"QPÙ6¤�"– !“C$Fd!# ,Í,Rdƒi0ÆJi-¤¨´LjTІ,“#,i¤ØQ$¢M‘J&1bb Ù2›E$ËHe$M,�)’¥S2,m�¨dQ,(‹$„‘#.lE¤°6j2AQ#.D”Tj"#.‰)#.fÄI©,Rb� )É2fŒÂ2[2¦A°•!BT›!$šJÁ‰),Yf`Ù´FšF�„”BÊHIš#,"S5K6YJ(1–a“K$ÔÓ(ÐK–dlhÊÈLÄ’(´-,�*$°†ÊƒM™A�FÍ#c¦–$¦¶š#,Bf‘E˜ˆÔ™)4�¦’–Z4YR¢¢‰…LI‘%()ŒhFHi˜ DC*f[HŠÂ•HC)R6L…)#.m%¤¢Ù#XÒL’J‹%5‘l&�™™¢##,’M•&™MDb1–T33Jb¡S&ˆ©¢1f¦Å&QddÄ”ŠT’BÊ*dX”Ó#h1I“e$Ì6M“FL…CHÀ„j(I–R²“#, ²l”�&B&K&Q�Šfƒ$e2‘–&a-%*›4Tm„Ê ‘)"#,¨Å±¤™¬ŠLla$0Œ¨Ò(TJ(Ö*Y0£XË52DÍL3,ˆ”!ŠY#*j4””e¤6kjm¶ÐQl`’¦�i(1”‘¢Å2S$Æ“FÙ-)f�1I˜Êf–T›)bÔÈÆÂÙ%6Q”ŒÐ!¦Ë_Ãmv4…•¤¤%J2SX«EbÑQ²IšTDÓ%KAQ°Š’V¦"†Æ–!™e) RF³*Ô&Ú,Šk&Cc)–•E¡bd¦5-*c$�&,32•Y£e”#k*ER©X¦Ê$²£)µdÔˆÖɦVD©5 [%YYJSL+f(i‘5£KMD–’�%ƱXÕ3h¶ÛH3`±ªÂF¤Ñ¶ÆÑ±²Qª3LÄ5E!¨4jÅQ°ÍHmbY0¢5³Rhe1%‚h±„5(”Ú–Äm$šÆ5!b´’šµ³VÓA,#ei6F&³l‰3)©¥#.I–Õ6¢–’”Ô²¤¶š¦ÒZ¦˜“²¦Rɶ–m¦ÌZ4f¶k32I¬±¡›¤ÛKYRSJ(ˆC5J4‰ŒQ°�b„- 3–ѵ$JME2š£iI¥�FLš#,%0ŠE,¨�ŠAieH€i¢˜)’�e6hbÄ„¤TZ,Éb•š’ÀclË3K1š`©¨™Ñ2FLlBÌK!I´lI¤£&h4‹2‹S2TÅ4Rma3`Ñ#.TXÌ1S6 RÉBlE†54Ú33h¨±±±F„hÆÉ©¡"“aK-�“$¤¦L¦Á’Ø…3R‰2I²ÒˆJ¨²Ô™¢6”ÒlÆÒei+Ä#”dfM”“BTš“)FÌÓj[,Ø´”³I²lbTQfŠJfdÑ©–´Œ”¥¢ÁH‘›$FY‘1¢Òš#@ÖY6Jhbb&“I F¢5BTm�mˆ1¤ÃI2ÄÊ&‘h¦•É K#.¥e$š� *5“0²ie24´›mIkhЙfÚ‚H´–ÅA£,#,›R”J�QliIš¨Ù&k2*H’£I"Ë*ÔÆ†MEc&&VJˆ¦”¡Q¥%4ET±*Je)FÛ`µ$Qd£dª0Ê6Kd¤Ô›j”ÑIEJj�µ&ÅCI3d†RTXiH‹- ””ÆhÁ´˜#.‰3BÁª”FÈÊV&#JKEhƲEd„6%`Š1”¶#h¬¤”T€h1E&“V”ZST¦Òj-±¬VÍ1Y-f�¢©š’‹Å(#(1³B$¡4l”Á£VÄm�‹hØÒšÖHe¢#.Æ&¢Ñ�6Ë6£h´TZÆI5©fÍ�ÒÊĪ1h³,UMIHÛ(Ë)DÒFÊÅ`’Æ’Ù-�d¢Ô–±I´¦eM¢Â‘QIF‹kT´ŒeCI¢$©”Z66† ÒZ[$ÛIŒÉl‚›%Eµ$¶ŠÑ‹FÛhÚ¡K&ÖÄZ¦¥e´J2ŠbFÒL`©lMšlT‘²È¨ ™�‰1$™I2$¡jM±fV¦?¥óþšþ’ÿI¯ä7ÏÎÞûÅíͦD˜º›a?îØÀ¥þL¶‹l‚››+»Ieî÷Ëúkø½zþ�ôzú´/¨ÝNDÿíNƒTlÿsäAQ‡œ 3·I¼‡H¼«M.Y#,É`¥q#LèÄW\ª’�ô;=q‡¼³üwhÁæY“þ×øyòÇú7V2ñÆ]QTÈ¥�ÕÜ…£á; 'tݹÃéÁ¾,>?—KßV£#.g…ÔÂ~ò‹o-5ƒ±Z8bå¥åâð£L|HÞâ#�Õ´t„º¢°YWVÚ¶…ˆ°yÔ)ÁQÅTUva¥¥di2Ó†®Y×[#¿+Êní·eâøW…òë…_%|=?Ÿ×²½Uð.nZ65³A5_e×’yʉ-wË«¼»�Ö‰ü�S/†æ’Å‚(,jìµc–£[ܰðÑþK�„L!ÆÂ¤#,j½©6eŒU=Ôe±‚ȱ~?é¹aßÝZ3#*©Ñ#.7ªAOS(C(`)<s¡Xÿ;’˜ÒµT’Ø–QGåœgþ‘ɨðM,"60I§´ÓÕ©–:–ùCP›#,�]{A‹ÿL>L>X�nëv#.D`Äcy¹j(0ª) »�ÍÌšB“VH5)ð��¶#*°Ÿ* é^WIæ�¢3v’™IöÔ –%(16ãd‡ÎÈ—:tò$À"¶RÇ5$¡ès(´„:†%Š¿ÁU|§ªù6ÝJ¯†á v(Ã"ƒáôÞÞ–FDR�OH«G,ŠiR°›�€ÜFF1ºë±:ë¦*#,õ-o/;ý»ì»È�¢Vhh”#v‰[)[ˆ‘A_®ª#=tV¿ž´ÇZì½0L°¶ŠM’Š'}Li6ÂJ°¹@`@hQÆ?ÊW1�ïåÉ#,.¢0í¥ýf°Àª´�ÆN9ªù#,tüâçïò陸ŠÕgxVzêæ$Ï5u¨âyÌïÿ\‹ØÎÔah�^Ðy*ZíŒ9ÐÙ¡:.Z¡ÝÜûRÒ;Éê¹Úî—´0÷°9!àášjУij?+9j&gJå4“ÑÂÑ�íJ[›¥ó¸IàÌ$[IàXRÁ`—§[ÇÜü±FÈÛZ,Ù*±)AKh[òeÔ˜ø›·õkX&ÃRÒ7hïú$KÙ!¦ÚÆM÷]¦É(È߃®×Þ»£f|†q²‰—[+›‘/W(Eÿ‰¥ð*‘æ×H¯LŽVÚiþ]!F1d"}äom’êmcF¼s2ɼk—-�Wî<¦£O¼àѷ߃«õ3ýu}ßäö¾—ÅÚ1ËsF«º¸±¢ÈIˆÃ-'½×+Ï;jJèÐÈ«:r£ „‹Å#.ÈK…¼UÓV7«Éù}è¥/›•#.g)q‘T´)c>Ñ…ÑK³E%²a|»WF÷¾¯<‡š,kM_IþÃx¾Jäm~7P�yÝ£ˆz^#,C@ÿÒ8¬D`Æ—ø�:£ù¨œòT0ˆÄWJÚÍ�ò@00b"m}]ûO+›u7Î]HÑ\âXÓ�P¤ÝÜd-7ª¸,´jÔ’Ö,p•Œ¦B„º‰4֔ݟ$×R…E`xÕÒ¢&½÷|Ä#.ÇÏnx2Oë“Nþë´ˆ,“%R0žVQɆ¨ZdiG•R[´NŽ •w<@Ñ-#,2ÒUX¢ŒÔ¥TîhÊï‚ØŠœ+ÒèVsî¨z3#*£É{à–xÕ6�®¸4P쎘=¶RþhËUc=®³äEZžºcL°x‚?±Ï„ôPƒÊ¹>¨hs1óÅV|êXš¡/'.H°#Åé#~DòÚ˜†‘�¦ÃˆEaå/Âiÿ��X¤Ç×/ä™» À§oÙ4 ÿWÍøMtèN˜H5§‹Ó¤xWí8Line truncated
|
||||
#<==
|
||||
@@ -0,0 +1,12 @@
|
||||
def options(opt):
|
||||
opt.load("compiler_cxx")
|
||||
|
||||
def configure(conf):
|
||||
conf.load("compiler_cxx")
|
||||
conf.check(header_name = "getopt.h")
|
||||
|
||||
def build(bld):
|
||||
bld(features = "cxx cxxprogram",
|
||||
target = "jes",
|
||||
source = bld.path.ant_glob("src/**/*.cc"),
|
||||
cxxflags = ["-Wall", "-std=gnu++14"])
|
||||
Reference in new issue
Block a user