Forráskód Böngészése

Improve searching for java files on OSX

Andy Cedilnik 23 éve
szülő
commit
8e105e0a9f
1 módosított fájl, 38 hozzáadás és 10 törlés
  1. 38 10
      Modules/FindJNI.cmake

+ 38 - 10
Modules/FindJNI.cmake

@@ -8,26 +8,54 @@
 #  JAVA_AWT_INCLUDE_PATH = the path to where jni.h can be found
 # 
 
-FIND_LIBRARY(JAVA_AWT_LIBRARY jawt 
-  PATHS /usr/lib
-        /usr/local/lib
-        /usr/lib/java/jre/lib/i386
-        /usr/local/lib/java/jre/lib/i386
-        "[HKEY_LOCAL_MACHINE\\SOFTWARE\\JavaSoft\\Java Development Kit\\1.4;JavaHome]/lib"
-        "[HKEY_LOCAL_MACHINE\\SOFTWARE\\JavaSoft\\Java Development Kit\\1.3;JavaHome]/lib"
-)
+SET(JAVA_AWT_LIBRARY_DIRECTORIES
+  /usr/lib
+  /usr/local/lib
+  /usr/lib/java/jre/lib/i386
+  /usr/local/lib/java/jre/lib/i386
+  "[HKEY_LOCAL_MACHINE\\SOFTWARE\\JavaSoft\\Java Development Kit\\1.4;JavaHome]/lib"
+  "[HKEY_LOCAL_MACHINE\\SOFTWARE\\JavaSoft\\Java Development Kit\\1.3;JavaHome]/lib"
+  )
 
-# add in the include path    
-FIND_PATH(JAVA_INCLUDE_PATH jni.h 
+SET(JAVA_AWT_INCLUDE_DIRECTORIES
   /usr/include 
   /usr/local/include
   /usr/lib/java/include
   /usr/local/lib/java/include
   "[HKEY_LOCAL_MACHINE\\SOFTWARE\\JavaSoft\\Java Development Kit\\1.4;JavaHome]/include"
   "[HKEY_LOCAL_MACHINE\\SOFTWARE\\JavaSoft\\Java Development Kit\\1.3;JavaHome]/include"
+  )
+
+FIND_LIBRARY(JAVA_AWT_LIBRARY jawt 
+  PATHS ${JAVA_AWT_LIBRARY_DIRECTORIES}
+)
+
+IF(APPLE)
+  IF(EXISTS ~/Library/Frameworks/JavaEmbedding.framework)
+    SET(JAVA_HAVE_FRAMEWORK 1)
+  ENDIF(EXISTS ~/Library/Frameworks/JavaEmbedding.framework)
+  IF(EXISTS /Library/Frameworks/JavaEmbedding.framework)
+    SET(JAVA_HAVE_FRAMEWORK 1)
+  ENDIF(EXISTS /Library/Frameworks/JavaEmbedding.framework)
+  IF(JAVA_HAVE_FRAMEWORK)
+    IF(NOT JAVA_LIBRARY)
+      SET (JAVA_LIBRARY "-framework JavaVM -framework JavaEmbedding" CACHE FILEPATH "Java Frameworks" FORCE)
+      SET(JAVA_AWT_INCLUDE_DIRECTORIES
+        ~/Library/Frameworks/JavaEmbedding.framework/Headers
+        /Library/Frameworks/JavaEmbedding.framework/Headers
+        /System/Library/Frameworks/JavaEmbedding.framework/Headers
+        )
+    ENDIF(NOT JAVA_LIBRARY)
+  ENDIF(JAVA_HAVE_FRAMEWORK)
+ENDIF(APPLE)
+
+# add in the include path    
+FIND_PATH(JAVA_INCLUDE_PATH jni.h 
+  ${JAVA_AWT_INCLUDE_DIRECTORIES}
 )
 
 FIND_PATH(JAVA_INCLUDE_PATH2 jni_md.h 
+  ${JAVA_AWT_INCLUDE_DIRECTORIES}
   ${JAVA_INCLUDE_PATH}/win32
   ${JAVA_INCLUDE_PATH}/linux
 )