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