|
73 | 73 | ctypes.c_void_p: 'void *'
|
74 | 74 | })
|
75 | 75 |
|
76 |
| -TCCPATH = os.path.abspath('./linux/lib/tcc') |
77 |
| -TCCLIB = os.path.abspath('./linux/lib/libtcc.so') |
| 76 | +MODULEDIR = os.path.dirname(__file__) |
| 77 | +TCCPATH = os.path.join(MODULEDIR, './linux/lib/tcc') |
| 78 | +TCCLIB = os.path.join(MODULEDIR, './linux/lib/libtcc.so') |
78 | 79 | OUTPUT_TYPES = {
|
79 | 80 | 'memory': 1,
|
80 | 81 | 'exe' : 2,
|
|
84 | 85 | WINDOWS = False
|
85 | 86 | if sys.platform == 'win32':
|
86 | 87 | WINDOWS = True
|
87 |
| - TCCPATH = os.path.abspath('win32') |
88 |
| - TCCLIB = os.path.abspath('win32\libtcc.dll') |
| 88 | + TCCPATH = os.path.join(MODULEDIR, 'win32') |
| 89 | + TCCLIB = os.path.join(MODULEDIR, 'win32\libtcc.dll') |
89 | 90 |
|
90 | 91 |
|
91 | 92 | # tcc error function type
|
@@ -411,6 +412,8 @@ def _set_output(self, output):
|
411 | 412 |
|
412 | 413 | def _error(self):
|
413 | 414 | def cb(_, msg):
|
| 415 | + # TODO: better error msg handling |
| 416 | + print 'tcc:', msg |
414 | 417 | self.error_message = msg
|
415 | 418 | self._error_function = ERROR_FUNC(cb)
|
416 | 419 | return self._error_function
|
@@ -614,13 +617,7 @@ def run(self, arguments):
|
614 | 617 | argc = len(arguments)
|
615 | 618 | argv = (ctypes.POINTER(ctypes.c_char) * argc)()
|
616 | 619 | argv[:] = [ctypes.create_string_buffer(s) for s in arguments]
|
617 |
| - result = self.tcc.lib.tcc_run(self.ctx, argc, argv) |
618 |
| - if self.error_message: |
619 |
| - msg = self.error_message |
620 |
| - self.error_message = '' |
621 |
| - raise TccException('\nrun error\n' + msg) |
622 |
| - self._run = True |
623 |
| - return result |
| 620 | + return self.tcc.lib.tcc_run(self.ctx, argc, argv) |
624 | 621 |
|
625 | 622 |
|
626 | 623 | class TinyCC(object):
|
|
0 commit comments