Patch for typgen, adding -x option

Peter Soetens <[email protected]>
Newsgroups gmane.science.robotics.orocos.devel
Message-ID <CAMYDobUO5k2OTUNbPV0CqvLdvPFQ39jX7iYCXySP0OYkVMRe9w@mail.gmail.com>
I wanted to pass typegen an option that informs it for which
OROCOS_TARGET it needs to find the .pc files, while still keeping the
'normal' name for looking up the .tlb files.

The minor patch in attachment adds such an option, -x <target>

Ok to apply ?

Peter

-- 
Orocos-Dev mailing list
[email protected]
http://lists.mech.kuleuven.be/mailman/listinfo/orocos-dev
0001-typegen-add-x-target-option-to-make-i-target-aware.patch (application/octet-stream, 2.4 KB)
From 58c2349b48362ab970c6c6d10b4d418b018408e8 Mon Sep 17 00:00:00 2001
From: Peter Soetens <[email protected]>
Date: Fri, 1 Feb 2013 12:16:02 +0100
Subject: [PATCH] typegen: add -x target option to make -i target aware

Otherwise, we had to hard-code -<target> into the -i flags in user code.
Now, we can silently pass -x target and for each -i flag, it will look
if either version of the .pc file exists.

Signed-off-by: Peter Soetens <[email protected]>
---
 bin/typegen |   27 ++++++++++++++++++---------
 1 file changed, 18 insertions(+), 9 deletions(-)

diff --git a/bin/typegen b/bin/typegen
index 94ae8f7..517448f 100755
--- a/bin/typegen
+++ b/bin/typegen
@@ -12,6 +12,7 @@ typekit = Orocos::Generation::Typekit.new
 typekit_loader = Orocos::Generation::Project.new
 
 transports = DEFAULT_TRANSPORTS.dup.to_set
+target_suf = ""
 
 parser = OptionParser.new do |opt|
     available_transports = Orocos::Generation::Typekit.plugins.keys
@@ -22,18 +23,26 @@ usage: typegen [--transports=NAME1,NAME2] [--output=output_dir] [--import=LIBRAR
 this installation of typegen knows the following transports: #{available_transports}
     EOF
 
+    opt.on('-x OROCOS_TARGET', '--orocos_target=OROCOS_TARGET', String, "Target to use when searching for import libraries (must precede -i !)") do |target|
+        target_suf = "-" + target
+    end
+
     opt.on('-i LIBRARY', '--import=LIBRARY', String, "a library or typekit to get headers and/or types from, using its pkg-config name") do |name|
         begin
-            pkg = Utilrb::PkgConfig.new(name)
-            if pkg.typelist && !pkg.typelist.empty?
-                typekit = typekit_loader.load_typekit(name)
-                typekit.using_typekit(typekit)
-            else
-                typekit.using_library(pkg)
-            end
+            pkg = Utilrb::PkgConfig.new("#{name}#{target_suf}")
         rescue Utilrb::PkgConfig::NotFound
-            STDERR.puts "#{name} cannot be found by pkg-config"
-            exit(1)
+            begin
+                pkg = Utilrb::PkgConfig.new("#{name}")
+            rescue Utilrb::PkgConfig::NotFound
+              STDERR.puts "#{name} cannot be found by pkg-config"
+              exit(1)
+            end
+        end
+        if pkg.typelist && !pkg.typelist.empty?
+            typekit = typekit_loader.load_typekit(name)
+            typekit.using_typekit(typekit)
+        else
+            typekit.using_library(pkg)
         end
     end
 
-- 
1.7.9.5
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.