FindJNI.cmake 3.6 KB

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