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 #get_cmake_property(_variableNames VARIABLES)
10 #foreach (_variableName ${_variableNames})
11 #    message(STATUS "${_variableName}=${${_variableName}}")
12 #endforeach()
13 
14 if (Apple)
15 
16 else()
17 add_custom_command(OUTPUT  ${JEXTRACT_HEADER}
18    COMMAND mkdir -p ${JEXTRACT_SOURCE}
19    COMMAND jextract
20        --target-package ${JEXTRACT_PACKAGE}
21        --output ${JEXTRACT_SOURCE}
22        --library :${CUDA_cuda_driver_LIBRARY}
23        --header-class-name ${JEXTRACT_PACKAGE}_h
24        ${CUDAToolkit_INCLUDE_DIRS}/cuda.h   #  Note that iexpected  ${CUDAToolkit_INCLUDE_DIR}/cuda.h to work
25        WORKING_DIRECTORY "${CMAKE_BINARY_DIR}"
26        VERBATIM
27    )
28 endif()
29 
30 add_custom_target(extract_cuda DEPENDS  ${JEXTRACT_HEADER})