FindJNI.cmake 3.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394
  1. #
  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. # JAVA_AWT_LIB_PATH = the path to where the jawt library is
  7. # JAVA_INCLUDE_PATH = the path to where jni.h can be found
  8. # JAVA_AWT_INCLUDE_PATH = the path to where jni.h can be found
  9. #
  10. SET(JAVA_AWT_LIBRARY_DIRECTORIES
  11. "[HKEY_LOCAL_MACHINE\\SOFTWARE\\JavaSoft\\Java Development Kit\\1.4;JavaHome]/lib"
  12. "[HKEY_LOCAL_MACHINE\\SOFTWARE\\JavaSoft\\Java Development Kit\\1.3;JavaHome]/lib"
  13. /usr/lib
  14. /usr/local/lib
  15. /usr/lib/java/jre/lib/i386
  16. /usr/local/lib/java/jre/lib/i386
  17. )
  18. SET(JAVA_AWT_INCLUDE_DIRECTORIES
  19. "[HKEY_LOCAL_MACHINE\\SOFTWARE\\JavaSoft\\Java Development Kit\\1.4;JavaHome]/include"
  20. "[HKEY_LOCAL_MACHINE\\SOFTWARE\\JavaSoft\\Java Development Kit\\1.3;JavaHome]/include"
  21. /usr/include
  22. /usr/local/include
  23. /usr/lib/java/include
  24. /usr/local/lib/java/include
  25. )
  26. FOREACH(JAVA_PROG "${JAVA_RUNTIME}" "${JAVA_COMPILE}" "${JAVA_ARCHIVE}")
  27. GET_FILENAME_COMPONENT(jpath "${JAVA_PROG}" PATH)
  28. FOREACH(JAVA_INC_PATH ../include ../java/include ../share/java/include)
  29. IF(EXISTS ${jpath}/${JAVA_INC_PATH})
  30. SET(JAVA_AWT_INCLUDE_DIRECTORIES ${JAVA_AWT_INCLUDE_DIRECTORIES} "${jpath}/${JAVA_INC_PATH}")
  31. ENDIF(EXISTS ${jpath}/${JAVA_INC_PATH})
  32. ENDFOREACH(JAVA_INC_PATH)
  33. FOREACH(JAVA_LIB_PATH
  34. ../lib ../jre/lib ../jre/lib/i386
  35. ../java/lib ../java/jre/lib ../java/jre/lib/i386
  36. ../share/java/lib ../share/java/jre/lib ../share/java/jre/lib/i386)
  37. IF(EXISTS ${jpath}/${JAVA_LIB_PATH})
  38. SET(JAVA_AWT_LIBRARY_DIRECTORIES ${JAVA_AWT_LIBRARY_DIRECTORIES} "${jpath}/${JAVA_LIB_PATH}")
  39. ENDIF(EXISTS ${jpath}/${JAVA_LIB_PATH})
  40. ENDFOREACH(JAVA_LIB_PATH)
  41. ENDFOREACH(JAVA_PROG)
  42. IF(APPLE)
  43. IF(EXISTS ~/Library/Frameworks/JavaEmbedding.framework)
  44. SET(JAVA_HAVE_FRAMEWORK 1)
  45. ENDIF(EXISTS ~/Library/Frameworks/JavaEmbedding.framework)
  46. IF(EXISTS /Library/Frameworks/JavaEmbedding.framework)
  47. SET(JAVA_HAVE_FRAMEWORK 1)
  48. ENDIF(EXISTS /Library/Frameworks/JavaEmbedding.framework)
  49. IF(EXISTS /System/Library/Frameworks/JavaEmbedding.framework)
  50. SET(JAVA_HAVE_FRAMEWORK 1)
  51. ENDIF(EXISTS /System/Library/Frameworks/JavaEmbedding.framework)
  52. IF(JAVA_HAVE_FRAMEWORK)
  53. IF(NOT JAVA_AWT_LIBRARY)
  54. SET (JAVA_AWT_LIBRARY "-framework JavaVM -framework JavaEmbedding" CACHE FILEPATH "Java Frameworks" FORCE)
  55. ENDIF(NOT JAVA_AWT_LIBRARY)
  56. SET(JAVA_AWT_INCLUDE_DIRECTORIES ${JAVA_AWT_INCLUDE_DIRECTORIES}
  57. ~/Library/Frameworks/JavaVM.framework/Headers
  58. /Library/Frameworks/JavaVM.framework/Headers
  59. /System/Library/Frameworks/JavaVM.framework/Headers
  60. ~/Library/Frameworks/JavaEmbedding.framework/Headers
  61. /Library/Frameworks/JavaEmbedding.framework/Headers
  62. /System/Library/Frameworks/JavaEmbedding.framework/Headers
  63. )
  64. ENDIF(JAVA_HAVE_FRAMEWORK)
  65. ELSE(APPLE)
  66. FIND_LIBRARY(JAVA_AWT_LIBRARY jawt
  67. PATHS ${JAVA_AWT_LIBRARY_DIRECTORIES}
  68. )
  69. ENDIF(APPLE)
  70. # add in the include path
  71. FIND_PATH(JAVA_INCLUDE_PATH jni.h
  72. ${JAVA_AWT_INCLUDE_DIRECTORIES}
  73. )
  74. FIND_PATH(JAVA_INCLUDE_PATH2 jni_md.h
  75. ${JAVA_AWT_INCLUDE_DIRECTORIES}
  76. ${JAVA_INCLUDE_PATH}/win32
  77. ${JAVA_INCLUDE_PATH}/linux
  78. )
  79. FIND_PATH(JAVA_AWT_INCLUDE_PATH jawt.h
  80. ${JAVA_AWT_INCLUDE_DIRECTORIES} ${JAVA_INCLUDE_PATH} )
  81. MARK_AS_ADVANCED(
  82. JAVA_AWT_LIBRARY
  83. JAVA_AWT_INCLUDE_PATH
  84. JAVA_INCLUDE_PATH
  85. JAVA_INCLUDE_PATH2
  86. )