1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154
|
Author: Michael Banck <mbanck@debian.org>
Description: Give the libraries some kind of soname.
Unfortunately we need to fiddle with the build scripts itself
to fix linkages! Remember this when you add more libraries.
Link the tools to the shared libraries of indigo. Don't include
local header copies of system wide installed libraries.
Index: indigo/api/python/indigo.py
===================================================================
--- indigo.orig/api/python/indigo.py
+++ indigo/api/python/indigo.py
@@ -1268,14 +1268,8 @@ class Indigo(object):
path = dirname + '/lib'
if os.name == 'posix' and not platform.mac_ver()[0] and not platform.system().startswith("CYGWIN"):
arch = platform.architecture()[0]
- path += "/Linux"
- if arch == '32bit':
- path += "/x86"
- elif arch == '64bit':
- path += "/x64"
- else:
- raise IndigoException("unknown platform " + arch)
- Indigo._lib = CDLL(path + "/libindigo.so", mode=RTLD_GLOBAL)
+ path = "/usr/lib"
+ Indigo._lib = CDLL(path + "/libindigo.so.0d", mode=RTLD_GLOBAL)
elif os.name == 'nt' or platform.system().startswith("CYGWIN"):
arch = platform.architecture()[0]
path += "/Win"
Index: indigo/api/plugins/renderer/python/indigo_renderer.py
===================================================================
--- indigo.orig/api/plugins/renderer/python/indigo_renderer.py
+++ indigo/api/plugins/renderer/python/indigo_renderer.py
@@ -19,7 +19,7 @@ class IndigoRenderer(object):
self.indigo = indigo
if os.name == 'posix' and not platform.mac_ver()[0] and not platform.system().startswith("CYGWIN"):
- self._lib = CDLL(indigo.dllpath + "/libindigo-renderer.so")
+ self._lib = CDLL(indigo.dllpath + "/libindigo-renderer.so.0d")
elif os.name == 'nt' or platform.system().startswith("CYGWIN"):
self._lib = CDLL(indigo.dllpath + "\indigo-renderer.dll")
elif platform.mac_ver()[0]:
Index: indigo/api/plugins/renderer/java/src/main/java/com/epam/indigo/IndigoRenderer.java
===================================================================
--- indigo.orig/api/plugins/renderer/java/src/main/java/com/epam/indigo/IndigoRenderer.java
+++ indigo/api/plugins/renderer/java/src/main/java/com/epam/indigo/IndigoRenderer.java
@@ -107,7 +107,7 @@ public class IndigoRenderer
int os = Indigo.getOs();
if (os == Indigo.OS_LINUX || os == Indigo.OS_SOLARIS)
- _lib = (IndigoRendererLib)Native.loadLibrary(getPathToBinary(path, "libindigo-renderer.so"), IndigoRendererLib.class);
+ _lib = (IndigoRendererLib)Native.loadLibrary(getPathToBinary(path, "libindigo-renderer.so.0d"), IndigoRendererLib.class);
else if (os == Indigo.OS_MACOS)
_lib = (IndigoRendererLib)Native.loadLibrary(getPathToBinary(path, "libindigo-renderer.dylib"), IndigoRendererLib.class);
else // os == OS_WINDOWS
Index: indigo/api/java/src/main/java/com/epam/indigo/Indigo.java
===================================================================
--- indigo.orig/api/java/src/main/java/com/epam/indigo/Indigo.java
+++ indigo/api/java/src/main/java/com/epam/indigo/Indigo.java
@@ -243,7 +243,7 @@ public class Indigo {
return;
if (_os == OS_LINUX || _os == OS_SOLARIS)
- _lib = (IndigoLib) Native.loadLibrary(getPathToBinary(path, "libindigo.so"), IndigoLib.class);
+ _lib = (IndigoLib) Native.loadLibrary(getPathToBinary(path, "libindigo.so.0d"), IndigoLib.class);
else if (_os == OS_MACOS)
_lib = (IndigoLib) Native.loadLibrary(getPathToBinary(path, "libindigo.dylib"), IndigoLib.class);
else // _os == OS_WINDOWS
@@ -363,13 +363,7 @@ public class Indigo {
else
path += "sparc64";
} else {
- String archstr = System.getProperty("os.arch");
- if (archstr.equals("x86") || archstr.equals("i386"))
- path += "x86";
- else if (archstr.equals("x86_64") || archstr.equals("amd64"))
- path += "x64";
- else
- throw new Error("architecture not recognized");
+ path = "/usr/lib";
}
return path;
Index: indigo/api/CMakeLists.txt
===================================================================
--- indigo.orig/api/CMakeLists.txt
+++ indigo/api/CMakeLists.txt
@@ -36,6 +36,7 @@ endif()
add_library(indigo-shared SHARED $<TARGET_OBJECTS:indigoObj> $<TARGET_OBJECTS:graph> $<TARGET_OBJECTS:layout> $<TARGET_OBJECTS:molecule> $<TARGET_OBJECTS:common> $<TARGET_OBJECTS:reaction> ${Common_SOURCE_DIR}/hacks/memcpy.c)
SET_TARGET_PROPERTIES(indigo-shared PROPERTIES OUTPUT_NAME "indigo")
+SET_TARGET_PROPERTIES(indigo-shared PROPERTIES SOVERSION "0d")
set_target_properties(indigo-shared PROPERTIES COMPILE_FLAGS "${COMPILE_FLAGS}")
if (APPLE)
set_target_properties(indigo-shared PROPERTIES LINK_FLAGS "${LINK_FLAGS} -undefined dynamic_lookup")
Index: indigo/api/plugins/renderer/CMakeLists.txt
===================================================================
--- indigo.orig/api/plugins/renderer/CMakeLists.txt
+++ indigo/api/plugins/renderer/CMakeLists.txt
@@ -7,7 +7,7 @@ set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PAT
file (GLOB IndigoRenderer_src src/*.c*)
file (GLOB IndigoRenderer_headers *.h src/*.h*)
-include_directories(${IndigoRenderer_SOURCE_DIR} ${Indigo_SOURCE_DIR} ${Indigo_SOURCE_DIR}/src ${Cairo_SOURCE_DIR} ${Common_SOURCE_DIR} ${Common_SOURCE_DIR}/..)
+include_directories(${IndigoRenderer_SOURCE_DIR} ${Indigo_SOURCE_DIR} ${Indigo_SOURCE_DIR}/src ${Cairo_headers_dir} ${Common_SOURCE_DIR} ${Common_SOURCE_DIR}/..)
include(DefineTest)
add_library(indigo-renderer-Obj OBJECT ${IndigoRenderer_src} ${IndigoRenderer_headers})
@@ -48,6 +48,7 @@ endif()
# Indigo Renderer shared
add_library(indigo-renderer-shared SHARED $<TARGET_OBJECTS:render2d> $<TARGET_OBJECTS:indigo-renderer-Obj> ${Common_SOURCE_DIR}/hacks/memcpy.c)
SET_TARGET_PROPERTIES(indigo-renderer-shared PROPERTIES OUTPUT_NAME "indigo-renderer")
+SET_TARGET_PROPERTIES(indigo-renderer-shared PROPERTIES SOVERSION "0d")
if (MSVC OR MINGW)
set_target_properties(indigo-renderer-shared PROPERTIES PREFIX "")
endif()
Index: indigo/utils/indigo-cano/CMakeLists.txt
===================================================================
--- indigo.orig/utils/indigo-cano/CMakeLists.txt
+++ indigo/utils/indigo-cano/CMakeLists.txt
@@ -6,7 +6,7 @@ include(DefineTest)
include_directories(../../api)
add_executable(indigo-cano main.c)
-target_link_libraries(indigo-cano indigo)
+target_link_libraries(indigo-cano indigo-shared)
if (UNIX)
set_target_properties(indigo-cano PROPERTIES LINK_FLAGS "-pthread")
endif()
Index: indigo/utils/indigo-deco/CMakeLists.txt
===================================================================
--- indigo.orig/utils/indigo-deco/CMakeLists.txt
+++ indigo/utils/indigo-deco/CMakeLists.txt
@@ -6,7 +6,7 @@ include(DefineTest)
include_directories(../../api ../../common)
add_executable(indigo-deco main.c)
-target_link_libraries(indigo-deco indigo)
+target_link_libraries(indigo-deco indigo-shared)
if (UNIX)
set_target_properties(indigo-deco PROPERTIES LINK_FLAGS "-pthread")
endif()
Index: indigo/utils/indigo-depict/CMakeLists.txt
===================================================================
--- indigo.orig/utils/indigo-depict/CMakeLists.txt
+++ indigo/utils/indigo-depict/CMakeLists.txt
@@ -17,7 +17,7 @@ if(APPLE)
target_link_libraries(indigo-depict ${FRAMEWORK_ApplicationServices})
SET_TARGET_PROPERTIES(indigo-depict PROPERTIES LINK_FLAGS "${LINK_FLAGS} -Xlinker -framework -Xlinker ApplicationServices")
endif()
-target_link_libraries(indigo-depict indigo-renderer indigo cairo png pixman)
+target_link_libraries(indigo-depict indigo-shared indigo-renderer-shared indigo cairo png pixman-1)
if (UNIX)
set_target_properties(indigo-depict PROPERTIES LINK_FLAGS "-pthread")
endif()
|