summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorgregory guy <gregory-tde@laposte.net>2021-03-03 21:42:42 +0100
committerMichele Calgaro <michele.calgaro@yahoo.it>2021-03-05 10:42:12 +0900
commit38c6a406f3b082bcd57edf1c477564d26a9cb6c8 (patch)
tree7c418ed8bff0857ac221ce748a576a57a2f08ddf
parent02835b2f5219a8eb8c6c9477bd6dd7ce7d54ac0e (diff)
downloadkstreamripper-38c6a406f3b082bcd57edf1c477564d26a9cb6c8.tar.gz
kstreamripper-38c6a406f3b082bcd57edf1c477564d26a9cb6c8.zip
Drop scons build support.
Deleted empty file ChangeLog. Update some cmake files with latest macros. Add basic cmake build instructions. Few cosmetics. Signed-off-by: gregory guy <gregory-tde@laposte.net> (cherry picked from commit 48deaabecefea835f81c9e6e8ba73ee8881c314c)
-rw-r--r--CMakeLists.txt4
-rw-r--r--ChangeLog1
-rw-r--r--INSTALL101
-rw-r--r--Makefile20
-rw-r--r--README23
-rw-r--r--SConstruct234
-rw-r--r--admin/generic.py161
-rw-r--r--admin/kde.py736
-rw-r--r--doc/SConscript83
-rw-r--r--kde.py857
-rw-r--r--po/CMakeLists.txt18
-rw-r--r--po/SConscript24
-rwxr-xr-xpo/messages.sh60
-rw-r--r--scons-mini.tar.bz2bin58214 -> 0 bytes
-rw-r--r--scons-mini.tar.bz2.cdbs-config_list0
-rw-r--r--src/CMakeLists.txt5
-rw-r--r--src/SConscript68
-rwxr-xr-xunpack_local_scons.sh61
18 files changed, 55 insertions, 2401 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index b3a33a7..542bfe1 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -41,7 +41,7 @@ tde_setup_paths( )
##### optional stuff
-option( WITH_ALL_OPTIONS "Enable all optional support" OFF )
+option( WITH_ALL_OPTIONS "Enable all optional support" OFF )
option( WITH_GCC_VISIBILITY "Enable fvisibility and fvisibility-inlines-hidden" ${WITH_ALL_OPTIONS} )
@@ -69,7 +69,7 @@ set( CMAKE_MODULE_LINKER_FLAGS "${CMAKE_MODULE_LINKER_FLAGS} -Wl,--no-undefined"
##### directories
add_subdirectory( src )
-tde_conditional_add_subdirectory( BUILD_DOC doc )
+tde_conditional_add_subdirectory( BUILD_DOC doc )
tde_conditional_add_subdirectory( BUILD_TRANSLATIONS po )
diff --git a/ChangeLog b/ChangeLog
deleted file mode 100644
index 0519ecb..0000000
--- a/ChangeLog
+++ /dev/null
@@ -1 +0,0 @@
- \ No newline at end of file
diff --git a/INSTALL b/INSTALL
index 2dfdcc1..855bbd5 100644
--- a/INSTALL
+++ b/INSTALL
@@ -1,84 +1,17 @@
-sctest REQUIREMENTS
-------------------------
-
-tde is needed to run sctest
-
-To compile sctest, the tde development packages
-are needed: tdelibs-devel, tdebase-devel and python
-
-scons is also needed http://www.scons.org
-(this tool also used by Blender, ..)
-Make sure scons is at least v0.96.1, otherwise
-the compilation will fail. In case if you do not have
-it, a minimum distribution is provided (see SCONS below)
-
--> One should only have to run :
-$ scons
-# scons install
-(do "scons install" as root - the menus may not
-show up if you skip this step)
-
-
-SCONS
------
-
--> If scons is missing, use the one bundled with PROGRAMNAME :
-./unpack_local_scons.sh
-python scons.py
-python scons.py install
-(run the last command as root)
-
-
--> For your convenience, a quick makefile is created :
-./unpack_local_scons.sh
-make
-make install
-
-
-USEFUL SCONS COMMANDS
----------------------
-
-build the targets : scons
-install them : scons install
-clean the project : scons -c
-uninstall : scons -c install
-build in parallel : scons -j2
-
-CONFIGURATION NOTES
--------------------
-
-The installation scripts are relying on the tde-config program.
-The programs tde-config, qmake, uic and moc must be accesssible
-through your PATH.
-
-Qt and tde may not be installed as expected (in QTDIR and TDEDIR)
-So until tde-config is able to give that information, you may
-have to give those paths.
-
-Here are some examples :
-On Fedora/Redhat
- scons configure kdeincludes=/usr/include/tde/
-On Debian
- scons configure qtincludes=/usr/include/qt/ kdeinclude=/usr/include/tde/
-To install in some particular location with additional include paths
- scons configure prefix=~/tmp extraincludes=/tmp/include:/usr/local/include
-
-For more options to tune the build look at the .py files available on
-the top-level directory :
-generic.py, kde.py, ...
-
-The build system is based on bksys, a build system that replaces
-autoconf, automake and make in a row. Feel free to report your opinion
-about it to the authors.
-
-BUILDING RPMS OR DEBS WITH CHECKINSTALL
----------------------------------------
-
-With checkinstall 1.6, use
-$ scons
-# checkinstall --fstrans=no --nodoc scons install
-# scons uninstall
-
----------------------------------------
-enjoy KStreamRipper
-Michael Goettsche
+Basic Installation
+==================
+
+kstreamripper relies on cmake to build.
+
+Here are suggested default options:
+
+ -DCMAKE_EXPORT_COMPILE_COMMANDS="ON" \
+ -DCMAKE_INSTALL_PREFIX="/opt/trinity" \
+ -DCONFIG_INSTALL_DIR="/etc/trinity" \
+ -DSYSCONF_INSTALL_DIR="/etc/trinity" \
+ -DXDG_MENU_INSTALL_DIR="/etc/xdg/menus" \
+ -DCMAKE_BUILD_TYPE=RelWithDebInfo \
+ -DCMAKE_VERBOSE_MAKEFILE="ON" \
+ -DCMAKE_SKIP_RPATH="OFF" \
+ -DBUILD_ALL="ON" \
+ -DWITH_ALL_OPTIONS="ON"
diff --git a/Makefile b/Makefile
deleted file mode 100644
index 8df7d48..0000000
--- a/Makefile
+++ /dev/null
@@ -1,20 +0,0 @@
-all:
- @/usr/bin/scons -Q
-
-# it is also possible to use
-# @/usr/bin/scons -Q -j4
-
-install:
- @/usr/bin/scons -Q install
-
-clean:
- @/usr/bin/scons -Q -c
-
-uninstall:
- @/usr/bin/scons -Q -c install
-
-dist:
- @/usr/bin/scons -Q dist
-
-distclean:
- @/usr/bin/scons -Q distclean
diff --git a/README b/README
index 638915f..8f45f72 100644
--- a/README
+++ b/README
@@ -1 +1,22 @@
-see INSTALL
+
+ kstreamripper - a TDE frontend for streamripper
+
+
+KStreamRipper is a small frontend for the streamripper command
+line utility (http://streamripper.sourceforge.net).
+Streamripper captures internet shoutcast radio streams on your harddisk
+and splits them up in mp3 files.
+KStreamRipper helps you with managing/ripping your preferred streams.
+
+
+
+ CONTRIBUTING
+==============
+
+If you wish to contribute to KStreamRipper (TDE), you might do so:
+
+- TDE Gitea Workspace (TGW) collaboration tool.
+ https://mirror.git.trinitydesktop.org/gitea
+
+- TDE Weblate Translation Workspace (TWTW) collaboration tool.
+ https://mirror.git.trinitydesktop.org/weblate
diff --git a/SConstruct b/SConstruct
deleted file mode 100644
index a699008..0000000
--- a/SConstruct
+++ /dev/null
@@ -1,234 +0,0 @@
-#! /usr/bin/env python
-## The kde detection is located in kde.py (have a look!)
-## Delete the comments following as you see it fit
-
-"""
-scons files are python scripts, comments begin by a "#" symbol
-or are enclosed between sequences of triple quotes, so
-this is a comment :)
-
-There is a lot of documentation and comments, but you can
-remove them when you convert your program
-"""
-
-"""
-----------------------------------
-How to enjoy bksys full and plenty
-(and forget about the autohell ? :)
------------------------------------
-
-The program scons is usually launched as "scons"
-When it is not intalled globally, one can run
-"python scons.py" instead (ie : to use the local scons
-that comes with bksys - try ./unpack_local_scons.sh)
-
-To compile the project, you will then only need to launch
-scons on the top-level directory, the scripts find and
-cache the proper environment automatically :
--> scons
-(or python scons.py)
-
-To clean the project
--> scons -c
-(or python scons.py -c)
-
-To install the project
--> scons install
-(or python scons.py scons install)
-
-To uninstall the project
--> scons -c install
-
-To compile while being in a subdirectory
--> cd src; scons -u
-
-To (re)configure the project and give particular arguments, use ie :
--> scons configure debug=1
--> scons configure prefix=/tmp/ita debug=full extraincludes=/usr/local/include:/tmp/include prefix=/usr/local
-or -> python scons.py configure debug=1
-etc ..
-The variables are saved automatically after the first run
-(look at kde.cache.py, ..)
-
-Here is a quick list of options used (look at generic.py and kde.py) :
-prefix
-exec_prefix
-datadir
-libdir
-kdeincludes
-qtincludes
-tdelibs
-qtlibs
-extraincludes (a list of paths separated by ':')
-
-"""
-
-###########################################
-## Common section, for loading the tools
-
-## Load the builders in config
-env = Environment(TARGS=COMMAND_LINE_TARGETS, ARGS=ARGUMENTS, tools=['default', 'generic', 'kde'], toolpath=['./', './admin'])
-#env = Environment(TARGS=COMMAND_LINE_TARGETS, ARGS=ARGUMENTS, tools=['default', 'generic', 'kde', 'cg'], toolpath=['./'])
-#env = Environment(TARGS=COMMAND_LINE_TARGETS, ARGS=ARGUMENTS, tools=['default', 'generic', 'kde', 'sound'], toolpath=['./'])
-#env = Environment(TARGS=COMMAND_LINE_TARGETS, ARGS=ARGUMENTS, tools=['default', 'generic', 'kde', 'libxml'], toolpath=['./'])
-
-## the configuration should be done by now, quit
-if 'configure' in COMMAND_LINE_TARGETS:
- env.Exit(0)
-
-"""
-Overview of the module system :
-
-Each module (kde.py, generic.py, sound.py..) tries to load a stored
-configuration when run. If the stored configuration does not exist
-or if 'configure' is given on the command line (scons configure),
-the module launches the verifications and detectioins and stores
-the results. Modules also call exit when the detection fail.
-
-For example, kde.py stores its config into kde.cache.py
-
-This has several advantages for both developers and users :
- - Users do not have to run ./configure to compile
- - The build is insensitive to environment changes
- - The cache maintains the objects so the config can be changed often
- - Each module adds its own help via env.Help("message")
-"""
-
-## Use the variables available in the environment - unsafe, but moc, meinproc need it :-/
-import os
-env.AppendUnique( ENV = os.environ )
-
-## The target make dist requires the python module shutil which is in 2.3
-env.EnsurePythonVersion(2, 3)
-
-## Bksys requires scons 0.96
-env.EnsureSConsVersion(0, 96)
-
-"""
-Explanation of the 'env = Environment...' line :
-* the command line arguments and targets are stored in env['TARGS'] and env['ARGS'] for use by the tools
-* the part 'tools=['default', 'generic ..' detect and load the necessary functions for doing the things
-* the part "toolpath=['./']" tells that the tools can be found in the current directory (generic.py, kde.py ..)
-"""
-
-"""
-To load more configuration modules one should only have to add the appropriate tool
-ie: to detect alsa and add the proper cflags, ldflags ..
- a file alsa.py file will be needed, and one should then use :
- env = Environment(TARGS=COMMAND_LINE_TARGETS, ARGS=ARGUMENTS, tools=['default', 'generic', 'kde', 'alsa'], toolpath=['./'])
-
-You can also load environments that are targetted to different platforms
-ie: if os.sys.platform = "darwin":
- env = Environment(...
- elsif os.sys.platform = "linux":
- env = Environment(...
-
-"""
-
-## Setup the cache directory - this avoids recompiling the same files over and over again
-## this is very handy when working with cvs
-env.CacheDir('cache')
-
-## Avoid spreading .sconsign files everywhere - keep this line
-env.SConsignFile('scons_signatures')
-
-## If you need more libs and they rely on pkg-config
-## ie: add support for GTK (source: the scons wiki on www.scons.org)
-# env.ParseConfig('pkg-config --cflags --libs gtk+-2.0')
-
-"""
-This tell scons that there are no rcs or sccs files - this trick
-can speed up things a bit when having lots of #include
-in the source code and for network file systems
-"""
-env.SourceCode(".", None)
-
-dirs = [ '.', 'src', 'po', 'doc']
-
-for dir in dirs:
- env.SourceCode(dir, None)
-
-## If we had only one program (named kvigor) to build,
-## we could add before exporting the env (some kde
-## helpers in kde.py need it) :
-# env['APPNAME'] = 'kvigor'
-
-## Use this define if you are using the kde translation scheme (.po files)
-env.Append( CPPFLAGS = ['-DQT_NO_TRANSLATION'] )
-
-## Add this define if you want to use qthreads
-#env.Append( CPPFLAGS = ['-DQT_THREAD_SUPPORT', '-D_REENTRANT'] )
-
-## To use kdDebug(intvalue)<<"some trace"<<endl; you need to define -DDEBUG - it is done
-## in generic.py automatically when you do scons configure debug=1
-
-## There are also many other defines :
-### -D_XOPEN_SOURCE=500 -D_BSD_SOURCE -DQT_CLEAN_NAMESPACE -DQT_NO_ASCII_CAST -DQT_NO_STL -DQT_NO_COMPAT -DQT_NO_TRANSLATION
-# where are they documented ? if you know, mail tnagyemail-mail@yahoo@fr please
-
-## Important : export the environment so that SConscript files can the
-## configuration and builders in it
-Export("env")
-
-
-####################################################
-## Process the SConscript files to build the targets
-## the sconscript files are comparable to Makefile.am_s
-## except that no makefile is generated here :)
-
-env.SConscript("src/SConscript")
-env.SConscript("doc/SConscript")
-env.SConscript("po/SConscript")
-
-####################################################
-## Quick helper to distribute the program
-
-"""
-'scons dist' creates a tarball named bksys-version.tar.bz2
-containing the source code - this is handy
-do not forget to remove the object files by scons -c
-"""
-
-### To make a tarball of your sctest
-if 'dist' in COMMAND_LINE_TARGETS:
-
- APPNAME = 'sctest'
- VERSION = os.popen("cat VERSION").read().rstrip()
- FOLDER = APPNAME+'-'+VERSION
- ARCHIVE = FOLDER+'.tar.bz2'
-
- GREEN ="\033[92m"
- NORMAL ="\033[0m"
-
- import shutil
- import glob
-
- ## check if the temporary directory already exists
- if os.path.isdir(FOLDER):
- shutil.rmtree(FOLDER)
-
- ## create a temporary directory
- startdir = os.getcwd()
- shutil.copytree(startdir, FOLDER)
-
- ## remove the unnecessary files
- os.popen("find "+FOLDER+" -name \"{arch}\" | xargs rm -rf")
- os.popen("find "+FOLDER+" -name \".arch-ids\" | xargs rm -rf")
- os.popen("find "+FOLDER+" -name \".arch-inventory\" | xargs rm -f")
- os.popen("find "+FOLDER+" -name \"sconsign*\" | xargs rm -f")
- os.popen("find "+FOLDER+" -name \"*cache*\" | xargs rm -rf")
- os.popen("find "+FOLDER+" -name \"kdiss*-data\" | xargs rm -rf")
- os.popen("find "+FOLDER+" -name \"*.pyc\" | xargs rm -f")
- os.popen("rm -f "+FOLDER+"/config.py*")
-
- ## make the tarball
- print(GREEN+"Writing archive "+ARCHIVE+NORMAL)
- os.popen("tar cjf "+ARCHIVE+" "+FOLDER)
-
- ## remove the temporary directory
- if os.path.isdir(FOLDER):
- shutil.rmtree(FOLDER)
-
- env.Default(None)
- env.Exit(0)
-
diff --git a/admin/generic.py b/admin/generic.py
deleted file mode 100644
index 1897bf0..0000000
--- a/admin/generic.py
+++ /dev/null
@@ -1,161 +0,0 @@
-## Thomas Nagy, 2005
-
-"""
-Detect and store the most common options
-* kdecxxflags : debug=1 (-g) or debug=full (-g3, slower)
- else use the user CXXFLAGS if any, - or -O2 by default
-* prefix : the installation path
-* extraincludes : a list of paths separated by ':'
-ie: scons configure debug=full prefix=/usr/local extraincludes=/tmp/include:/usr/local
-"""
-
-BOLD ="\033[1m"
-RED ="\033[91m"
-GREEN ="\033[92m"
-YELLOW ="\033[1m" #"\033[93m" # unreadable on white backgrounds
-CYAN ="\033[96m"
-NORMAL ="\033[0m"
-
-import os
-
-def exists(env):
- return true
-
-def generate(env):
- env.Help("""
-"""+BOLD+
-"""*** Generic options ***
------------------------"""+NORMAL+"""
-"""+BOLD+"""* debug """+NORMAL+""": debug=1 (-g) or debug=full (-g3, slower) else use environment CXXFLAGS, or -O2 by default
-"""+BOLD+"""* prefix """+NORMAL+""": the installation path
-"""+BOLD+"""* extraincludes """+NORMAL+""": a list of paths separated by ':'
-ie: """+BOLD+"""scons configure debug=full prefix=/usr/local extraincludes=/tmp/include:/usr/local
-"""+NORMAL)
-
- ## Bksys requires scons 0.96
- env.EnsureSConsVersion(0, 96)
-
- ## Global cache directory
- ## Put all project files in it so a rm -rf cache will clean up the config
- if not 'CACHEDIR' in env:
- env['CACHEDIR'] = os.getcwd()+'/cache/'
- if not os.path.isdir(env['CACHEDIR']):
- os.mkdir(env['CACHEDIR'])
-
- ## SCons cache directory
- ## this avoids recompiling the same files over and over again: very handy when working with cvs
- env.CacheDir(os.getcwd()+'/cache/objects')
-
- ## Avoid spreading .sconsign files everywhere - keep this line
- env.SConsignFile(env['CACHEDIR']+'/scons_signatures')
-
- # Special trick for installing rpms ...
- env['DESTDIR']=''
- if 'install' in env['TARGS'] and 'DESTDIR' in os.environ:
- env['DESTDIR']=os.environ['DESTDIR']+'/'
- print(CYAN+'** Enabling DESTDIR for the project ** ' + NORMAL + env['DESTDIR'])
-
- # load the options
- from SCons.Variables import Variables
- cachefile=env['CACHEDIR']+'generic.cache.py'
- opts = Variables(cachefile)
- opts.AddVariables(
- ( 'KDECCFLAGS', 'C flags' ),
- ( 'KDECXXFLAGS', 'debug level for the project : full or just anything' ),
- ( 'KDELINKFLAGS', 'additional link flags' ),
- ( 'PREFIX', 'prefix for installation' ),
- ( 'EXTRAINCLUDES', 'extra include paths for the project' ),
- ( 'ISCONFIGURED', 'is the project configured' ),
- )
- opts.Update(env)
-
- # use this to avoid an error message 'how to make target configure ?'
- env.Alias('configure', None)
-
- import SCons.Util
-
- # configure the environment if needed
- if 'configure' in env['TARGS'] or not 'ISCONFIGURED' in env:
- # be paranoid, unset existing variables
- if 'KDECXXFLAGS' in env:
- env.__delitem__('KDECXXFLAGS')
- if 'KDECCFLAGS' in env:
- env.__delitem__('KDECCFLAGS')
- if 'KDELINKFLAGS' in env:
- env.__delitem__('KDELINKFLAGS')
- if 'PREFIX' in env:
- env.__delitem__('PREFIX')
- if 'EXTRAINCLUDES' in env:
- env.__delitem__('EXTRAINCLUDES')
- if 'ISCONFIGURED' in env:
- env.__delitem__('ISCONFIGURED')
-
- if env['ARGS'].get('debug', None):
- debuglevel = env['ARGS'].get('debug', None)
- print(CYAN+'** Enabling debug for the project **' + NORMAL)
- if (debuglevel == "full"):
- env['KDECXXFLAGS'] = ['-DDEBUG', '-g3']
- else:
- env['KDECXXFLAGS'] = ['-DDEBUG', '-g']
- else:
- if 'CXXFLAGS' in os.environ:
- # user-defined flags (gentooers will be elighted)
- env['KDECXXFLAGS'] = SCons.Util.CLVar( os.environ['CXXFLAGS'] )
- env.Append( KDECXXFLAGS = ['-DNDEBUG', '-DNO_DEBUG'] )
- else:
- env.Append(KDECXXFLAGS = ['-O2', '-DNDEBUG', '-DNO_DEBUG'])
-
- if 'CFLAGS' in os.environ:
- env['KDECCFLAGS'] = SCons.Util.CLVar( os.environ['CFLAGS'] )
-
- ## FreeBSD settings (contributed by will at freebsd dot org)
- if os.uname()[0] == "FreeBSD":
- if 'PTHREAD_LIBS' in os.environ:
- env.AppendUnique( KDELINKFLAGS = SCons.Util.CLVar( os.environ['PTHREAD_LIBS'] ) )
- else:
- syspf = os.popen('/sbin/sysctl kern.osreldate')
- osreldate = int(syspf.read().split()[1])
- syspf.close()
- if osreldate < 500016:
- env.AppendUnique( KDELINKFLAGS = ['-pthread'])
- env.AppendUnique( KDECXXFLAGS = ['-D_THREAD_SAFE'])
- elif osreldate < 502102:
- env.AppendUnique( KDELINKFLAGS = ['-lc_r'])
- env.AppendUnique( KDECXXFLAGS = ['-D_THREAD_SAFE'])
- else:
- env.AppendUnique( KDELINKFLAGS = ['-pthread'])
-
- # User-specified prefix
- if env['ARGS'].get('prefix', None):
- env['PREFIX'] = env['ARGS'].get('prefix', None)
- print(CYAN+'** set the installation prefix for the project : ' + env['PREFIX'] +' **'+ NORMAL)
- elif 'PREFIX' in env:
- env.__delitem__('PREFIX')
-
- # User-specified include paths
- env['EXTRAINCLUDES'] = env['ARGS'].get('extraincludes', None)
- if env['ARGS'].get('extraincludes', None):
- print(CYAN+'** set extra include paths for the project : ' + env['EXTRAINCLUDES'] +' **'+ NORMAL)
- elif 'EXTRAINCLUDES' in env:
- env.__delitem__('EXTRAINCLUDES')
-
- env['ISCONFIGURED']=1
-
- # And finally save the options in the cache
- opts.Save(cachefile, env)
-
- if 'KDECXXFLAGS' in env:
- env.AppendUnique( CPPFLAGS = env['KDECXXFLAGS'] )
-
- if 'KDECCFLAGS' in env:
- env.AppendUnique( CCFLAGS = env['KDECCFLAGS'] )
-
- if 'KDELINKFLAGS' in env:
- env.AppendUnique( LINKFLAGS = env['KDELINKFLAGS'] )
-
- if 'EXTRAINCLUDES' in env:
- incpaths = []
- for dir in str(env['EXTRAINCLUDES']).split(':'):
- incpaths.append( dir )
- env.Append(CPPPATH = incpaths)
-
diff --git a/admin/kde.py b/admin/kde.py
deleted file mode 100644
index c1d2edf..0000000
--- a/admin/kde.py
+++ /dev/null
@@ -1,736 +0,0 @@
-#! /usr/bin/env python
-# more or less derived from scons qt.py
-# this version makes less scans over the data and is thus faster
-# it is less accurate however (when mocable classes become unmocable)
-# Thomas Nagy, 2004, 2005 <tnagy2^8@yahoo.fr>
-
-from time import *
-import SCons.Util
-import string
-
-import os, re
-
-BOLD ="\033[1m"
-RED ="\033[91m"
-GREEN ="\033[92m"
-YELLOW ="\033[1m" #"\033[93m" # unreadable on white backgrounds
-CYAN ="\033[96m"
-NORMAL ="\033[0m"
-
-# Returns the name of the shared object (i.e. libtdeui.so.4)
-# referenced by a libtool archive (like libtdeui.la)
-def getSOfromLA(lafile):
- contents = open(lafile, 'r').read()
- match = re.search("^dlname='([^']*)'$", contents, re.M)
- if match:
- return match.group(1)
- return None
-
-def exists(env):
- return True
-
-def detect_kde(env):
- """ Detect the qt and kde environment using tde-config mostly """
-
- prefix = env['ARGS'].get('prefix', None)
- execprefix = env['ARGS'].get('execprefix', None)
- datadir = env['ARGS'].get('datadir', None)
- libdir = env['ARGS'].get('libdir', None)
- kdeincludes= env['ARGS'].get('kdeincludes', None)
- tdelibs = env['ARGS'].get('tdelibs', None)
- qtincludes = env['ARGS'].get('qtincludes', None)
- tqtincludes= env['ARGS'].get('tqtincludes', None)
- qtlibs = env['ARGS'].get('qtlibs', None)
- tdedir = env['ARGS'].get('tdedir', None)
-
- ## Detect the tde libraries
- print("Checking for tde-config : ")
- str="which tde-config 2>/dev/null"
- if tdedir: str="which %s 2>/dev/null" % (tdedir+'/bin/tde-config')
- kde_config = os.popen(str).read().strip()
- if len(kde_config):
- print(GREEN + 'tde-config was found as ' + kde_config + NORMAL)
- else:
- if tdedir: print(RED + 'tde-config was NOT found in the folder given ' + tdedir + NORMAL)
- else: print(RED + 'tde-config was NOT found in your PATH' + NORMAL)
- print("Make sure kde is installed properly")
- print("(missing package tdebase-devel?)")
- env.Exit(1)
- if tdedir: env['TDEDIR']=tdedir
- else: env['TDEDIR'] = os.popen(kde_config+' -prefix').read().strip()
-
- print("Checking for tde version : ")
- tde_version = os.popen(kde_config+" --version|grep TDE").read().strip().split()[1]
- tde_major = tde_version.split('.')[0].lstrip('R')
- tde_minor = tde_version.split('.')[1]
- tde_patch = tde_version.split('.')[2]
- try:
- env['KDEm1']=int(tde_major)
- except:
- pass
- try:
- env['KDEm2']=int(tde_minor)
- except:
- pass
- try:
- env['KDEm3']=int(tde_patch)
- except:
- pass
- if int(tde_major) != 14:
- print(RED + tde_version)
- print(RED + "Your tde version might be too old" + NORMAL)
- print(RED + "Please make sure TDE is at least R14.0" + NORMAL)
- else:
- print(GREEN + tde_version + NORMAL)
-
- ## Detect the qt library
- print("Checking for the qt library : ")
- qtdir = os.getenv("QTDIR")
- if qtdir:
- print(GREEN + "qt is in " + qtdir + NORMAL)
- else:
- libdir = os.popen(kde_config + ' --expandvars --install lib').read().strip()
- libtdeuiSO = libdir+'/'+getSOfromLA(libdir+'/libtdeui.la')
- try:
- m = re.search('(.*)/lib/libqt.*', os.popen('ldd '+libtdeuiSO+' | grep libqt').read().strip().split()[2])
- except:
- m = re.search('(.*)/lib/libtqt.*', os.popen('ldd ' + libtdeuiSO + ' | grep libtqt').read().strip().split()[2])
- pass
- if m:
- qtdir = m.group(1)
- print(YELLOW+"qt was found as " + m.group(1) + NORMAL)
- else:
- print(RED+"qt was not found"+NORMAL)
- print(RED+"Please set QTDIR first (/usr/lib/qt3?)"+NORMAL)
- env.Exit(1)
- env['QTDIR'] = qtdir.strip()
-
- ## Find the necessary programs uic-tqt and moc
- print("Checking for uic-tqt : ")
- uic = qtdir + "/bin/uic-tqt"
- if os.path.isfile(uic):
- print(GREEN+"uic-tqt was found as "+uic+NORMAL)
- else:
- uic = os.popen("which uic-tqt 2>/dev/null").read().strip()
- if len(uic):
- print(YELLOW+"uic-tqt was found as "+uic+NORMAL)
- else:
- uic = os.popen("which uic-tqt 2>/dev/null").read().strip()
- if len(uic):
- print(YELLOW+"uic-tqt was found as "+uic+NORMAL)
- else:
- print(RED+"uic-tqt was not found - set QTDIR put it in your PATH ?"+NORMAL)
- env.Exit(1)
- env['QT_UIC'] = uic
-
- print("Checking for moc : ")
- moc = qtdir + "/bin/tmoc"
- if os.path.isfile(moc):
- print(GREEN+"moc was found as "+moc+NORMAL)
- else:
- moc = os.popen("which tmoc 2>/dev/null").read().strip()
- if len(moc):
- print(YELLOW+"moc was found as "+moc+NORMAL)
- elif os.path.isfile("/usr/share/tqt3/bin/tmoc"):
- moc = "/usr/share/tqt3/bin/tmoc"
- print(YELLOW+"moc was found as "+moc+NORMAL)
- elif os.path.isfile("/usr/share/qt3/bin/tmoc"):
- moc = "/usr/share/qt3/bin/tmoc"
- print(YELLOW+"moc was found as "+moc+NORMAL)
- else:
- print(RED+"moc was not found - set QTDIR or put it in your PATH ?"+NORMAL)
- env.Exit(1)
- env['QT_MOC'] = moc
-
- ## check for the tqt includes
- print("Checking for the tqt includes : ")
- if tqtincludes and os.path.isfile(tqtincludes + "/tqlayout.h"):
- # The user told where to look for and it looks valid
- print(GREEN + "ok " + tqtincludes + NORMAL)
- else:
- if os.path.isfile(qtdir + "/include/qlayout.h"):
- # Automatic detection
- print(GREEN + "ok " + qtdir + "/include/ " + NORMAL)
- tqtincludes = qtdir + "/include/"
- elif os.path.isfile("/usr/include/tqt/tqlayout.h"):
- # Debian probably
- print(YELLOW + "the qt headers were found in /usr/include/tqt/ " + NORMAL)
- tqtincludes = "/usr/include/tqt"
- elif os.path.isfile("/usr/include/qt4/Qt/qglobal.h"):
- # Debian probably
- print(YELLOW + "the qt headers were found in /usr/include/qt4/ " + NORMAL)
- tqtincludes = "/usr/include/qt4"
- else:
- print(RED + "the qt headers were not found" + NORMAL)
- env.Exit(1)
-
- ## check for the qt includes
- print("Checking for the qt includes : ")
- if qtincludes and os.path.isfile(qtincludes + "/ntqglobal.h"):
- # The user told where to look for and it looks valid
- print(GREEN + "ok " + qtincludes + NORMAL)
- else:
- if os.path.isfile(qtdir + "/include/ntqglobal.h"):
- # Automatic detection
- print(GREEN + "ok " + qtdir + "/include/ " + NORMAL)
- qtincludes = qtdir + "/include/"
- elif os.path.isfile("/usr/include/tqt3/ntqglobal.h"):
- # Debian probably
- print(YELLOW + "the qt headers were found in /usr/include/tqt3/ " + NORMAL)
- qtincludes = "/usr/include/tqt3"
- else:
- print(RED + "the qt headers were not found" + NORMAL)
- env.Exit(1)
-
- print("Checking for the tde includes : ")
- kdeprefix = os.popen(kde_config + " --prefix").read().strip()
- if not kdeincludes:
- kdeincludes = kdeprefix+"/include/"
- if os.path.isfile(kdeincludes + "/klineedit.h"):
- print(GREEN+"ok "+kdeincludes+NORMAL)
- else:
- if os.path.isfile(kdeprefix+"/include/tde/klineedit.h"):
- # Debian, Fedora probably
- print(YELLOW+"the kde headers were found in "+kdeprefix+"/include/tde/"+NORMAL)
- kdeincludes = kdeprefix + "/include/tde/"
- else:
- print(RED+"The kde includes were NOT found"+NORMAL)
- env.Exit(1)
-
- if prefix:
- ## use the user-specified prefix
- if not execprefix:
- execprefix = prefix
- if not datadir:
- datadir = prefix+"/share"
- if not libdir:
- libdir = execprefix+"/lib"
-
- subst_vars = lambda x: x.replace('${exec_prefix}',execprefix).replace('${datadir}',datadir).replace('${libdir}',libdir)
- env['KDEBIN'] = subst_vars(os.popen(kde_config + ' --install exe').read().strip())
- env['KDEAPPS'] = subst_vars(os.popen(kde_config + ' --install apps').read().strip())
- env['KDEDATA'] = subst_vars(os.popen(kde_config + ' --install data').read().strip())
- env['KDEMODULE']= subst_vars(os.popen(kde_config + ' --install module').read().strip())
- env['KDELOCALE']= subst_vars(os.popen(kde_config + ' --install locale').read().strip())
- env['KDEDOC'] = subst_vars(os.popen(kde_config + ' --install html').read().strip())
- env['KDEKCFG'] = subst_vars(os.popen(kde_config + ' --install kcfg').read().strip())
- env['KDEXDG'] = subst_vars(os.popen(kde_config + ' --install xdgdata-apps').read().strip())
- env['KDEMENU'] = subst_vars(os.popen(kde_config + ' --install apps').read().strip())
- env['KDEMIME'] = subst_vars(os.popen(kde_config + ' --install mime').read().strip())
- env['KDEICONS'] = subst_vars(os.popen(kde_config + ' --install icon').read().strip())
- env['KDESERV'] = subst_vars(os.popen(kde_config + ' --install services').read().strip())
- else:
- # the user has given no prefix, install as a normal kde app
- env['PREFIX'] = os.popen(kde_config + ' --prefix').read().strip()
- env['KDEBIN'] = os.popen(kde_config + ' --expandvars --install exe').read().strip()
- env['KDEAPPS'] = os.popen(kde_config + ' --expandvars --install apps').read().strip()
- env['KDEDATA'] = os.popen(kde_config + ' --expandvars --install data').read().strip()
- env['KDEMODULE']= os.popen(kde_config + ' --expandvars --install module').read().strip()
- env['KDELOCALE']= os.popen(kde_config + ' --expandvars --install locale').read().strip()
- env['KDEDOC'] = os.popen(kde_config + ' --expandvars --install html').read().strip()
- env['KDEKCFG'] = os.popen(kde_config + ' --expandvars --install kcfg').read().strip()
- env['KDEXDG'] = os.popen(kde_config + ' --expandvars --install xdgdata-apps').read().strip()
- env['KDEMENU'] = os.popen(kde_config + ' --expandvars --install apps').read().strip()
- env['KDEMIME'] = os.popen(kde_config + ' --expandvars --install mime').read().strip()
- env['KDEICONS'] = os.popen(kde_config + ' --expandvars --install icon').read().strip()
- env['KDESERV'] = os.popen(kde_config + ' --expandvars --install services').read().strip()
-
- env['QTPLUGINS']=os.popen(kde_config + ' --expandvars --install qtplugins').read().strip()
-
- ## kde libs and includes
- env['KDEINCLUDEPATH']= kdeincludes
- if not tdelibs:
- tdelibs = os.popen(kde_config + ' --expandvars --install lib').read().strip()
- env['KDELIBPATH']= tdelibs
-
- ## qt libs and includes
- env['QTINCLUDEPATH']= qtincludes
- env['TQTINCLUDEPATH']= tqtincludes
- if not qtlibs:
- qtlibs = qtdir+"/lib"
- env['QTLIBPATH']= qtlibs
-
-def mocscan(target, source, env):
- splitext = SCons.Util.splitext
-
- q_object_search = re.compile(r'[^A-Za-z0-9]Q_OBJECT[^A-Za-z0-9]')
-
- for obj in source:
-
- if not obj.has_builder():
- # binary obj file provided
- continue
-
- cpp = obj.sources[0]
- if not splitext(str(cpp))[1] == '.cpp':
- # not a cplusplus source
- continue
-
- # if we have a .ui file, it is automatically handled by Uic
- uiname = string.split(cpp.abspath, '.cpp')[0] + ".ui"
- if os.path.isfile(uiname):
- continue
-
- hname = splitext(cpp.name)[0] + ".h"
- h = SCons.Node.FS.find_file(hname, (cpp.get_dir(),) )
-
- if h:
- # h file with the Q_OBJECT macro found -> add .moc file
- mocfile = string.split(cpp.abspath, '.cpp')[0] + ".moc"
- # trick : check if the moc file already exists (avoid a scan)
- if os.path.isfile(mocfile):
- env.Moc(h)
- elif q_object_search.search(h.get_contents()):
- # FIXME : strong assumption
- env.Moc(h)
-
- return (target, source)
-
-def generate(env):
-
- import SCons.Defaults
- import SCons.Tool
- env.Help("""
-"""+BOLD+
-"""*** KDE options ***
--------------------"""+NORMAL+"""
-"""+BOLD+"""* prefix """+NORMAL+""": base install path, ie: /usr/local
-"""+BOLD+"""* execprefix """+NORMAL+""": install path for binaries, ie: /usr/bin
-"""+BOLD+"""* datadir """+NORMAL+""": install path for the data, ie: /usr/local/share
-"""+BOLD+"""* libdir """+NORMAL+""": install path for the libs, ie: /usr/lib
-"""+BOLD+"""* tdedir """+NORMAL+""": path to TDE directory, ie: /opt/trinity
-"""+BOLD+"""* kdeincludes"""+NORMAL+""": path to the kde includes (/usr/include/tde on debian, ...)
-"""+BOLD+"""* qtincludes """+NORMAL+""": same punishment, for qt includes (/usr/include/qt on debian, ...)
-"""+BOLD+"""* tdelibs """+NORMAL+""": path to the kde libs, for linking the programs
-"""+BOLD+"""* qtlibs """+NORMAL+""": same punishment, for qt libraries
-ie: """+BOLD+"""scons configure libdir=/usr/local/lib qtincludes=/usr/include/qt
-"""+NORMAL)
-
- CLVar = SCons.Util.CLVar
- splitext = SCons.Util.splitext
- Builder = SCons.Builder.Builder
-
- # Detect the environment - replaces ./configure implicitely
- # and store the options into a cache
- from SCons.Variables import Variables
- cachefile=env['CACHEDIR']+'/kde.cache.py'
- opts = Variables(cachefile)
- opts.AddVariables(
- ( 'QTDIR', 'root of qt directory' ),
- ( 'QTLIBPATH', 'path to the qt libraries' ),
- ( 'QTINCLUDEPATH', 'path to the qt includes' ),
- ( 'TQTINCLUDEPATH', 'path to the tqt includes' ),
- ( 'QT_UIC', 'moc directory'),
- ( 'QT_MOC', 'moc executable command'),
- ( 'QTPLUGINS', 'uic executable command'),
- ( 'TDEDIR', 'root of kde directory' ),
- ( 'KDELIBPATH', 'path to the kde libs' ),
- ( 'KDEINCLUDEPATH', 'path to the kde includes' ),
-
- ( 'PREFIX', 'root of the program installation'),
-
- ( 'KDEBIN', 'installation path of the kde binaries'),
- ( 'KDEMODULE', 'installation path of the parts and libs'),
- ( 'KDEAPPS', ''),
- ( 'KDEDATA', 'installation path of the application data'),
- ( 'KDELOCALE', ''),
- ( 'KDEDOC', 'installation path of the application documentation'),
- ( 'KDEKCFG', 'installation path of the .kcfg files'),
- ( 'KDEXDG', 'installation path of the service types'),
- ( 'KDEMENU', ''),
- ( 'KDEMIME', 'installation path of to the mimetypes'),
- ( 'KDEICONS', ''),
- ( 'KDESERV', ''),
- )
- opts.Update(env)
-
- # reconfigure when things are missing
- if 'configure' in env['TARGS'] or not env.has_key('QTDIR') or not env.has_key('TDEDIR'):
- detect_kde(env)
-
- # finally save the configuration
- opts.Save(cachefile, env)
-
- ## set default variables, one can override them in sconscript files
- env.Append(CXXFLAGS = ['-I'+env['KDEINCLUDEPATH'], '-I'+env['QTINCLUDEPATH'], '-I'+env['TQTINCLUDEPATH'], '-include', 'tqt.h' ])
- env.Append(LIBPATH = [env['KDELIBPATH'], env['QTLIBPATH'] ])
-
- env['STATIC_AND_SHARED_OBJECTS_ARE_THE_SAME'] = 1
-
- env['QT_AUTOSCAN'] = 1
- env['QT_DEBUG'] = 0
-
- env['QT_UIC_HFLAGS'] = '-L $QTPLUGINS -nounload'
- env['QT_UIC_CFLAGS'] = '$QT_UIC_HFLAGS -tr tr2i18n'
- env['QT_LIBS'] = 'tqt'
-
- env['LIBTOOL_FLAGS'] = '--silent --mode=compile --tag=CXX'
-
- env['QT_UICIMPLPREFIX'] = ''
- env['QT_UICIMPLSUFFIX'] = '.cpp'
- env['QT_MOCHPREFIX'] = ''
- env['QT_MOCHSUFFIX'] = '.moc'
- env['KDE_KCFG_IMPLPREFIX'] = ''
- env['KDE_KCFG_IMPL_HSUFFIX'] = '.h'
- env['KDE_KCFG_IMPL_CSUFFIX'] = '.cpp'
- env['KDE_SKEL_IMPL_SUFFIX'] = '.skel'
- env['MEINPROC'] = 'meinproc'
- env['MSGFMT'] = 'msgfmt'
-
-
- ###### ui file processing
- def uicGenerator(target, source, env, for_signature):
- act=[]
- act.append('$QT_UIC $QT_UIC_HFLAGS -o '+target[0].path+' '+source[0].path)
- act.append('rm -f ' +target[1].path)
- act.append('echo \'#include <tdelocale.h>\' >> '+target[1].path)
- act.append('echo \'#include <kdialog.h>\' >> '+target[1].path)
- act.append('$QT_UIC $QT_UIC_CFLAGS -impl '+target[0].path+' -o '+target[1].path+'.tmp '+source[0].path)
- act.append('cat '+target[1].path+'.tmp >> '+target[1].path)
- act.append('rm -f '+target[1].path+'.tmp')
- act.append('echo \'#include "' + target[2].name + '"\' >> '+target[1].path)
- act.append('moc-tqt $QT_MOC '+target[0].path+' '+target[2].path)
- return act
-
- def uicEmitter(target, source, env):
- adjustixes = SCons.Util.adjustixes
- bs = SCons.Util.splitext(str(source[0].name))[0]
- bs = os.path.join(str(target[0].get_dir()),bs)
- # first target is automatically added by builder (.h file)
- if len(target) < 2:
- # second target is .cpp file
- target.append(adjustixes(bs,
- env.subst('$QT_UICIMPLPREFIX'),
- env.subst('$QT_UICIMPLSUFFIX')))
- if len(target) < 3:
- # third target is .moc file
- target.append(adjustixes(bs,
- env.subst('$QT_MOCHPREFIX'),
- env.subst('$QT_MOCHSUFFIX')))
- return target, source
-
- UIC_BUILDER = Builder(
- generator = uicGenerator,
- emitter = uicEmitter,
- suffix = '.h',
- src_suffix = '.ui' )
-
- ###### moc file processing
- env['QT_MOCCOM'] = ('moc-tqt $QT_MOC $SOURCE ${TARGETS[0]}')
-
- MOC_BUILDER = Builder(
- action = '$QT_MOCCOM',
- suffix = '.moc',
- src_suffix = '.h' )
-
- MOCCPP_BUILDER = Builder(
- action = '$QT_MOCCOM',
- suffix = '_moc.cpp',
- src_suffix = '.h' )
-
- ###### kcfg file processing
- def kcfgGenerator(target, source, env, for_signature):
- act=[]
- act.append('tdeconfig_compiler -d'+str(source[0].get_dir())+' '+source[1].path+' '+source[0].path)
- return act
-
- def kcfgEmitter(target, source, env):
- adjustixes = SCons.Util.adjustixes
- bs = SCons.Util.splitext(str(source[0].name))[0]
- bs = os.path.join(str(target[0].get_dir()),bs)
- # first target is automatically added by builder (.h file)
- if len(target) < 2:
- # second target is .cpp file
- target.append(adjustixes(bs, env.subst('$KDE_KCFG_IMPLPREFIX'), env.subst('$KDE_KCFG_IMPL_CSUFFIX')))
-
- if len(source) <2:
- kcfgfilename = os.popen("cat "+str(source[0])+"|grep File|sed 's/File.*=//i'").read().rstrip()
- source.append( str(source[0].get_dir())+'/'+kcfgfilename )
- return target, source
-
- KCFG_BUILDER = Builder(
- generator = kcfgGenerator,
- emitter = kcfgEmitter,
- suffix = '.h',
- src_suffix = '.kcfgc' )
-
- ###### dcop processing
- def dcopGenerator(target, source, env, for_signature):
- act=[]
- act.append('dcopidl '+source[0].path+' > '+target[1].path+'|| ( rm -f '+target[1].path+' ; false )')
- act.append('dcopidl2cpp --c++-suffix cpp --no-signals --no-stub '+target[1].path)
- return act
-
- def dcopEmitter(target, source, env):
- bs = SCons.Util.splitext(str(source[0].name))[0]
- bs = os.path.join(str(target[0].get_dir()),bs)
- target.append(bs+'.kidl')
- #target.append(bs+'_skel.cpp')
- return target, source
-
- DCOP_BUILDER = Builder(
- generator = dcopGenerator,
- emitter = dcopEmitter,
- suffix = '_skel.cpp',
- src_suffix = '.h' )
-
- ###### documentation (meinproc) processing
- MEINPROC_BUILDER = Builder(
- action = '$MEINPROC --check --cache $TARGET $SOURCE',
- suffix = '.cache.bz2',
- src_suffix = '.docbook' )
-
- ###### translation files builder
- TRANSFILES_BUILDER = Builder(
- action = '$MSGFMT $SOURCE -o $TARGET',
- suffix = '.gmo',
- src_suffix = '.po' )
-
- ###### libtool file builder
- def laGenerator(target, source, env, for_signature):
- act=[]
- act.append('echo "dlname=\''+source[0].name+'\'" > '+target[0].path)
- act.append('echo "library_names=\''+source[0].name+' '+source[0].name+' '+source[0].name+'\'" >> '+target[0].path)
- act.append('echo "old_library=\'\'">> '+target[0].path)
- act.append('echo "dependency_libs=\'\'">> '+target[0].path)
- act.append('echo "current=0">> '+target[0].path)
- act.append('echo "age=0">> '+target[0].path)
- act.append('echo "revision=0">> '+target[0].path)
- act.append('echo "installed=yes">> '+target[0].path)
- act.append('echo "shouldnotlink=no">> '+target[0].path)
- act.append('echo "dlopen=\'\'">> '+target[0].path)
- act.append('echo "dlpreopen=\'\'">> '+target[0].path)
- act.append('echo "libdir=\''+env['KDEMODULE']+'\'" >> '+target[0].path)
- return act
-
- LA_BUILDER = Builder(
- generator = laGenerator,
- suffix = '.la',
- src_suffix = '.so' )
-
- ##### register the builders
- env['BUILDERS']['Uic'] = UIC_BUILDER
- env['BUILDERS']['Moc'] = MOC_BUILDER
- env['BUILDERS']['Moccpp'] = MOCCPP_BUILDER
- env['BUILDERS']['Dcop'] = DCOP_BUILDER
- env['BUILDERS']['Kcfg'] = KCFG_BUILDER
- env['BUILDERS']['LaFile'] = LA_BUILDER
- env['BUILDERS']['Meinproc'] = MEINPROC_BUILDER
- env['BUILDERS']['Transfiles'] = TRANSFILES_BUILDER
-
- static_obj, shared_obj = SCons.Tool.createObjBuilders(env)
- static_obj.src_builder.append('Uic')
- shared_obj.src_builder.append('Uic')
- static_obj.src_builder.append('Kcfg')
- shared_obj.src_builder.append('Kcfg')
- static_obj.src_builder.append('LaFile')
- shared_obj.src_builder.append('LaFile')
- static_obj.src_builder.append('Meinproc')
- shared_obj.src_builder.append('Meinproc')
- static_obj.src_builder.append('Transfiles')
- shared_obj.src_builder.append('Transfiles')
-
- ## find the files to moc, dcop, and link against kde and qt
- env.AppendUnique(PROGEMITTER=[mocscan], SHLIBEMITTER=[mocscan], LIBEMITTER =[mocscan])
-
- ###########################################
- ## Handy helpers for building kde programs
- ## You should not have to modify them ..
-
- #import SCons.Util
- skel_ext = [".skel", ".SKEL"]
- def KDEfiles(lenv, target, source):
- """ Returns a list of files for scons (handles kde tricks like .skel)
- It also makes custom checks against double includes like : ['file.ui', 'file.cpp']
- (file.cpp is already included because of file.ui) """
-
- src=[]
- ui_files=[]
- kcfg_files=[]
- skel_files=[]
- other_files=[]
-
- # For each file, check wether it is a dcop file or not, and create the complete list of sources
- for file in source:
- bs = SCons.Util.splitext(file)[0]
- ext = SCons.Util.splitext(file)[1]
- if ext in skel_ext:
- lenv.Dcop(bs+'.h')
- src.append(bs+'_skel.cpp')
- elif ext == ".moch":
- lenv.Moccpp(bs+'.h')
- src.append(bs+'_moc.cpp')
- else:
- src.append(file)
-
- if ext == '.ui':
- ui_files.append(bs)
- elif ext == '.kcfgc':
- kcfg_files.append(bs)
- elif ext == '.skel':
- skel_files.append(bs)
- else:
- other_files.append(bs)
- return src
-
- """
- In the future, these functions will contain the code that will dump the
- configuration for re-use from an IDE
- """
- import glob
- def KDEinstall(lenv, restype, subdir, files):
- if not 'install' in env['TARGS']:
- return
- basedir=env['DESTDIR']
- if len(restype)>0:
- if not lenv.has_key(restype):
- print(RED+"unknown resource type "+restype+NORMAL)
- else:
- basedir += lenv[restype]+'/'
- #print(file) # <- useful to trace stuff :)
- install_list = env.Install(basedir+subdir, files)
- env.Alias('install', install_list)
- return install_list
-
- def KDEinstallas(lenv, restype, destfile, file):
- if not 'install' in env['TARGS']:
- return
- basedir=env['DESTDIR']
- if len(restype)>0:
- if not lenv.has_key(restype):
- print(RED+"unknown resource type "+restype+NORMAL)
- else:
- basedir += lenv[restype]+'/'
- install_list = env.InstallAs(basedir+destfile, file)
- env.Alias('install', install_list)
- return install_list
-
- def KDEprogram(lenv, target, source):
- """ Makes a kde program
- The program is installed except if one sets env['NOAUTOINSTALL'] """
- src = KDEfiles(lenv, target, source)
- program_list = lenv.Program(target, src)
- if not lenv.has_key('NOAUTOINSTALL'):
- KDEinstall(lenv, 'KDEBIN', '', target)
- return program_list
-
- def KDEshlib(lenv, target, source, kdelib=0):
- """ Makes a shared library for kde (.la file for klibloader)
- The library is installed except if one sets env['NOAUTOINSTALL'] """
- src = KDEfiles(lenv, target, source)
- library_list = lenv.SharedLibrary(target, src)
- lafile_list = lenv.LaFile(target, library_list)
- if not lenv.has_key('NOAUTOINSTALL'):
- install_dir = 'KDEMODULE'
- if kdelib==1:
- install_dir = 'KDELIBPATH'
- KDEinstall(lenv, install_dir, '', library_list)
- KDEinstall(lenv, install_dir, '', lafile_list)
- return library_list
-
- def KDEstaticlib(lenv, target, source):
- """ Makes a static library for kde - in practice you should not use static libraries
- 1. they take more memory than shared ones
- 2. makefile.am needed it because of limitations
- (cannot handle sources in separate folders - takes extra processing) """
- src = KDEfiles(lenv, target, source)
- return lenv.StaticLibrary(target, src)
- # do not install static libraries by default
-
- def KDEaddflags_cxx(lenv, fl):
- """ Compilation flags for C++ programs """
- lenv.AppendUnique(CXXFLAGS = fl)
-
- def KDEaddflags_c(lenv, fl):
- """ Compilation flags for C programs """
- lenv.AppendUnique(CFLAGS = fl)
-
- def KDEaddflags_link(lenv, fl):
- """ Add link flags - Use this if KDEaddlibs below is not enough """
- lenv.AppendUnique(LINKFLAGS = fl)
-
- def KDEaddlibs(lenv, libs):
- """ Helper function """
- lenv.AppendUnique(LIBS = libs)
-
- def KDEaddpaths_includes(lenv, paths):
- """ Add new include paths """
- lenv.AppendUnique(CPPPATH = paths)
-
- def KDEaddpaths_libs(lenv, paths):
- """ Add paths to libraries """
- lenv.AppendUnique(LIBPATH = paths)
-
- def KDElang(lenv, folder, appname):
- """ Process translations (.po files) in a po/ dir """
- transfiles = glob.glob(folder+'/*.po')
- for lang in transfiles:
- result = lenv.Transfiles(lang)
- country = SCons.Util.splitext(result[0].name)[0]
- KDEinstallas(lenv, 'KDELOCALE', country+'/LC_MESSAGES/'+appname+'.mo', result)
-
- def KDEicon(lenv, icname):
- """ Emulates the behaviour of Makefile.am to install icons
- Contributed by: "Andrey Golovizin" <grooz@gorodok@net> """
- type_dic = { 'action' : 'actions', 'app' : 'apps', 'device' :
- 'devices', 'filesys' : 'filesystems', 'mime' : 'mimetypes' }
- dir_dic = {
- 'los' :'locolor/16x16',
- 'lom' :'locolor/32x32',
- 'him' :'hicolor/32x32',
- 'hil' :'hicolor/48x48',
- 'lo16' :'locolor/16x16',
- 'lo22' :'locolor/22x22',
- 'lo32' :'locolor/32x32',
- 'hi16' :'hicolor/16x16',
- 'hi22' :'hicolor/22x22',
- 'hi32' :'hicolor/32x32',
- 'hi48' :'hicolor/48x48',
- 'hi64' :'hicolor/64x64',
- 'hi128':'hicolor/128x128',
- 'hisc' :'hicolor/scalable',
- 'cr16' :'crystalsvg/16x16',
- 'cr22' :'crystalsvg/22x22',
- 'cr32' :'crystalsvg/32x32',
- 'cr48' :'crystalsvg/48x48',
- 'cr64' :'crystalsvg/64x64',
- 'cr128':'crystalsvg/128x128',
- 'crsc' :'crystalsvg/scalable'
- }
-
- import glob
- iconfiles = []
- for ext in ['png', 'xpm', 'mng', 'svg', 'svgz']:
- files = glob.glob('*-*-%s.%s' % (icname, ext))
- iconfiles += files
- for iconfile in iconfiles:
- tmp = iconfile.split('-')
- if len(tmp) != 3:
- print(RED + 'WARNING: icon filename has unknown format: ' + iconfile + NORMAL)
- continue
- [icon_dir, icon_type, icon_filename] = tmp
- try:
- destfile = '%s/%s/%s/%s' % (lenv['KDEICONS'], dir_dic[icon_dir], type_dic[icon_type], icon_filename)
- except KeyError:
- print(RED + 'WARNING: unknown icon type: ' + iconfile + NORMAL)
- continue
- ## do not use KDEinstallas here, as parsing from an ide will be necessary
- if 'install' in env['TARGS']:
- env.Alias('install', env.InstallAs( env['DESTDIR']+'/'+destfile, iconfile ) )
-
- # Attach the functions to the environment so that sconscripts can use them
- from SCons.Script.SConscript import SConsEnvironment
- SConsEnvironment.KDEprogram = KDEprogram
- SConsEnvironment.KDEshlib = KDEshlib
- SConsEnvironment.KDEstaticlib = KDEstaticlib
- SConsEnvironment.KDEinstall = KDEinstall
- SConsEnvironment.KDEinstallas = KDEinstallas
- SConsEnvironment.KDElang = KDElang
- SConsEnvironment.KDEicon = KDEicon
-
- SConsEnvironment.KDEaddflags_cxx = KDEaddflags_cxx
- SConsEnvironment.KDEaddflags_c = KDEaddflags_c
- SConsEnvironment.KDEaddflags_link = KDEaddflags_link
- SConsEnvironment.KDEaddlibs = KDEaddlibs
- SConsEnvironment.KDEaddpaths_includes = KDEaddpaths_includes
- SConsEnvironment.KDEaddpaths_libs = KDEaddpaths_libs
diff --git a/doc/SConscript b/doc/SConscript
deleted file mode 100644
index 9c3bbe5..0000000
--- a/doc/SConscript
+++ /dev/null
@@ -1,83 +0,0 @@
-#! /usr/bin/env python
-## This script demonstrates to build and install
-## the documentation of a kde program with scons
-##
-## Thomas Nagy, 2005
-
-## This file can be reused freely for any project (see COPYING)
-
-## First load the environment set in the top-level SConstruct file
-Import( 'env' )
-myenv=env.Clone()
-
-## The following looks complicated but it is not
-## We first define a function to install all files as documentation
-## The documentation is of course lying in subfolders from here
-## * normal files are installed under KDEDOC/destination
-## * meinproc files are not installed, but processed into a single
-## index.cache.bz2 which is installed afterwards
-
-## This is far more maintainable to have *one* file than
-## having lots of almost empty SConscript in several folders
-
-import os
-import sys
-import glob
-import SCons.Util
-
-## Define this to 1 if you are writing documentation else to 0 :)
-i_am_a_documentation_writer = 0
-
-## This function uses env imported above
-def processfolder(folder, lang, destination=""):
- # folder is the folder to process
- # lang is the language
- # destination is the subdirectory in KDEDOC
-
- docfiles = glob.glob(folder+"/???*.*") # file files that are at least 4 chars wide :)
-
- # warn about errors
- #if len(lang) != 2:
- # print "error, lang must be a two-letter string, like 'en'"
-
- # when the destination is not given, use the folder
- if len(destination) == 0:
- destination=folder
-
- docbook_list = []
- for file in docfiles:
-
- # do not process folders
- if not os.path.isfile(file):
- continue
- # do not process the cache file
- if file == 'index.cache.bz2':
- continue
- # ignore invalid files (TODO??)
- if len( SCons.Util.splitext( file ) ) <= 1 :
- continue
-
- ext = SCons.Util.splitext( file )[1]
-
- # docbook files are processed by meinproc
- if ext == '.docbook':
- docbook_list.append( file )
- continue
-
- myenv.KDEinstall('KDEDOC', lang+'/'+destination, file)
-
- # Now process the index.docbook files ..
- if len(docbook_list) == 0:
- return
- if not os.path.isfile( folder+'index.docbook' ):
- print("Error, index.docbook was not found in "+folder+'/index.docbook')
- return
- if i_am_a_documentation_writer:
- for file in docbook_list:
- myenv.Depends( folder+'index.cache.bz2', file )
- myenv.Meinproc( folder+'/index.cache.bz2', folder+'/index.docbook' )
- myenv.KDEinstall( 'KDEDOC', lang+'/'+destination, folder+'/index.cache.bz2' )
-
-## Use processfolder for each documentation directory
-processfolder('en/', 'en', 'kstreamripper')
-
diff --git a/kde.py b/kde.py
deleted file mode 100644
index 0912283..0000000
--- a/kde.py
+++ /dev/null
@@ -1,857 +0,0 @@
-# Made from scons qt.py and (heavily) modified into kde.py
-# Thomas Nagy, 2004, 2005 <tnagy2^8@yahoo.fr>
-
-"""
-Run scons -h to display the associated help, or look below ..
-"""
-
-BOLD ="\033[1m"
-RED ="\033[91m"
-GREEN ="\033[92m"
-YELLOW ="\033[1m" #"\033[93m" # unreadable on white backgrounds
-CYAN ="\033[96m"
-NORMAL ="\033[0m"
-
-import os, re
-
-# Returns the name of the shared object (i.e. libtdeui.so.4)
-# referenced by a libtool archive (like libtdeui.la)
-def getSOfromLA(lafile):
- contents = open(lafile, 'r').read()
- match = re.search("^dlname='([^']*)'$", contents, re.M)
- if match:
- return match.group(1)
- return None
-
-def exists(env):
- return True
-
-def detect_kde(env):
- """ Detect the qt and kde environment using tde-config mostly """
-
- prefix = env['ARGS'].get('prefix', None)
- execprefix = env['ARGS'].get('execprefix', None)
- datadir = env['ARGS'].get('datadir', None)
- libdir = env['ARGS'].get('libdir', None)
- libsuffix = env['ARGS'].get('libsuffix', '')
- kdeincludes = env['ARGS'].get('kdeincludes', None)
- tdelibs = env['ARGS'].get('tdelibs', None)
- qtincludes = env['ARGS'].get('qtincludes', None)
- tqtincludes = env['ARGS'].get('tqtincludes', None)
- qtlibs = env['ARGS'].get('qtlibs', None)
- tdedir = env['ARGS'].get('tdedir', None)
-
- if libdir:
- libdir = libdir+libsuffix
-
- ## Detect the tde libraries
- print "Checking for tde-config : ",
- str="which tde-config 2>/dev/null"
- if tdedir: str="which %s 2>/dev/null" % (tdedir+'/bin/tde-config')
- kde_config = os.popen(str).read().strip()
- if len(kde_config):
- print GREEN + 'tde-config was found as ' + kde_config + NORMAL
- else:
- if tdedir: print RED + 'tde-config was NOT found in the folder given ' + tdedir + NORMAL
- else: print RED + 'tde-config was NOT found in your PATH' + NORMAL
- print "Make sure kde is installed properly"
- print "(missing package tdebase-devel?)"
- env.Exit(1)
- if tdedir: env['TDEDIR']=tdedir
- else: env['TDEDIR'] = os.popen(kde_config+' -prefix').read().strip()
-
- print "Checking for tde version : ",
- tde_version = os.popen(kde_config + " --version|grep TDE").read().strip().split()[1]
- tde_major = tde_version.split('.')[0].lstrip('R')
- tde_minor = tde_version.split('.')[1]
- tde_patch = tde_version.split('.')[2]
- try:
- env['KDEm1']=int(tde_major)
- except:
- pass
- try:
- env['KDEm2']=int(tde_minor)
- except:
- pass
- try:
- env['KDEm3']=int(tde_patch)
- except:
- pass
- if int(tde_major) != 14:
- print RED + tde_version
- print RED + "Your tde version might be too old" + NORMAL
- print RED + "Please make sure TDE is at least R14.0" + NORMAL
- else:
- print GREEN + tde_version + NORMAL
-
- ## Detect the qt library
- print "Checking for the qt library : ",
- qtdir = os.getenv("QTDIR")
- if qtdir:
- print GREEN+"qt is in "+qtdir+NORMAL
- else:
- libdir = os.popen(kde_config + ' --expandvars --install lib').read().strip()
- libtdeuiSO = libdir+'/'+getSOfromLA(libdir+'/libtdeui.la')
- try:
- m = re.search('(.*)/lib/libqt.*', os.popen('ldd ' + libtdeuiSO + ' | grep libqt').read().strip().split()[2])
- except:
- m = re.search('(.*)/lib/libtqt.*', os.popen('ldd ' + libtdeuiSO + ' | grep libtqt').read().strip().split()[2])
- pass
- if m:
- qtdir = m.group(1)
- print YELLOW+"qt was found as "+m.group(1)+NORMAL
- else:
- print RED+"qt was not found"+NORMAL
- print RED+"Please set QTDIR first (/usr/lib/qt3?)"+NORMAL
- env.Exit(1)
- env['QTDIR'] = qtdir.strip()
-
- ## Find the necessary programs uic-tqt and moc
- print "Checking for uic-tqt : ",
- uic = qtdir + "/bin/uic-tqt"
- if os.path.isfile(uic):
- print GREEN+"uic-tqt was found as "+uic+NORMAL
- else:
- uic = os.popen("which uic-tqt 2>/dev/null").read().strip()
- if len(uic):
- print YELLOW+"uic-tqt was found as "+uic+NORMAL
- else:
- uic = os.popen("which uic-tqt 2>/dev/null").read().strip()
- if len(uic):
- print YELLOW+"uic-tqt was found as "+uic+NORMAL
- else:
- print RED+"uic-tqt was not found - set QTDIR put it in your PATH ?"+NORMAL
- env.Exit(1)
- env['QT_UIC'] = uic
-
- print "Checking for moc : ",
- moc = qtdir + "/bin/tqmoc"
- if os.path.isfile(moc):
- print GREEN + "moc was found as " + moc + NORMAL
- else:
- moc = os.popen("which moc 2>/dev/null").read().strip()
- if len(moc):
- print YELLOW + "moc was found as " + moc + NORMAL
- elif os.path.isfile("/usr/share/tqt3/bin/tqmoc"):
- moc = "/usr/share/tqt3/bin/tqmoc"
- print YELLOW + "moc was found as " + moc + NORMAL
- elif os.path.isfile("/usr/share/qt3/bin/tqmoc"):
- moc = "/usr/share/qt3/bin/tqmoc"
- print YELLOW + "moc was found as " + moc + NORMAL
- else:
- print RED + "moc was not found - set QTDIR or put it in your PATH ?" + NORMAL
- env.Exit(1)
- env['QT_MOC'] = moc
-
- ## check for the tqt includes
- print "Checking for the tqt includes : ",
- if tqtincludes and os.path.isfile(tqtincludes + "/tqlayout.h"):
- # The user told where to look for and it looks valid
- print GREEN + "ok " + tqtincludes + NORMAL
- else:
- if os.path.isfile(qtdir + "/include/qlayout.h"):
- # Automatic detection
- print GREEN + "ok " + qtdir + "/include/ " + NORMAL
- tqtincludes = qtdir + "/include/"
- elif os.path.isfile("/usr/include/tqt/tqlayout.h"):
- # Debian probably
- print YELLOW + "the qt headers were found in /usr/include/tqt/ " + NORMAL
- tqtincludes = "/usr/include/tqt"
- elif os.path.isfile("/usr/include/qt4/Qt/qglobal.h"):
- # Debian probably
- print YELLOW + "the qt headers were found in /usr/include/qt4/ " + NORMAL
- tqtincludes = "/usr/include/qt4"
- else:
- print RED + "the qt headers were not found" + NORMAL
- env.Exit(1)
-
- ## check for the qt includes
- print "Checking for the qt includes : ",
- if qtincludes and os.path.isfile(qtincludes + "/ntqglobal.h"):
- # The user told where to look for and it looks valid
- print GREEN + "ok " + qtincludes + NORMAL
- else:
- if os.path.isfile(qtdir + "/include/ntqglobal.h"):
- # Automatic detection
- print GREEN + "ok " + qtdir + "/include/ " + NORMAL
- qtincludes = qtdir + "/include/"
- elif os.path.isfile("/usr/include/tqt3/ntqglobal.h"):
- # Debian probably
- print YELLOW + "the qt headers were found in /usr/include/tqt3/ " + NORMAL
- qtincludes = "/usr/include/tqt3"
- else:
- print RED + "the qt headers were not found" + NORMAL
- env.Exit(1)
-
- print "Checking for the tde includes : ",
- kdeprefix = os.popen(kde_config + " --prefix").read().strip()
- if not kdeincludes:
- kdeincludes = kdeprefix+"/include/"
- if os.path.isfile(kdeincludes + "/klineedit.h"):
- print GREEN + "ok " + kdeincludes + NORMAL
- else:
- if os.path.isfile(kdeprefix+"/include/tde/klineedit.h"):
- # Debian, Fedora probably
- print YELLOW + "the kde headers were found in " + kdeprefix + "/include/tde/" + NORMAL
- kdeincludes = kdeprefix + "/include/tde/"
- else:
- print RED + "The kde includes were NOT found" + NORMAL
- env.Exit(1)
-
- if prefix:
- ## use the user-specified prefix
- if not execprefix:
- execprefix = prefix
- if not datadir:
- datadir=prefix+"/share"
- if not libdir:
- libdir=execprefix+"/lib"+libsuffix
-
- subst_vars = lambda x: x.replace('${exec_prefix}', execprefix).replace('${datadir}',datadir).replace('${libdir}', libdir)
- debian_fix = lambda x: x.replace('/usr/share', '${datadir}')
- env['KDEBIN'] = subst_vars(os.popen(kde_config + ' --install exe').read().strip())
- env['KDEAPPS'] = subst_vars(os.popen(kde_config + ' --install apps').read().strip())
- env['KDEDATA'] = subst_vars(os.popen(kde_config + ' --install data').read().strip())
- env['KDEMODULE']= subst_vars(os.popen(kde_config + ' --install module').read().strip())
- env['KDELOCALE']= subst_vars(os.popen(kde_config + ' --install locale').read().strip())
- env['KDEDOC'] = subst_vars( debian_fix(os.popen(kde_config + ' --install html').read().strip()) )
- env['KDEKCFG'] = subst_vars(os.popen(kde_config + ' --install kcfg').read().strip())
- env['KDEXDG'] = subst_vars(os.popen(kde_config + ' --install xdgdata-apps').read().strip())
- env['KDEXDGDIR']= subst_vars(os.popen(kde_config + ' --install xdgdata-dirs').read().strip())
- env['KDEMENU'] = subst_vars(os.popen(kde_config + ' --install apps').read().strip())
- env['KDEMIME'] = subst_vars(os.popen(kde_config + ' --install mime').read().strip())
- env['KDEICONS'] = subst_vars(os.popen(kde_config + ' --install icon').read().strip())
- env['KDESERV'] = subst_vars(os.popen(kde_config + ' --install services').read().strip())
- else:
- # the user has given no prefix, install as a normal kde app
- env['PREFIX'] = os.popen(kde_config + ' --prefix').read().strip()
- env['KDEBIN'] = os.popen(kde_config + ' --expandvars --install exe').read().strip()
- env['KDEAPPS'] = os.popen(kde_config + ' --expandvars --install apps').read().strip()
- env['KDEDATA'] = os.popen(kde_config + ' --expandvars --install data').read().strip()
- env['KDEMODULE']= os.popen(kde_config + ' --expandvars --install module').read().strip()
- env['KDELOCALE']= os.popen(kde_config + ' --expandvars --install locale').read().strip()
- env['KDEDOC'] = os.popen(kde_config + ' --expandvars --install html').read().strip()
- env['KDEKCFG'] = os.popen(kde_config + ' --expandvars --install kcfg').read().strip()
- env['KDEXDG'] = os.popen(kde_config + ' --expandvars --install xdgdata-apps').read().strip()
- env['KDEXDGDIR']= os.popen(kde_config + ' --expandvars --install xdgdata-dirs').read().strip()
- env['KDEMENU'] = os.popen(kde_config + ' --expandvars --install apps').read().strip()
- env['KDEMIME'] = os.popen(kde_config + ' --expandvars --install mime').read().strip()
- env['KDEICONS'] = os.popen(kde_config + ' --expandvars --install icon').read().strip()
- env['KDESERV'] = os.popen(kde_config + ' --expandvars --install services').read().strip()
-
- env['QTPLUGINS']=os.popen(kde_config + ' --expandvars --install qtplugins').read().strip()
-
- ## kde libs and includes
- env['KDEINCLUDEPATH']=kdeincludes
- if not tdelibs:
- tdelibs=os.popen(kde_config + ' --expandvars --install lib').read().strip()
- env['KDELIBPATH']=tdelibs
-
- ## qt libs and includes
- env['QTINCLUDEPATH']=qtincludes
- env['TQTINCLUDEPATH']=tqtincludes
- if not qtlibs:
- qtlibs=qtdir+"/lib"
- env['QTLIBPATH']=qtlibs
-
-def generate(env):
- """"Set up the qt and kde environment and builders - the moc part is difficult to understand """
- env.Help("""
-"""+BOLD+
-"""*** KDE options ***
--------------------"""
-+NORMAL+"""
-"""+BOLD+"""* prefix """+NORMAL+""": base install path, ie: /usr/local
-"""+BOLD+"""* execprefix """+NORMAL+""": install path for binaries, ie: /usr/bin
-"""+BOLD+"""* datadir """+NORMAL+""": install path for the data, ie: /usr/local/share
-"""+BOLD+"""* libdir """+NORMAL+""": install path for the libs, ie: /usr/lib
-"""+BOLD+"""* tdedir """+NORMAL+""": path to TDE directory, ie: /opt/trinity
-"""+BOLD+"""* libsuffix """+NORMAL+""": suffix of libraries on amd64, ie: 64, 32
-"""+BOLD+"""* kdeincludes"""+NORMAL+""": path to the kde includes (/usr/include/tde on debian, ...)
-"""+BOLD+"""* qtincludes """+NORMAL+""": same punishment, for qt includes (/usr/include/qt on debian, ...)
-"""+BOLD+"""* tdelibs """+NORMAL+""": path to the kde libs, for linking the programs
-"""+BOLD+"""* qtlibs """+NORMAL+""": same punishment, for qt libraries
-ie: """+BOLD+"""scons configure libdir=/usr/local/lib qtincludes=/usr/include/qt
-"""+NORMAL)
-
- import SCons.Defaults
- import SCons.Tool
- import SCons.Util
-
- ui_extensions = [".ui"]
- header_extensions = [".h", ".hxx", ".hpp", ".hh"]
- source_extensions = [".cpp", ".cxx", ".cc"]
-
- def find_file(filename, paths, node_factory):
- retval = None
- for dir in paths:
- node = node_factory(filename, dir)
- if node.rexists():
- return node
- return None
-
- class _Metasources:
- """ Callable class, which works as an emitter for Programs, SharedLibraries
- and StaticLibraries."""
-
- def __init__(self, objBuilderName):
- self.objBuilderName = objBuilderName
-
- def __call__(self, target, source, env):
- """ Smart autoscan function. Gets the list of objects for the Program
- or Lib. Adds objects and builders for the special qt files. """
- try:
- if int(env.subst('$QT_AUTOSCAN')) == 0:
- return target, source
- except ValueError:
- pass
-
- try:
- qtdebug = int(env.subst('$QT_DEBUG'))
- except ValueError:
- qtdebug = 0
-
- # some shortcuts used in the scanner
- FS = SCons.Node.FS.default_fs
- splitext = SCons.Util.splitext
- objBuilder = getattr(env, self.objBuilderName)
-
- # some regular expressions:
- # Q_OBJECT detection
- q_object_search = re.compile(r'[^A-Za-z0-9]Q_OBJECT[^A-Za-z0-9]')
-
- # The following is kind of hacky to get builders working properly (FIXME) ??
- objBuilderEnv = objBuilder.env
- objBuilder.env = env
- mocBuilderEnv = env.Moc.env
- env.Moc.env = env
-
- # make a deep copy for the result; MocH objects will be appended
- out_sources = source[:]
-
- for obj in source:
- if not obj.has_builder():
- # binary obj file provided
- if qtdebug:
- print "scons: qt: '%s' seems to be a binary. Discarded." % str(obj)
- continue
- cpp = obj.sources[0]
- if not splitext(str(cpp))[1] in source_extensions:
- if qtdebug:
- print "scons: qt: '%s' is no cxx file. Discarded." % str(cpp)
- # c or fortran source
- continue
- #cpp_contents = comment.sub('', cpp.get_contents())
- cpp_contents = cpp.get_contents()
-
- h = None
- ui = None
-
- for ui_ext in ui_extensions:
- # try to find the ui file in the corresponding source directory
- uiname = splitext(cpp.name)[0] + ui_ext
- ui = find_file(uiname, (cpp.get_dir(),), FS.File)
- if ui:
- if qtdebug:
- print "scons: qt: found .ui file of header" #% (str(h), str(cpp))
- #h_contents = comment.sub('', h.get_contents())
- break
-
- # if we have a .ui file, do not continue, it is automatically handled by Uic
- if ui:
- continue
-
- for h_ext in header_extensions:
- # try to find the header file in the corresponding source
- # directory
- hname = splitext(cpp.name)[0] + h_ext
- h = find_file(hname, (cpp.get_dir(),), FS.File)
- if h:
- if qtdebug:
- print "scons: qt: Scanning '%s' (header of '%s')" % (str(h), str(cpp))
- #h_contents = comment.sub('', h.get_contents())
- h_contents = h.get_contents()
- break
-
- if not h and qtdebug:
- print "scons: qt: no header for '%s'." % (str(cpp))
- if h and q_object_search.search(h_contents):
- # h file with the Q_OBJECT macro found -> add .moc or _moc.cpp file
- moc_cpp = None
-
- if env.has_key('NOMOCSCAN'):
- moc_cpp = env.Moc(h)
- else:
- reg = '\n\s*#include\s*("|<)'+splitext(cpp.name)[0]+'.moc("|>)'
- meta_object_search = re.compile(reg)
- if meta_object_search.search(cpp_contents):
- moc_cpp = env.Moc(h)
- else:
- moc_cpp = env.Moccpp(h)
- moc_o = objBuilder(moc_cpp)
- out_sources.append(moc_o)
- if qtdebug:
- print "scons: qt: found Q_OBJECT macro in '%s', moc'ing to '%s'" % (str(h), str(moc_cpp[0]))
-
- if cpp and q_object_search.search(cpp_contents):
- print "error, bksys cannot handle cpp files with Q_OBJECT classes"
- print "if you are sure this is a feature worth the effort, "
- print "report this to the authors tnagyemail-mail yahoo.fr"
-
- # restore the original env attributes (FIXME)
- objBuilder.env = objBuilderEnv
- env.Moc.env = mocBuilderEnv
-
- return (target, out_sources)
-
- MetasourcesShared = _Metasources('SharedObject')
- MetasourcesStatic = _Metasources('StaticObject')
-
- CLVar = SCons.Util.CLVar
- splitext = SCons.Util.splitext
- Builder = SCons.Builder.Builder
-
- # Detect the environment - replaces ./configure implicitely and store the options into a cache
- from SCons.Variables import Variables
- cachefile=env['CACHEDIR']+'kde.cache.py'
- opts = Variables(cachefile)
- opts.AddVariables(
- ('PREFIX', 'root of the program installation'),
-
- ('QTDIR', 'root of qt directory'),
- ('QTLIBPATH', 'path to the qt libraries'),
- ('QTINCLUDEPATH', 'path to the qt includes'),
- ('TQTINCLUDEPATH', 'path to the tqt includes'),
- ('QT_UIC', 'moc directory'),
- ('QT_MOC', 'moc executable command'),
- ('QTPLUGINS', 'uic executable command'),
- ('TDEDIR', 'root of kde directory'),
- ('KDELIBPATH', 'path to the kde libs'),
- ('KDEINCLUDEPATH', 'path to the kde includes'),
-
- ('KDEBIN', 'installation path of the kde binaries'),
- ('KDEMODULE', 'installation path of the parts and libs'),
- ('KDEAPPS', ''),
- ('KDEDATA', 'installation path of the application data'),
- ('KDELOCALE', ''),
- ('KDEDOC', 'installation path of the application documentation'),
- ('KDEKCFG', 'installation path of the .kcfg files'),
- ('KDEXDG', 'installation path of the service types'),
- ('KDEXDGDIR', 'installation path of the xdg service directories'),
- ('KDEMENU', ''),
- ('KDEMIME', 'installation path of to the mimetypes'),
- ('KDEICONS', ''),
- ('KDEm1', ''),
- ('KDEm2', ''),
- ('KDEm3', ''),
- ('KDESERV', ''),
- )
- opts.Update(env)
-
- # reconfigure when things are missing
- if 'configure' in env['TARGS'] or not env.has_key('QTDIR') or not env.has_key('TDEDIR'):
- detect_kde(env)
-
- # finally save the configuration to the cache file
- opts.Save(cachefile, env)
-
- ## set default variables, one can override them in sconscript files
- env.Append(CXXFLAGS = ['-I'+env['KDEINCLUDEPATH'], '-I'+env['QTINCLUDEPATH'], '-I'+env['TQTINCLUDEPATH'], '-include', 'tqt.h' ])
- env.Append(LIBPATH = [env['KDELIBPATH'], env['QTLIBPATH'] ])
-
- env['STATIC_AND_SHARED_OBJECTS_ARE_THE_SAME'] = 1
-
- env['QT_AUTOSCAN'] = 1
- env['QT_DEBUG'] = 0
- env['QT_UIC_HFLAGS'] = '-L $QTPLUGINS -nounload'
- env['QT_UIC_CFLAGS'] = '$QT_UIC_HFLAGS -tr tr2i18n'
- env['QT_LIBS'] = 'tqt'
- env['QT_UICIMPLPREFIX'] = ''
- env['QT_UICIMPLSUFFIX'] = '.cpp'
-
- env['QT_MOCHPREFIX'] = ''
- env['QT_MOCHSUFFIX'] = '.moc'
- env['KDE_KCFG_IMPLPREFIX'] = ''
- env['KDE_KCFG_IMPL_HSUFFIX'] = '.h'
- env['KDE_KCFG_IMPL_CSUFFIX'] = '.cpp'
- env['KDE_SKEL_IMPL_SUFFIX'] = '.skel'
- env['MEINPROC'] = 'meinproc'
- env['MSGFMT'] = 'msgfmt'
-
- ## ui file processing
- def uicGenerator(target, source, env, for_signature):
- act=[]
- act.append('$QT_UIC $QT_UIC_HFLAGS -o '+target[0].path+' '+source[0].path)
- act.append('rm -f ' +target[1].path)
- act.append('echo \'#include <tdelocale.h>\' >> '+target[1].path)
- act.append('echo \'#include <kdialog.h>\' >> '+target[1].path)
- act.append('$QT_UIC $QT_UIC_CFLAGS -impl '+target[0].path+' -o '+target[1].path+'.tmp '+source[0].path)
- act.append('cat '+target[1].path+'.tmp >> '+target[1].path)
- act.append('rm -f '+target[1].path+'.tmp')
- act.append('echo \'#include "' + target[2].name + '"\' >> '+target[1].path)
- act.append('moc-tqt $QT_MOC '+target[0].path+' '+target[2].path)
- return act
-
- def uicEmitter(target, source, env):
- adjustixes = SCons.Util.adjustixes
- bs = SCons.Util.splitext(str(source[0].name))[0]
- bs = os.path.join(str(target[0].get_dir()),bs)
- # first target is automatically added by builder (.h file)
- if len(target) < 2:
- # second target is .cpp file
- target.append(adjustixes(bs,
- env.subst('$QT_UICIMPLPREFIX'),
- env.subst('$QT_UICIMPLSUFFIX')))
- if len(target) < 3:
- # third target is .moc file
- target.append(adjustixes(bs,
- env.subst('$QT_MOCHPREFIX'),
- env.subst('$QT_MOCHSUFFIX')))
- return target, source
-
- UIC_BUILDER = Builder(
- generator = uicGenerator,
- emitter = uicEmitter,
- suffix = '.h',
- src_suffix = '.ui')
-
- ## moc file processing
- env['QT_MOCCOM'] = ('moc-tqt $QT_MOC $SOURCE ${TARGETS[0]}')
-
- MOC_BUILDER = Builder(
- action = '$QT_MOCCOM',
- suffix = '.moc',
- src_suffix = '.h')
-
- MOCCPP_BUILDER = Builder(
- action = '$QT_MOCCOM',
- suffix = '_moc.cpp',
- src_suffix = '.h')
-
- ## kcfg file processing
- def kcfgGenerator(target, source, env, for_signature):
- act=[]
- act.append('tdeconfig_compiler -d'+str(source[0].get_dir())+' '+source[1].path+' '+source[0].path)
- return act
-
- def kcfgEmitter(target, source, env):
- adjustixes = SCons.Util.adjustixes
- bs = SCons.Util.splitext(str(source[0].name))[0]
- bs = os.path.join(str(target[0].get_dir()),bs)
- # .h file is automatically added
- if len(target) < 2:
- # add .cpp file
- target.append(adjustixes(bs, env.subst('$KDE_KCFG_IMPLPREFIX'), env.subst('$KDE_KCFG_IMPL_CSUFFIX')))
-
- if len(source) <2:
- if not os.path.isfile(str(source[0])):
- print RED+'kcfg file given'+str(source[0])+' does not exist !'+NORMAL
- return target, source
- kfcgfilename=""
- kcfgFileDeclRx = re.compile("^[fF]ile\s*=\s*(.+)\s*$")
- for line in file(str(source[0]), "r").readlines():
- match = kcfgFileDeclRx.match(line.strip())
- if match:
- kcfgfilename = match.group(1)
- break
- source.append(str(source[0].get_dir())+'/'+kcfgfilename)
- return target, source
-
- KCFG_BUILDER = Builder(
- generator = kcfgGenerator,
- emitter = kcfgEmitter,
- suffix = '.h',
- src_suffix = '.kcfgc')
-
- ## dcop processing
- def dcopGenerator(target, source, env, for_signature):
- act=[]
- act.append('dcopidl '+source[0].path+' > '+target[1].path+'|| ( rm -f '+target[1].path+' ; false)')
- act.append('dcopidl2cpp --c++-suffix cpp --no-signals --no-stub '+target[1].path)
- return act
-
- def dcopEmitter(target, source, env):
- bs = SCons.Util.splitext(str(source[0].name))[0]
- bs = os.path.join(str(target[0].get_dir()),bs)
- target.append(bs+'.kidl')
- #target.append(bs+'_skel.cpp')
- return target, source
-
- DCOP_BUILDER = Builder(
- generator = dcopGenerator,
- emitter = dcopEmitter,
- suffix = '_skel.cpp',
- src_suffix = '.h')
-
- ## documentation processing
- MEINPROC_BUILDER = Builder(
- action = '$MEINPROC --check --cache $TARGET $SOURCE',
- suffix = '.cache.bz2')
-
- ## translation files builder
- TRANSFILES_BUILDER = Builder(
- action = '$MSGFMT $SOURCE -o $TARGET',
- suffix = '.gmo',
- src_suffix = '.po')
-
- ## libtool file builder
- def laGenerator(target, source, env, for_signature):
- act=[]
- act.append('echo "dlname=\''+source[0].name+'\'" > '+target[0].path)
- act.append('echo "library_names=\''+source[0].name+' '+source[0].name+' '+source[0].name+'\'" >> '+target[0].path)
- act.append('echo "old_library=\'\'">> '+target[0].path)
- act.append('echo "dependency_libs=\'\'">> '+target[0].path)
- act.append('echo "current=0">> '+target[0].path)
- act.append('echo "age=0">> '+target[0].path)
- act.append('echo "revision=0">> '+target[0].path)
- act.append('echo "installed=yes">> '+target[0].path)
- act.append('echo "shouldnotlink=no">> '+target[0].path)
- act.append('echo "dlopen=\'\'">> '+target[0].path)
- act.append('echo "dlpreopen=\'\'">> '+target[0].path)
- act.append('echo "libdir=\''+env['KDEMODULE']+'\'" >> '+target[0].path)
- env.Depends(target, source)
- return act
- LA_BUILDER = Builder(
- generator = laGenerator,
- suffix = '.la',
- src_suffix = env['SHLIBSUFFIX'])
-
- ## register the builders
- env['BUILDERS']['Uic'] = UIC_BUILDER
- env['BUILDERS']['Moc'] = MOC_BUILDER
- env['BUILDERS']['Moccpp'] = MOCCPP_BUILDER
- env['BUILDERS']['Dcop'] = DCOP_BUILDER
- env['BUILDERS']['Kcfg'] = KCFG_BUILDER
- env['BUILDERS']['LaFile'] = LA_BUILDER
- env['BUILDERS']['Meinproc'] = MEINPROC_BUILDER
- env['BUILDERS']['Transfiles']= TRANSFILES_BUILDER
-
- static_obj, shared_obj = SCons.Tool.createObjBuilders(env)
- static_obj.src_builder.append('Uic')
- shared_obj.src_builder.append('Uic')
- static_obj.src_builder.append('Kcfg')
- shared_obj.src_builder.append('Kcfg')
- static_obj.src_builder.append('LaFile')
- shared_obj.src_builder.append('LaFile')
- static_obj.src_builder.append('Meinproc')
- shared_obj.src_builder.append('Meinproc')
- static_obj.src_builder.append('Transfiles')
- shared_obj.src_builder.append('Transfiles')
-
- ## Find the files to moc, dcop, and link against kde and qt
- env.AppendUnique(PROGEMITTER = [MetasourcesStatic], SHLIBEMITTER=[MetasourcesShared], LIBEMITTER =[MetasourcesStatic])
-
- ## Handy helpers for building kde programs
- ## You should not have to modify them ..
-
- #import SCons.Util
- skel_ext = [".skel", ".SKEL"]
- def KDEfiles(lenv, target, source):
- """ Returns a list of files for scons (handles kde tricks like .skel)
- It also makes custom checks against double includes like : ['file.ui', 'file.cpp']
- (file.cpp is already included because of file.ui) """
-
- src=[]
- ui_files=[]
- kcfg_files=[]
- skel_files=[]
- other_files=[]
-
- # For each file, check wether it is a dcop file or not, and create the complete list of sources
- for file in source:
- bs = SCons.Util.splitext(file)[0]
- ext = SCons.Util.splitext(file)[1]
- if ext in skel_ext:
- lenv.Dcop(bs+'.h')
- src.append(bs+'_skel.cpp')
- elif ext == ".moch":
- lenv.Moccpp(bs+'.h')
- src.append(bs+'_moc.cpp')
- else:
- src.append(file)
-
- if ext == '.ui':
- ui_files.append(bs)
- elif ext == '.kcfgc':
- kcfg_files.append(bs)
- elif ext == '.skel':
- skel_files.append(bs)
- else:
- other_files.append(bs)
-
- # Now check against typical newbie errors
- for file in ui_files:
- for ofile in other_files:
- if ofile == file:
- print RED+"WARNING: You have included "+file+".ui and another file of the same prefix"+NORMAL
- print "Files generated by uic (file.h, file.cpp must not be included"
- for file in kcfg_files:
- for ofile in other_files:
- if ofile == file:
- print RED+"WARNING: You have included "+file+".kcfg and another file of the same prefix"+NORMAL
- print "Files generated by tdeconfig_compiler (settings.h, settings.cpp) must not be included"
- return src
-
-
- """
- In the future, these functions will contain the code that will dump the
- configuration for re-use from an IDE
- """
- import glob
- def KDEinstall(lenv, restype, subdir, files):
- if not 'install' in env['TARGS']:
- return
- basedir=env['DESTDIR']
- if len(restype)>0:
- if not lenv.has_key(restype):
- print RED+"unknown resource type "+restype+NORMAL
- else:
- basedir += lenv[restype]+'/'
- #print file # <- useful to trace stuff :)
- install_list = env.Install(basedir+subdir+'/', files)
- env.Alias('install', install_list)
- return install_list
-
- def KDEinstallas(lenv, restype, destfile, file):
- if not 'install' in env['TARGS']:
- return
- basedir=env['DESTDIR']
- if len(restype)>0:
- if not lenv.has_key(restype):
- print RED+"unknown resource type "+restype+NORMAL
- else:
- basedir += lenv[restype]+'/'
- install_list = env.InstallAs(basedir+destfile, file)
- env.Alias('install', install_list)
- return install_list
-
- def KDEprogram(lenv, target, source):
- """ Makes a kde program
- The program is installed except if one sets env['NOAUTOINSTALL'] """
- src = KDEfiles(lenv, target, source)
- program_list = lenv.Program(target, src)
- if not lenv.has_key('NOAUTOINSTALL'):
- KDEinstall(lenv, 'KDEBIN', '', target)
- return program_list
-
- def KDEshlib(lenv, target, source, kdelib=0, libprefix='lib'):
- """ Makes a shared library for kde (.la file for klibloader)
- The library is installed except if one sets env['NOAUTOINSTALL'] """
- src = KDEfiles(lenv, target, source)
- lenv['LIBPREFIX']=libprefix
- library_list = lenv.SharedLibrary(target, src)
- lafile_list = lenv.LaFile(target, library_list)
- if not lenv.has_key('NOAUTOINSTALL'):
- install_dir = 'KDEMODULE'
- if kdelib==1:
- install_dir = 'KDELIBPATH'
- KDEinstall(lenv, install_dir, '', library_list)
- KDEinstall(lenv, install_dir, '', lafile_list)
- return library_list
-
- def KDEstaticlib(lenv, target, source):
- """ Makes a static library for kde - in practice you should not use static libraries
- 1. they take more memory than shared ones
- 2. makefile.am needed it because of limitations
- (cannot handle sources in separate folders - takes extra processing) """
- src = KDEfiles(lenv, target, source)
- return lenv.StaticLibrary(target, src)
- # do not install static libraries by default
-
- def KDEaddflags_cxx(lenv, fl):
- """ Compilation flags for C++ programs """
- lenv.AppendUnique(CXXFLAGS = fl)
-
- def KDEaddflags_c(lenv, fl):
- """ Compilation flags for C programs """
- lenv.AppendUnique(CFLAGS = fl)
-
- def KDEaddflags_link(lenv, fl):
- """ Add link flags - Use this if KDEaddlibs below is not enough """
- lenv.AppendUnique(LINKFLAGS = fl)
-
- def KDEaddlibs(lenv, libs):
- """ Helper function """
- lenv.AppendUnique(LIBS = libs)
-
- def KDEaddpaths_includes(lenv, paths):
- """ Add new include paths """
- lenv.AppendUnique(CPPPATH = paths)
-
- def KDEaddpaths_libs(lenv, paths):
- """ Add paths to libraries """
- lenv.AppendUnique(LIBPATH = paths)
-
- def KDElang(lenv, folder, appname):
- """ Process translations (.po files) in a po/ dir """
- transfiles = glob.glob(folder+'/*.po')
- for lang in transfiles:
- result = lenv.Transfiles(lang)
- country = SCons.Util.splitext(result[0].name)[0]
- KDEinstallas(lenv, 'KDELOCALE', country+'/LC_MESSAGES/'+appname+'.mo', result)
-
- def KDEicon(lenv, icname):
- """ Emulates the behaviour of Makefile.am to install icons
- Contributed by: "Andrey Golovizin" <grooz@gorodok@net> """
- type_dic = { 'action' : 'actions', 'app' : 'apps', 'device' :
- 'devices', 'filesys' : 'filesystems', 'mime' : 'mimetypes' }
- dir_dic = {
- 'los' :'locolor/16x16',
- 'lom' :'locolor/32x32',
- 'him' :'hicolor/32x32',
- 'hil' :'hicolor/48x48',
- 'lo16' :'locolor/16x16',
- 'lo22' :'locolor/22x22',
- 'lo32' :'locolor/32x32',
- 'hi16' :'hicolor/16x16',
- 'hi22' :'hicolor/22x22',
- 'hi32' :'hicolor/32x32',
- 'hi48' :'hicolor/48x48',
- 'hi64' :'hicolor/64x64',
- 'hi128':'hicolor/128x128',
- 'hisc' :'hicolor/scalable',
- 'cr16' :'crystalsvg/16x16',
- 'cr22' :'crystalsvg/22x22',
- 'cr32' :'crystalsvg/32x32',
- 'cr48' :'crystalsvg/48x48',
- 'cr64' :'crystalsvg/64x64',
- 'cr128':'crystalsvg/128x128',
- 'crsc' :'crystalsvg/scalable'
- }
-
- iconfiles = []
- for ext in ['png', 'xpm', 'mng', 'svg', 'svgz']:
- files = glob.glob('*-*-%s.%s' % (icname, ext))
- iconfiles += files
- for iconfile in iconfiles:
- tmp = iconfile.split('-')
- if len(tmp)!=3:
- print RED+'WARNING: icon filename has unknown format: '+iconfile+NORMAL
- continue
- [icon_dir, icon_type, icon_filename]=tmp
- try:
- destfile = '%s/%s/%s/%s' % (lenv['KDEICONS'], dir_dic[icon_dir], type_dic[icon_type], icon_filename)
- except KeyError:
- print RED+'WARNING: unknown icon type: '+iconfile+NORMAL
- continue
- ## Do not use KDEinstallas here, as parsing from an ide will be necessary
- if 'install' in env['TARGS']:
- env.Alias('install', env.InstallAs( env['DESTDIR']+'/'+destfile, iconfile ) )
-
- # Attach the functions to the environment so that sconscripts can use them
- from SCons.Script.SConscript import SConsEnvironment
- SConsEnvironment.KDEprogram = KDEprogram
- SConsEnvironment.KDEshlib = KDEshlib
- SConsEnvironment.KDEstaticlib = KDEstaticlib
- SConsEnvironment.KDEinstall = KDEinstall
- SConsEnvironment.KDEinstallas = KDEinstallas
- SConsEnvironment.KDElang = KDElang
- SConsEnvironment.KDEicon = KDEicon
-
- SConsEnvironment.KDEaddflags_cxx = KDEaddflags_cxx
- SConsEnvironment.KDEaddflags_c = KDEaddflags_c
- SConsEnvironment.KDEaddflags_link = KDEaddflags_link
- SConsEnvironment.KDEaddlibs = KDEaddlibs
- SConsEnvironment.KDEaddpaths_includes = KDEaddpaths_includes
- SConsEnvironment.KDEaddpaths_libs = KDEaddpaths_libs
-
diff --git a/po/CMakeLists.txt b/po/CMakeLists.txt
index 46fba83..75c89f8 100644
--- a/po/CMakeLists.txt
+++ b/po/CMakeLists.txt
@@ -1,6 +1,14 @@
-# build translations if some are already available
+file( GLOB_RECURSE po_files RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} *.po )
+string( REGEX REPLACE "[ \r\n\t]+" ";" _linguas "$ENV{LINGUAS}" )
-file( GLOB _srcs RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} *.po )
-if( _srcs )
- tde_create_translation( LANG auto OUTPUT_NAME ${PROJECT_NAME} )
-endif( )
+foreach( _po ${po_files} )
+ get_filename_component( _lang ${_po} NAME_WE )
+ if( "${_linguas}" MATCHES "^;*$" OR ";${_linguas};" MATCHES ";${_lang};" )
+ if( "${_po}" MATCHES "^([^/]*)/.*" )
+ string( REGEX REPLACE "^([^/]*)/.*" "\\1" _component "${_po}" )
+ else( )
+ set( _component "${PROJECT_NAME}" )
+ endif( )
+ tde_create_translation( FILES ${_po} LANG ${_lang} OUTPUT_NAME ${_component} )
+ endif( )
+endforeach( )
diff --git a/po/SConscript b/po/SConscript
deleted file mode 100644
index 43206be..0000000
--- a/po/SConscript
+++ /dev/null
@@ -1,24 +0,0 @@
-## This script demonstrates 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)
-
-
-## First load the environment set in the top-level SConstruct file
-#Import( "env KDElang" )
-Import('env')
-myenv=env.Clone()
-
-## Make translations for the program "test1" in french (requires fr.po)
-myenv['APPNAME'] = "kstreamripper"
-#KDElang( ['fr'], myenv )
-
-## NOTE1 :
-# KDElang( ['fr','de','nl','pl'], myenv )
-
-## NOTE2 :
-## updating the translation files must be done manually
-## for the moment, using the messages.sh script
diff --git a/po/messages.sh b/po/messages.sh
deleted file mode 100755
index 3020ce8..0000000
--- a/po/messages.sh
+++ /dev/null
@@ -1,60 +0,0 @@
-#!/bin/sh
-
-# Inspired by Makefile.common from coolo
-# this script is used to update the .po files
-
-# To update the translations, you will need a specific gettext
-# patched for kde and a lot of patience, tenacity, luck, time ..
-
-
-# I guess one should only update the .po files when all .cpp files
-# are generated (after a make or scons)
-
-# If you have a better way to do this, do not keep that info
-# for yourself and help me to improve this script, thanks
-# (tnagyemail-mail tat yahoo d0tt fr)
-
-SRCDIR=../test1-tdeconfigxt # srcdir is the directory containing the source code
-TIPSDIR=$SRCDIR # tipsdir is the directory containing the tips
-
-TDEDIR=`tde-config --prefix`
-EXTRACTRC=extractrc
-KDEPOT=`tde-config --prefix`/include/kde.pot
-XGETTEXT="xgettext -C -ki18n -ktr2i18n -kI18N_NOOP -ktranslate -kaliasLocale -x $KDEPOT "
-
-## check that kde.pot is available
-if ! test -e $KDEPOT; then
- echo "$KDEPOT does not exist, there is something wrong with your installation!"
- XGETTEXT="xgettext -C -ki18n -ktr2i18n -kI18N_NOOP -ktranslate -kaliasLocale "
-fi
-
-> rc.cpp
-
-## extract the strings
-echo "extracting the strings"
-
-# process the .ui and .rc files
-$EXTRACTRC `find $SRCDIR -iname *.rc` >> rc.cpp
-$EXTRACTRC `find $SRCDIR -iname *.ui` >> rc.cpp
-echo -e 'i18n("_: NAME OF TRANSLATORS\\n"\n"Your names")\ni18n("_: EMAIL OF TRANSLATORS\\n"\n"Your emails")' > $SRCDIR/_translatorinfo.cpp
-
-# process the tips - $SRCDIR is supposed to be where the tips are living
-pushd $TIPSDIR; preparetips >tips.cpp; popd
-
-$XGETTEXT `find $SRCDIR -name "*.cpp"` -o kdissert.pot
-
-# remove the intermediate files
-rm -f $TIPSDIR/tips.cpp
-rm -f rc.cpp
-rm -f $SRCDIR/_translatorinfo.cpp
-
-## now merge the .po files ..
-echo "merging the .po files"
-
-for i in `ls *.po`; do
- msgmerge $i kdissert.pot -o $i || exit 1
-done
-
-## finished
-echo "Done"
-
diff --git a/scons-mini.tar.bz2 b/scons-mini.tar.bz2
deleted file mode 100644
index 0c1ce52..0000000
--- a/scons-mini.tar.bz2
+++ /dev/null
Binary files differ
diff --git a/scons-mini.tar.bz2.cdbs-config_list b/scons-mini.tar.bz2.cdbs-config_list
deleted file mode 100644
index e69de29..0000000
--- a/scons-mini.tar.bz2.cdbs-config_list
+++ /dev/null
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index 1ec9d52..7eacdcf 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -46,7 +46,4 @@ install(
DESTINATION ${DATA_INSTALL_DIR}/${PROJECT_NAME}
)
-install(
- FILES ${PROJECT_NAME}.desktop
- DESTINATION ${XDG_APPS_INSTALL_DIR}
-)
+tde_create_translated_desktop( ${PROJECT_NAME}.desktop )
diff --git a/src/SConscript b/src/SConscript
deleted file mode 100644
index 97a8595..0000000
--- a/src/SConscript
+++ /dev/null
@@ -1,68 +0,0 @@
-#! /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()
-
-#############################
-## the programs to build
-
-# The sources for our program - only .ui, .skel and .cpp are accepted
-kstreamripper_sources = """
-addnewstreamimpl.cpp
-addnewstream.ui
-kstreamripperbase.ui
-kstreamripper.cpp
-main.cpp
-processcontroller.cpp
-processlistviewitem.cpp
-""".split()
-
-# Our main program
-# KDEprogram add the file to the install targets automatically,
-# so you do not need to write KDEinstall('KDEBIN', '', test1, myenv)
-myenv.KDEprogram( "kstreamripper", kstreamripper_sources )
-
-############################
-## Customization
-
-## Additional include paths for compiling the source files
-## Always add '../' (top-level directory) because moc makes code that needs it
-myenv.KDEaddpaths_includes( ['./', '../'] )
-
-## Necessary libraries to link against
-myenv.KDEaddlibs( ['tqt-mt', 'tqt', 'tdecore', 'tdeio', 'tdeui', 'tdednssd'] )
-#############################
-## Data to install
-
-## The ui.rc file and the tips go into datadir/appname/
-myenv.KDEinstall( 'KDEDATA', 'kstreamripper', 'kstreamripperui.rc' )
-
-## The kcfg file is installed in a global kcfg directory
-#myenv.KDEinstall( 'KDEKCFG', '', 'test1.kcfg' )
-
-## 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( 'KDEXDG', '', 'kstreamripper.desktop')
-
-## Use this when you need to install a mimetype file
-#myenv.KDEinstall( 'KDEMIME', 'application', 'x-test1.desktop' )
-
-## Installing icons is easy (hi-16-app-test1.png, hi-22-app-test1.png)
-## do not forget that this is a python script so loops are allowed here :)
-myenv.KDEicon( 'hi16-app-kstreameripper.png')
-myenv.KDEicon( 'hi32-app-kstreameripper.png')
-
diff --git a/unpack_local_scons.sh b/unpack_local_scons.sh
deleted file mode 100755
index a1266fc..0000000
--- a/unpack_local_scons.sh
+++ /dev/null
@@ -1,61 +0,0 @@
-#!/bin/sh
-
-BOLD="\033[1m"
-RED="\033[91m"
-GREEN="\033[92m"
-YELLOW="\033[93m"
-CYAN="\033[96m"
-NORMAL="\033[0m"
-
-#bunzip2 scons-mini.tar.bz2
-#tar xvf scons-mini.tar
-
-# if kde is there a recent tar should be too
-tar xjvf scons-mini.tar.bz2
-
-cat > Makefile << EOF
-## Makefile automatically generated by unpack_local_scons.sh
-
-### To use scons when installed globally use
-#SCONS=scons
-### To run the local version instead, define
-SCONS=./scons
-
-# scons : compile
-# scons -c : clean
-# scons install : install
-# scons -c install : uninstall and clean
-
-# default target : use scons to build the programs
-all:
- \$(SCONS) -Q
-
-### There are several possibilities to help debugging :
-# scons --debug=explain, scons --debug=tree ..
-#
-### To optimize the runtime, use
-# scons --max-drift=1 --implicit-deps-unchanged
-debug:
- \$(SCONS) -Q --debug=tree
-
-clean:
- \$(SCONS) -c
-
-install:
- \$(SCONS) install
-
-uninstall:
- \$(SCONS) -c install
-
-## this target creates a tarball of the project
-dist:
- \$(SCONS) dist
-EOF
-
-
-echo ""
-echo -e $GREEN"A minimum scons distribution has been unpacked right here"
-echo -e $GREEN"you can now run : "$NORMAL
-echo -e $BOLD"./scons"$NORMAL
-echo -e $BOLD"./scons install$NORMAL (as root probably)"
-