Merge lp:~zorba-coders/zorba/util-jvm-rpath into lp:zorba/util-jvm-module
- util-jvm-rpath
- Merge into module-util-jvm
Proposed by
Juan Zacarias
Status: | Merged |
---|---|
Approved by: | Chris Hillery |
Approved revision: | 17 |
Merged at revision: | 17 |
Proposed branch: | lp:~zorba-coders/zorba/util-jvm-rpath |
Merge into: | lp:zorba/util-jvm-module |
Diff against target: |
334 lines (+315/-4) 2 files modified
cmake_modules/FindJNI.cmake (+304/-0) src/CMakeLists.txt (+11/-4) |
To merge this branch: | bzr merge lp:~zorba-coders/zorba/util-jvm-rpath |
Related bugs: |
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
Chris Hillery | Approve | ||
Juan Zacarias | Approve | ||
Review via email: mp+163074@code.launchpad.net |
Commit message
Fixes for Debian Installers.
Description of the change
Fixes for Debian Installers.
To post a comment you must log in.
- 17. By Juan Zacarias
-
Updated FindJNI with the correct cmake license, Added the correct RPATHS.
Revision history for this message
Juan Zacarias (juan457) : | # |
review:
Approve
Revision history for this message
Chris Hillery (ceejatec) : | # |
review:
Approve
Revision history for this message
Zorba Build Bot (zorba-buildbot) wrote : | # |
Validation queue starting for merge proposal.
Log at: http://
Revision history for this message
Zorba Build Bot (zorba-buildbot) wrote : | # |
Validation queue job util-jvm-
All tests succeeded!
Preview Diff
[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1 | === added file 'cmake_modules/FindJNI.cmake' | |||
2 | --- cmake_modules/FindJNI.cmake 1970-01-01 00:00:00 +0000 | |||
3 | +++ cmake_modules/FindJNI.cmake 2013-05-27 16:57:27 +0000 | |||
4 | @@ -0,0 +1,304 @@ | |||
5 | 1 | # - Find JNI java libraries. | ||
6 | 2 | # This module finds if Java is installed and determines where the | ||
7 | 3 | # include files and libraries are. It also determines what the name of | ||
8 | 4 | # the library is. This code sets the following variables: | ||
9 | 5 | # | ||
10 | 6 | # JNI_INCLUDE_DIRS = the include dirs to use | ||
11 | 7 | # JNI_LIBRARIES = the libraries to use | ||
12 | 8 | # JNI_FOUND = TRUE if JNI headers and libraries were found. | ||
13 | 9 | # JAVA_AWT_LIBRARY = the path to the jawt library | ||
14 | 10 | # JAVA_JVM_LIBRARY = the path to the jvm library | ||
15 | 11 | # JAVA_INCLUDE_PATH = the include path to jni.h | ||
16 | 12 | # JAVA_INCLUDE_PATH2 = the include path to jni_md.h | ||
17 | 13 | # JAVA_AWT_INCLUDE_PATH = the include path to jawt.h | ||
18 | 14 | # | ||
19 | 15 | |||
20 | 16 | #============================================================================= | ||
21 | 17 | # Copyright 2000-2009 Kitware, Inc., Insight Software Consortium | ||
22 | 18 | # All rights reserved. | ||
23 | 19 | # | ||
24 | 20 | # Redistribution and use in source and binary forms, with or without | ||
25 | 21 | # modification, are permitted provided that the following conditions are met: | ||
26 | 22 | # | ||
27 | 23 | # * Redistributions of source code must retain the above copyright notice, | ||
28 | 24 | # this list of conditions and the following disclaimer. | ||
29 | 25 | # | ||
30 | 26 | # * Redistributions in binary form must reproduce the above copyright notice, | ||
31 | 27 | # this list of conditions and the following disclaimer in the documentation | ||
32 | 28 | # and/or other materials provided with the distribution. | ||
33 | 29 | # | ||
34 | 30 | # * Neither the names of Kitware, Inc., the Insight Software Consortium, nor | ||
35 | 31 | # the names of their contributors may be used to endorse or promote products | ||
36 | 32 | # derived from this software without specific prior written permission. | ||
37 | 33 | # | ||
38 | 34 | # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" | ||
39 | 35 | # AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE | ||
40 | 36 | # IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE | ||
41 | 37 | # ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE | ||
42 | 38 | # LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR | ||
43 | 39 | # CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF | ||
44 | 40 | # SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS | ||
45 | 41 | # INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN | ||
46 | 42 | # CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) | ||
47 | 43 | # ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE | ||
48 | 44 | # POSSIBILITY OF SUCH DAMAGE. | ||
49 | 45 | #============================================================================= | ||
50 | 46 | |||
51 | 47 | # Expand {libarch} occurences to java_libarch subdirectory(-ies) and set ${_var} | ||
52 | 48 | MACRO(java_append_library_directories _var) | ||
53 | 49 | # Determine java arch-specific library subdir | ||
54 | 50 | # Mostly based on openjdk/jdk/make/common/shared/Platform.gmk as of openjdk | ||
55 | 51 | # 1.6.0_18 + icedtea patches. However, it would be much better to base the | ||
56 | 52 | # guess on the first part of the GNU config.guess platform triplet. | ||
57 | 53 | IF(CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64") | ||
58 | 54 | SET(_java_libarch "amd64") | ||
59 | 55 | ELSEIF(CMAKE_SYSTEM_PROCESSOR MATCHES "^i.86$") | ||
60 | 56 | SET(_java_libarch "i386") | ||
61 | 57 | ELSEIF(CMAKE_SYSTEM_PROCESSOR MATCHES "^alpha") | ||
62 | 58 | SET(_java_libarch "alpha") | ||
63 | 59 | ELSEIF(CMAKE_SYSTEM_PROCESSOR MATCHES "^arm") | ||
64 | 60 | # Subdir is "arm" for both big-endian (arm) and little-endian (armel). | ||
65 | 61 | SET(_java_libarch "arm") | ||
66 | 62 | ELSEIF(CMAKE_SYSTEM_PROCESSOR MATCHES "^mips") | ||
67 | 63 | # mips* machines are bi-endian mostly so processor does not tell | ||
68 | 64 | # endianess of the underlying system. | ||
69 | 65 | SET(_java_libarch "${CMAKE_SYSTEM_PROCESSOR}" "mips" "mipsel" "mipseb") | ||
70 | 66 | ELSEIF(CMAKE_SYSTEM_PROCESSOR MATCHES "^(powerpc|ppc)64") | ||
71 | 67 | SET(_java_libarch "ppc64") | ||
72 | 68 | ELSEIF(CMAKE_SYSTEM_PROCESSOR MATCHES "^(powerpc|ppc)") | ||
73 | 69 | SET(_java_libarch "ppc") | ||
74 | 70 | ELSEIF(CMAKE_SYSTEM_PROCESSOR MATCHES "^sparc") | ||
75 | 71 | # Both flavours can run on the same processor | ||
76 | 72 | SET(_java_libarch "${CMAKE_SYSTEM_PROCESSOR}" "sparc" "sparcv9") | ||
77 | 73 | ELSEIF(CMAKE_SYSTEM_PROCESSOR MATCHES "^(parisc|hppa)") | ||
78 | 74 | SET(_java_libarch "parisc" "parisc64") | ||
79 | 75 | ELSEIF(CMAKE_SYSTEM_PROCESSOR MATCHES "^s390") | ||
80 | 76 | # s390 binaries can run on s390x machines | ||
81 | 77 | SET(_java_libarch "${CMAKE_SYSTEM_PROCESSOR}" "s390" "s390x") | ||
82 | 78 | ELSEIF(CMAKE_SYSTEM_PROCESSOR MATCHES "^sh") | ||
83 | 79 | SET(_java_libarch "sh") | ||
84 | 80 | ELSE(CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64") | ||
85 | 81 | SET(_java_libarch "${CMAKE_SYSTEM_PROCESSOR}") | ||
86 | 82 | ENDIF(CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64") | ||
87 | 83 | |||
88 | 84 | # Append default list architectures if CMAKE_SYSTEM_PROCESSOR was empty or | ||
89 | 85 | # system is non-Linux (where the code above has not been well tested) | ||
90 | 86 | IF(NOT _java_libarch OR NOT CMAKE_SYSTEM_NAME MATCHES "Linux") | ||
91 | 87 | LIST(APPEND _java_libarch "i386" "amd64" "ppc") | ||
92 | 88 | ENDIF(NOT _java_libarch OR NOT CMAKE_SYSTEM_NAME MATCHES "Linux") | ||
93 | 89 | |||
94 | 90 | # Sometimes ${CMAKE_SYSTEM_PROCESSOR} is added to the list to prefer | ||
95 | 91 | # current value to a hardcoded list. Remove possible duplicates. | ||
96 | 92 | LIST(REMOVE_DUPLICATES _java_libarch) | ||
97 | 93 | |||
98 | 94 | FOREACH(_path ${ARGN}) | ||
99 | 95 | IF(_path MATCHES "{libarch}") | ||
100 | 96 | FOREACH(_libarch ${_java_libarch}) | ||
101 | 97 | STRING(REPLACE "{libarch}" "${_libarch}" _newpath "${_path}") | ||
102 | 98 | LIST(APPEND ${_var} "${_newpath}") | ||
103 | 99 | ENDFOREACH(_libarch) | ||
104 | 100 | ELSE(_path MATCHES "{libarch}") | ||
105 | 101 | LIST(APPEND ${_var} "${_path}") | ||
106 | 102 | ENDIF(_path MATCHES "{libarch}") | ||
107 | 103 | ENDFOREACH(_path) | ||
108 | 104 | ENDMACRO(java_append_library_directories) | ||
109 | 105 | |||
110 | 106 | GET_FILENAME_COMPONENT(java_install_version | ||
111 | 107 | "[HKEY_LOCAL_MACHINE\\SOFTWARE\\JavaSoft\\Java Development Kit;CurrentVersion]" NAME) | ||
112 | 108 | |||
113 | 109 | SET(JAVA_AWT_LIBRARY_DIRECTORIES | ||
114 | 110 | "[HKEY_LOCAL_MACHINE\\SOFTWARE\\JavaSoft\\Java Development Kit\\1.4;JavaHome]/lib" | ||
115 | 111 | "[HKEY_LOCAL_MACHINE\\SOFTWARE\\JavaSoft\\Java Development Kit\\1.3;JavaHome]/lib" | ||
116 | 112 | "[HKEY_LOCAL_MACHINE\\SOFTWARE\\JavaSoft\\Java Development Kit\\${java_install_version};JavaHome]/lib" | ||
117 | 113 | ) | ||
118 | 114 | |||
119 | 115 | FILE(TO_CMAKE_PATH "$ENV{JAVA_HOME}" _JAVA_HOME) | ||
120 | 116 | |||
121 | 117 | JAVA_APPEND_LIBRARY_DIRECTORIES(JAVA_AWT_LIBRARY_DIRECTORIES | ||
122 | 118 | ${_JAVA_HOME}/jre/lib/{libarch} | ||
123 | 119 | ${_JAVA_HOME}/jre/lib | ||
124 | 120 | ${_JAVA_HOME}/lib | ||
125 | 121 | ${_JAVA_HOME} | ||
126 | 122 | /usr/lib/jvm/java-6-openjdk/jre/lib | ||
127 | 123 | /usr/lib/jvm/java-6-openjdk-i386/jre/lib | ||
128 | 124 | /usr/lib/jvm/java-6-openjdk-amd64/jre/lib | ||
129 | 125 | /usr/lib/jvm/java-6-openjdk/jre/lib/{libarch} | ||
130 | 126 | /usr/lib/jvm/java-6-openjdk-i386/jre/lib/{libarch} | ||
131 | 127 | /usr/lib/jvm/java-6-openjdk-amd64/jre/lib/{libarch} | ||
132 | 128 | /usr/lib | ||
133 | 129 | /usr/local/lib | ||
134 | 130 | /usr/lib/jvm/java/lib | ||
135 | 131 | /usr/lib/java/jre/lib/{libarch} | ||
136 | 132 | /usr/local/lib/java/jre/lib/{libarch} | ||
137 | 133 | /usr/local/share/java/jre/lib/{libarch} | ||
138 | 134 | /usr/lib/j2sdk1.4-sun/jre/lib/{libarch} | ||
139 | 135 | /usr/lib/j2sdk1.5-sun/jre/lib/{libarch} | ||
140 | 136 | /opt/sun-jdk-1.5.0.04/jre/lib/{libarch} | ||
141 | 137 | /usr/lib/jvm/java-6-sun/jre/lib/{libarch} | ||
142 | 138 | /usr/lib/jvm/java-1.5.0-sun/jre/lib/{libarch} | ||
143 | 139 | /usr/lib/jvm/java-6-sun-1.6.0.00/jre/lib/{libarch} # can this one be removed according to #8821 ? Alex | ||
144 | 140 | /usr/lib/jvm/java-openjdk/jre/lib/{libarch} | ||
145 | 141 | # Debian specific paths for default JVM | ||
146 | 142 | /usr/lib/jvm/default-java/jre/lib/{libarch} | ||
147 | 143 | /usr/lib/jvm/default-java/jre/lib | ||
148 | 144 | /usr/lib/jvm/default-java/lib | ||
149 | 145 | ) | ||
150 | 146 | |||
151 | 147 | SET(JAVA_JVM_LIBRARY_DIRECTORIES) | ||
152 | 148 | FOREACH(dir ${JAVA_AWT_LIBRARY_DIRECTORIES}) | ||
153 | 149 | SET(JAVA_JVM_LIBRARY_DIRECTORIES | ||
154 | 150 | ${JAVA_JVM_LIBRARY_DIRECTORIES} | ||
155 | 151 | "${dir}" | ||
156 | 152 | "${dir}/client" | ||
157 | 153 | "${dir}/server" | ||
158 | 154 | ) | ||
159 | 155 | ENDFOREACH(dir) | ||
160 | 156 | |||
161 | 157 | |||
162 | 158 | SET(JAVA_AWT_INCLUDE_DIRECTORIES | ||
163 | 159 | "[HKEY_LOCAL_MACHINE\\SOFTWARE\\JavaSoft\\Java Development Kit\\1.4;JavaHome]/include" | ||
164 | 160 | "[HKEY_LOCAL_MACHINE\\SOFTWARE\\JavaSoft\\Java Development Kit\\1.3;JavaHome]/include" | ||
165 | 161 | "[HKEY_LOCAL_MACHINE\\SOFTWARE\\JavaSoft\\Java Development Kit\\${java_install_version};JavaHome]/include" | ||
166 | 162 | ${_JAVA_HOME}/include | ||
167 | 163 | /usr/lib/jvm/java-6-openjdk/include | ||
168 | 164 | /usr/lib/jvm/java-6-openjdk-amd64/include | ||
169 | 165 | /usr/lib/jvm/java-6-openjdk-i386/include | ||
170 | 166 | /usr/include | ||
171 | 167 | /usr/local/include | ||
172 | 168 | /usr/lib/java/include | ||
173 | 169 | /usr/local/lib/java/include | ||
174 | 170 | /usr/lib/jvm/java/include | ||
175 | 171 | /usr/lib/jvm/java-6-sun/include | ||
176 | 172 | /usr/lib/jvm/java-1.5.0-sun/include | ||
177 | 173 | /usr/lib/jvm/java-6-sun-1.6.0.00/include # can this one be removed according to #8821 ? Alex | ||
178 | 174 | /usr/lib/jvm/java-6-openjdk/include | ||
179 | 175 | /usr/local/share/java/include | ||
180 | 176 | /usr/lib/j2sdk1.4-sun/include | ||
181 | 177 | /usr/lib/j2sdk1.5-sun/include | ||
182 | 178 | /opt/sun-jdk-1.5.0.04/include | ||
183 | 179 | # Debian specific path for default JVM | ||
184 | 180 | /usr/lib/jvm/default-java/include | ||
185 | 181 | ) | ||
186 | 182 | |||
187 | 183 | FOREACH(JAVA_PROG "${JAVA_RUNTIME}" "${JAVA_COMPILE}" "${JAVA_ARCHIVE}") | ||
188 | 184 | GET_FILENAME_COMPONENT(jpath "${JAVA_PROG}" PATH) | ||
189 | 185 | FOREACH(JAVA_INC_PATH ../include ../java/include ../share/java/include) | ||
190 | 186 | IF(EXISTS ${jpath}/${JAVA_INC_PATH}) | ||
191 | 187 | SET(JAVA_AWT_INCLUDE_DIRECTORIES ${JAVA_AWT_INCLUDE_DIRECTORIES} "${jpath}/${JAVA_INC_PATH}") | ||
192 | 188 | ENDIF(EXISTS ${jpath}/${JAVA_INC_PATH}) | ||
193 | 189 | ENDFOREACH(JAVA_INC_PATH) | ||
194 | 190 | FOREACH(JAVA_LIB_PATH | ||
195 | 191 | ../lib ../jre/lib ../jre/lib/i386 | ||
196 | 192 | ../java/lib ../java/jre/lib ../java/jre/lib/i386 | ||
197 | 193 | ../share/java/lib ../share/java/jre/lib ../share/java/jre/lib/i386) | ||
198 | 194 | IF(EXISTS ${jpath}/${JAVA_LIB_PATH}) | ||
199 | 195 | SET(JAVA_AWT_LIBRARY_DIRECTORIES ${JAVA_AWT_LIBRARY_DIRECTORIES} "${jpath}/${JAVA_LIB_PATH}") | ||
200 | 196 | ENDIF(EXISTS ${jpath}/${JAVA_LIB_PATH}) | ||
201 | 197 | ENDFOREACH(JAVA_LIB_PATH) | ||
202 | 198 | ENDFOREACH(JAVA_PROG) | ||
203 | 199 | |||
204 | 200 | IF(APPLE) | ||
205 | 201 | IF(EXISTS ~/Library/Frameworks/JavaVM.framework) | ||
206 | 202 | SET(JAVA_HAVE_FRAMEWORK 1) | ||
207 | 203 | ENDIF(EXISTS ~/Library/Frameworks/JavaVM.framework) | ||
208 | 204 | IF(EXISTS /Library/Frameworks/JavaVM.framework) | ||
209 | 205 | SET(JAVA_HAVE_FRAMEWORK 1) | ||
210 | 206 | ENDIF(EXISTS /Library/Frameworks/JavaVM.framework) | ||
211 | 207 | IF(EXISTS /System/Library/Frameworks/JavaVM.framework) | ||
212 | 208 | SET(JAVA_HAVE_FRAMEWORK 1) | ||
213 | 209 | ENDIF(EXISTS /System/Library/Frameworks/JavaVM.framework) | ||
214 | 210 | |||
215 | 211 | IF(JAVA_HAVE_FRAMEWORK) | ||
216 | 212 | IF(NOT JAVA_AWT_LIBRARY) | ||
217 | 213 | SET (JAVA_AWT_LIBRARY "-framework JavaVM" CACHE FILEPATH "Java Frameworks" FORCE) | ||
218 | 214 | ENDIF(NOT JAVA_AWT_LIBRARY) | ||
219 | 215 | |||
220 | 216 | IF(NOT JAVA_JVM_LIBRARY) | ||
221 | 217 | SET (JAVA_JVM_LIBRARY "-framework JavaVM" CACHE FILEPATH "Java Frameworks" FORCE) | ||
222 | 218 | ENDIF(NOT JAVA_JVM_LIBRARY) | ||
223 | 219 | |||
224 | 220 | IF(NOT JAVA_AWT_INCLUDE_PATH) | ||
225 | 221 | IF(EXISTS /System/Library/Frameworks/JavaVM.framework/Headers/jawt.h) | ||
226 | 222 | SET (JAVA_AWT_INCLUDE_PATH "/System/Library/Frameworks/JavaVM.framework/Headers" CACHE FILEPATH "jawt.h location" FORCE) | ||
227 | 223 | ENDIF(EXISTS /System/Library/Frameworks/JavaVM.framework/Headers/jawt.h) | ||
228 | 224 | ENDIF(NOT JAVA_AWT_INCLUDE_PATH) | ||
229 | 225 | |||
230 | 226 | # If using "-framework JavaVM", prefer its headers *before* the others in | ||
231 | 227 | # JAVA_AWT_INCLUDE_DIRECTORIES... (*prepend* to the list here) | ||
232 | 228 | # | ||
233 | 229 | SET(JAVA_AWT_INCLUDE_DIRECTORIES | ||
234 | 230 | ~/Library/Frameworks/JavaVM.framework/Headers | ||
235 | 231 | /Library/Frameworks/JavaVM.framework/Headers | ||
236 | 232 | /System/Library/Frameworks/JavaVM.framework/Headers | ||
237 | 233 | ${JAVA_AWT_INCLUDE_DIRECTORIES} | ||
238 | 234 | ) | ||
239 | 235 | ENDIF(JAVA_HAVE_FRAMEWORK) | ||
240 | 236 | ELSE(APPLE) | ||
241 | 237 | FIND_LIBRARY(JAVA_AWT_LIBRARY jawt | ||
242 | 238 | PATHS ${JAVA_AWT_LIBRARY_DIRECTORIES} | ||
243 | 239 | ) | ||
244 | 240 | FIND_LIBRARY(JAVA_JVM_LIBRARY NAMES jvm JavaVM java | ||
245 | 241 | PATHS ${JAVA_JVM_LIBRARY_DIRECTORIES} | ||
246 | 242 | ) | ||
247 | 243 | ENDIF(APPLE) | ||
248 | 244 | |||
249 | 245 | # add in the include path | ||
250 | 246 | FIND_PATH(JAVA_INCLUDE_PATH jni.h | ||
251 | 247 | ${JAVA_AWT_INCLUDE_DIRECTORIES} | ||
252 | 248 | ) | ||
253 | 249 | |||
254 | 250 | FIND_PATH(JAVA_INCLUDE_PATH2 jni_md.h | ||
255 | 251 | ${JAVA_INCLUDE_PATH} | ||
256 | 252 | ${JAVA_INCLUDE_PATH}/win32 | ||
257 | 253 | ${JAVA_INCLUDE_PATH}/linux | ||
258 | 254 | ${JAVA_INCLUDE_PATH}/freebsd | ||
259 | 255 | ${JAVA_INCLUDE_PATH}/solaris | ||
260 | 256 | ) | ||
261 | 257 | |||
262 | 258 | FIND_PATH(JAVA_AWT_INCLUDE_PATH jawt.h | ||
263 | 259 | ${JAVA_INCLUDE_PATH} | ||
264 | 260 | ) | ||
265 | 261 | |||
266 | 262 | |||
267 | 263 | IF (APPLE) | ||
268 | 264 | # On Mac, the java headers files are broken symlinks if the Apple Developer Tools for Java are not installed | ||
269 | 265 | EXECUTE_PROCESS(COMMAND cat ${JAVA_INCLUDE_PATH}/jni.h | ||
270 | 266 | OUTPUT_QUIET | ||
271 | 267 | ERROR_QUIET | ||
272 | 268 | RESULT_VARIABLE SYMLINK_CHECK_RESULT_VARIABLE) | ||
273 | 269 | IF (SYMLINK_CHECK_RESULT_VARIABLE GREATER 0) | ||
274 | 270 | SET (JAVA_INCLUDE_PATH "JAVA_INCLUDE_PATH-NOTFOUND") | ||
275 | 271 | SET (JAVA_INCLUDE_PATH2 "JAVA_INCLUDE_PATH2-NOTFOUND") | ||
276 | 272 | SET (JAVA_AWT_INCLUDE_PATH "JAVA_AWT_INCLUDE_PATH-NOTFOUND") | ||
277 | 273 | ENDIF() | ||
278 | 274 | ENDIF (APPLE) | ||
279 | 275 | |||
280 | 276 | |||
281 | 277 | #INCLUDE("${CMAKE_CURRENT_LIST_DIR}/FindPackageHandleStandardArgs.cmake") | ||
282 | 278 | #FIND_PACKAGE_HANDLE_STANDARD_ARGS(JNI DEFAULT_MSG JAVA_AWT_LIBRARY JAVA_JVM_LIBRARY | ||
283 | 279 | # JAVA_INCLUDE_PATH JAVA_INCLUDE_PATH2 JAVA_AWT_INCLUDE_PATH) | ||
284 | 280 | |||
285 | 281 | MARK_AS_ADVANCED( | ||
286 | 282 | JAVA_AWT_LIBRARY | ||
287 | 283 | JAVA_JVM_LIBRARY | ||
288 | 284 | JAVA_AWT_INCLUDE_PATH | ||
289 | 285 | JAVA_INCLUDE_PATH | ||
290 | 286 | JAVA_INCLUDE_PATH2 | ||
291 | 287 | ) | ||
292 | 288 | |||
293 | 289 | IF (JAVA_AWT_LIBRARY AND JAVA_JVM_LIBRARY AND JAVA_INCLUDE_PATH AND JAVA_INCLUDE_PATH2 AND JAVA_AWT_INCLUDE_PATH) | ||
294 | 290 | SET(JNI_FOUND 1) | ||
295 | 291 | SET(JNI_LIBRARIES | ||
296 | 292 | ${JAVA_AWT_LIBRARY} | ||
297 | 293 | ${JAVA_JVM_LIBRARY} | ||
298 | 294 | ) | ||
299 | 295 | SET(JNI_INCLUDE_DIRS | ||
300 | 296 | ${JAVA_INCLUDE_PATH} | ||
301 | 297 | ${JAVA_INCLUDE_PATH2} | ||
302 | 298 | ${JAVA_AWT_INCLUDE_PATH} | ||
303 | 299 | ) | ||
304 | 300 | ELSE (JAVA_AWT_LIBRARY AND JAVA_JVM_LIBRARY AND JAVA_INCLUDE_PATH AND JAVA_INCLUDE_PATH2 AND JAVA_AWT_INCLUDE_PATH) | ||
305 | 301 | SET(JNI_FOUND 0) | ||
306 | 302 | SET(JNI_LIBRARIES "") | ||
307 | 303 | SET(JNI_INCLUDE_DIRS "") | ||
308 | 304 | ENDIF (JAVA_AWT_LIBRARY AND JAVA_JVM_LIBRARY AND JAVA_INCLUDE_PATH AND JAVA_INCLUDE_PATH2 AND JAVA_AWT_INCLUDE_PATH) | ||
309 | 0 | 305 | ||
310 | === modified file 'src/CMakeLists.txt' | |||
311 | --- src/CMakeLists.txt 2012-06-04 21:47:12 +0000 | |||
312 | +++ src/CMakeLists.txt 2013-05-27 16:57:27 +0000 | |||
313 | @@ -39,10 +39,17 @@ | |||
314 | 39 | LIBRARY DESTINATION lib${LIB_SUFFIX} | 39 | LIBRARY DESTINATION lib${LIB_SUFFIX} |
315 | 40 | ARCHIVE DESTINATION lib) | 40 | ARCHIVE DESTINATION lib) |
316 | 41 | 41 | ||
321 | 42 | # MAC OS X only property | 42 | #SET RPATH |
322 | 43 | # this is required to make sure that the library has the correct install name after | 43 | IF (ZORBA_ADD_DEBIAN_JRE_RPATHS) |
323 | 44 | # installation such that dependent modules always find it | 44 | SET (INSTALL_RPATH_PATHS "/usr/lib/jvm/default-java/jre/lib/amd64/server;/usr/lib/jvm/java-6-openjdk/jre/lib/amd64/server;/usr/lib/jvm/java-6-openjdk-amd64/jre/lib/amd64/server;/usr/lib/jvm/java-7-openjdk/jre/lib/amd64/server;/usr/lib/jvm/java-7-openjdk-amd64/jre/lib/amd64/server;/usr/lib/jvm/default-java/jre/lib/i386/server;/usr/lib/jvm/java-6-openjdk/jre/lib/i386/server;/usr/lib/jvm/java-6-openjdk-i386/jre/lib/i386/server;/usr/lib/jvm/java-7-openjdk/jre/lib/i386/server;/usr/lib/jvm/java-7-openjdk-i386/jre/lib/i386/server") |
324 | 45 | SET_TARGET_PROPERTIES(util-jvm PROPERTIES INSTALL_NAME_DIR "${CMAKE_INSTALL_PREFIX}/lib") | 45 | SET_TARGET_PROPERTIES(util-jvm PROPERTIES INSTALL_NAME_DIR "${CMAKE_INSTALL_PREFIX}/lib" INSTALL_RPATH_USE_LINK_PATH TRUE INSTALL_RPATH "${INSTALL_RPATH_PATHS}") |
325 | 46 | ELSE (ZORBA_ADD_DEBIAN_JRE_RPATHS) | ||
326 | 47 | # MAC OS X only property | ||
327 | 48 | # this is required to make sure that the library has the correct install name after | ||
328 | 49 | # installation such that dependent modules always find it | ||
329 | 50 | SET_TARGET_PROPERTIES(util-jvm PROPERTIES INSTALL_NAME_DIR "${CMAKE_INSTALL_PREFIX}/lib") | ||
330 | 51 | ENDIF (ZORBA_ADD_DEBIAN_JRE_RPATHS) | ||
331 | 52 | |||
332 | 46 | 53 | ||
333 | 47 | # Set this in the parent scope so it will be put into our Config.cmake file. | 54 | # Set this in the parent scope so it will be put into our Config.cmake file. |
334 | 48 | # As with many other things, this doesn't work when the module is installed. | 55 | # As with many other things, this doesn't work when the module is installed. |
1. I believe that the correct values for RPATH are directories, not actual .so files, so the value of INSTALL_RPATH_PATHS should omit all the "/libjvm.so" parts.
2. FindJNI.cmake says:
# (To distribute this file outside of CMake, substitute the full
# License text for the above reference.)
So, we should do that.