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()