switch from waf to rscons
This commit is contained in:
1 parent
a0b2f660a2
commit
ddb905351a
7 files changed
+66
-254
No files matched your search
+2
-2
@@ -1,5 +1,5 @@
|
||||
/.lock-waf*
|
||||
/.waf*
|
||||
/.rscons*
|
||||
/build/
|
||||
/test/tmp/
|
||||
/coverage/
|
||||
/jes
|
||||
@@ -1,20 +1,7 @@
|
||||
.PHONY: all
|
||||
all:
|
||||
./waf build --targets jes
|
||||
./rscons build
|
||||
|
||||
.PHONY: clean
|
||||
clean:
|
||||
./waf clean
|
||||
|
||||
ifneq ($(FILTER),)
|
||||
GTEST_FILTER := --gtest_filter=$(FILTER)
|
||||
endif
|
||||
|
||||
.PHONY: build_tests
|
||||
build_tests:
|
||||
./waf build --targets tests
|
||||
|
||||
.PHONY: test
|
||||
test: build_tests
|
||||
./build/tests $(GTEST_FILTER)
|
||||
@-rm -rf coverage
|
||||
-gcovinator -b build -s src
|
||||
./rscons clean
|
||||
+39
@@ -0,0 +1,39 @@
|
||||
project_name "jes"
|
||||
|
||||
configure do
|
||||
check_c_compiler
|
||||
check_cxx_compiler
|
||||
check_d_compiler
|
||||
check_c_header "getopt.h"
|
||||
check_c_header "X11/Xlib.h"
|
||||
check_cfg package: "freetype2"
|
||||
check_lib "GL"
|
||||
check_lib "dl"
|
||||
check_lib "X11"
|
||||
end
|
||||
|
||||
build do
|
||||
Environment.new do |env|
|
||||
env["CPPDEFINES"] += %w[
|
||||
APPNAME="jes"
|
||||
VERSION="0.0.1"
|
||||
GLCXX_GL_INCLUDE="gl3w.h"
|
||||
PLATFORM_LINUX
|
||||
JTK_X
|
||||
]
|
||||
env["CPPPATH"] += glob("src/**", "libs/glcxx/include")
|
||||
env["CCFLAGS"] += %w[
|
||||
-Wall
|
||||
-O2
|
||||
-Wno-switch
|
||||
]
|
||||
env["CXXFLAGS"] += %w[
|
||||
-std=gnu++14
|
||||
]
|
||||
sources = glob("src/**/*.{c,cc,cxx}", "libs/glcxx/src/glcxx/*")
|
||||
env.Program("jes", sources)
|
||||
env.InstallDirectory("${prefix}/bin")
|
||||
env.Install("${prefix}/bin", "jes")
|
||||
env.Install("${prefix}/share", "share")
|
||||
end
|
||||
end
|
||||
@@ -5,4 +5,4 @@ if [ ! -e libs/glcxx/src ]; then
|
||||
exit 1
|
||||
fi
|
||||
|
||||
exec ./waf configure "$@"
|
||||
exec "$(dirname "$0")"/rscons configure "$@"
|
||||
@@ -0,0 +1,21 @@
|
||||
#!/usr/bin/env ruby
|
||||
script = File.join(File.dirname(__FILE__), ".rscons-2.0.1-64b37e4eb6b5edaabc2d8658995d4996.rb")
|
||||
unless File.exists?(script)
|
||||
if File.read(__FILE__, mode: "rb") =~ /^#==>(.*)/
|
||||
require "zlib"
|
||||
require "base64"
|
||||
encoded_compressed = $1
|
||||
unescaped_compressed = Base64.decode64(encoded_compressed)
|
||||
inflated = Zlib::Inflate.inflate(unescaped_compressed)
|
||||
File.open(script, "wb") do |fh|
|
||||
fh.write(inflated)
|
||||
end
|
||||
else
|
||||
raise "Could not decompress."
|
||||
end
|
||||
end
|
||||
load script
|
||||
if __FILE__ == $0
|
||||
Rscons::Cli.run(ARGV)
|
||||
end
|
||||
#==>eJztfWtzE8mS6Hd+RdNwhpaRZZhzdzdCgw9mbDPDXsCEDXM4ITRaWWrZfZDU2u6WH9dof/vNzHplPbolg5k7d2MdMYO6HllZWVlZWVlZWQ/u7yzLYuc0m++k84uoWJ5e35vl4+U0jY7LUT4v70WR/H4xLzP4iqLRdFiW0bNnUZlOJ5QSRceHJ4fvo90o/pT2nsximTpOJ9FlkVVpkuXtaGuWluXwLG3JXMjPB6N8mhdQUbTWGS4W02w0rLJ83oHcIbQpiug62URX68yz6XOdYYGTdZ9Dw6a5dD7Wv/NlhejGIbgM5GhZFOm8MmhiP3mTaZkV6bg2X3a5kw5H5wA/+jL7wnKp1VknKwfD58lJVWTzs5aVHUXTbJ6WAHjWKYEyVRJ/msftaPtpsBw1M7jMqvNBNh+nV9Qi5rSj7ItTgdrGvOi+RQcr3+4+FLT6G6gjCPt4k4IuadfV4KPnNYcd8XJDNaBTWfRMkqvM/k8abUdPN+y8O7geFvUF1vHRRp3Esd+gk25KOi1d2oyGZRrNnMTL83QedWEIfuKpLofTDP/pr09nLiqi+lmRpvOf1lb/sab6dTqd5pc/rav+15rqp9NlyrGvqf6/aqrPYKrOq+FPa6r/S0310fVwvkHr/1pT/fIcJOV60v1bXd/z6ZgPXqj60/qBw+p88Gqq1w0cVueDV1O9duCgOh+8mup1A4fV+eDVVK8bOKzOB6+met3AYXU+eDXVmwZuHdvUjVqRlmnVwDMhOePJB+vb/tpMDNaIPw7KEULfvC7KJmcb9oT/zvKOUEoAhgJr8hdFdjGsFK6owQR1CUDw+MPP/xi8e/3i/cuj4zfR7n9FOzNA9HKHoZAcvv2tF78/PH4T96NdGMqrKi1mcSv64YfoL5e9STbJo9H5sBiOIP1kkY6y4bTfyeaj6XKcYoOdshpWnUl1vWBqk0NLKFVV188DfVW/xL/4f/yvSP9zCUwSxcA6saftCe3uhdHDCMKwqorBcDSCYQMm6PqqmVNgPqjOi3Q4LkOZF2lxmssuUBaWTDFjWIgKSPZsnlVADliiZW/2NFBg7A9VNu2MUyQnLOUDuz0oi6Cg2G/D4iStOvP0UmXki7SgfmG2k3e6zKbjQVmlC8h7co+TEDHSVZN80fLhmXFT2bxyscRqsmw7KkdFtqjaBuYgXxAUTFLo3ax0M8AHRTWoslkK6e/hH463AAYZ4kegq6Ct6y/F6MuqjOIThAtsGz16cKNLrB7BuEQPblQ7qxj5nQ9bFBUX0a5mOdIn3AakjIqJqlx8YVVJXvG3nE+BNaJ9EAYpUBH6Oh+lvRg4cpKdLSV9xsNqGPdNajqO+9bstzCSU2OiiNMZLqscq3oKFA6MARo3Dk25PIWPbjQZwhR0RVJAz4qih2UFrF10BLXfFfk/01EVzZZlFZ2mkelLNMmKEhodzseRQjXKymiclcPTaTr2FT9Xa10jxpE6NtWjiEYm8frZqoEjhnM0TYeWHkoJbiFNT15QJTY1KepDtyuvIZ3oFCaOmU4tFsNBFYz3NQMq4C7nAcg6sU4c2yP+Yf55nl/OTdvdiE80DtkMqCG6mXbEGRLvXlfg3bd3wGHpgAgOFyWw2K4osc2liS4k0HWkwCifLaYgZIU4wPKrKHlwQ8J3khezYTWQwAlYIj9aq5bqmOlKceHJxLO0GszTq2pgBG9AFMMy/zRYtcphHFhdJfwP5xdZkc9noLV0UvO77MA8W47ShAFvkfIBWtRyCgwChY0aIhKjx5jaYY3AajUbwuI0PwuusrYGgaiqWWYx+ml6lhk+diXfZJhNSYubzWDYS1Qeop6RdkqmEWSdWtttrWRZ/YuoY4six2U5qCgpYQGUGC3T6Gds7bAoULH8G3RAl0PLkFSpJPO3aR/ZhkIdqem1pa7apl2smWlPa4iIhONzfYQUAirYlOKZHeBp4IoyEXPZ9Fqkm46L0jCK+UU6EJmJ+Meg9RLoj1wOPDMbTJxsQyMBagza1KjKiyzVjYOeU0U3X4ZAgi/RqTA0PAOqDennyiCn6l7X4KfzE/3LYIlzRy2eiLHG5Pp5qDgIk+QgK4A5KsLVFAGZ0HvUedSOHnU6j/pAu9mCa5RRhNWKGVTglSRfgAxq0D1Vf4g/7nHG4kPtivbG4RaTERCBAlSwTlXQBbWmwNvIJgZSeOCLSaJL1A0+Qixq+8WXPGv+WzqQ0fjkL5g1wHDJQqgLg/lwlnb1rOepCtwoR2Kpxo4WKP+bRY6CZjAc6e2NHFgGr9vVHy9BNsE/Rk5iT9xpjBgBaWDdSqTiYTruEcldUm8x16ti+a1T3ZtE6RUwY/ncKyhWyGMEhgozrIdUIKQcf4MAET367yY/PNrpumHyfU+Jo/bB4Z3vz8MyG7GlVHOp2Y8mwR0a7jjTytpzJgJ2t3tw+PLFh9fvB/tHb0/eH3/Yf//q6O3gtxfHr178/PrwRIGY5kNc811Jdt+eyHzm9PrJ5/TaQaEHSf2gwgT5gfIdL8tuYhcz2tHFcBpqCDoMOV614WIBnwlkLdPSbTCQyeumVwvQehClIp0k4h9Qzq6qYjiQ+3rgAAVUpHAmNSXdEyKJQJ3qrvAT0teACR0hTYez0/FwAPMa8emBLtWlA7E2IdSl//cZip1wrxgYmxDAacNyMEur83wcdcUyJPVB0KUsYJpwC0R/MJkOz0ARwf8rxIEo9E1Wqt/vJ52t1kNjp5JZUXmeTqfJw6e+mCIZf7OSX5d5QTaYEyxPH/Jwymqz/JyhGYUUIl4xeEiFOdYhFWCMANjgBODhH8qwoPYqmAxqCBJTM0AvYmSuBRcXPUjuR1++WDq2yXhsONxt4xwGYZqubwMl3HBK3BiB+oy/PRGJbDIFUESkXgYbj6e2fUMSABcIS4kfew3RXnGeV3UNCdL0CFP4/7TfrwFomU0nhBqZMbeHxeg89tttwF62Ge/vv3z94pcT2Jb3JBiiVj9c+vXB+tI2BUJUgmmusccJ8OBGibx4/907EM7vjg9fvvoYt1bOzFAj3JPlXr09RFwesr5x2EgZaQS8A+IoSN/aY8KqvC6LPK/uAi0FauNxa6jxTWP36u3+RgP37sX7XxtGzYH6+tXPr1+9/d/rIUPBJmbwwR68Ot4I6hp8cTxn83x7dH12mVkGssB4YRWL4oERcsp4bUEr4/yyDLW0OZSFMNB/X3SR5tt/H7Y96iowL04UmIdPlUdFO241QZvWQzNIbQxtUQ8NOHVjcB1hwcNV9HkSbzODyiZkrYPz+JZwNhyeNFRBTB6vdECbD+wYmaJz39Y6lC5TqwqRbhfKoA+vpebiQpdZDLOCln6lJ9tqDCiFlootzzVfFMUQtjS4VOMyzRO5SITaQs921RCbrqZcnbYSsrCNlzOlYgnVd3A+LM8BhNKEq3xw7hfoQEMl7VEHp9fJD10oVbJdOJQ0FICPQVkVhFahjnSvZ6f5tBU9F2nzcoGHIqQz63qOUTFfVm3hYdFWIJlJEQ2SD24YhqS5KcgrZnEMUWGzfZdcMGn7sdlJFRZmZ1ToYZZOhstppXYx+E8vHqjU2JlZ0+sgVhxI2Lktm5iTgmWZcrDEYImVy0YOPr1zeEiz8HUANuOqKttnZZuc04cGqr4d3kamZq1FZUpiFJZ7UFPS3/VkahtrQxJpDBSXEaxCEKCQSxY8SmLgTBEzMCKtJFcIPkKWIOSFQowRIqnY88mNpd66YeJgNBvb+2pKBrS1TnPy6+Hr19aagZh4JXBpiFuwwYoSCQIUAoAegwCId0YxzPx4e2TB6VHBNsGrXUukzyg2Bhpmlc4GVCvQ81dHnUUOA5P0tnTf2pHsdV8cAmU5E9t5B5WVIN08N4pJNk2XaOrznSnkN52cpEX5kwQhLU0ilUCHfGqFKQRtEIthde4xE2ajCVgjXS4XaaH0hm7c6gDMqmboHY8MYZ4M5ZT5soDfoSyysoUy0vlFKFl7d7hNZON0kE4mIKmD+c7hYNgWp01MoivGlN6TnVNctCd7xEvIJF1EGaB1AUrQ2egpzTLhU2fJia3zuBVoj3fUcT7hU5INKukOxBsdnWoVzRdqZ2/sItYCn6I4KpMtEMQFLDQLQyg8/VPZkmrtyC1nKV1FjsenAIx3RMsMlmbkFks1s4slDoQhiw6nCSNp2EKOT3iCNJuxqi0jL6hgkZ5lwCSgGpgySagpVs8aEZx9geINwlP49NjnOsOsBJnw/jwrI2m8U84e+UVaFNl4nM6Bf6Mh+h7Q0MYBSmfzagDQB/L0FOQmKlvjVBzakAeRI7P3xGkuVjwVgsUGQKbJdWCszil6yhINOIR9lmTmgOeZhdBMPlLujJB3qkEBIdvlNyq4N1Ch60FYOSMVbUbHPYeQl8OsGkzyItkX6WTI1x0VdHRwbPnUQ81wPCzGX009hRaecYpfaqLVyy9cYve4xBYeUOI4ZLkYgJ4O6lL63Mz3PdMxUa1NjGSmCLPFWKuvPDWSS/DiPJ9fywM2DZ2v5xKH2edxVgwWiTpsQqGmi/PyzvGZB5HrjJsw6p5L66b9wCSb09qiAYbG53bDsKcO5SSqwidk02HQg8Cx1HxanYO+pzskFHyettGplxAZXCVx1lklVKg8LBTqG08u2tEP6vN0mo8+ax62KgGprG+3kDxK4Z9uEYLOytC3vyrChN0yJyouHjSht/bsDmzJfuwFOnILAsKaHj2LfoUdaC0NB2LRTeejDMc5uJaiJpfY2FvVFAmsxBo1w1OvOKmePVMDq9tGQ4JMk8fsztlIsAQsnqeMeXgbTb5TpOBIt6wntjNWoiaHhFu2Ar5ZKq8DgNCGcPPl9AudfJx2UDda0XF5w1S3PdBg2EFE4qou/QsA62wqXczYpgoKURJSFzsAAmPM/A8MygZjVKkM45YdcvfsKCHyOEoCo9wz5Afqt9AYM7QAdobT6XPhBpAu+Lbwfk0HjIvyGH3fvtibfepLYwmLt+yiTRtOWoYU0czS4hALyLPlFZKZHun4vtQwAbpJ/M3yjDV502yLine truncated
|
||||
@@ -1,169 +0,0 @@
|
||||
#!/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.9.1"
|
||||
REVISION="f34901f5b68face907b47c9bd9abce84"
|
||||
GIT="1fa2e6f7e1420e3fc64b29bf7abef531220da538"
|
||||
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ȼFû&Ùÿÿ±#(ÂÿÿÿÿÿÿÿÿÿÿÿMñ ô#(E†(aô<÷{g1#(#(#(#(#(#(#(#(#(#(#(#(#(#(#(#(#(#(#(#(}O}³ŠÕŸs»I˜öÕ+«mPÝ×}›ÖËkjÍRï>óÁ/¶…7ÞÏxXmšwt7bÝôÞ;ßO�0ù¹hížç»rÂ�Õ·sËÈ‹`tG»¹í›�;»D…ó[zfÅvvo¼øão³«{¹÷µwÓ@}<íÞ÷ß|ûá êíã{àîûí·ß)�ï{š‰½ÜÞ¬#(#(Ð#(Íš#(Àò#(Ÿ.€#,[¶ë€£Öû}ØmÓ'qÜmš#,#(ÚnëÝ™ivÀoclGA¡^�²I0R¨ �QQÞî(ö4JI@%J#()RD¨.aë‚J;ï7žÝÜv±r�ó«Ù{…wnŽ��r…Gmíשë¶ëåëÕ¯·Ý{®#(½ê=ëª×ÖvÞØ—½v»·^ó)·s>ú÷»é÷—·ÉÑÓ&³¸·¾òö7½§n•À[o\4#.�ÎæÙY:5ìÝI¶×{·ž÷=ݽã#.¶ð§N6Í´’$MÜÝéÁÐ#(#(¢zî4#,½€#,Þ܇K£nbæwuÊl=žðÞ÷ÙóÝßww®€ (OuîvÖ¾îí· ì`NúÁîÞ¼€ß9瀞ÝÚ}÷»ÞØ·—;ì=io{�>}Îà÷s¯vR¤ûÜp÷sš•ˆ£¹™_hwž>ùîßUµYÎÝ.íÛmÆ:å»ÛÊí[Ë�ÜuNÊÊú]Sµ}gÖØi6#(Ïp×4ÓOlôdñ;íí¶Ï!ȧ½º�¹¬»4ùâCÛ«Þ`çÏf½³/^NíÕ³–7;vqïsÚÍ}îï“m�ë|ov”æí6#,‹«»=æ`ê¹{Îô=�¡ñç¡XU ކ•±ˆ6`åUÀí[ï{žœÚnö=sëî>ºo°¸ÍÌÞÛÏMz¯RçNÞ=줻�d òWLõ�#(#(Ú÷@#(Åíïfï5kÏg³w‹�O·šïaæÆŽãcç#¹íž=®ÍÈÙt×@×ϳÕ÷Ü—Öï1³¸îM\艧½¼3Ëš9·¾|íY½Sà$« f·»²ö7"v§z¶kmW½Ø¦mÖÞÞ;;Ù×;.k½ºòɲã�{зÝÝOItjß/{^Ëv»LõÞ÷ÝêúÑ™ÃcP}l[:ËG(Ë´ï�¸ö÷¬ÇÅŽöjë¹ÔŽëy{\û±ï€#,jÑ…U:ž÷s4iîèà×u{u÷7×Ü5·¾uï;Vìosèt{îçMNk7–Ãuô}ÏUõ¼ÎTt#,{`—/AÐÛ˜Ôîǹã] ÓÁ¸5F˜0[»7§yîóèн¼�Ò€ %;VÅ`#(6Ây4ËíÞÜæƒ¶#(ª{WZow6Ø:=Æ÷“³wv»5¯uÜ ÝvÓg97mÔrV‚©"ãœQÉRšîîç·u÷ÏqíÛsg×zeí2¼�÷�LJ^qâ>}]�×_{>êÆ‰©4ûÙÃÝÝw#,:tõ¦v¶é;¯¦Ìò=î¶¥¨îîwGËSÃÛËÊ3ìŠñíß#,4@@#( #(F€aa0L)„›!OPÐÔò˜Ú˜z§¨õ1¦�4šh#(‚`’žÂhÒš=OSzQé=µ#(õ22#(#(#(#(#(A" „Ñ¢i‘¢`AOMIùOJxÕ=›MF�ªaDÐ#(&@#(#(Iê”Q!&Ô6†¦ ÔÚž§©±@4€#,#(#,14#(#(#(#(#(#(#("H‚d#(A b µü&DÂa¤ÑO)ú#S#OP#(@#(#(šˆ‚#(@#(‚b2'¥6‚0ÕSSx¤Þ¨Ú�&4£Òz@#(@#(#(}wùõVŸÿCý[m¹Í:þ-V�‰›3>ªw "’QA°È$P LEQ!D#.Š øŠ?3òüÿ8üœ}ÇåD•$Õ�©‡·¬+«»°¼Jò¾.iÉo×—‹Æ®ó“ø#,|Oõû€«<D@ÄPÛJ@vÜ6ܱЉ¤¦¨Œ<ÏKº•b©VóVÒRU‰¼añj"&¤»ÄÖ^Œ�!�úŽƒõ@Ì ©¶™£i�ÕÕZj«µ’Ú¶6¶-TÊÖ¯j´Õ¶¸²C”ç`�A‰›Â(†1Qlˆ@Ä@H@öD#. „E D*‰�2m¶Ø2d0‰ŒÍ�3)d@Ȇ#4š6f¢"jD±‘R�(¦ÚM„TÌ’Á1“TÔm�šK2#DÙˆÉi”PF£RÆ€4Å•6�$Rl–ŠÑ”²Ò”Úˆ ²Ò”Q›Ö�IlÑ�)¦@¡5#%Ò¤E#,)±´l&´¶´ÖÕ!L«hÌL™4@iµ6´f–�*JML•-°MšÌš–¦ZK&RJ� CHÙ[!d¢‚™h‘"¢#,E)¬RA£a‚…3¥DA©J0Ñ3(Á5ˆÉ%#,’´’K�¤¡�1!"JiY£&$#,E4j’¢ÅÃ#.‘P‹$cR”ÀКLˆ–Mhc&&*J4‰h¤„ÔÅ$ÒbH±dL¦¦6d#,ŠÉa›DKT’1#.lk%�²°À°2I1Q±@T%„щFŒšRÅ C% cM&aJ¦TDjd¨’`D&¤Ù ’JJÁˆ1e™ƒfÑ�4H#`™bHŠQ› BLÛ,ÆARÁc$iš1©±Id�Š%HLÈ#Kh*Y�,Ib,©%¦PcQ¤Í"¢†Fi¢&ªh™HÑdDl”™HÓ22£FSF²‘A�ƒ`ˆdÉL ¤cA4$3% Š#(Ù&TÌ#Êm2Bš‘H… Íe-0¬‘°P’D”’X²lÙLѬC ¤Ì‘’–DÙ´Á¶#E3%#,™4¦HRÌY”Ñ(’‹5,”™E!ddÄ™¬š,‘Šl¤¢Å`Å$˜’L¦É²liÐÒ(ŒhI+)0Ú#,&Æc$˜K&Q’(Ó,I³d¦E(ˆKHMSfÅ¢´&A))"BÔ[ ™lŠF2ØÂA„e$TX%D£iI˜£XÍ#, 2”S)bŒˆ”òƙ`5D£(ÊCD«RhØ’Lš(™(¤™‘Ðl–Ä¥š4Å&FS4²¥š1jf�…²J)`…,e#HSK_¶ÚèÈl!!*QlF¢ÛEF*6L™eˆi&ŠZ#,£a$ÔmdFKɲ˜ RF³HLÓ5“V"IMd¤-)D–%F‘¨X4˜¥¥2dÍ“`±eZhÓe•"©T¬Â›63K[6DkdÓ+"T–fÖJ²ÙJSL6²(S"6+Fm,Ii)”ÛØ6°–5¨’ £m¡1RQµFÑ£d¶‰£$*ŒŠ±lXfÑ„Û&FªB”ŠA4Q„5(šmJÄmŠ‘+´…’ÚI+VÊÛL†Å„„ÊeMi4Í‘ˆ ¦¤b’*©*ŒS-4³6šÍ)µM1µ*D“m,Õ,Š(…´e³&I5–43L²kKRÈZÍ1AÊ�$d1Š6 HÀÄ1"ƒBc-FÔ”•e6Ådšh©2i(¤E"–hŠ*A´²2!Œ¢HP¤£e3@Æ‚D”Ðh´Y’´Ô–@ű¦i¡ITdÆa#%¢ÁYØ(6�hÄ™ ¥˜…©•˜¦)1¦*J!*6)Q™Tš“I%”(�¤1fmÍ£c‹hF‚ɳB“QCHTd2#F�MQK)hL›FYE’KÆŠhµFšÑš#.…Š–i6ci3idÚ6Æ�#!’@˜È,’XJ’£4Š”Ó £5’ScPm˜lÒm¤¢�(ÈiFM¦j³”ÓS,”$fÀ‰©J01£lÐŬÒl”Ä11%$&±hÕ ¨Ôj4Q¶#c3Xi0ÒIB…’E¢”AXh+,²l”„lZ2JY¤³Ú65‹TI¢„Ë-AQ`ˆ‹IllaˆXce([E Ò”Ë!Q¢Hªdj‹Fˆ¢2•lŠ˜´m0MLÊL`¥%T±(‰"µAµJ,•Œ)Š™¢Ù)+j”Å%3l†²X´4K6d•4‘IFHŒ“¨É25³&Sd¥6fÄÄR¨ª3+&²E f’j("1FST–Ų’h²A(¢’#.LJ#.-)ªSTI¨ÕEXÊbÒkd@6£X©(±H¥&È̉�*DPY›3Z"ŲhÛF¤©¦¶†TAŠ£Rlld5¢™¬Óm�E�XÉI‘”¢BÊÍ¢mF+e�¨´©aM²Œ±©‰IÊ�Š *4–ÆØ³5&5IµŠM²™š£Fц‘QIE[l¶ÚidL°³ hb¤Ñ¢Ê’mHJ±Z-±iš¶ŒkY´›4Ë[d¶¦¦Ùj4ÛD£( 4dm$Æ#,†²¦j(ÙdTP!¨“I”“"Hk&´Y˜#(Åÿ�ý~'ûÿ]Àÿ…I{Tÿ2Vh2úÏ¯Õæÿ)·ÑAüæþE5йF’ÿ*SH›˜¸Âg÷ÿ}“ƒ*–˜ÿË\ÙbŸßï(š0ìÉ@œäq#.@A#‡FäJ–†#.I$Ú‡£õÿ>¦‰qÍ¿bŸåÔÿËì¿à‘%#.VåBiBªH®k”©š×¬˜ ‘CºnØcz%fÛ‰O]Ëá-Ó¶&Û¬-q(ÅÑ�Û«ÂŒcÿ�î#Q�FN"$,*i²¹Zƒcú•ÈI£Ë²w�Ð/–øñwßZ½nY×VG~»Êní®MëqóÚæ*ùWËÑ\ÛÑssFˆI¡�¤jVìíÆÔD±D›eò¹²3zÜÒPX“¼è´pÔk[—¯ý«,þÆB’)hotÆõw}M¥wP¾îÞ<š#.Œ~�ö]é2Ë�¼[ÂR-¡H¤:÷É3ýפ“fn{bU¡Ø,ë#(ÇñÞóþÈ׋9g¶ ƒ0a–·ÚOoÔñ8¸CHŒ6Xuçßév±„,C�w #(˜Ï�^^b—w:.ãFææL…[$,T_l¿Õ⨩žš£›=ŒðdÄfí0šQAFFÆÎ:Ôƒè¥ÈwïMŽpÞúåÅþ+Çidñn[Ö¯…ãÆ·HXÔNÅ2A½Î6e�#,ê`Ïw1V±n-TR°›‘9¸0ŒŒcM’uÝ(åt/£Vòó¯ö/ï/+ÊŒZ{uÛ#_I\éwÐëê•àÄöÑH‡•þ4Ç…?ôžx ž•ýôS6aËLZÁPÅC`߉Z¡4mýä˜5럎 ë¨N¡Øã_ÜuFƒlXÛQ„>é<zUê1uü"èþÏÕm¥Å‹l¾ .3ÒË ›ÓŠ:êdâvgvŽFŽ:{n3ÓÒ!‚Ê#.‚)j‚¡¡Wž¾fÌԷجf¢ÂÞÚ…kABÇÀ8Š‘9¦S4FѨþ«8j= e˜“a6QõÑkÓm?óBÙ:&’™hvYKƒzt¼|ßv(ë]i-¿W9L$€Ñù2Ô8ÈØ6cŠú2íã彚âÛBꢵ£Ü‡mÑ–)S© V"1b"vÑDR#“×Ac:Y]ìc¦Dv¤ßý×ô"žtŠñ#˜�”V1ú·«&+ŠybW[Kµ4P0R"´cñÍ%�â¹slm_꽘°{ÚˆÂe#.ð õ61�û^ßÝAÓ5#›\¬¡®ýŸÉﺊ,†ˆ˜Òl÷!5b àãg®À(Î)ÍÊa"á)ô2•‚–’†IÃoßïFR��d³éw,Vþ†k¯—EÖ¥E#(E|*�ªJ™nÅn)"²kì}ã’ß™ØF¾�Ú´vÞ£-öf‹Oïj]B’SL#,}-³cú*òT0ˆÄWJÚÍ�ñd0 ÄZô·) QŠÄXDd9Õ³µÐ´’¶¢ HÁi+J…°ô$ÂÈ¢ZP‚Ó#.` �•#(ã)ºxš;Ó|”RR¤º«iWnÚ±Hß¿^y»÷U»¼�³·²î*H¨€¹åv¦Ì5BÓ-$…:Ç£ˆ%]ÃÇèÂÙ4dËItÖËÍÊUNÊ(þFP§-Š¢#.œû*O$ÄDx kr€Nú§’W…J(OEÑÙë ÷"QÙa6¹wÅó5Ø@ê?Âç¾{Ã¥…Pr…WY/цI×דAÃU£]©@M…%%0¢diKów)Ewåù݈j#!ÕÏøÒú]4}>¸‹#,»Öx°ÿ�Õ\�JB†R#àÐ)É¥¯zü|yߢèТ¹ÃooMÌR*c�+2³Æ‚2KõÕ$¹ÆäFî¨G_£-†‹"c{Ô¤1Mo1¥»ñ¹‘4Ò#ÍÃOûÚÝ=r>H?¥W>5sƒÜ¢a£ƒ(S¢~¾WËÚüÝ#,Cƒ1cív�ûlZñ|K«ã’y™KÁ=õŒIðó¦‡GáË�š°<¯²BÕ©æ€lÀž)†jö„žØØ«LaÌK¨}çœA_¯ÚHÝ�Õñ7ÈòCæqÚuÅ@»'ZtâzÓ²÷Dçôë›æ0Line truncated
|
||||
#<==
|
||||
@@ -1,66 +0,0 @@
|
||||
import platform
|
||||
import re
|
||||
import os.path
|
||||
|
||||
APPNAME = "jes"
|
||||
VERSION = "0.0.1"
|
||||
|
||||
def options(opt):
|
||||
opt.load("compiler_c compiler_cxx")
|
||||
|
||||
def configure(conf):
|
||||
conf.load("compiler_c compiler_cxx")
|
||||
conf.check(header_name = "getopt.h", global_define = False)
|
||||
conf.check_cfg(package = "freetype2", uselib_store = "FreeType2", args = "--cflags --libs")
|
||||
if platform.system() == "Linux":
|
||||
conf.check(header_name = "X11/Xlib.h", global_define = False)
|
||||
conf.check(lib = 'GL', global_define = False)
|
||||
elif platform.system() == "Windows":
|
||||
conf.check(header_name = "windows.h", global_define = False)
|
||||
conf.check(lib = 'opengl32', global_define = False)
|
||||
|
||||
def build(bld):
|
||||
defines = ['APPNAME="%s"' % APPNAME]
|
||||
defines += ['VERSION="%s"' % VERSION]
|
||||
includes = [p for p in bld.path.ant_glob("src/**", dir = True) if os.path.isdir(p.abspath())]
|
||||
includes += ["libs/glcxx/include"]
|
||||
libs = []
|
||||
if platform.system() == "Linux":
|
||||
defines += ["PLATFORM_LINUX"]
|
||||
defines += ["JTK_X"]
|
||||
libs += ["dl", "GL", "X11"]
|
||||
elif platform.system() == "Windows":
|
||||
defines += ["PLATFORM_WINDOWS"]
|
||||
defines += ["JTK_WINDOWS"]
|
||||
libs += ["opengl32"]
|
||||
defines += ['GLCXX_GL_INCLUDE="gl3w.h"']
|
||||
sources = bld.path.ant_glob(["src/**/*.cc", "src/**/*.c", "libs/glcxx/src/glcxx/*"])
|
||||
bld(features = "c cprogram cxx cxxprogram",
|
||||
target = APPNAME,
|
||||
source = sources,
|
||||
includes = includes,
|
||||
defines = defines,
|
||||
cxxflags = ["-Wall", "-std=gnu++14", "-O2", "-Wno-switch"],
|
||||
lib = libs,
|
||||
uselib = ["FreeType2"])
|
||||
|
||||
test_libs = libs + []
|
||||
if platform.system() == "Linux":
|
||||
test_libs += ["pthread"]
|
||||
elif platform.system() == "Windows":
|
||||
pass
|
||||
import sys
|
||||
test_sources = bld.path.ant_glob(["src/*/**/*.cc", "src/*/**/*.c", "libs/glcxx/src/glcxx/*"])
|
||||
test_sources += bld.path.ant_glob("test/src/**/*.cc")
|
||||
test_sources += ["libs/googletest/src/gtest-all.cc"]
|
||||
test_includes = includes + ["libs/googletest/include", "libs/googletest"]
|
||||
test_defines = defines + ["ENABLE_TESTING"]
|
||||
bld(features = "cxx cxxprogram",
|
||||
target = "tests",
|
||||
source = test_sources,
|
||||
includes = test_includes,
|
||||
defines = test_defines,
|
||||
lib = test_libs,
|
||||
cxxflags = ["-Wall", "-std=gnu++14", "--coverage", "-Wno-switch", "-include", "iostream"],
|
||||
linkflags = ["--coverage"],
|
||||
uselib = ["FreeType2"])
|
||||
Reference in new issue
Block a user