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