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