Merge lp:~zorba-coders/zorba/data-formatting-installer-fix into lp:zorba/data-formatting-module

Proposed by Juan Zacarias
Status: Merged
Approved by: Chris Hillery
Approved revision: 42
Merged at revision: 40
Proposed branch: lp:~zorba-coders/zorba/data-formatting-installer-fix
Merge into: lp:zorba/data-formatting-module
Diff against target: 347 lines (+315/-6)
2 files modified
CMakeLists.txt (+5/-6)
cmake_modules/FindJNI.cmake (+310/-0)
To merge this branch: bzr merge lp:~zorba-coders/zorba/data-formatting-installer-fix
Reviewer Review Type Date Requested Status
Chris Hillery Approve
Juan Zacarias Approve
Review via email: mp+165914@code.launchpad.net

Commit message

Fix for Ubuntu Installer.

Description of the change

Fix for Ubuntu Installer.

To post a comment you must log in.
Revision history for this message
Juan Zacarias (juan457) :
review: Approve
42. By Juan Zacarias

updated FindJNI.cmake License.

Revision history for this message
Chris Hillery (ceejatec) :
review: Approve
Revision history for this message
Zorba Build Bot (zorba-buildbot) wrote :
Revision history for this message
Zorba Build Bot (zorba-buildbot) wrote :

Validation queue job data-formatting-installer-fix-2013-05-27T19-31-42.478Z is finished. The final status was:

All tests succeeded!

Preview Diff

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

Subscribers

People subscribed via source and target branches

to all changes: