summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Qgpsmm.pc.in13
-rw-r--r--SConstruct49
-rw-r--r--libQgpsmm.prl.in5
3 files changed, 46 insertions, 21 deletions
diff --git a/Qgpsmm.pc.in b/Qgpsmm.pc.in
new file mode 100644
index 00000000..6d6235a5
--- /dev/null
+++ b/Qgpsmm.pc.in
@@ -0,0 +1,13 @@
+prefix=@prefix@
+exec_prefix=${prefix}
+libdir=${exec_prefix}@libdir@
+includedir=${prefix}/include
+qt_config=lex yacc warn_on uic resources qt release incremental link_prl def_files_disabled exceptions no_mocdepend stl qt_no_framework create_pc create_prl moc thread dll
+
+Name: Qgpsmm
+Description: GPS Daemon communication library - QT binding
+Version: @VERSION@
+Libs: -L${libdir} -lQgpsmm
+Libs.private: -L/usr/lib -lQtNetwork -lQtCore -lpthread
+Cflags: -I${includedir}
+Requires: QtNetwork
diff --git a/SConstruct b/SConstruct
index 8c80e3d8..d3674037 100644
--- a/SConstruct
+++ b/SConstruct
@@ -16,14 +16,16 @@
# without changing the --prefix prefix.
# Unfinished items:
-# * Qt binding (needs to build .pc, .prl files)
# * Out-of-directory builds: see http://www.scons.org/wiki/UsingBuildDir
# Release identification begins here
gpsd_version = "3.4~dev"
-libgps_major = 20
-libgps_minor = 0
-libgps_age = 0
+
+# library version
+libgps_version_current = 20
+libgps_version_revision = 0
+libgps_version_age = 0
+
# Release identification ends here
# Hosting information (mainly used for templating web pages) begins here
@@ -592,6 +594,9 @@ else:
## Two shared libraries provide most of the code for the C programs
+libgps_version_soname = libgps_version_current - libgps_version_age
+libgps_version = "%d.%d.%d" %(libgps_version_soname, libgps_version_age, libgps_version_revision)
+
libgps_sources = [
"ais_json.c",
"daemon.c",
@@ -654,7 +659,7 @@ libgpsd_sources = [
# Inspired by Richard Levitte's (slightly buggy) code at
# http://markmail.org/message/spttz3o4xrsftofr
-def VersionedSharedLibrary(env, libname, libversion, lib_objs=[], parse_flags=[]):
+def VersionedSharedLibrary(env, libname, libgps_version, lib_objs=[], parse_flags=[]):
platform = env.subst('$PLATFORM')
shlib_pre_action = None
shlib_suffix = env.subst('$SHLIBSUFFIX')
@@ -662,8 +667,8 @@ def VersionedSharedLibrary(env, libname, libversion, lib_objs=[], parse_flags=[]
shlink_flags = SCons.Util.CLVar(env.subst('$SHLINKFLAGS'))
if platform == 'posix':
- ilib_suffix = shlib_suffix + '.' + libversion
- (major, age, revision) = libversion.split(".")
+ ilib_suffix = shlib_suffix + '.' + libgps_version
+ (major, age, revision) = libgps_version.split(".")
soname = "lib" + libname + shlib_suffix + "." + major
shlink_flags += [ '-Wl,-Bsymbolic', '-Wl,-soname=%s' % soname ]
elif platform == 'cygwin':
@@ -671,9 +676,9 @@ def VersionedSharedLibrary(env, libname, libversion, lib_objs=[], parse_flags=[]
shlink_flags += [ '-Wl,-Bsymbolic',
'-Wl,--out-implib,${TARGET.base}.a' ]
elif platform == 'darwin':
- ilib_suffix = '.' + libversion + shlib_suffix
- shlink_flags += [ '-current_version', '%s' % libversion,
- '-compatibility_version', '%s' % libversion,
+ ilib_suffix = '.' + libgps_version + shlib_suffix
+ shlink_flags += [ '-current_version', '%s' % libgps_version,
+ '-compatibility_version', '%s' % libgps_version,
'-undefined', 'dynamic_lookup' ]
ilib = env.SharedLibrary(libname,lib_objs,
@@ -681,20 +686,20 @@ def VersionedSharedLibrary(env, libname, libversion, lib_objs=[], parse_flags=[]
SHLINKFLAGS=shlink_flags, parse_flags=parse_flags)
if platform == 'darwin':
- if libversion.count(".") != 2:
+ if libgps_version.count(".") != 2:
# We need a library name in libfoo.x.y.z.dylib form to proceed
raise ValueError
- lib = 'lib' + libname + '.' + libversion + '.dylib'
+ lib = 'lib' + libname + '.' + libgps_version + '.dylib'
lib_no_ver = 'lib' + libname + '.dylib'
# Link libfoo.x.y.z.dylib to libfoo.dylib
env.AddPostAction(ilib, 'rm -f %s; ln -s %s %s' % (
lib_no_ver, lib, lib_no_ver))
env.Clean(lib, lib_no_ver)
elif platform == 'posix':
- if libversion.count(".") != 2:
+ if libgps_version.count(".") != 2:
# We need a library name in libfoo.so.x.y.z form to proceed
raise ValueError
- lib = "lib" + libname + ".so." + libversion
+ lib = "lib" + libname + ".so." + libgps_version
suffix_re = '%s\\.[0-9\\.]*$' % re.escape(shlib_suffix)
# For libfoo.so.x.y.z, links libfoo.so libfoo.so.x.y libfoo.so.x
major_name = shlib_suffix + "." + lib.split(".")[2]
@@ -734,7 +739,7 @@ else:
def Library(env, target, sources, version, parse_flags=[]):
return VersionedSharedLibrary(env=env,
libname=target,
- libversion=version,
+ libgps_version=version,
lib_objs=sources,
parse_flags=parse_flags)
LibraryInstall = lambda env, libdir, sources: \
@@ -742,20 +747,17 @@ else:
# Klugery to handle sonames ends
-# Must be MAJOR.AGE.REVISION
-libversion = "%d.%d.%d" % (libgps_major, libgps_minor, libgps_age)
-
compiled_gpslib = Library(env=env,
target="gps",
sources=libgps_sources,
- version=libversion,
+ version=libgps_version,
parse_flags= ["-lm"] + dbus_libs)
env.Clean(compiled_gpslib, "gps_maskdump.c")
compiled_gpsdlib = Library(env=env,
target="gpsd",
sources=libgpsd_sources,
- version=libversion,
+ version=libgps_version,
parse_flags=usblibs + rtlibs + bluezlibs)
libraries = [compiled_gpslib, compiled_gpsdlib]
@@ -781,7 +783,7 @@ if qt_env:
CC=compile_with,
CFLAGS=compile_flags,
parse_flags=dbus_libs))
- compiled_qgpsmmlib = Library(qt_env, "Qgpsmm", qtobjects, libversion)
+ compiled_qgpsmmlib = Library(qt_env, "Qgpsmm", qtobjects, libgps_version)
libraries.append(compiled_qgpsmmlib)
# The libraries have dependencies on system libraries
@@ -1033,6 +1035,7 @@ def substituter(target, source, env):
('@WEBFORM@', webform),
('@FORMSERVER@', formserver),
('@DEVMAIL@', devmail),
+ ('@LIBGPSVERSION@', libgps_version),
)
with open(str(source[0])) as sfp:
content = sfp.read()
@@ -1149,6 +1152,10 @@ else:
python_egg_info_install]
pc_install = [ env.Install(installdir('pkgconfig'), x) for x in ("libgps.pc", "libgpsd.pc") ]
+if qt_env:
+ pc_install.append(qt_env.Install(installdir('pkgconfig'), 'Qgpsmm.pc'))
+ pc_install.append(qt_env.Install(installdir('libdir'), 'libQgpsmm.prl'))
+
maninstall = []
if manbuilder:
diff --git a/libQgpsmm.prl.in b/libQgpsmm.prl.in
new file mode 100644
index 00000000..3e897ab4
--- /dev/null
+++ b/libQgpsmm.prl.in
@@ -0,0 +1,5 @@
+QMAKE_PRO_INPUT = libQgpsmm.pro
+QMAKE_PRL_TARGET = libQgpsmm.so.@LIBGPSVERSION@
+QMAKE_PRL_CONFIG = include_source_dir lex yacc warn_on uic resources qt warn_on release incremental link_prl def_files_disabled exceptions no_mocdepend release stl qt_no_framework create_pc create_prl moc thread dll
+QMAKE_PRL_VERSION = @LIBGPSVERSION@
+