Compare commits
44
Commits
pure-cxx-start
...
d
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
8b85b70ea9 | ||
|
|
bb20d3bf38 | ||
|
|
ca1829b0ef | ||
|
|
cc1393cb7a | ||
|
|
68cd8c27cc | ||
|
|
96010f2590 | ||
|
|
d96141f57d | ||
|
|
0330206e55 | ||
|
|
67beb1dece | ||
|
|
090daf39a0 | ||
|
|
6f55b3ddae | ||
|
|
d9334aa224 | ||
|
|
f1ed0cb50f | ||
|
|
8a795ce265 | ||
|
|
0a1ddbfd3f | ||
|
|
7af56e8363 | ||
|
|
ee08d9d13e | ||
|
|
66517921ab | ||
|
|
957f7ec0fd | ||
|
|
94c38ade8f | ||
|
|
50529580c0 | ||
|
|
85157bc8f2 | ||
|
|
05ada6c504 | ||
|
|
7a820a99ea | ||
|
|
a63adda1a8 | ||
|
|
83075fd21d | ||
|
|
5cedd30df6 | ||
|
|
432bd7458e | ||
|
|
9188bb42e2 | ||
|
|
c6be5a46a2 | ||
|
|
723b910fa3 | ||
|
|
9f306cfbb5 | ||
|
|
f91f98aae4 | ||
|
|
c84fbddaca | ||
|
|
ea585d0f5b | ||
|
|
1ac247400d | ||
|
|
b7b587fb8f | ||
|
|
7c5a2ebe3a | ||
|
|
53ac0a2963 | ||
|
|
4f3fe36d90 | ||
|
|
e82c661d50 | ||
|
|
e3c11407c3 | ||
|
|
8777e3f758 | ||
|
|
4a16e49672 |
No files matched your search
+2
-2
@@ -1,3 +1,3 @@
|
|||||||
/.lock-waf*
|
/.rscons*
|
||||||
/.waf*
|
|
||||||
/build/
|
/build/
|
||||||
|
/svi
|
||||||
+10
@@ -0,0 +1,10 @@
|
|||||||
|
configure do
|
||||||
|
check_d_compiler
|
||||||
|
end
|
||||||
|
|
||||||
|
build do
|
||||||
|
Environment.new do |env|
|
||||||
|
env["D_IMPORT_PATH"] << "src"
|
||||||
|
env.Program("svi", glob("src/**/*.d"))
|
||||||
|
end
|
||||||
|
end
|
||||||
@@ -0,0 +1,21 @@
|
|||||||
|
#!/usr/bin/env ruby
|
||||||
|
script = File.join(File.dirname(__FILE__), ".rscons-2.0.2-0b68dc7ecc5c1af24c17e903a52e8b90.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
|
||||||
|
#==>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 truncated
|
||||||
@@ -1,82 +0,0 @@
|
|||||||
#include "SvnRunner.h"
|
|
||||||
#include <stdlib.h>
|
|
||||||
#include <sys/types.h>
|
|
||||||
#include <sys/wait.h>
|
|
||||||
|
|
||||||
SvnRunner::SvnRunner(std::vector<std::string> arguments)
|
|
||||||
{
|
|
||||||
m_pid = 0;
|
|
||||||
int fd[2];
|
|
||||||
int pipe_rc = pipe(fd);
|
|
||||||
if (pipe_rc == -1)
|
|
||||||
{
|
|
||||||
perror("pipe");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
m_pid = fork();
|
|
||||||
if (m_pid == -1)
|
|
||||||
{
|
|
||||||
perror("fork");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
if (m_pid == 0)
|
|
||||||
{
|
|
||||||
close(fd[0]);
|
|
||||||
int dup2_rc = dup2(fd[1], STDOUT_FILENO);
|
|
||||||
if (dup2_rc == -1)
|
|
||||||
{
|
|
||||||
perror("dup2");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
char const * argv[arguments.size() + 2];
|
|
||||||
argv[0] = "svn";
|
|
||||||
argv[arguments.size() + 1] = NULL;
|
|
||||||
for (unsigned int i = 0; i < arguments.size(); i++)
|
|
||||||
{
|
|
||||||
argv[i + 1] = arguments[i].c_str();
|
|
||||||
}
|
|
||||||
int exec_rc = execvp("/usr/bin/svn", (char **)argv);
|
|
||||||
if (exec_rc == -1)
|
|
||||||
{
|
|
||||||
perror("exec");
|
|
||||||
exit(1);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
close(fd[1]);
|
|
||||||
m_n = 100;
|
|
||||||
m_line = (char *)malloc(m_n);
|
|
||||||
m_svn_fh = fdopen(fd[0], "r");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
const char * SvnRunner::get_line()
|
|
||||||
{
|
|
||||||
if (m_pid > 0)
|
|
||||||
{
|
|
||||||
ssize_t getline_rc = getline(&m_line, &m_n, m_svn_fh);
|
|
||||||
if (getline_rc == -1)
|
|
||||||
{
|
|
||||||
fclose(m_svn_fh);
|
|
||||||
int status;
|
|
||||||
int waitpid_rc = waitpid(m_pid, &status, 0);
|
|
||||||
if (waitpid_rc == -1)
|
|
||||||
{
|
|
||||||
perror("waitpid");
|
|
||||||
}
|
|
||||||
m_status = WEXITSTATUS(status);
|
|
||||||
free(m_line);
|
|
||||||
m_pid = 0;
|
|
||||||
return NULL;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
return m_line;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
return NULL;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,19 +0,0 @@
|
|||||||
#include <string>
|
|
||||||
#include <vector>
|
|
||||||
#include <unistd.h>
|
|
||||||
#include <stdio.h>
|
|
||||||
|
|
||||||
class SvnRunner
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
SvnRunner(std::vector<std::string> arguments);
|
|
||||||
const char * get_line();
|
|
||||||
int status() { return m_status; }
|
|
||||||
|
|
||||||
protected:
|
|
||||||
char * m_line;
|
|
||||||
size_t m_n;
|
|
||||||
pid_t m_pid;
|
|
||||||
FILE * m_svn_fh;
|
|
||||||
int m_status;
|
|
||||||
};
|
|
||||||
@@ -0,0 +1,8 @@
|
|||||||
|
import svn_runner;
|
||||||
|
import std.stdio;
|
||||||
|
|
||||||
|
int main(string[] args)
|
||||||
|
{
|
||||||
|
auto r = run_svn(["ls", "https://vcs.gentex.com/svn/embedded_sw"]);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
-31
@@ -1,31 +0,0 @@
|
|||||||
#include <iostream>
|
|
||||||
#include "SvnRunner.h"
|
|
||||||
#include <getopt.h>
|
|
||||||
#include "svi.h"
|
|
||||||
|
|
||||||
using namespace std;
|
|
||||||
|
|
||||||
enum
|
|
||||||
{
|
|
||||||
OPT_VERSION = 256,
|
|
||||||
};
|
|
||||||
|
|
||||||
int main(int argc, char * argv[])
|
|
||||||
{
|
|
||||||
static char const optstring[] = "+";
|
|
||||||
static struct option const longopts[] = {
|
|
||||||
{"version", no_argument, NULL, OPT_VERSION},
|
|
||||||
{NULL, 0, NULL, 0},
|
|
||||||
};
|
|
||||||
for (int o; (o = getopt_long(argc, argv, optstring, longopts, NULL)) != -1; )
|
|
||||||
{
|
|
||||||
switch (o)
|
|
||||||
{
|
|
||||||
case OPT_VERSION:
|
|
||||||
printf(APPLICATION_NAME " version " APPLICATION_VERSION "\n");
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
@@ -1,7 +0,0 @@
|
|||||||
#ifndef SVI_H
|
|
||||||
#define SVI_H
|
|
||||||
|
|
||||||
#define APPLICATION_NAME "svi"
|
|
||||||
#define APPLICATION_VERSION "0.0.0alpha0"
|
|
||||||
|
|
||||||
#endif
|
|
||||||
@@ -0,0 +1,36 @@
|
|||||||
|
import std.process;
|
||||||
|
import std.stdio;
|
||||||
|
|
||||||
|
struct Result
|
||||||
|
{
|
||||||
|
int status;
|
||||||
|
char[] stdout;
|
||||||
|
char[] stderr;
|
||||||
|
}
|
||||||
|
|
||||||
|
private File nullfd()
|
||||||
|
{
|
||||||
|
return File("/dev/null", "r");
|
||||||
|
}
|
||||||
|
|
||||||
|
Result run_svn(string[] args)
|
||||||
|
{
|
||||||
|
string[] command = ["svn", "--non-interactive", "--no-auth-cache"] ~ args;
|
||||||
|
auto stdout_pipe = pipe();
|
||||||
|
auto stderr_pipe = pipe();
|
||||||
|
auto pid = spawnProcess(command, nullfd(), stdout_pipe.writeEnd,
|
||||||
|
stderr_pipe.writeEnd);
|
||||||
|
char[] stdout;
|
||||||
|
char[] stderr;
|
||||||
|
char[] buf;
|
||||||
|
while (stdout_pipe.readEnd.readln(buf))
|
||||||
|
{
|
||||||
|
stdout ~= buf;
|
||||||
|
}
|
||||||
|
while (stderr_pipe.readEnd.readln(buf))
|
||||||
|
{
|
||||||
|
stderr ~= buf;
|
||||||
|
}
|
||||||
|
int status = wait(pid);
|
||||||
|
return Result(status, stdout, stderr);
|
||||||
|
}
|
||||||
@@ -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.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
|
|
||||||
#<==
|
|
||||||
@@ -1,12 +0,0 @@
|
|||||||
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 = "svi",
|
|
||||||
source = bld.path.ant_glob("src/**/*.cc"),
|
|
||||||
cxxflags = ["-Wall", "-std=gnu++14"])
|
|
||||||
Reference in new issue
Block a user