Signed-off-by: gregory guy <gregory-tde@laposte.net>pull/1/head
parent
88aa431c9d
commit
0b2288da16
@ -0,0 +1,79 @@
|
||||
############################################
|
||||
# #
|
||||
# Improvements and feedbacks are welcome #
|
||||
# #
|
||||
# This file is released under GPL >= 3 #
|
||||
# #
|
||||
############################################
|
||||
|
||||
|
||||
cmake_minimum_required( VERSION 2.8 )
|
||||
|
||||
|
||||
#### general package setup
|
||||
|
||||
project( codeine )
|
||||
set( VERSION R14.1.0 )
|
||||
|
||||
|
||||
#### include essential cmake modules
|
||||
|
||||
include( FindPkgConfig )
|
||||
include( CheckFunctionExists )
|
||||
include( CheckSymbolExists )
|
||||
include( CheckIncludeFile )
|
||||
include( CheckLibraryExists )
|
||||
include( CheckCSourceCompiles )
|
||||
include( CheckCXXSourceCompiles )
|
||||
|
||||
|
||||
#### include our cmake modules
|
||||
|
||||
set( CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake/modules" )
|
||||
include( TDEMacros )
|
||||
|
||||
|
||||
##### setup install paths
|
||||
|
||||
include( TDESetupPaths )
|
||||
tde_setup_paths( )
|
||||
|
||||
|
||||
##### optional stuff
|
||||
|
||||
option( WITH_ALL_OPTIONS "Enable all optional support" OFF )
|
||||
option( WITH_GCC_VISIBILITY "Enable fvisibility and fvisibility-inlines-hidden" ${WITH_ALL_OPTIONS} )
|
||||
|
||||
|
||||
##### user requested modules
|
||||
|
||||
option( BUILD_ALL "Build all" ON )
|
||||
option( BUILD_DOC "Build documentation" ${BUILD_ALL} )
|
||||
option( BUILD_TRANSLATIONS "Build translations" ${BUILD_ALL} )
|
||||
|
||||
|
||||
##### configure checks
|
||||
|
||||
include( ConfigureChecks.cmake )
|
||||
|
||||
|
||||
###### global compiler settings
|
||||
|
||||
add_definitions( -DHAVE_CONFIG_H -UTQT_NO_ASCII_CAST )
|
||||
|
||||
set( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${TQT_CXX_FLAGS}" )
|
||||
set( CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -Wl,--no-undefined" )
|
||||
set( CMAKE_MODULE_LINKER_FLAGS "${CMAKE_MODULE_LINKER_FLAGS} -Wl,--no-undefined" )
|
||||
|
||||
|
||||
##### directories
|
||||
|
||||
add_subdirectory( src )
|
||||
add_subdirectory( misc )
|
||||
tde_conditional_add_subdirectory( BUILD_DOC doc )
|
||||
tde_conditional_add_subdirectory( BUILD_TRANSLATIONS translations )
|
||||
|
||||
|
||||
##### write configure files
|
||||
|
||||
configure_file( config.h.cmake config.h @ONLY )
|
@ -0,0 +1,49 @@
|
||||
###########################################
|
||||
# #
|
||||
# Improvements and feedback are welcome #
|
||||
# #
|
||||
# This file is released under GPL >= 3 #
|
||||
# #
|
||||
###########################################
|
||||
|
||||
# required stuff
|
||||
find_package( TQt )
|
||||
find_package( TDE )
|
||||
|
||||
tde_setup_architecture_flags( )
|
||||
|
||||
include(TestBigEndian)
|
||||
test_big_endian(WORDS_BIGENDIAN)
|
||||
|
||||
tde_setup_largefiles( )
|
||||
|
||||
|
||||
##### check for gcc visibility support
|
||||
|
||||
if( WITH_GCC_VISIBILITY )
|
||||
tde_setup_gcc_visibility( )
|
||||
endif( WITH_GCC_VISIBILITY )
|
||||
|
||||
|
||||
##### look for X11
|
||||
|
||||
find_package( X11 )
|
||||
|
||||
|
||||
##### look for XTest and xcb-util-keysyms
|
||||
|
||||
pkg_search_module( X11_XTEST xtst )
|
||||
pkg_search_module( X11_KEYSIM xcb-keysyms )
|
||||
|
||||
if( (NOT X11_XTest_FOUND) OR (NOT X11_KEYSIM_FOUND) )
|
||||
set( NO_XTEST_EXTENSION 1 )
|
||||
endif()
|
||||
|
||||
|
||||
#### xine-engine
|
||||
|
||||
pkg_search_module( XINE libxine )
|
||||
|
||||
if( NOT XINE_FOUND )
|
||||
tde_message_fatal( "Xine-lib is required but was not found on your system" )
|
||||
endif( NOT XINE_FOUND )
|
@ -0,0 +1,29 @@
|
||||
Basic Installation
|
||||
==================
|
||||
|
||||
codeine relies on cmake to build.
|
||||
|
||||
Here are suggested default options:
|
||||
|
||||
-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"
|
||||
|
||||
|
||||
Requirements:
|
||||
=============
|
||||
|
||||
- xine-lib
|
||||
|
||||
|
||||
Optional:
|
||||
=========
|
||||
|
||||
- XTest
|
||||
- xcb-util-keysyms
|
@ -1,17 +0,0 @@
|
||||
pkgname=codeine
|
||||
pkgver=1.0.1
|
||||
pkgrel=1
|
||||
pkgdesc="A simple xine-based video player"
|
||||
url="http://www.methylblue.com/codeine/"
|
||||
|
||||
build() {
|
||||
echo -e "\033[0;34m==>\033[0;0;1m Configure \033[0;0m"
|
||||
cd "$startdir"
|
||||
./configure prefix=/opt/kde
|
||||
|
||||
echo -e "\033[0;34m==>\033[0;0;1m Make \033[0;0m"
|
||||
make || return 1
|
||||
|
||||
echo -e "\033[0;34m==>\033[0;0;1m Install \033[0;0m"
|
||||
DESTDIR="$startdir/pkg" make install
|
||||
}
|
@ -1,48 +1,2 @@
|
||||
INTRODUCTION
|
||||
Codeine is a very simple xine-based media player.
|
||||
|
||||
I make the following promises:
|
||||
|
||||
* I will not add any substantial features after version 1.0.0
|
||||
* After then, improvements will only be in the realm of usability and bug
|
||||
fixes
|
||||
|
||||
You can rely on Codeine for now and until xine is obsolete to be a simple
|
||||
no-frills video(/media) player.
|
||||
|
||||
Visit #codeine on freenode.net!
|
||||
|
||||
Max Howell
|
||||
|
||||
|
||||
REQUIREMENTS
|
||||
You will need at least:
|
||||
|
||||
* Qt 3.3.0 (Qt 3.2.x may work, it is just not tested)
|
||||
* KDElibs 3.3.0
|
||||
* xine-lib 1.0.0-rc4
|
||||
|
||||
You also need python installed in order to build Codeine.
|
||||
|
||||
|
||||
INSTALLATION
|
||||
I use scons + bksys as the build system. But you can still do the following:
|
||||
|
||||
% ./configure && make && su -c "make install"
|
||||
|
||||
Or if you have scons installed, simply:
|
||||
|
||||
% scons && su -c "scons install"
|
||||
|
||||
Note that scons is a little silly and this kind of thing doesn't work:
|
||||
|
||||
% ./configure --prefix=/foo/bar --debug=full
|
||||
|
||||
Instead do:
|
||||
|
||||
% ./configure prefix=/foo/bar debug=full
|
||||
|
||||
|
||||
TRANSLATIONS
|
||||
I will make the po file available for translation at the 1.0-rc1 stage, if
|
||||
you want to make a translation I thank you in advance :-)
|
||||
Codeine - a very simple xine-based media player.
|
||||
|
@ -1,168 +0,0 @@
|
||||
#!/usr/bin/python
|
||||
|
||||
###########################################
|
||||
## Common section, for loading the tools
|
||||
|
||||
## Load the builders in config
|
||||
env = Environment(TARGS=COMMAND_LINE_TARGETS, ARGS=ARGUMENTS, tools=['default', 'generic', 'kde', 'codeine'], toolpath=['./scons/'])
|
||||
|
||||
|
||||
## 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 )
|
||||
## If you do not want to copy the whole environment, you can use this instead (HOME is necessary for uic):
|
||||
#env.AppendUnique( ENV = {'PATH' : os.environ['PATH'], 'HOME' : os.environ['HOME']} )
|
||||
|
||||
## 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')
|
||||
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', 'src/part', 'src/app' ]
|
||||
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'] )
|
||||
|
||||
## Uncomment the following if you need threading support threading
|
||||
#env.Append( CPPFLAGS = ['-DQT_THREAD_SUPPORT', '-D_REENTRANT'] )
|
||||
#if os.uname()[0] == "FreeBSD":
|
||||
# env.Append(LINKFLAGS=["-pthread"])
|
||||
|
||||
## Important : export the environment so that SConscript files can the
|
||||
## configuration and builders in it
|
||||
Export("env")
|
||||
|
||||
|
||||
def string_it(target, source, env):
|
||||
print "Visit #codeine on irc.freenode.net!"
|
||||
return 0
|
||||
|
||||
env.AddPostAction( "install", string_it )
|
||||
|
||||
env.SConscript( "src/SConscript", build_dir='build', duplicate=0 )
|
||||
|
||||
|
||||
if 'dist' in COMMAND_LINE_TARGETS:
|
||||
|
||||
APPNAME = 'codeine'
|
||||
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()
|
||||
# TODO copying the cache takes forever! delete it first
|
||||
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 \".scon*\" | xargs rm -rf")
|
||||
os.popen("find "+FOLDER+" -name \"kdiss*-data\" | xargs rm -rf")
|
||||
os.popen("find "+FOLDER+" -name \"*.pyc\" | xargs rm -f")
|
||||
os.popen("find "+FOLDER+" -name \"*.cache.py\" | xargs rm -f")
|
||||
os.popen("find "+FOLDER+" -name \"*.log\" | xargs rm -f")
|
||||
os.popen("find "+FOLDER+" -name \"*.tdevelop.*\" | xargs rm -f")
|
||||
os.popen("find "+FOLDER+" -name \"*~\" | xargs rm -f")
|
||||
|
||||
os.popen("rm -rf "+FOLDER+"/autopackage")
|
||||
os.popen("rm -rf "+FOLDER+"/build")
|
||||
os.popen("rm -rf "+FOLDER+"/cache")
|
||||
os.popen("rm -f " +FOLDER+"/codeine-*.tar.bz2")
|
||||
os.popen("rm -f " +FOLDER+"/config.py*")
|
||||
os.popen("rm -f " +FOLDER+"/src/configure.h")
|
||||
os.popen("rm -f " +FOLDER+"/Doxyfile")
|
||||
os.popen("rm -f " +FOLDER+"/Makefile")
|
||||
os.popen("rm -rf "+FOLDER+"/packages")
|
||||
os.popen("rm -rf "+FOLDER+"/screenshots")
|
||||
os.popen("rm -f " +FOLDER+"/scons/signatures.dblite")
|
||||
|
||||
## 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)
|
@ -0,0 +1,12 @@
|
||||
#define VERSION "@VERSION@"
|
||||
|
||||
// Defined if you have fvisibility and fvisibility-inlines-hidden support.
|
||||
#cmakedefine __KDE_HAVE_GCC_VISIBILITY 1
|
||||
|
||||
/* Define WORDS_BIGENDIAN to 1 if your processor stores words with the most
|
||||
significant byte first (like Motorola and SPARC, unlike Intel). */
|
||||
#cmakedefine WORDS_BIGENDIAN @WORDS_BIGENDIAN@
|
||||
|
||||
/* Defined if you don't have either the XTest headers or
|
||||
the xcb-util-keysyms headers */
|
||||
#cmakedefine NO_XTEST_EXTENSION 1
|
@ -1,87 +0,0 @@
|
||||
#! /bin/sh
|
||||
# TODO parse each passed argument and remove any "--" prefix
|
||||
|
||||
BOLD="\033[1m"
|
||||
RED="\033[91m"
|
||||
GREEN="\033[92m"
|
||||
YELLOW="\033[93m"
|
||||
CYAN="\033[96m"
|
||||
NORMAL="\033[0m"
|
||||
|
||||
if command -v scons >/dev/null 2>&1;
|
||||
then
|
||||
SCONS=scons
|
||||
else
|
||||
if [ ! -e "scons/scons" ]; then
|
||||
echo ""
|
||||
echo -ne "Unpacking mini-scons..."$RED
|
||||
|
||||
pushd scons >/dev/null 2>&1
|
||||
tar xjvf scons-mini.tar.bz2 > /dev/null 2>&1
|
||||
|
||||
if [[ "$?" == "0" ]]; then
|
||||
echo -e $GREEN"done"$NORMAL
|
||||
else
|
||||
echo -e $RED"failed!"$NORMAL
|
||||
exit 2
|
||||
fi
|
||||
|
||||
popd > /dev/null
|
||||
fi
|
||||
|
||||
SCONS=scons/scons
|
||||
fi
|
||||
|
||||
if [[ "$1" == "--help" ]]; then
|
||||
$SCONS -Q configure --help
|
||||
exit
|
||||
fi
|
||||
|
||||
echo ""
|
||||
echo "Configuring Codeine "`cat VERSION`"..."
|
||||
echo ""
|
||||
|
||||
#TODO remove all prefixed "--"
|
||||
|
||||
$SCONS -Q configure $@ || exit 1
|
||||
|
||||
echo ""
|
||||
echo -e "Your configure completed "$GREEN"successfully"$NORMAL", now type "$BOLD"make"$NORMAL
|
||||
echo ""
|
||||
|
||||
cat > Makefile << EOF
|
||||
## Makefile automatically generated by unpack_local_scons.sh
|
||||
|
||||
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
|
||||
|
@ -0,0 +1 @@
|
||||
tde_auto_add_subdirectories( )
|
@ -0,0 +1 @@
|
||||
tde_create_handbook( DESTINATION ${PROJECT_NAME} )
|
@ -0,0 +1,437 @@
|
||||
<?xml version="1.0" ?>
|
||||
<!DOCTYPE book PUBLIC "-//KDE//DTD DocBook XML V4.1.2-Based Variant V1.0//EN" "dtd/kdex.dtd" [
|
||||
<!ENTITY kappname "&codeine;">
|
||||
<!ENTITY codeine "<application>Codeine</application>">
|
||||
|
||||
<!ENTITY % addindex "IGNORE">
|
||||
<!ENTITY % English "INCLUDE"><!-- change language only here -->
|
||||
]>
|
||||
|
||||
|
||||
<!-- The language must NOT be changed here. -->
|
||||
|
||||
<book lang="&language;">
|
||||
|
||||
<!-- This header contains all of the meta-information for the document such
|
||||
as Authors, publish date, the abstract, and Keywords -->
|
||||
|
||||
<bookinfo>
|
||||
<title>The &codeine; Handbook</title>
|
||||
|
||||
<authorgroup>
|
||||
<author>
|
||||
<firstname>Mike</firstname>
|
||||
<surname>Diehl</surname>
|
||||
<affiliation>
|
||||
<address><email>madpenguin8@yahoo.com</email></address>
|
||||
</affiliation>
|
||||
</author>
|
||||
</authorgroup>
|
||||
|
||||
<!-- TRANS:ROLES_OF_TRANSLATORS -->
|
||||
|
||||
<copyright>
|
||||
<year>2004</year>
|
||||
<holder>Mike Diehl</holder>
|
||||
</copyright>
|
||||
<!-- Translators: put here the copyright notice of the translation -->
|
||||
<!-- Put here the FDL notice. Read the explanation in fdl-notice.docbook
|
||||
and in the FDL itself on how to use it. -->
|
||||
<legalnotice>&FDLNotice;</legalnotice>
|
||||
|
||||
<!-- Date and version information of the documentation
|
||||
Don't forget to include this last date and this last revision number, we
|
||||
need them for translation coordination !
|
||||
Please respect the format of the date (DD/MM/YYYY) and of the version
|
||||
(V.MM.LL), it could be used by automation scripts.
|
||||
Do NOT change these in the translation. -->
|
||||
|
||||
<date>10/19/2004</date>
|
||||
<releaseinfo>1</releaseinfo>
|
||||
|
||||
<!-- Abstract about this handbook -->
|
||||
|
||||
<abstract>
|
||||
<para>
|
||||
&codeine; is a simple media player for the TRINITY Desktop Environment. &codeine; is a front end to the xine multi-media player.
|
||||
</para>
|
||||
</abstract>
|
||||
|
||||
<!-- This is a set of Keywords for indexing by search engines.
|
||||
Please at least include KDE, the KDE package it is in, the name
|
||||
of your application, and a few relevant keywords. -->
|
||||
|
||||
<keywordset>
|
||||
<keyword>KDE</keyword>
|
||||
<keyword>Codeine</keyword>
|
||||
<keyword>xine</keyword>
|
||||
<keyword>video</keyword>
|
||||
<keyword>multi-media</keyword>
|
||||
</keywordset>
|
||||
|
||||
</bookinfo>
|
||||
|
||||
<!-- The contents of the documentation begin here. Label
|
||||
each chapter so with the id attribute. This is necessary for two reasons: it
|
||||
allows you to easily reference the chapter from other chapters of your
|
||||
document, and if there is no ID, the name of the generated HTML files will vary
|
||||
from time to time making it hard to manage for maintainers and for the CVS
|
||||
system. Any chapter labelled (OPTIONAL) may be left out at the author's
|
||||
discretion. Other chapters should not be left out in order to maintain a
|
||||
consistent documentation style across all KDE apps. -->
|
||||
|
||||
<chapter id="introduction">
|
||||
<title>Introduction</title>
|
||||
|
||||
<screenshot>
|
||||
<screeninfo>&codeine; Screenshot</screeninfo>
|
||||
<mediaobject>
|
||||
<imageobject><imagedata fileref="main.png" format="PNG"/></imageobject>
|
||||
<textobject><phrase>Screenshot</phrase></textobject>
|
||||
</mediaobject>
|
||||
</screenshot>
|
||||
|
||||
|
||||
<para>
|
||||
&codeine; is a simple media player using the xine backend. &codeine; is a no frills media player that is especially usefull for short video clips where most other media players would just get in the way.
|
||||
</para>
|
||||
|
||||
</chapter>
|
||||
|
||||
|
||||
<chapter id="configuring">
|
||||
<title>Configuring &codeine;</title>
|
||||
|
||||
<para></para>
|
||||
|
||||
</chapter>
|
||||
|
||||
|
||||
<chapter id="using">
|
||||
<title>Using &codeine;</title>
|
||||
|
||||
<sect1 id="starting">
|
||||
<title>Starting &codeine;</title>
|
||||
<para>&codeine; can be started from the K-Menu, or from the command-line</para>
|
||||
|
||||
<sect2 id="starting-from-the-menu">
|
||||
<title>From the K-Menu</title>
|
||||
|
||||
<para>
|
||||
Open the &kde; program menu by clicking on the <guiicon>big K</guiicon> icon on your panel. This will raise the <guimenu>program menu</guimenu>. Move your cursor up the menu to the <guimenu>Multimedia</guimenu> menu item. Choose <guimenuitem>&codeine;</guimenuitem>.
|
||||
</para>
|
||||
|
||||
</sect2>
|
||||
|
||||
|
||||
<sect2 id="starting-from-the-command-line">
|
||||
<title>From the Command Line</title>
|
||||
|
||||
<para>
|
||||
You can start &codeine; by typing it's name on the command line. If you include a file name it will play the file.
|
||||
</para>
|
||||
|
||||
<informalexample>
|
||||
<screen>
|
||||
<prompt>%</prompt><userinput><command>codeine</command> <option><replaceable>movie.avi</replaceable></option></userinput>
|
||||
</screen>
|
||||
</informalexample>
|
||||
|
||||
</sect2>
|
||||
</sect1>
|
||||
|
||||
|
||||
</chapter>
|
||||
|
||||
|
||||
|
||||
<chapter id="commands">
|
||||
<title>Menu and Command Reference</title>
|
||||
|
||||
<sect1 id="play_menu">
|
||||
<title>The Play Menu</title>
|
||||
<variablelist>
|
||||
<varlistentry>
|
||||
<term><menuchoice>
|
||||
<shortcut>
|
||||
<keycombo><keycap>Ctrl</keycap><keycap>o</keycap></keycombo>
|
||||
</shortcut>
|
||||
<guimenu>Play</guimenu>
|
||||
<guimenuitem>Play File..</guimenuitem>
|
||||
</menuchoice></term>
|
||||
<listitem><para><action>Opens a file dialog to choose a file to play.</action></para></listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><menuchoice>
|
||||
<guimenu>Play</guimenu>
|
||||
<guimenuitem>Play Audio-CD</guimenuitem>
|
||||
</menuchoice></term>
|
||||
<listitem><para><action>Plays an Audio-CD that is in your CD-Rom drive.</action></para></listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><menuchoice>
|
||||
<guimenu>Play</guimenu>
|
||||
<guimenuitem>Play DVD</guimenuitem>
|
||||
</menuchoice></term>
|
||||
<listitem><para><action>Plays a DVD that is in your DVD drive.</action></para></listitem>
|
||||
</varlistentry>
|
||||
|
||||
|
||||
<varlistentry>
|
||||
<term><menuchoice>
|
||||
<shortcut>
|
||||
<keycombo><keycap>Ctrl</keycap><keycap>q</keycap></keycombo>
|
||||
</shortcut>
|
||||
<guimenu>Play</guimenu>
|
||||
<guimenuitem>Quit</guimenuitem>
|
||||
</menuchoice></term>
|
||||
<listitem><para><action>Quits &codeine;.</action></para></listitem>
|
||||
</varlistentry>
|
||||
|
||||
</variablelist>
|
||||
</sect1>
|
||||
|
||||
|
||||
<sect1 id="settings_menu">
|
||||
<title>The Settings Menu</title>
|
||||
<variablelist>
|
||||
|
||||
|
||||
<varlistentry>
|
||||
<term><menuchoice>
|
||||
<guimenu>Settings</guimenu>
|
||||
<guisubmenu>Toolbars</guisubmenu>
|
||||
<guimenuitem>Show Main Toolbar</guimenuitem>
|
||||
</menuchoice></term>
|
||||
<listitem><para><action>Enables or disable the main application toolbar.</action></para></listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><menuchoice>
|
||||
<guimenu>Settings</guimenu>
|
||||
<guisubmenu>Toolbars</guisubmenu>
|
||||
<guimenuitem>Show DVD Toolbar</guimenuitem>
|
||||
</menuchoice></term>
|
||||
<listitem><para><action>Enables or disable the DVD toolbar.</action></para></listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><menuchoice>
|
||||
<guimenu>Settings</guimenu>
|
||||
<guimenuitem>Configure Shortcuts...</guimenuitem>
|
||||
</menuchoice></term>
|
||||
<listitem><para><action>Allows you to configure the &codeine; shortcuts.</action></para></listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><menuchoice>
|
||||
<guimenu>Settings</guimenu>
|
||||
<guimenuitem>Configure Toolbars...</guimenuitem>
|
||||
</menuchoice></term>
|
||||
<listitem><para><action>Allows you to configure the &codeine; toolbar options.</action></para></listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><menuchoice>
|
||||
<guimenu>Settings</guimenu>
|
||||
<guimenuitem>Configure Video...</guimenuitem>
|
||||
</menuchoice></term>
|
||||
<listitem><para><action>Opens a dialog for configuring the video output settings. The settings include: contrast, brightness, saturation, and hue.</action></para></listitem>
|
||||
</varlistentry>
|
||||
|
||||
</variablelist>
|
||||
</sect1>
|
||||
|
||||
<sect1 id="help_menu">
|
||||
<title>The Help Menu</title>
|
||||
<variablelist>
|
||||
|
||||
<varlistentry>
|
||||
<term><menuchoice>
|
||||
<guimenu>Help</guimenu>
|
||||
<guimenuitem>&codeine; Handbook</guimenuitem>
|
||||
</menuchoice></term>
|
||||
<listitem><para><action>Opens this help document.</action></para></listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><menuchoice>
|
||||
<shortcut>
|
||||
<keycombo><keycap>Shift</keycap><keycap>F1</keycap></keycombo>
|
||||
</shortcut>
|
||||
<guimenu>Help</guimenu>
|
||||
<guimenuitem>What's This?</guimenuitem>
|
||||
</menuchoice></term>
|
||||
<listitem><para><action>Activates the "What's This?" mouse cursor allowing you to click an object to get a "What's this?" tooltip.</action></para></listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><menuchoice>
|
||||
<guimenu>Help</guimenu>
|
||||
<guimenuitem>Report Bug...</guimenuitem>
|
||||
</menuchoice></term>
|
||||
<listitem><para><action>Starts the bug report tool dialog window.</action></para></listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><menuchoice>
|
||||
<guimenu>Help</guimenu>
|
||||
<guimenuitem>About &codeine;</guimenuitem>
|
||||
</menuchoice></term>
|
||||
<listitem><para><action>Starts the About &codeine; dialog window.</action></para></listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><menuchoice>
|
||||
<guimenu>Help</guimenu>
|
||||
<guimenuitem>About KDE</guimenuitem>
|
||||
</menuchoice></term>
|
||||
<listitem><para><action>Starts the About &kde; dialog window.</action></para></listitem>
|
||||
</varlistentry>
|
||||
|
||||
</variablelist>
|
||||
</sect1>
|
||||
|
||||
|
||||
</chapter>
|
||||
|
||||
<!--
|
||||
<chapter id="faq">
|
||||
<title>Questions and Answers</title>
|
||||
|
||||
(OPTIONAL but recommended) This chapter should include all of the silly
|
||||
(and not-so-silly) newbie questions that fill up your mailbox. This chapter
|
||||
should be reserved for BRIEF questions and answers! If one question uses more
|
||||
than a page or so then it should probably be part of the
|
||||
"Using this Application" chapter instead. You should use links to
|
||||
cross-reference questions to the parts of your documentation that answer them.
|
||||
This is also a great place to provide pointers to other FAQ's if your users
|
||||
must do some complicated configuration on other programs in order for your
|
||||
application work.
|
||||
|
||||
&reporting.bugs;
|
||||
&updating.documentation;
|
||||
|
||||
<qandaset id="faqlist">
|
||||
<qandaentry>
|
||||
<question>
|
||||
<para>My Mouse doesn't work. How do I quit &filelight;?</para>
|
||||
</question>
|
||||
<answer>
|
||||
<para>You silly goose! Check out the <link linkend="commands">Commands
|
||||
Section</link> for the answer.</para>
|
||||
</answer>
|
||||
</qandaentry>
|
||||
<qandaentry>
|
||||
<question>
|
||||
<para>Why can't I twiddle my documents?</para>
|
||||
</question>
|
||||
<answer>
|
||||
<para>You can only twiddle your documents if you have the foobar.lib
|
||||
installed.</para>
|
||||
</answer>
|
||||
</qandaentry>
|
||||
</qandaset>
|
||||
</chapter>
|
||||
-->
|
||||
|
||||
|
||||
|
||||
<chapter id="credits">
|
||||
|
||||
<!-- Include credits for the programmers, documentation writers, and
|
||||
contributors here. The license for your software should then be included below
|
||||
the credits with a reference to the appropriate license file included in the KDE
|
||||
distribution. -->
|
||||
|
||||
<title>Credits and License</title>
|
||||
|
||||
<sect1 id="kapp">
|
||||
<title>&codeine;</title>
|
||||
<para>Program copyright 2004 Max B. Howell <email>max.howell@methylblue.com</email></para>
|
||||
|
||||
&underGPL;
|
||||
|
||||
</sect1>
|
||||
<sect1 id="Documentation">
|
||||
|
||||
<title>Documentation</title>
|
||||
|
||||
<para>
|
||||
Documentation copyright 2004 Mike Diehl <email>madpenguin8@yahoo.com</email>
|
||||
</para>
|
||||
|
||||
&underFDL;
|
||||
|
||||
</sect1>
|
||||
|
||||
</chapter>
|
||||
|
||||
<chapter id="requirements">
|
||||
<title>Requirements</title>
|
||||
|
||||
<para>&codeine; requires the installation of some software packages. The required packages are listed below.</para>
|
||||
|
||||
|
||||
<itemizedlist>
|
||||
<title>Required:</title>
|
||||
<listitem><para>tdelibs <ulink url="https://mirror.git.trinitydesktop.org/gitea/TDE/tdelibs"></ulink></para></listitem>
|
||||
<listitem><para>xine-lib <ulink url="https://sourceforge.net/projects/xine/"></ulink></para></listitem>
|
||||
</itemizedlist>
|
||||
<itemizedlist>
|
||||
<title>Optional:</title>
|
||||
<listitem><para>XTest Library</para></listitem>
|
||||
<listitem><para>xcb-util-keysyms</para></listitem>
|
||||
</itemizedlist>
|
||||
|
||||
<note><para>If you obtain these dependencies via a packaging system, you must
|
||||
also install the devel versions of these packages!</para></note>
|
||||
|
||||
</chapter>
|
||||
|
||||
|
||||
<appendix id="installation">
|
||||
<title>Installation</title>
|
||||
|
||||
<sect1 id="getting-codeine">
|
||||
<title>How to obtain &codeine;</title>
|
||||
|
||||
<para>
|
||||
&codeine; is now part of the TDE project, it can be found at:
|
||||
<ulink url="http://trinitydesktop.org/">http://trinitydesktop.org/</ulink>.
|
||||
</para>
|
||||
</sect1>
|
||||
|
||||
<sect1 id="compilation">
|
||||
<title>Compilation and Installation</title>
|
||||
|
||||
<para>
|
||||
In order to compile and install &codeine; on your system, type the following in the base directory; distribution:
|
||||
<screen width="40">
|
||||
<prompt>%</prompt> <userinput>mkdir -p build</userinput>
|
||||
<prompt>%</prompt> <userinput>cd build</userinput>
|
||||
<prompt>%</prompt> <userinput>cmake ../</userinput>
|
||||
<prompt>%</prompt> <userinput>make</userinput>
|
||||
<prompt>%</prompt> <userinput>make install</userinput>
|
||||
</screen>
|
||||
</para>
|
||||
|
||||
<para>Since &codeine; uses cmake you should have not trouble compiling it. Default options for cmake build are available in the INSTALL file.</para>
|
||||
|
||||
</sect1>
|
||||
|
||||
</appendix>
|
||||
|
||||
&documentation.index;
|
||||
</book>
|
||||
<!--
|
||||
Local Variables:
|
||||
mode: sgml
|
||||
sgml-minimize-attributes:nil
|
||||
sgml-general-insert-case:lower
|
||||
sgml-indent-step:0
|
||||
sgml-indent-data:nil
|
||||
End:
|
||||
-->
|
After Width: | Height: | Size: 12 KiB |
@ -0,0 +1,5 @@
|
||||
INSTALL(
|
||||
FILES ${PROJECT_NAME}.1
|
||||
DESTINATION ${MAN_INSTALL_DIR}/man1
|
||||
COMPONENT doc
|
||||
)
|
@ -0,0 +1,94 @@
|
||||
'\" -*- coding: us-ascii -*-
|
||||
.if \n(.g .ds T< \\FC
|
||||
.if \n(.g .ds T> \\F[\n[.fam]]
|
||||
.de URL
|
||||
\\$2 \(la\\$1\(ra\\$3
|
||||
..
|
||||
.if \n(.g .mso www.tmac
|
||||
.TH codeine 1 2006-05-12 "" ""
|
||||
.SH NAME
|
||||
codeine \- video player for TDE, designed to be as simple as possible
|
||||
.SH SYNOPSIS
|
||||
'nh
|
||||
.fi
|
||||
.ad l
|
||||
\fBcodeine\fR \kx
|
||||
.if (\nx>(\n(.l/2)) .nr x (\n(.l/5)
|
||||
'in \n(.iu+\nxu
|
||||
[
|
||||
\fB\fIQt-options\fB\fR
|
||||
] [
|
||||
\fB\fTDE-options\fB\fR
|
||||
] [
|
||||
\fB\fIURL|file\fB\fR
|
||||
] [
|
||||
--play-dvd
|
||||
]
|
||||
'in \n(.iu-\nxu
|
||||
.ad b
|
||||
'hy
|
||||
.SH DESCRIPTION
|
||||
Video player with a different philosophy: Simple, uncluttered interface
|
||||
.PP
|
||||
Features:
|
||||
.TP 0.2i
|
||||
\(bu
|
||||
Plays DVDs, VCDs, all video formats supported by Xine
|
||||
.TP 0.2i
|
||||
\(bu
|
||||
Bundled with a simple web-page KPart
|
||||
.TP 0.2i
|
||||
\(bu
|
||||
Starts quickly
|
||||
.SH OPTIONS
|
||||
All TDE and TQt
|
||||
programs accept a some common command-line options. codeine has no
|
||||
application-specific options.
|
||||
.PP
|
||||
.TP
|
||||
\*(T<\fB\-\-help\fR\*(T>
|
||||
Show help about options
|
||||
.TP
|
||||
\*(T<\fB\-\-help\-qt\fR\*(T>
|
||||
Show TQt specific options
|
||||
.TP
|
||||
\*(T<\fB\-\-help\-tde\fR\*(T>
|
||||
Show TDE specific options
|
||||
.TP
|
||||
\*(T<\fB\-\-help\-all\fR\*(T>
|
||||
Show all options
|
||||
.TP
|
||||
\*(T<\fB\-\-author\fR\*(T>
|
||||
Show author information
|
||||
.TP
|
||||
\*(T<\fB\-v\fR\*(T>, \*(T<\fB\-\-version\fR\*(T>
|
||||
Show version information
|
||||
.TP
|
||||
\*(T<\fB\-\-license\fR\*(T>
|
||||
Show license information
|
||||
.TP
|
||||
\*(T<\fB\-\-\fR\*(T>
|
||||
Indicates end of options
|
||||
.TP
|
||||
\*(T<\fBURL|file\fR\*(T>
|
||||
URL to or filename of a video
|
||||
.TP
|
||||
\*(T<\fB\-\-play\-dvd\fR\*(T>
|
||||
Play DVD Video
|
||||
.SH AUTHOR
|
||||
Codeine was written by Max Howell <\*(T<max.howell@methylblue.com\*(T>>
|
||||
Homepage:
|
||||
.URL "" https://mirror.git.trinitydesktop.org/gitea/TDE/codeine/
|
||||
.SH COPYRIGHT
|
||||
This manual page was written by Achim Bohnet <\*(T<ach@mpe.mpg.de\*(T>>,
|
||||
based on work of Anthony Mercatante
|
||||
<\*(T<anthony.mercatante@laposte.net\*(T>>, for the
|
||||
Debian system (but may be used by others).
|
||||
Tom Albers <\*(T<tomalbers@kde.nl\*(T>> documented the play-dvd part.
|
||||
Permission is granted to copy, distribute and/or modify this document
|
||||
under the terms of the GNU General Public License,
|
||||
Version 2 or any later version published by the Free Software Foundation.
|
||||
.PP
|
||||
On Debian systems, the complete text of the GNU General Public Version 2
|
||||
License can be found in
|
||||
\*(T<\fI/usr/share/common\-licenses/GPL\-2\fR\*(T>.
|
@ -0,0 +1,31 @@
|
||||
##### icons
|
||||
|
||||
tde_install_icons( ${PROJECT_NAME} )
|
||||
|
||||
|
||||
##### other data
|
||||
|
||||
install(
|
||||
FILES ${PROJECT_NAME}ui.rc
|
||||
DESTINATION ${DATA_INSTALL_DIR}/${PROJECT_NAME}
|
||||
)
|
||||
|
||||
install(
|
||||
FILES ${PROJECT_NAME}rc
|
||||
DESTINATION ${DATA_INSTALL_DIR}/${PROJECT_NAME}
|
||||
)
|
||||
|
||||
install(
|
||||
FILES ${PROJECT_NAME}.desktop
|
||||
DESTINATION ${XDG_APPS_INSTALL_DIR}
|
||||
)
|
||||
|
||||
install(
|
||||
FILES ${PROJECT_NAME}_part.desktop
|
||||
DESTINATION ${SERVICES_INSTALL_DIR}
|
||||
)
|
||||
|
||||
install(
|
||||
FILES ${PROJECT_NAME}_play_dvd.desktop
|
||||
DESTINATION ${DATA_INSTALL_DIR}/konqueror/servicemenus
|
||||
)
|
@ -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=../src # 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 codeine.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"
|
||||
|
@ -1,101 +0,0 @@
|
||||
## Max Howell, 2005
|
||||
|
||||
BOLD ="\033[1m"
|
||||
RED ="\033[91m"
|
||||
GREEN ="\033[92m"
|
||||
YELLOW ="\033[93m"
|
||||
CYAN ="\033[96m"
|
||||
NORMAL ="\033[0m"
|
||||
|
||||
import os
|
||||
|
||||
def exists( env ):
|
||||
return true
|
||||
|
||||
def generate( env ):
|
||||
|
||||
if 'configure' in env['TARGS']:
|
||||
xine_lib_test_source_file = """
|
||||
#include <ntqstring.h>
|
||||
#include <xine.h>
|
||||
|
||||
int main( int argc, char **argv )
|
||||
{
|
||||
if( XINE_MAJOR_VERSION < 1 )
|
||||
return 1;
|
||||
|
||||
const QString version( XINE_VERSION );
|
||||
|
||||
// eg. VERSION 1.0
|
||||
if( version[1] == '.' )
|
||||
return 0;
|
||||
|
||||
if( version == "1-cvs" )
|
||||
return 0;
|
||||
|
||||
if( version.startsWith( "1-rc" ) && QString(version[4]).toInt() > 3 )
|
||||
return 0;
|
||||
|
||||
return 2; //too old
|
||||
}"""
|
||||
|
||||
def CheckKdeLibs( context ):
|
||||
# ideally should be able to tell bksys what version we need
|
||||
context.Message( 'Checking for KDElibs 3.3...' )
|
||||
kde_version = os.popen("tde-config --version|grep KDE").read().strip().split()[1]
|
||||
result = int( kde_version[0] ) == 3 and int( kde_version[2] ) >= 3
|
||||
context.Result( result )
|
||||
return result
|
||||
|
||||
def CheckXineLib( context ):
|
||||
context.Message('Checking for xine-lib 1.0...')
|
||||
result = context.TryLink(xine_lib_test_source_file, '.cpp')
|
||||
context.Result(result)
|
||||
return result
|
||||
|
||||
|
||||
# prolly best to use a fresh env
|
||||
# this seems to import the user's CXXFLAGS, etc., which may break
|
||||
confenv = env.Copy()
|
||||
configure = confenv.Configure(custom_tests = {'CheckXineLib' : CheckXineLib, 'CheckKdeLibs' : CheckKdeLibs}, log_file='configure.log')
|
||||
confenv.AppendUnique(LIBS = 'tqt-mt')
|
||||
confenv.AppendUnique(LINKFLAGS = '-L/usr/X11R6/lib')
|
||||
|
||||
if not configure.CheckKdeLibs():
|
||||
print # 1 2 3 4 5 6 7 8'
|
||||
print 'Configure could not detect KDElibs 3.3, which is required for Codeine to '
|
||||
print 'compile.'
|
||||
print
|
||||
confenv.Exit( 1 )
|
||||
|
||||
if not configure.CheckLibWithHeader( 'xine', 'xine.h', 'c++' ):
|
||||
print # 1 2 3 4 5 6 7 8'
|
||||
print 'Configure could not find either the xine library or header on your system. You '
|
||||
print 'should ammend the relevant paths. If you know which ones please email me so I '
|
||||
print 'can update this message!'
|
||||
print
|
||||
confenv.Exit( 2 )
|
||||
|
||||
if not configure.CheckXineLib():
|
||||
print # 1 2 3 4 5 6 7 8'
|
||||
print 'Your xine-lib is either too old, or can not be linked against. Sorry for not '
|
||||
print 'being more specific..'
|
||||
print
|
||||
confenv.Exit( 3 )
|
||||
|
||||
if not configure.CheckLibWithHeader( 'Xtst', 'X11/extensions/XTest.h', 'c' ):
|
||||
print # 1 2 3 4 5 6 7 8'
|
||||
print 'libxtst was not found, this means the screensaver cannot be disabled during '
|
||||
print 'playback. YOU CAN STILL BUILD CODEINE! :)'
|
||||
print
|
||||
|
||||
file = open ( 'src/configure.h', 'w' )
|
||||
file.write( "#define NO_XTEST_EXTENSION\n" )
|
||||
file.close()
|
||||
else:
|
||||
# FIXME - thus only one thing can be in configure.h - lol
|
||||
file = open ( 'src/configure.h', 'w' )
|
||||
file.write( "" )
|
||||
file.close()
|
||||
|
||||
env = configure.Finish()
|
@ -1,95 +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[93m"
|
||||
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)
|
||||
|
||||
# load the options
|
||||
from SCons.Options import Options, PathOption
|
||||
opts = Options('generic.cache.py')
|
||||
opts.AddOptions(
|
||||
( 'KDECXXFLAGS', 'debug level for the project : full or just anything' ),
|
||||
( 'PREFIX', 'prefix for installation' ),
|
||||
( 'EXTRAINCLUDES', 'extra include paths for the project' ),
|
||||
)
|
||||
opts.Update(env)
|
||||
|
||||
# use this to avoid an error message 'how to make target configure ?'
|
||||
env.Alias('configure', None)
|
||||
|
||||
# configure the environment if needed
|
||||
if 'configure' in env['TARGS'] or not env.has_key('KDECXXFLAGS'):
|
||||
# need debugging ?
|
||||
if env.has_key('KDECXXFLAGS'):
|
||||
env.__delitem__('KDECXXFLAGS')
|
||||
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', '-ggdb', '-pipe', '-Wall']
|
||||
else:
|
||||
env['KDECXXFLAGS'] = ['-DDEBUG', '-g']
|
||||
else:
|
||||
if os.environ.has_key('CXXFLAGS'):
|
||||
# user-defined flags (gentooers will be delighted)
|
||||
import SCons.Util
|
||||
env['KDECXXFLAGS'] = SCons.Util.CLVar( os.environ['CXXFLAGS'] )
|
||||
env.Append( KDECXXFLAGS = ['-DNDEBUG', '-DNO_DEBUG'] )
|
||||
else:
|
||||
env.Append(KDECXXFLAGS = ['-O2', '-DNDEBUG', '-DNO_DEBUG'])
|
||||
|
||||
# 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 env.has_key('PREFIX'):
|
||||
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 env.has_key('EXTRAINCLUDES'):
|
||||
env.__delitem__('EXTRAINCLUDES')
|
||||
|
||||
# and finally save the options in a cache
|
||||
opts.Save('generic.cache.py', env)
|
||||
|
||||
if env.has_key('KDECXXFLAGS'):
|
||||
# load the flags
|
||||
env.AppendUnique( CPPFLAGS = env['KDECXXFLAGS'] )
|
||||
|
||||
if env.has_key('EXTRAINCLUDES'):
|
||||
incpaths = []
|
||||
for dir in str(env['EXTRAINCLUDES']).split(':'):
|
||||
incpaths.append( dir )
|
||||
env.Append(CPPPATH = incpaths)
|
||||
|
@ -1,771 +0,0 @@
|
||||
# Copyright (c) 2001, 2002, 2003, 2004 The SCons Foundation
|
||||
#
|
||||
# Permission is hereby granted, free of charge, to any person obtaining
|
||||
# a copy of this software and associated documentation files (the
|
||||
# "Software"), to deal in the Software without restriction, including
|
||||
# without limitation the rights to use, copy, modify, merge, publish,
|
||||
# distribute, sublicense, and/or sell copies of the Software, and to
|
||||
# permit persons to whom the Software is furnished to do so, subject to
|
||||
# the following conditions:
|
||||
#
|
||||
# The above copyright notice and this permission notice shall be included
|
||||
# in all copies or substantial portions of the Software.
|
||||
#
|
||||
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY
|
||||
# KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
|
||||
# WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
||||
# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
||||
# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
||||
# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
||||
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
#
|
||||
|
||||
# Shamelessly stolen from qt.py and (heavily) modified into kde.py :)
|
||||
# Thomas Nagy, 2004, 2005 <tnagy2^8@yahoo.fr>
|
||||
|
||||
"""
|
||||
Here follow the basic rules for building kde programs
|
||||
The detection is done in detect_kde when needed
|
||||
We wan to use the cached variables as much as possible
|
||||
|
||||
The variables used when configuring are :
|
||||
* prefix : base install path, eg: /usr/local
|
||||
* execprefix : install path for binaries, eg: /usr/bin
|
||||
* datadir : install path for the data, eg: /usr/local/share
|
||||
* libdir : install path for the libs, eg: /usr/lib
|
||||
|
||||
* libsuffix : for those who need /usr/lib64 and the like ..
|
||||
|
||||
* kdeincludes: path to the kde includes (/usr/include/tde on debian, ...)
|
||||
* qtincludes : same punishment, for qt includes (/usr/include/qt on debian, ...)
|
||||
|
||||
* tdelibs : path to the kde libs, for linking the programs
|
||||
* qtlibs : same punishment, for qt libraries
|
||||
|
||||
eg: scons configure libdir=/usr/local/lib qtincludes=/usr/include/qt
|
||||
"""
|
||||
|
||||
BOLD ="\033[1m"
|
||||
RED ="\033[91m"
|
||||
GREEN ="\033[92m"
|
||||
YELLOW ="\033[93m"
|
||||
CYAN ="\033[96m"
|
||||
NORMAL ="\033[0m"
|
||||
|
||||
def exists(env):
|
||||
return True
|
||||
|
||||
def detect_kde(env):
|
||||
""" Detect the qt and kde environment using tde-config mostly """
|
||||
import os, sys, re
|
||||
|
||||
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)
|
||||
qtlibs = env['ARGS'].get('qtlibs', None)
|
||||
|
||||
if libdir:
|
||||
libdir = libdir+libsuffix
|
||||
|
||||
## Detect the kde libraries
|
||||
print "Checking for tde-config : ",
|
||||
kde_config = os.popen("which tde-config 2>/dev/null").read().strip()
|
||||
if len(kde_config):
|
||||
print GREEN + "tde-config was found" + 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?)"
|
||||
# TODO : prompt the user for the path of tde-config ?
|
||||
sys.exit(1)
|
||||
env['TDEDIR'] = os.popen('tde-config -prefix').read().strip()
|
||||
|
||||
print "Checking for kde version : ",
|
||||
kde_version = os.popen("tde-config --version|grep KDE").read().strip().split()[1]
|
||||
if int(kde_version[0]) != 3 or int(kde_version[2]) < 2:
|
||||
print RED + kde_version
|
||||
print RED + "Your kde version can be too old" + NORMAL
|
||||
print RED + "Please make sure kde is at least 3.2" + NORMAL
|
||||
else:
|
||||
print GREEN + kde_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:
|
||||
m = re.search('(.*)/lib/libqt.*', os.popen('ldd `tde-config --expandvars --install lib`' + '/libtdeui.so.4 | grep libqt').read().strip().split()[2])
|
||||
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
|
||||
sys.exit(1)
|
||||
env['QTDIR'] = qtdir.strip()
|
||||
|
||||
## Find the necessary programs uic and moc
|
||||
print "Checking for uic : ",
|
||||
uic = qtdir + "/bin/uic"
|
||||
if os.path.isfile(uic):
|
||||
print GREEN + "uic was found as " + uic + NORMAL
|
||||
else:
|
||||
uic = os.popen("which uic 2>/dev/null").read().strip()
|
||||
if len(uic):
|
||||
print YELLOW + "uic was found as " + uic + NORMAL
|
||||
else:
|
||||
uic = os.popen("which uic 2>/dev/null").read().strip()
|
||||
if len(uic):
|
||||
print YELLOW + "uic was found as " + uic + NORMAL
|
||||
else:
|
||||
print RED + "uic was not found - set QTDIR put it in your PATH ?" + NORMAL
|
||||
sys.exit(1)
|
||||
env['QT_UIC'] = uic
|
||||
|
||||
print "Checking for moc : ",
|
||||
moc = qtdir + "/bin/moc"
|
||||
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/qt3/bin/moc"):
|
||||
moc = "/usr/share/qt3/bin/moc"
|
||||
print YELLOW + "moc was found as " + moc + NORMAL
|
||||
else:
|
||||
print RED + "moc was not found - set QTDIR or put it in your PATH ?" + NORMAL
|
||||
sys.exit(1)
|
||||
env['QT_MOC'] = moc
|
||||
|
||||
## check for the qt and kde includes
|
||||
print "Checking for the qt includes : ",
|
||||
if qtincludes and os.path.isfile(qtincludes + "/ntqlayout.h"):
|
||||
# The user told where to look for and it looks valid
|
||||
print GREEN + "ok " + qtincludes + NORMAL
|
||||
else:
|
||||
if os.path.isfile(qtdir + "/include/ntqlayout.h"):
|
||||
# Automatic detection
|
||||
print GREEN + "ok " + qtdir + "/include/ " + NORMAL
|
||||
qtincludes = qtdir + "/include/"
|
||||
elif os.path.isfile("/usr/include/qt3/ntqlayout.h"):
|
||||
# Debian probably
|
||||
print YELLOW + "the qt headers were found in /usr/include/qt3/ " + NORMAL
|
||||
qtincludes = "/usr/include/qt3"
|
||||
else:
|
||||
print RED + "the qt headers were not found" + NORMAL
|
||||
sys.exit(1)
|
||||
|
||||
print "Checking for the kde includes : ",
|
||||
kdeprefix = os.popen("tde-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
|
||||
sys.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('tde-config --install exe').read().strip())
|
||||
env['KDEAPPS'] = subst_vars(os.popen('tde-config --install apps').read().strip())
|
||||
env['KDEDATA'] = subst_vars(os.popen('tde-config --install data').read().strip())
|
||||
env['KDEMODULE']= subst_vars(os.popen('tde-config --install module').read().strip())
|
||||
env['KDELOCALE']= subst_vars(os.popen('tde-config --install locale').read().strip())
|
||||
env['KDEDOC'] = subst_vars( debian_fix(os.popen('tde-config --install html').read().strip()) )
|
||||
env['KDEKCFG'] = subst_vars(os.popen('tde-config --install kcfg').read().strip())
|
||||
env['KDEXDG'] = subst_vars(os.popen('tde-config --install xdgdata-apps').read().strip())
|
||||
env['KDEMENU'] = subst_vars(os.popen('tde-config --install apps').read().strip())
|
||||
env['KDEMIME'] = subst_vars(os.popen('tde-config --install mime').read().strip())
|
||||
env['KDEICONS'] = subst_vars(os.popen('tde-config --install icon').read().strip())
|
||||
env['KDESERV'] = subst_vars(os.popen('tde-config --install services').read().strip())
|
||||
else:
|
||||
# the user has given no prefix, install as a normal kde app
|
||||
env['PREFIX'] = os.popen('tde-config --prefix').read().strip()
|
||||
|
||||
env['KDEBIN'] = os.popen('tde-config --expandvars --install exe').read().strip()
|
||||
env['KDEAPPS'] = os.popen('tde-config --expandvars --install apps').read().strip()
|
||||
env['KDEDATA'] = os.popen('tde-config --expandvars --install data').read().strip()
|
||||
env['KDEMODULE']= os.popen('tde-config --expandvars --install module').read().strip()
|
||||
env['KDELOCALE']= os.popen('tde-config --expandvars --install locale').read().strip()
|
||||
env['KDEDOC'] = os.popen('tde-config --expandvars --install html').read().strip()
|
||||
env['KDEKCFG'] = os.popen('tde-config --expandvars --install kcfg').read().strip()
|
||||
env['KDEXDG'] = os.popen('tde-config --expandvars --install xdgdata-apps').read().strip()
|
||||
env['KDEMENU'] = os.popen('tde-config --expandvars --install apps').read().strip()
|
||||
env['KDEMIME'] = os.popen('tde-config --expandvars --install mime').read().strip()
|
||||
env['KDEICONS'] = os.popen('tde-config --expandvars --install icon').read().strip()
|
||||
env['KDESERV'] = os.popen('tde-config --expandvars --install services').read().strip()
|
||||
|
||||
env['QTPLUGINS']=os.popen('tde-config --expandvars --install qtplugins').read().strip()
|
||||
|
||||
## kde libs and includes
|
||||
env['KDEINCLUDEPATH']= kdeincludes
|
||||
if not tdelibs:
|
||||
tdelibs = os.popen('tde-config --expandvars --install lib').read().strip()
|
||||
env['KDELIBPATH']= tdelibs
|
||||
|
||||
## qt libs and includes
|
||||
env['QTINCLUDEPATH']= qtincludes
|
||||
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+"""* 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 os.path
|
||||
import re
|
||||
|
||||
import SCons.Defaults
|
||||
import SCons.Tool
|
||||
import SCons.Util
|
||||
|
||||
ui_extensions = [".ui", ".Ui", ".UI"]
|
||||
header_extensions = [".h", ".hxx", ".hpp", ".hh", ".H", ".HH"]
|
||||
source_extensions = [".cpp", ".cxx", ".cc", ".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]')
|
||||
|
||||
# cxx and c comment 'eater'
|
||||
#comment = re.compile(r'(//.*)|(/\*(([^*])|(\*[^/]))*\*/)')
|
||||
# CW: something must be wrong with the regexp. See also bug #998222
|
||||
# CURRENTLY THERE IS NO TEST CASE FOR THAT
|
||||
|
||||
# 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.Options import Options
|
||||
opts = Options('kde.cache.py')
|
||||
opts.AddOptions(
|
||||
( 'QTDIR', 'root of qt directory' ),
|
||||
( 'QTLIBPATH', 'path to the qt libraries' ),
|
||||
( 'QTINCLUDEPATH', 'path to the qt 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('kde.cache.py', env)
|
||||
|
||||
## set default variables, one can override them in sconscript files
|
||||
env.Append(CXXFLAGS = ['-I'+env['KDEINCLUDEPATH'], '-I'+env['QTINCLUDEPATH'] ])
|
||||
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-mt'
|
||||
|
||||
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('$QT_MOC -o '+target[2].path+' '+target[0].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'] = ('$QT_MOC -o ${TARGETS[0]} $SOURCE')
|
||||
|
||||
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')))
|
||||
|
||||
# find_file(kcfgfile, (source[0].get_dir(),) ,SCons.Node.FS.default_fs)
|
||||
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 (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' )
|
||||
|
||||
####### TODO : real libtool builder (but i hate libtool - ita)
|
||||
# def libtoolGenerator(target, source, env, for_signature):
|
||||
# act=[]
|
||||
# act.append('libtool $LIBTOOL_FLAGS $CXX $CXXFLAGS $CPPFLAGS $_CPPDEFFLAGS $_CPPINCFLAGS -c -o '+target[0].path+' '+source[0].path)
|
||||
# return act
|
||||
# LIBTOOL_BUILDER = Builder(
|
||||
# generator = libtoolGenerator,
|
||||
# suffix = '.lo',
|
||||
# src_suffix = '.cpp' )
|
||||
|
||||
##### 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']['Libtool'] = LIBTOOL_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(target, source, env):
|
||||
"""
|
||||
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:
|
||||
env.Dcop(bs+'.h')
|
||||
src.append(bs+'_skel.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 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"
|
||||
#for file in skel_files:
|
||||
# for ofile in other_files:
|
||||
# if ofile == file:
|
||||
# print RED+"WARNING: source contain "+file+".skel and another file of the same prefix"+NORMAL
|
||||
# print "Files generated automatically from .skel file must not be included (file.h, file.idl)"
|
||||
|
||||
return src
|
||||
|
||||
# Special trick for installing rpms ...
|
||||
env['DESTDIR']=''
|
||||
if 'install' in env['TARGS'] and os.environ.has_key('DESTDIR'):
|
||||
env['DESTDIR']=os.environ['DESTDIR']+'/'
|
||||
print CYAN+'** Enabling DESTDIR for the project **' + NORMAL + env['DESTDIR']
|
||||
|
||||
def KDEinstall(path, file, lenv):
|
||||
""" Quick wrapper """
|
||||
if 'install' in lenv['TARGS']:
|
||||
lenv.Alias('install', lenv.Install( lenv['DESTDIR']+path, file ) )
|
||||
|
||||
def KDEinstallas(destfile, file, lenv):
|
||||
""" Quick wrapper """
|
||||
if 'install' in lenv['TARGS']:
|
||||
lenv.Alias('install', lenv.InstallAs( lenv['DESTDIR']+destfile, file ) )
|
||||
|
||||
def KDEprogram(target, source, lenv):
|
||||
""" Makes a kde program
|
||||
The program is installed except if one sets env['NOAUTOINSTALL'] """
|
||||
src = KDEfiles(target, source, lenv)
|
||||
lenv.Program(target, src)
|
||||
if not lenv.has_key('NOAUTOINSTALL'):
|
||||
KDEinstall(env['KDEBIN'], target, lenv)
|
||||
|
||||
def KDEshlib(target, source, lenv):
|
||||
""" Makes a shared library for kde (.la file for klibloader)
|
||||
The library is installed except if one sets env['NOAUTOINSTALL'] """
|
||||
src = KDEfiles(target, source, lenv)
|
||||
lenv.SharedLibrary( target, src )
|
||||
lenv.LaFile( target, target+'.so' )
|
||||
if not lenv.has_key('NOAUTOINSTALL'):
|
||||
KDEinstall(env['KDEMODULE'], target+'.so', lenv)
|
||||
KDEinstall(env['KDEMODULE'], target+'.la', lenv)
|
||||
|
||||
def KDEstaticlib(target, source, lenv):
|
||||
""" 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 stupid limitations
|
||||
(cannot handle sources in separate folders - takes extra processing) """
|
||||
src = KDEfiles(target, source, lenv)
|
||||
lenv.StaticLibrary( target, src )
|
||||
# # do not install static libraries
|
||||
# if not lenv.has_key('NOAUTOINSTALL'):
|
||||
# KDEinstall(env['KDEMODULE'], target+'.a', lenv)
|
||||
|
||||
def KDEaddlibs(libs, lenv):
|
||||
""" Helper function """
|
||||
lenv.AppendUnique(LIBS = libs)
|
||||
|
||||
def KDEaddpaths(paths, lenv):
|
||||
""" Helper function """
|
||||
lenv.AppendUnique(CPPPATH = paths)
|
||||
|
||||
def KDElang(transfiles, lenv):
|
||||
""" Process translations (.po files) in a po/ dir """
|
||||
if not lenv['APPNAME']:
|
||||
print "define lenv['APPNAME'] before using KDElang !!"
|
||||
return
|
||||
for lang in transfiles:
|
||||
lenv.Transfiles( lang+'.po' )
|
||||
KDEinstallas( lenv['KDELOCALE']+'/'+lang+'/LC_MESSAGES/'+lenv['APPNAME']+'.mo',
|
||||
lang+'.gmo', lenv )
|
||||
|
||||
def KDEdoc(lang, file, lenv):
|
||||
""" Install the documentation """
|
||||
if not lenv['APPNAME']:
|
||||
print "define lenv['APPNAME'] before using KDEdoc !!"
|
||||
env.Exit(1)
|
||||
KDEinstall( lenv['KDEDOC']+'/'+lang+'/'+lenv['APPNAME'], file, lenv )
|
||||
|
||||
# Export variables so that sconscripts in subdirectories can use them
|
||||
env.Export("KDEprogram KDEshlib KDEaddpaths KDEaddlibs KDEinstall KDEinstallas KDElang KDEdoc")
|
||||
|
Binary file not shown.
@ -0,0 +1,2 @@
|
||||
add_subdirectory( app )
|
||||
add_subdirectory( part )
|
@ -1,21 +0,0 @@
|
||||
|
||||
############################
|
||||
## load the config
|
||||
|
||||
## Use the environment and the tools set in the top-level
|
||||
## SConstruct file (set with 'Export') - this is very important
|
||||
|
||||
Import( '*' )
|
||||
myenv=env.Copy()
|
||||
|
||||
myenv.SConscript( dirs = Split( "app part") )
|
||||
|
||||
KDEinstall( env['KDEDATA']+'/codeine', '../misc/codeineui.rc', myenv )
|
||||
KDEinstall( env['KDEDATA']+'/konqueror/servicemenus', '../misc/codeine_play_dvd.desktop', myenv )
|
||||
KDEinstall( env['KDESERV'], '../misc/codeine_part.desktop', myenv )
|
||||
KDEinstall( env['KDEXDG'], '../misc/codeine.desktop', myenv )
|
||||
|
||||
for size in ['16', '22', '32', '48', '64', '128']:
|
||||
KDEinstallas( env['KDEICONS']+'/crystalsvg/'+size+'x'+size+'/apps/codeine.png', '../misc/cr'+size+'-app-codeine.png', myenv )
|
||||
|
||||
#print env['KDECXXFLAGS']
|
@ -0,0 +1,54 @@
|
||||
include_directories(
|
||||
${CMAKE_BINARY_DIR}
|
||||
${CMAKE_CURRENT_BINARY_DIR}
|
||||
${CMAKE_CURRENT_SOURCE_DIR}
|
||||
${TDE_INCLUDE_DIR}
|
||||
${TQT_INCLUDE_DIRS}
|
||||
${XINE_INCLUDE_DIRS}
|
||||
${X11_INCLUDE_DIR}
|
||||
${X11_XTEST_INCLUDE_DIRS}
|
||||
${X11_KEYSIM_INCLUDE_DIRS}
|
||||
)
|
||||
|
||||
link_directories(
|
||||
${TQT_LIBRARY_DIRS}
|
||||
${TDE_LIB_DIR}
|
||||
)
|
||||
|
||||
|
||||
##### codeine (executable)
|
||||
|
||||
tde_add_executable( ${PROJECT_NAME} AUTOMOC
|
||||
|
||||
SOURCES
|
||||
xineEngine.cpp
|
||||
xineConfig.cpp
|
||||
xineScope.c
|
||||
theStream.cpp
|
||||
videoWindow.cpp
|
||||
videoSettings.cpp
|
||||
captureFrame.cpp
|
||||
actions.cpp
|
||||
stateChange.cpp
|
||||
slider.cpp
|
||||
analyzer.cpp
|
||||
playDialog.cpp
|
||||
listView.cpp
|
||||
adjustSizeButton.cpp
|
||||
fullScreenAction.cpp
|
||||
insertAspectRatioMenuItems.cpp
|
||||
playlistFile.cpp
|
||||
volumeAction.cpp
|
||||
../mxcl.library.cpp
|
||||
main.cpp
|
||||
mainWindow.cpp
|
||||
LINK
|
||||
tdecore-shared
|
||||
tdeui-shared
|
||||
tdeio-shared
|
||||
${XINE_LIBRARIES}
|
||||
${X11_LIBRARIES}
|
||||
${X11_XTEST_LIBRARIES}
|
||||
|
||||
DESTINATION ${BIN_INSTALL_DIR}
|
||||
)
|
@ -1,59 +0,0 @@
|
||||
|
||||
############################
|
||||
## load the config
|
||||
|
||||
## Use the environment and the tools set in the top-level
|
||||
## SConstruct file (set with 'Export') - this is very important
|
||||
|
||||
Import( '*' )
|
||||
myenv=env.Copy()
|
||||
|
||||
#############################
|
||||
## the programs to build
|
||||
|
||||
# we put the stuff that could fail due to bad xine.h locations, etc. at the beginning
|
||||
# so if the build fails the user knows quickly
|
||||
app_sources = Split("""
|
||||
xineEngine.cpp
|
||||
xineConfig.cpp
|
||||
xineScope.c
|
||||
theStream.cpp
|
||||
videoWindow.cpp
|
||||
videoSettings.cpp
|
||||
captureFrame.cpp
|
||||
|
||||
actions.cpp
|
||||
stateChange.cpp
|
||||
slider.cpp
|
||||
analyzer.cpp
|
||||
playDialog.cpp
|
||||
listView.cpp
|
||||
adjustSizeButton.cpp
|
||||
fullScreenAction.cpp
|
||||
insertAspectRatioMenuItems.cpp
|
||||
playlistFile.cpp
|
||||
volumeAction.cpp
|
||||
|
||||
../mxcl.library.cpp
|
||||
|
||||
main.cpp
|
||||
mainWindow.cpp""")
|
||||
|
||||
KDEprogram( "codeine", app_sources, myenv )
|
||||
|
||||
|
||||
############################
|
||||
## Customization
|
||||
|
||||
## Additional include paths for compiling the source files
|
||||
## Always add '../' (top-level directory) because moc makes code that needs it
|
||||
KDEaddpaths( ['./', '../', '../../'], myenv )
|
||||
|
||||
## Necessary libraries to link against
|
||||
KDEaddlibs( ['tqt-mt', 'tdeio', 'tdecore', 'tdeui', 'xine', 'Xtst'], myenv )
|
||||
|
||||
## This shows how to add other link flags to the program
|
||||
myenv['LINKFLAGS'].append('-L/usr/X11R6/lib')
|
||||
|
||||
## If you are using QThread, add this line
|
||||
# myenv.AppendUnique( CPPFLAGS = ['-DQT_THREAD_SUPPORT'] )
|
@ -0,0 +1,36 @@
|
||||
include_directories(
|
||||
${CMAKE_CURRENT_BINARY_DIR}
|
||||
${CMAKE_CURRENT_SOURCE_DIR}
|
||||
${CMAKE_BINARY_DIR}
|
||||
${TDE_INCLUDE_DIR}
|
||||
${TQT_INCLUDE_DIRS}
|
||||
${XINE_INCLUDE_DIRS}
|
||||
${X11_INCLUDE_DIR}
|
||||
)
|
||||
|
||||
link_directories(
|
||||
${TQT_LIBRARY_DIRS}
|
||||
${TDE_LIB_DIR}
|
||||
)
|
||||
|
||||
|
||||
|
||||
##### codeine (shared)
|
||||
|
||||
tde_add_library( ${PROJECT_NAME} SHARED AUTOMOC
|
||||
|
||||
SOURCES
|
||||
part.cpp
|
||||
xineEngine.cpp
|
||||
videoWindow.cpp
|
||||
toolbar.cpp
|
||||
../mxcl.library.cpp
|
||||
LINK
|
||||
tdecore-shared
|
||||
tdeui-shared
|
||||
tdeparts-shared
|
||||
${XINE_LIBRARIES}
|
||||
${X11_LIBRARIES}
|
||||
|
||||
DESTINATION ${LIB_INSTALL_DIR}
|
||||
)
|
@ -1,12 +0,0 @@
|
||||
# Copyright 2005 Max Howell <max.howell@methylblue.com>
|
||||
|
||||
Import( "*" )
|
||||
myenv=env.Copy()
|
||||
|
||||
## Additional paths for compiling the source files
|
||||
## Always add '../' (top-level directory) because moc makes code that needs it
|
||||
KDEaddpaths( ['./', '../', '../../'], myenv )
|
||||
|
||||
KDEaddlibs( ['tqt-mt', 'tdecore', 'tdeui', 'tdeparts', 'xine'], myenv )
|
||||
|
||||
KDEshlib( "libcodeine", Split( "part.cpp xineEngine.cpp videoWindow.cpp toolbar.cpp ../mxcl.library.cpp" ), myenv )
|
@ -0,0 +1 @@
|
||||
tde_auto_add_subdirectories()
|
@ -0,0 +1,14 @@
|
||||
file( GLOB_RECURSE po_files RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} *.po )
|
||||
string( REGEX REPLACE "[ \r\n\t]+" ";" _linguas "$ENV{LINGUAS}" )
|
||||
|
||||
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( )
|
Loading…
Reference in new issue