OTHER: add waf buildscripts

This commit is contained in:
Thomas Frauendorfer 2009-08-27 01:45:13 +02:00
parent d9cedc7c5d
commit b66ab0e6ea
6 changed files with 255 additions and 0 deletions

3
.gitignore vendored
View file

@ -16,3 +16,6 @@ promoe
qrc*
.gdb*
Makefile
.waf-*
.lock-wscript
_build_

60
lib/wscript Normal file
View file

@ -0,0 +1,60 @@
# encoding: utf-8
# vim:set syntax=python expandtab :
"""
This file is a part of Promoe, an XMMS2 Client
Copyright (C) 2009 XMMS2 Team
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
are met:
1. Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.
3. The name of the author may not be used to endorse or promote products
derived from this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE AUTHOR "AS IS" AND ANY EXPRESS OR
IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT,
INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
POSSIBILITY OF SUCH DAMAGE.
"""
lib_source = """
playlistmodel.cpp
xclient.cpp
xconfig.cpp
xplayback.cpp
xclientcache.cpp
xcollection.cpp
xmmsqt4.cpp
"""
def set_options(opt):
pass
def configure(conf):
pass
def build(bld):
obj = bld.new_task_gen('qt4', 'staticlib', 'cxx')
obj.target = 'lib_promoe'
obj.install_path = 0 # Don't install
obj.includes = '.'
obj.source = lib_source
obj.uselib = 'QTCORE QTGUI XMMS2-CLIENT-CPP'
pass

View file

@ -14,6 +14,7 @@
*/
#include "ServerBrowser.h"
#include "application.h"
#include <QPushButton>

105
src/wscript Normal file
View file

@ -0,0 +1,105 @@
# encoding: utf-8
# vim:set syntax=python expandtab :
"""
This file is a part of Promoe, an XMMS2 Client
Copyright (C) 2009 XMMS2 Team
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
are met:
1. Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.
3. The name of the author may not be used to endorse or promote products
derived from this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE AUTHOR "AS IS" AND ANY EXPRESS OR
IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT,
INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
POSSIBILITY OF SUCH DAMAGE.
"""
import os
import os.path
import Configure
bld_subdirs = [
'dialogs',
'equalizer',
'mainwindow',
'playlist',
'widgets'
]
bld_files = [
'application.cpp',
'basewindow.cpp',
'BrowseDialog.cpp',
'BrowseModel.cpp',
'FileDialog.cpp',
'settingsdialog.cpp',
'Skin.cpp',
'SkinChooser.cpp',
'timedisplay.cpp'
]
def files_subdirs(subdirs, filters = ['.cpp', '.ui'], basedir='.'):
ret = []
for dir in subdirs:
d = os.path.join(basedir, dir)
for file in os.listdir(d):
for filter in filters:
if file.endswith(filter):
ret.append(os.path.join(dir, file))
return ret
def set_options(opt):
pass
def configure(conf):
try:
conf.check_cfg(package='avahi-client', args="--cflags --libs",
mandatory=1)
conf.check_cfg(package='avahi-qt4', args="--cflags --libs",
mandatory=1)
# This is only reached if both checks were successful
conf.define('HAVE_SERVERBROWSER', 1)
except Configure.ConfigurationError:
pass
pass
def build(bld):
sources = bld_files
sources += files_subdirs(subdirs=bld_subdirs, basedir=bld.curdir_)
if bld.env['HAVE_SERVERBROWSER']:
sources.append('ServerBrowser.cpp')
sources.append("../data/Almond-blue.qrc")
obj = bld.new_task_gen('qt4', 'program', 'cxx')
obj.target = 'promoe'
obj.includes = bld_subdirs
obj.includes.append('.')
# obj.includes.append('../lib')
obj.source= sources
obj.uselib_local = 'lib_promoe'
obj.uselib = 'QTCORE QTGUI AVAHI-CLIENT AVAHI-QT4'
pass

BIN
waf vendored Executable file

Binary file not shown.

86
wscript Normal file
View file

@ -0,0 +1,86 @@
# encoding: utf-8
# vim:set syntax=python expandtab :
"""
This file is a part of Promoe, an XMMS2 Client
Copyright (C) 2009 XMMS2 Team
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
are met:
1. Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.
3. The name of the author may not be used to endorse or promote products
derived from this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE AUTHOR "AS IS" AND ANY EXPRESS OR
IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT,
INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
POSSIBILITY OF SUCH DAMAGE.
"""
APPVERSION = '0.1.0'
APPNAME = 'promoe'
srcdir = '.'
blddir = '_build_'
import os.path
def set_options(opt):
opt.tool_options('gnu_dirs')
opt.tool_options('qt4')
opt.sub_options('lib')
opt.sub_options('src')
def configure(conf):
conf.check_tool('gnu_dirs')
conf.check_tool('g++')
conf.check_tool('qt4')
conf.check_cfg(package='xmms2-client-cpp', args="--cflags --libs",
mandatory=1)
conf.define('VERSION', APPVERSION)
conf.define('PROMOE_VERSION', APPVERSION)
conf.define('PROMOE_DATADIR', os.path.join(conf.env['DATADIR'], 'promoe'))
# temprary, until all usages are removed
conf.env['CXXDEFINES'] =[]
conf.env['CXXDEFINES'].append('PROMOE_VERSION="%s"'%APPVERSION)
conf.env['CXXDEFINES'].append('DATADIR="%s/promoe"'%conf.env['DATADIR'])
# Path for 'promoe_config.h'
conf.env.prepend_value("CPPPATH", conf.srcdir)
conf.sub_config('lib')
# Path needed to find library headers for local static library
conf.env.prepend_value("CPPPATH", os.path.join(conf.srcdir, "lib"))
conf.sub_config('src')
conf.write_config_header('promoe_config.h')
def build(bld):
bld.add_subdirs('lib')
bld.add_subdirs('src')
bld.install_files('${MANDIR}/man1', 'promoe.1')
bld.install_files('${DATADIR}/applications', 'promoe.desktop')