1 cmake_minimum_required(VERSION 3.22.1)
 2 project(extract_opengl)
 3 
 4 #get_cmake_property(_variableNames VARIABLES)
 5 #foreach (_variableName ${_variableNames})
 6 #    message(STATUS "${_variableName}=${${_variableName}}")
 7 #endforeach()
 8 
 9 find_package(OpenGL)
10 if(OPENGL_FOUND)
11    set(JEXTRACT_PACKAGE opengl)
12    set(JEXTRACT_SOURCE ${CMAKE_SOURCE_DIR}/${JEXTRACT_PACKAGE}/src/main/java)
13    set(JEXTRACT_HEADER ${JEXTRACT_SOURCE}/${JEXTRACT_PACKAGE}/${JEXTRACT_PACKAGE}_h.java)
14 
15    if (APPLE)
16       set(OSX_SDK ${CMAKE_OSX_SYSROOT})
17       set(OSX_SDK_LIBRARY_FRAMEWORKS ${OSX_SDK}/System/Library/Frameworks)
18       set(OSX_SYS_LIBRARY_FRAMEWORKS /System/Library/Frameworks)
19       add_custom_command(OUTPUT  ${JEXTRACT_HEADER}
20          COMMAND echo creating ${JEXTRACT_SOURCE}
21          COMMAND mkdir -p ${JEXTRACT_SOURCE}
22          COMMAND echo -F${OSX_SDK_LIBRARY_FRAMEWORKS} > ${CMAKE_BINARY_DIR}/compile_flags.txt
23          COMMAND jextract
24              --target-package ${JEXTRACT_PACKAGE}
25              --output ${JEXTRACT_SOURCE}
26              --library :${OSX_SYS_LIBRARY_FRAMEWORKS}/OpenGL.framework/OpenGL
27              --library :${OSX_SYS_LIBRARY_FRAMEWORKS}/GLUT.framework/GLUT
28              --header-class-name ${JEXTRACT_PACKAGE}_h
29              ${OSX_SDK_LIBRARY_FRAMEWORKS}/GLUT.framework/Headers/glut.h
30          WORKING_DIRECTORY "${CMAKE_BINARY_DIR}"
31          VERBATIM
32       )
33    else()
34       add_custom_command(OUTPUT  ${JEXTRACT_HEADER}
35          COMMAND echo creating ${JEXTRACT_SOURCE}
36          COMMAND mkdir -p ${JEXTRACT_SOURCE}
37          COMMAND jextract
38              --target-package ${JEXTRACT_PACKAGE}
39              --output ${JEXTRACT_SOURCE}
40              --library :/usr/lib/${CMAKE_CXX_LIBRARY_ARCHITECTURE}/libOpenGL.so
41 #             --library :/usr/lib/${CMAKE_CXX_LIBRARY_ARCHITECTURE}/libGLU.so
42              --library :/usr/lib/${CMAKE_CXX_LIBRARY_ARCHITECTURE}/libglut.so.3.12.0
43              --header-class-name ${JEXTRACT_PACKAGE}_h
44              /usr/include/GL/glut.h
45          WORKING_DIRECTORY "${CMAKE_BINARY_DIR}"
46          VERBATIM
47       )
48 
49    endif()
50 
51    add_custom_target(extract_opengl DEPENDS  ${JEXTRACT_HEADER})
52 else()
53    message("NO OPENGL")
54 endif()