From 389673c489b7827aa765a803918c839f77c7bf6a Mon Sep 17 00:00:00 2001 From: waqar-ukaea Date: Mon, 6 Oct 2025 11:44:07 +0100 Subject: [PATCH] Added an option to include additional directories in embed_devicecode for slang compilation --- gprt/cmake/embed_devicecode.cmake | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/gprt/cmake/embed_devicecode.cmake b/gprt/cmake/embed_devicecode.cmake index e9e5035..b65ec84 100644 --- a/gprt/cmake/embed_devicecode.cmake +++ b/gprt/cmake/embed_devicecode.cmake @@ -28,7 +28,7 @@ function(embed_devicecode) # processes arguments given to a function, and defines a set of variables # which hold the values of the respective options set(oneArgs OUTPUT_TARGET) - set(multiArgs SPIRV_LINK_LIBRARIES SOURCES HEADERS) + set(multiArgs SPIRV_LINK_LIBRARIES SOURCES HEADERS INCLUDE_DIRS) cmake_parse_arguments(EMBED_DEVICECODE "" "${oneArgs}" "${multiArgs}" ${ARGN}) unset(EMBED_DEVICECODE_OUTPUTS) @@ -38,6 +38,12 @@ function(embed_devicecode) set(EMBED_DEVICECODE_DEBUG_DEFINES $<$:-D__DEBUG__>) + # build a list of all additional (external to GPRT) included directories + set(EMBED_DEVICECODE_INCLUDES) + foreach(dir ${EMBED_DEVICECODE_INCLUDE_DIRS}) + list(APPEND EMBED_DEVICECODE_INCLUDES "-I" "${dir}") + endforeach() + add_custom_command( OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/${EMBED_DEVICECODE_OUTPUT_TARGET}.spv COMMAND ${CMAKE_SLANG_COMPILER} @@ -58,6 +64,7 @@ function(embed_devicecode) ${EMBED_DEVICECODE_RELEASE_OPT_FLAG} -I ${GPRT_INCLUDE_DIR} ${EMBED_DEVICECODE_DEBUG_DEFINES} + ${EMBED_DEVICECODE_INCLUDES} -o ${CMAKE_CURRENT_BINARY_DIR}/${EMBED_DEVICECODE_OUTPUT_TARGET}.spv DEPENDS ${EMBED_DEVICECODE_SOURCES} ${EMBED_DEVICECODE_HEADERS} ${GPRT_INCLUDE_DIR}/gprt.slang ${GPRT_INCLUDE_DIR}/gprt.h )