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