FindJNI.cmake 3.5 KB

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