openbsd-ports/devel/cmake/patches/patch-Modules_FindJava_cmake
zhuk 4de8936a6a Unbreak (bulk) builds of Java-based apps using CMake: we force using JDK 1.6
to build MODJAVA_VER=1.6+ ports, and CMake should do the same. Otherwise we
could, e.g., pick up co-installed JDK 1.7, start build using it, and while
build process goes, JDK 1.7 may disappear...

Discovered while working on OpenCV 2.4, which contains Java bindings.

okay dcoppa@
2013-08-12 16:09:50 +00:00

56 lines
1.7 KiB
Plaintext

$OpenBSD: patch-Modules_FindJava_cmake,v 1.12 2013/08/12 16:09:50 zhuk Exp $
Note: we always build with Java 1.6 even when 1.6+ requested; "+" is meaningful
for run-time only.
--- Modules/FindJava.cmake.orig Fri Jun 7 19:21:34 2013
+++ Modules/FindJava.cmake Sat Jul 27 21:48:06 2013
@@ -56,6 +56,8 @@
# (To distribute this file outside of CMake, substitute the full
# License text for the above reference.)
+set(MODJAVA_VER $ENV{MODJAVA_VER})
+
# The HINTS option should only be used for values computed from the system.
set(_JAVA_HINTS
"[HKEY_LOCAL_MACHINE\\SOFTWARE\\JavaSoft\\Java Development Kit\\2.0;JavaHome]/bin"
@@ -70,19 +72,27 @@ set(_JAVA_HINTS
)
# Hard-coded guesses should still go in PATHS. This ensures that the user
# environment can always override hard guesses.
-set(_JAVA_PATHS
- /usr/lib/java/bin
- /usr/share/java/bin
- /usr/local/java/bin
- /usr/local/java/share/bin
- /usr/java/j2sdk1.4.2_04
- /usr/lib/j2sdk1.4-sun/bin
- /usr/java/j2sdk1.4.2_09/bin
- /usr/lib/j2sdk1.5-sun/bin
- /opt/sun-jdk-1.5.0.04/bin
- /usr/local/jdk-1.7.0/bin
- /usr/local/jdk-1.6.0/bin
- )
+if(MODJAVA_VER)
+ if(MODJAVA_VER MATCHES "^1\\.6\\+?$")
+ set(_JAVA_PATHS ${LOCALBASE}/jdk-1.6.0/bin)
+ else()
+ set(_JAVA_PATHS ${LOCALBASE}/jdk-1.7.0/bin)
+ endif()
+else()
+ set(_JAVA_PATHS
+ /usr/lib/java/bin
+ /usr/share/java/bin
+ /usr/local/java/bin
+ /usr/local/java/share/bin
+ /usr/java/j2sdk1.4.2_04
+ /usr/lib/j2sdk1.4-sun/bin
+ /usr/java/j2sdk1.4.2_09/bin
+ /usr/lib/j2sdk1.5-sun/bin
+ /opt/sun-jdk-1.5.0.04/bin
+ ${LOCALBASE}/jdk-1.7.0/bin
+ ${LOCALBASE}/jdk-1.6.0/bin
+ )
+endif()
find_program(Java_JAVA_EXECUTABLE
NAMES java
HINTS ${_JAVA_HINTS}