FindJOGL.cmake 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. if (COMMAND "find_jar")
  2. set(_jogl_versions
  3. ${JOGL_EXTRA_VERSIONS} 2.3.2)
  4. set(_JOGL_Java_JAR_PATHS)
  5. if (DEFINED Java_JAR_PATHS)
  6. set(_JOGL_Java_JAR_PATHS "${Java_JAR_PATHS}")
  7. endif ()
  8. foreach (_JOGL_prefix IN ITEMS "${CMAKE_INSTALL_PREFIX}" /usr/local /usr)
  9. foreach (_JOGL_libdir IN ITEMS "${CMAKE_INSTALL_LIBDIR}" lib64 lib)
  10. list(APPEND Java_JAR_PATHS
  11. "${_JOGL_prefix}/${_JOGL_libdir}/java"
  12. "${_JOGL_prefix}/${_JOGL_libdir}")
  13. endforeach ()
  14. endforeach ()
  15. list(REMOVE_DUPLICATES Java_JAR_PATHS)
  16. unset(_JOGL_libdir)
  17. unset(_JOGL_prefix)
  18. find_jar(JOGL_LIB
  19. NAMES jogl-all jogl2
  20. PATHS # Abuse the argument parser in `find_jar`
  21. PATH_SUFFIXES jogl2
  22. VERSIONS ${_jogl_versions}
  23. DOC "Path to the JOGL jar")
  24. mark_as_advanced(JOGL_LIB)
  25. find_jar(JOGL_GLUE
  26. NAMES gluegen-rt gluegen2-rt
  27. VERSIONS ${_jogl_versions}
  28. PATHS # Abuse the argument parser in `find_jar`
  29. PATH_SUFFIXES gluegen2
  30. DOC "Path to the JOGL gluegen jar")
  31. mark_as_advanced(JOGL_GLUE)
  32. set(Java_JAR_PATHS)
  33. if (DEFINED _JOGL_Java_JAR_PATHS)
  34. set(Java_JAR_PATHS "${_JOGL_Java_JAR_PATHS}")
  35. endif ()
  36. unset(_JOGL_Java_JAR_PATHS)
  37. unset(_jogl_versions)
  38. endif ()
  39. include(FindPackageHandleStandardArgs)
  40. find_package_handle_standard_args(JOGL
  41. REQUIRED_VARS JOGL_LIB JOGL_GLUE)
  42. if (JOGL_FOUND)
  43. if (NOT TARGET JOGL::glue)
  44. add_library(JOGL::glue STATIC IMPORTED)
  45. set_target_properties(JOGL::glue PROPERTIES
  46. IMPORTED_LINK_INTERFACE_LANGUAGES Java
  47. IMPORTED_LOCATION "${JOGL_GLUE}")
  48. endif ()
  49. if (NOT TARGET JOGL::JOGL)
  50. add_library(JOGL::JOGL STATIC IMPORTED)
  51. set_target_properties(JOGL::JOGL PROPERTIES
  52. IMPORTED_LINK_INTERFACE_LANGUAGES Java
  53. IMPORTED_LOCATION "${JOGL_LIB}"
  54. INTERFACE_LINK_LIBRARIES "JOGL::glue")
  55. endif ()
  56. endif ()