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