Merge lp:~zorba-coders/zorba/schema-tools-installer-fix into lp:zorba/schema-tools-module

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

Commit message

Changes for Ubuntu Packages.

Description of the change

Changes for Ubuntu Packages.

To post a comment you must log in.
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 :
Revision history for this message
Zorba Build Bot (zorba-buildbot) wrote :

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