diff options
-rwxr-xr-x | BuildTools/GetBuildVersion.py | 18 | ||||
-rw-r--r-- | Swift/Packaging/Debian/.gitignore | 5 | ||||
-rw-r--r-- | Swift/Packaging/Debian/debian/control.in (renamed from Swift/Packaging/Debian/debian/control) | 18 | ||||
-rw-r--r-- | Swift/Packaging/Debian/debian/libswiften-dev.install | 4 | ||||
-rw-r--r-- | Swift/Packaging/Debian/debian/libswiften.install | 1 | ||||
-rwxr-xr-x | Swift/Packaging/Debian/debian/rules | 7 | ||||
-rw-r--r-- | Swift/Packaging/Debian/debian/shlibs.in | 1 | ||||
-rw-r--r-- | Swift/Packaging/Debian/debian/swift-im.install | 2 | ||||
-rwxr-xr-x | Swift/Packaging/Debian/package.sh | 6 | ||||
-rw-r--r-- | Swiften/SConscript | 44 |
10 files changed, 75 insertions, 31 deletions
diff --git a/BuildTools/GetBuildVersion.py b/BuildTools/GetBuildVersion.py index a362574..007fec8 100755 --- a/BuildTools/GetBuildVersion.py +++ b/BuildTools/GetBuildVersion.py @@ -1,9 +1,21 @@ #!/usr/bin/env python -import sys +import sys, re sys.path.append("SCons") import Version, os.path -assert(len(sys.argv) == 2) +assert(len(sys.argv) >= 2) -print Version.getBuildVersion(os.path.dirname(sys.argv[0] + "/.."), sys.argv[1]) +only_major = False +if "--major" in sys.argv : + only_major = True + +if only_major : + v = Version.getBuildVersion(os.path.dirname(sys.argv[0] + "/.."), sys.argv[1]) + version_match = re.match("(\d+)\.(\d+).*", v) + if version_match : + print version_match.group(1) + else : + print "0" +else : + print Version.getBuildVersion(os.path.dirname(sys.argv[0] + "/.."), sys.argv[1]) diff --git a/Swift/Packaging/Debian/.gitignore b/Swift/Packaging/Debian/.gitignore index 33ec6c8..5401ae0 100644 --- a/Swift/Packaging/Debian/.gitignore +++ b/Swift/Packaging/Debian/.gitignore @@ -1,2 +1,3 @@ -swift-* -swift_* +/swift-* +/swift_* +/libswiften* diff --git a/Swift/Packaging/Debian/debian/control b/Swift/Packaging/Debian/debian/control.in index ec4bb29..56428d4 100644 --- a/Swift/Packaging/Debian/debian/control +++ b/Swift/Packaging/Debian/debian/control.in @@ -6,11 +6,27 @@ Build-Depends: debhelper (>= 7), scons (>= 1.2.0), libssl-dev (>= 0.9.8g), libqt Standards-Version: 3.8.4 Homepage: http://swift.im -Package: swift-im +Package: libswiften%SWIFTEN_SOVERSION% Architecture: any Section: net Priority: optional Depends: ${shlibs:Depends}, ${misc:Depends} +Description: XMPP Library. + The Swiften XMPP library. + +Package: libswiften%SWIFTEN_SOVERSION%-dev +Architecture: any +Section: libdevel +Priority: optional +Depends: libswiften%SWIFTEN_SOVERSION% (= ${binary:Version}), ${shlibs:Depends}, ${misc:Depends} +Description: XMPP Library. + The Swiften XMPP library. + +Package: swift-im +Architecture: any +Section: net +Priority: optional +Depends: libswiften%SWIFTEN_SOVERSION% (= ${binary:Version}), ${shlibs:Depends}, ${misc:Depends} Description: XMPP Client. The Swift IM client. diff --git a/Swift/Packaging/Debian/debian/libswiften-dev.install b/Swift/Packaging/Debian/debian/libswiften-dev.install new file mode 100644 index 0000000..84e0d21 --- /dev/null +++ b/Swift/Packaging/Debian/debian/libswiften-dev.install @@ -0,0 +1,4 @@ +usr/lib/libSwiften.so +usr/lib/libSwiften.so.?.* +usr/include +usr/bin/swiften-config diff --git a/Swift/Packaging/Debian/debian/libswiften.install b/Swift/Packaging/Debian/debian/libswiften.install new file mode 100644 index 0000000..04f6608 --- /dev/null +++ b/Swift/Packaging/Debian/debian/libswiften.install @@ -0,0 +1 @@ +usr/lib/libSwiften.so.? diff --git a/Swift/Packaging/Debian/debian/rules b/Swift/Packaging/Debian/debian/rules index 0c84852..d237c86 100755 --- a/Swift/Packaging/Debian/debian/rules +++ b/Swift/Packaging/Debian/debian/rules @@ -13,17 +13,14 @@ install: build dh_testroot dh_prep dh_installdirs - scons $(SCONS_FLAGS) optimize=1 debug=1 allow_warnings=1 swiften_dll=1 qt=/usr/share/qt4 docbook_xsl=/usr/share/xml/docbook/stylesheet/docbook-xsl docbook_xml=/usr/share/xml/docbook/schema/dtd/4.5 SWIFT_INSTALLDIR=$(CURDIR)/debian/swift-im/usr SWIFTEN_INSTALLDIR=$(CURDIR)/debian/swift-im/usr $(CURDIR)/debian/swift-im - #mv $(CURDIR)/debian/swift-im/usr/bin/swift $(CURDIR)/debian/swift-im/usr/bin/swift-im - #mv $(CURDIR)/debian/swift-im/usr/share/pixmaps/swift.xpm $(CURDIR)/debian/swift-im/usr/share/pixmaps/swift-im.xpm - #mv $(CURDIR)/debian/swift-im/usr/share/swift $(CURDIR)/debian/swift-im/usr/share/swift-im - #mv $(CURDIR)/debian/swift-im/usr/share/applications/swift.desktop $(CURDIR)/debian/swift-im/usr/share/applications/swift-im.desktop + scons $(SCONS_FLAGS) optimize=1 debug=1 allow_warnings=1 swiften_dll=1 qt=/usr/share/qt4 docbook_xsl=/usr/share/xml/docbook/stylesheet/docbook-xsl docbook_xml=/usr/share/xml/docbook/schema/dtd/4.5 SWIFT_INSTALLDIR=$(CURDIR)/debian/tmp/usr SWIFTEN_INSTALLDIR=$(CURDIR)/debian/tmp/usr $(CURDIR)/debian/tmp binary-indep: install binary-arch: install dh_testdir dh_testroot + dh_install --sourcedir=debian/tmp dh_installchangelogs dh_installdocs dh_installmenu diff --git a/Swift/Packaging/Debian/debian/shlibs.in b/Swift/Packaging/Debian/debian/shlibs.in new file mode 100644 index 0000000..9e80b9b --- /dev/null +++ b/Swift/Packaging/Debian/debian/shlibs.in @@ -0,0 +1 @@ +libSwiften %SWIFTEN_SOVERSION% libswiften%SWIFTEN_SOVERSION% diff --git a/Swift/Packaging/Debian/debian/swift-im.install b/Swift/Packaging/Debian/debian/swift-im.install new file mode 100644 index 0000000..3144192 --- /dev/null +++ b/Swift/Packaging/Debian/debian/swift-im.install @@ -0,0 +1,2 @@ +usr/bin/swift +usr/share diff --git a/Swift/Packaging/Debian/package.sh b/Swift/Packaging/Debian/package.sh index a7017c5..0cbc886 100755 --- a/Swift/Packaging/Debian/package.sh +++ b/Swift/Packaging/Debian/package.sh @@ -6,6 +6,7 @@ export PYTHONPATH=../../../BuildTools/SCons VERSION=`../../../BuildTools/GetBuildVersion.py swift` DEBIAN_VERSION=`../../../BuildTools/DebianizeVersion.py $VERSION` DIRNAME=swift-im-$DEBIAN_VERSION +SWIFTEN_SOVERSION=`../../../BuildTools/GetBuildVersion.py swift --major` if [ -z "$DEBIAN_VERSION" ]; then echo "Unable to determine version" @@ -14,6 +15,7 @@ fi echo "Cleaning up old packages ..." rm -f swift-im_* +rm -f libswiften* rm -rf swift-im-* echo "Checking out a fresh copy ..." @@ -28,6 +30,10 @@ cp -r $DIRNAME/3rdParty/Boost/src/boost/uuid $DIRNAME/3rdParty/Boost/uuid/boost ln -s Swift/Packaging/Debian/debian $DIRNAME/debian ../../../BuildTools/UpdateDebianChangelog.py $DIRNAME/debian/changelog $DEBIAN_VERSION +cat $DIRNAME/debian/control.in | sed -e "s/%SWIFTEN_SOVERSION%/$SWIFTEN_SOVERSION/g" > $DIRNAME/debian/control +cat $DIRNAME/debian/shlibs.in | sed -e "s/%SWIFTEN_SOVERSION%/$SWIFTEN_SOVERSION/g" > $DIRNAME/debian/shlibs +mv $DIRNAME/debian/libswiften.install $DIRNAME/debian/libswiften$SWIFTEN_SOVERSION.install +mv $DIRNAME/debian/libswiften-dev.install $DIRNAME/debian/libswiften$SWIFTEN_SOVERSION-dev.install echo "Building ..." cd $DIRNAME diff --git a/Swiften/SConscript b/Swiften/SConscript index c8508d3..c45da6e 100644 --- a/Swiften/SConscript +++ b/Swiften/SConscript @@ -360,27 +360,31 @@ if env["SCONS_STAGE"] == "build" : swiften_header = "#pragma once\n" swiften_includes = [] top_path = env.Dir("..").abspath - public_dirs = ["Avatars", "Base", "Chat", "Client", "Component", "Disco", "Entity", "Elements", "JID", "MUC", "Network", "Parser", "Presence", "Queries", "Roster", "Serializer", "StringCodecs", "TLS", "VCards"] - for public_dir in public_dirs : - for root, dirs, files in os.walk(env.Dir(public_dir).abspath) : - if root.endswith("UnitTest") : + for root, dirs, files in os.walk(env.Dir(".").abspath) : + if root.endswith("UnitTest") : + continue + for file in files : + if not file.endswith(".h") : continue - for file in files : - if not file.endswith(".h") : - continue - include = os.path.relpath(os.path.join(root, file), top_path) - swiften_includes.append(include) - if root.endswith("OpenSSL") : - continue - if file.startswith("CAres") or file.startswith("LibXML") or file.startswith("Expat") or file.startswith("foreach") or file.startswith("Log.h") or file.startswith("format.h") : - continue - if file.find("ProxyProvider") != -1 : - continue - swiften_header += "#include <" + include + ">\n" - swiften_includes.append(include) - for file in ["EventLoop/SimpleEventLoop.h"] : - swiften_header += "#include <Swiften/" + file + ">\n" - swiften_includes.append("Swiften/" + file) + include = os.path.relpath(os.path.join(root, file), top_path) + swiften_includes.append(include) + # Private modules + if root.endswith("Config") or root.endswith("Compress") : + continue + + # Library-specfifc private modules + if root.endswith("OpenSSL") or root.endswith("Cocoa") or root.endswith("Qt") or root.endswith("IDN") or root.endswith("Avahi") or root.endswith("Bonjour") : + continue + + # Library-specific files + if file.startswith("CAres") or file.startswith("LibXML") or file.startswith("Expat") : + continue + + # Specific headers we don't want to globally include + if file == "Swiften.h" or file == "foreach.h" or file == "Log.h" or file == "format.h" : + continue + swiften_header += "#include <" + include + ">\n" + swiften_includes.append(include) swiften_env.WriteVal("Swiften.h", swiften_env.Value(swiften_header)) swiften_includes.append("Swiften/Swiften.h") |