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