#! /usr/bin/env python """ help -> scons -h compile -> scons clean -> scons -c install -> scons install uninstall -> scons -c install configure -> scons configure prefix=/tmp/ita debug=full extraincludes=/usr/local/include:/tmp/include prefix=/usr/local Run from a subdirectory -> scons -u The variables are saved automatically after the first run (look at cache/kde.cache.py, ..) """ ################################################################### # LOAD THE ENVIRONMENT AND SET UP THE TOOLS ################################################################### ## Load the builders in config env = Environment( tools=['default', 'generic', 'kde'], toolpath=['./', './admin']) #env = Environment( tools=['default', 'generic', 'kde', 'othertool'], toolpath=['./', './admin']) env.TDEuse("environ rpath") #env.TDEuse("environ rpath lang_qt thread nohelp") ################################################################### # SCRIPTS FOR BUILDING THE TARGETS ################################################################### dirs=""" src doc """ env.subdirs(dirs) ## Process the translations in the po/ directory env.TDElang('po/', '%{APPNAMELC}') ################################################################### # CONVENIENCE FUNCTIONS TO EMULATE 'make dist' and 'make distclean' ################################################################### ### To make a tarball of your masterpiece, use 'scons dist' if 'dist' in COMMAND_LINE_TARGETS: ## The target scons dist requires the python module shutil which is in 2.3 env.EnsurePythonVersion(2, 3) import os APPNAME = 'bksys' VERSION = os.popen("cat VERSION").read().rstrip() FOLDER = APPNAME+'-'+VERSION ARCHIVE = FOLDER+'.tar.bz2' ## If your app name and version number are defined in 'version.h', use this instead: ## (contributed by Dennis Schridde devurandom@gmx@net) #import re #INFO = dict( re.findall( '(?m)^#define\s+(\w+)\s+(.*)(?<=\S)', open(r"version.h","rb").read() ) ) #APPNAME = INFO['APPNAME'] #VERSION = INFO['VERSION'] import shutil import glob ## check if the temporary directory already exists if os.path.isdir(FOLDER): shutil.rmtree(FOLDER) if os.path.isfile(ARCHIVE): os.remove(ARCHIVE) ## create a temporary directory startdir = os.getcwd() shutil.copytree(startdir, FOLDER) ## remove our object files first os.popen("find "+FOLDER+" -name \"*cache*\" | xargs rm -rf") os.popen("find "+FOLDER+" -name \"*.pyc\" | xargs rm -f") #os.popen("pushd %s && scons -c " % FOLDER) # TODO ## CVS cleanup os.popen("find "+FOLDER+" -name \"CVS\" | xargs rm -rf") os.popen("find "+FOLDER+" -name \".cvsignore\" | xargs rm -rf") ## Subversion cleanup os.popen("find %s -name .svn -type d | xargs rm -rf" % FOLDER) ## GNU Arch cleanup os.popen("find "+FOLDER+" -name \"{arch}\" | xargs rm -rf") os.popen("find "+FOLDER+" -name \".arch-i*\" | xargs rm -rf") ## Create the tarball (coloured output) print "\033[92m"+"Writing archive "+ARCHIVE+"\033[0m" os.popen("tar cjf "+ARCHIVE+" "+FOLDER) ## Remove the temporary directory if os.path.isdir(FOLDER): shutil.rmtree(FOLDER) env.Default(None) env.Exit(0) ### Emulate "make distclean" if 'distclean' in COMMAND_LINE_TARGETS: ## Remove the cache directory import os, shutil if os.path.isdir(env['CACHEDIR']): shutil.rmtree(env['CACHEDIR']) os.popen("find . -name \"*.pyc\" | xargs rm -rf") env.Default(None) env.Exit(0)