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