From b31f1885fab139fb3dde9f04304406402650eb83 Mon Sep 17 00:00:00 2001
From: Sven Gothel <sgothel@jausoft.com>
Date: Tue, 6 Mar 2012 19:35:48 +0100
Subject: Update and cleanup cpptasks build & archive.

Including Edwin Vane's work in commit d51d2aaad01d1c8188193a7913c6ef0fc38ea798
---
 .../archive/cpptasks/cpptasks-1.0b5-darwin.patch   | 70 ++++++++++++++++++++++
 1 file changed, 70 insertions(+)
 create mode 100644 make/lib/archive/cpptasks/cpptasks-1.0b5-darwin.patch

(limited to 'make/lib/archive/cpptasks/cpptasks-1.0b5-darwin.patch')

diff --git a/make/lib/archive/cpptasks/cpptasks-1.0b5-darwin.patch b/make/lib/archive/cpptasks/cpptasks-1.0b5-darwin.patch
new file mode 100644
index 0000000..8af11be
--- /dev/null
+++ b/make/lib/archive/cpptasks/cpptasks-1.0b5-darwin.patch
@@ -0,0 +1,70 @@
+diff -Nur cpptasks-1.0b5/src/main/java/net/sf/antcontrib/cpptasks/gcc/AbstractLdLinker.java cpptasks-1.0b5-osx-patched/src/main/java/net/sf/antcontrib/cpptasks/gcc/AbstractLdLinker.java
+--- cpptasks-1.0b5/src/main/java/net/sf/antcontrib/cpptasks/gcc/AbstractLdLinker.java	2008-04-02 19:26:44.000000000 +0200
++++ cpptasks-1.0b5-osx-patched/src/main/java/net/sf/antcontrib/cpptasks/gcc/AbstractLdLinker.java	2012-01-09 14:40:36.277639850 +0100
+@@ -59,7 +59,7 @@
+                 args.addElement("-bundle");
+             } else {
+                 if (linkType.isSharedLibrary()) {
+-                    args.addElement("-prebind");
++                    // args.addElement("-prebind"); // Only required for OSX 10.3 and earlier, no auto-add (can add manually though)
+                     args.addElement("-dynamiclib");
+                 }
+             }
+diff -Nur cpptasks-1.0b5/src/main/java/net/sf/antcontrib/cpptasks/gcc/GccLinker.java cpptasks-1.0b5-osx-patched/src/main/java/net/sf/antcontrib/cpptasks/gcc/GccLinker.java
+--- cpptasks-1.0b5/src/main/java/net/sf/antcontrib/cpptasks/gcc/GccLinker.java	2008-04-02 19:26:44.000000000 +0200
++++ cpptasks-1.0b5-osx-patched/src/main/java/net/sf/antcontrib/cpptasks/gcc/GccLinker.java	2012-01-09 15:25:12.994904288 +0100
+@@ -17,6 +17,8 @@
+ package net.sf.antcontrib.cpptasks.gcc;
+ import java.io.File;
+ import java.util.Vector;
++import java.util.HashSet;
++import java.util.Arrays;
+ 
+ import net.sf.antcontrib.cpptasks.CUtil;
+ import net.sf.antcontrib.cpptasks.compiler.LinkType;
+@@ -33,9 +35,10 @@
+     private static final String[] libtoolObjFiles = new String[]{".fo", ".a",
+             ".lib", ".dll", ".so", ".sl"};
+     private static String[] linkerOptions = new String[]{"-bundle",
+-            "-dynamiclib", "-nostartfiles", "-nostdlib", "-prebind", "-s",
++            "-dynamiclib", "-nostartfiles", "-nostdlib", "-prebind", "-noprebind", "-s",
+             "-static", "-shared", "-symbolic", "-Xlinker",
+             "--export-all-symbols", "-static-libgcc",};
++    private static String[] darwinLinkerOptions = new String[]{"-arch", "-weak_framework", "-lazy_framework", "-weak_library" };
+     private static final GccLinker dllLinker = new GccLinker("gcc", objFiles,
+             discardFiles, "lib", ".so", false, new GccLinker("gcc", objFiles,
+                     discardFiles, "lib", ".so", true, null));
+@@ -97,12 +100,13 @@
+                     break;
+                 default :
+                     boolean known = false;
+-                    for (int i = 0; i < linkerOptions.length; i++) {
+-                        if (linkerOptions[i].equals(arg)) {
+-                            known = true;
+-                            break;
+-                        }
++                    HashSet allLinkerOptions = new HashSet();
++                    allLinkerOptions.addAll(Arrays.asList(linkerOptions));
++                    if (isDarwin()) {
++                        allLinkerOptions.addAll(Arrays.asList(darwinLinkerOptions));
+                     }
++                    known = allLinkerOptions.contains(arg);
++
+                     if (!known) {
+                         buf.setLength(0);
+                         buf.append("-Wl,");
+diff -Nur cpptasks-1.0b5/src/test/java/net/sf/antcontrib/cpptasks/gcc/TestAbstractLdLinker.java cpptasks-1.0b5-osx-patched/src/test/java/net/sf/antcontrib/cpptasks/gcc/TestAbstractLdLinker.java
+--- cpptasks-1.0b5/src/test/java/net/sf/antcontrib/cpptasks/gcc/TestAbstractLdLinker.java	2008-04-02 19:26:44.000000000 +0200
++++ cpptasks-1.0b5-osx-patched/src/test/java/net/sf/antcontrib/cpptasks/gcc/TestAbstractLdLinker.java	2012-01-09 15:29:42.379687367 +0100
+@@ -73,9 +73,8 @@
+         pluginOutType.setValue("shared");
+         pluginType.setOutputType(pluginOutType);
+         linker.addImpliedArgs(false, pluginType, args);
+-        assertEquals(2, args.size());
+-        assertEquals("-prebind", args.elementAt(0));
+-        assertEquals("-dynamiclib", args.elementAt(1));
++        assertEquals(1, args.size());
++        assertEquals("-dynamiclib", args.elementAt(0));
+     }
+     /**
+      * Checks for proper arguments for plugin generation on Darwin
-- 
cgit v1.2.3