FindJNI.cmake 3.7 KB

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