From a800b3314c97315f530bcf8ae17480785ba215c7 Mon Sep 17 00:00:00 2001 From: Radim Kolar <> Date: Sun, 7 Sep 2014 19:36:02 +0200 Subject: [PATCH] initial copy of jade.py --- SConstruct | 11 +++++++++-- site_scons/jade.py | 24 ++++++++++++++++++++++++ 2 files changed, 33 insertions(+), 2 deletions(-) create mode 100644 site_scons/jade.py diff --git a/SConstruct b/SConstruct index b68b319..6eeb5b2 100644 --- a/SConstruct +++ b/SConstruct @@ -62,6 +62,7 @@ from clients import checkForBuildingClients from sysconfdir import checkForUserSysconfdir from sgmlformat import checkForSGMLFMT from largefiles import enableLargeFiles +from jade import checkDSSSLProcessor conf = Configure(env,{'checkForCCOption':checkForCCOption, 'MAINTAINER_MODE':checkForMaintainerMode, @@ -77,7 +78,8 @@ conf = Configure(env,{'checkForCCOption':checkForCCOption, 'autodetectMandir':autodetectMandir, 'checkForUserSysconfdir':checkForUserSysconfdir, 'checkForBuildingClients':checkForBuildingClients, - 'checkForSGMLFMT':checkForSGMLFMT + 'checkForSGMLFMT':checkForSGMLFMT, + 'checkDSSSLProcessor':checkDSSSLProcessor }) if not conf.CheckCC(): Exit(1) # check for CC options @@ -96,7 +98,12 @@ for option in Split(""" -fmacro-backtrace-limit=2 -Wno-cast-align -Wno-pointer-sign """): conf.checkForCCOption(option) -SGML=conf.checkForSGMLFMT() +if conf.checkDSSSLProcessor("jade"): + JADE = "jade" +elif conf.checkDSSSLProcessor("openjade"): + JADE = "openjade" +else: + JADE = False # Portability build time config if conf.CheckFunc('srandomdev'): conf.env.Append(CPPFLAGS = '-DHAVE_SRANDOMDEV') diff --git a/site_scons/jade.py b/site_scons/jade.py new file mode 100644 index 0000000..3eee540 --- /dev/null +++ b/site_scons/jade.py @@ -0,0 +1,24 @@ +# +# SCons JADE executable check +# +# Version 1.0 +# 07-Sep-2014 +# + +from SCons.Script import ARGUMENTS,Touch,Delete,Command +import subprocess +import SCons.Action +import SCons.SConf + +def checkDSSSLProcessor(check, name="jade"): + """Check if DSSSL engine is working. Returns True or False.""" + check.Message("Checking if DSSSL processor "+name+" works... ") + try: + echo = subprocess.Popen(('/bin/echo','""'), stdout = subprocess.PIPE ) + version = subprocess.check_output((name, '-v'), stdin = echo.stdout, stderr = subprocess.STDOUT ) + except subprocess.CalledProcessError as e: + if "version" in e.output: + check.Result(True) + return True + check.Result(False) + return False