1 cmake_minimum_required(VERSION 3.22.1)
 2 project(extract_cuda)
 3 
 4 #We can assume that 'parent' has guarded us with find_package(XxxxXX) + if(XXXXXX_FOUND)
 5 
 6 set(JEXTRACT_PACKAGE cuda)
 7 set(JEXTRACT_SOURCE ${CMAKE_SOURCE_DIR}/${JEXTRACT_PACKAGE}/src/main/java)
 8 set(JEXTRACT_HEADER ${JEXTRACT_SOURCE}/${JEXTRACT_PACKAGE}/${JEXTRACT_PACKAGE}_h.java)  
 9 
10 if (Apple)
11 
12 else()
13 add_custom_command(OUTPUT  ${JEXTRACT_HEADER}
14    COMMAND mkdir -p ${JEXTRACT_SOURCE}
15    COMMAND jextract 
16        --target-package ${JEXTRACT_PACKAGE} 
17        --output ${JEXTRACT_SOURCE} 
18        --library :${CUDA_cuda_driver_LIBRARY}
19        --header-class-name ${JEXTRACT_PACKAGE}_h
20        ${CUDAToolkit_INCLUDE_DIR}/cuda.h
21        WORKING_DIRECTORY "${CMAKE_BINARY_DIR}"
22        VERBATIM
23    )
24 #CUDAToolkit_INCLUDE_DIR=/usr/local/cuda-12.2/include
25 #CUDA_cuda_driver_LIBRARY =/usr/lib/aarch64-linux-gnu/libcuda.so
26 
27 endif()
28 
29 add_custom_target(extract_cuda DEPENDS  ${JEXTRACT_HEADER})