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