31 lines
1.6 KiB
Python
31 lines
1.6 KiB
Python
# -*- python -*-
|
|
import os, os.path
|
|
Import('env libhammer_shared testruns')
|
|
|
|
phpenv = env.Clone(IMPLICIT_COMMAND_DEPENDENCIES = 0)
|
|
|
|
php_include = os.popen("php-config --include-dir").read().rstrip()
|
|
phpenv.Append(CPPPATH = ['../../', php_include, os.path.join(php_include, 'main'), os.path.join(php_include, 'Zend'), os.path.join(php_include, 'TSRM')])
|
|
phpenv.Append(CCFLAGS = ['-fpic', '-DSWIG', '-Wno-all', '-Wno-extra', '-Wno-error'])
|
|
phpenv.Append(LIBS = ['hammer'])
|
|
phpenv.Append(LIBPATH = ['../../'])
|
|
|
|
swig_src = phpenv.Command("hammer.i", "../swig/hammer.i", Copy("$TARGET", "$SOURCE"))
|
|
bindings_src = phpenv.Command(['hammer.php', 'hammer_wrap.c', 'php_hammer.h'], 'hammer.i', 'swig -php -DHAMMER_INTERNAL__NO_STDARG_H -Isrc/ $SOURCE')
|
|
libhammer_php = phpenv.SharedLibrary('hammer', ['hammer_wrap.c'])
|
|
Default(swig_src, bindings_src, libhammer_php)
|
|
|
|
phptestenv = phpenv.Clone()
|
|
phptestenv['ENV']['LD_LIBRARY_PATH'] = os.path.dirname(str(libhammer_shared[0]))
|
|
phptests = ('Tests')
|
|
phpextprefix = os.popen("php-config --extension-dir").read().rstrip()
|
|
phplib = phptestenv.Command(os.path.join(phpextprefix, "hammer.so"), libhammer_php, Copy("$TARGET", "$SOURCE"))
|
|
AlwaysBuild(phplib)
|
|
phpprefix = os.popen("php-config --prefix").read().rstrip()
|
|
phpincl = phptestenv.Command(os.path.join(phpprefix, "hammer.ini"), "hammer.ini", Copy("$TARGET", "$SOURCE"))
|
|
phptestexec = phptestenv.Command(phptests, [phplib, phpincl], "phpenv exec phpunit -v --include-path " + os.path.dirname(libhammer_php[0].path) +" src/bindings/php/Tests")
|
|
phptest = Alias("testphp", [phptestexec], phptestexec)
|
|
AlwaysBuild(phptest)
|
|
testruns.append(phptest)
|
|
|
|
|