#! /usr/bin/env python ## This script demonstrates how to build and install ## a simple kde program having KconfigXT settings ## with scons ## ## Thomas Nagy, 2004, 2005 ## This file can be reused freely for any project (see COPYING) ############################ ## load the config ## Use the environment and the tools set in the top-level ## SConstruct file (set with 'Export') - this is very important Import( 'env' ) myenv=env.Clone() import os from SCons.Script.SConscript import SConsEnvironment ############################# ## the programs to build # The sources for our program - only .ui, .skel and .cpp are accepted abakus_sources = """ abakus.cpp abakuslistview.cpp dragsupport.cpp editor.cpp evaluator.cpp function.cpp lexer_lex.cpp mainwindow.cpp node.cpp numerictypes.cpp parser_yacc.cpp result.cpp resultlistview.cpp resultlistviewtext.cpp rpnmuncher.cpp valuemanager.cpp dcopIface.skel """ if myenv.get('mpfr', 'no') == 'yes': myenv.Append(LIBS = ['mpfr', 'gmp']) else: abakus_sources = abakus_sources + " hmath.cpp number.c" myenv.KDEprogram( "abakus", abakus_sources ) myenv.KDEicon( 'abakus' ) # Mark these as being created by flex and bison if it's installed. if myenv.Dictionary().has_key('PARSER_INCLUDED'): myenv.CXXFile( "lexer_lex.cpp", "lexer.ll" ) myenv.CXXFile( "parser_yacc.cpp", "parser.yy", YACCFLAGS="-d" ) if myenv['HAVE_ASNEEDED']: myenv.Append(LINKFLAGS = '-Wl,--as-needed') myenv.Append(CXXFLAGS = '-Wno-non-virtual-dtor -I/usr/include/tqt -include tqt.h -DTQT_THREAD_SUPPORT') ############################ ## Customization ## Additional include paths for compiling the source files ## Always add '../' (top-level directory) because moc makes code that needs it myenv.KDEaddpaths_includes('#/src/ #/') ## Necessary libraries to link against ## FIXME if os.path.isfile("/usr/include/tqt3/qlayout.h"): myenv.KDEaddlibs( 'tqt-mt tqt kio tdecore tdeprint tdeui DCOP' ) else: myenv.KDEaddlibs( 'qt-mt tqt kio tdecore tdeprint tdeui DCOP' ) ############################# ## Data to install ## The ui.rc file and the tips go into datadir/appname/ myenv.KDEinstall( 'KDEDATA', 'abakus', 'abakusui.rc' ) ## Warning : there is a difference between the normal destop file used for the menu ## and the servicetype desktop file, so they go in different directories ## you will find more information in 'test3' myenv.KDEinstall( 'KDEMENU', 'Utilities', 'abakus.desktop')