1 cmake_minimum_required(VERSION 3.22.1) 2 project(extract_opencl) 3 4 #get_cmake_property(_variableNames VARIABLES) 5 #foreach (_variableName ${_variableNames}) 6 # message(STATUS "${_variableName}=${${_variableName}}") 7 #endforeach() 8 find_package(OpenCL) 9 if(OPENCL_FOUND) 10 set(JEXTRACT_PACKAGE opencl) 11 set(JEXTRACT_SOURCE ${CMAKE_SOURCE_DIR}/src/main/java) 12 set(JEXTRACT_HEADER ${JEXTRACT_SOURCE}/${JEXTRACT_PACKAGE}/${JEXTRACT_PACKAGE}_h.java) 13 14 if (APPLE) 15 set(OSX_SDK ${CMAKE_OSX_SYSROOT}) 16 set(OSX_SDK_LIBRARY_FRAMEWORKS ${OSX_SDK}/System/Library/Frameworks) 17 set(OSX_SYS_LIBRARY_FRAMEWORKS /System/Library/Frameworks) 18 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}/OpenCL.framework/OpenCL 27 --header-class-name ${JEXTRACT_PACKAGE}_h 28 ${OSX_SDK_LIBRARY_FRAMEWORKS}/OpenCL.framework/Headers/opencl.h 29 WORKING_DIRECTORY "${CMAKE_BINARY_DIR}" 30 VERBATIM 31 ) 32 else() 33 34 endif() 35 36 add_custom_target(extract_opencl DEPENDS ${JEXTRACT_HEADER}) 37 else() 38 message("NO OPENCL") 39 endif()