Skip to content

Commit bcd7aca

Browse files
committed
[SYCL] Generate device_aspect_macros.hpp
When adding a new aspect we always have to add the __SYCL_ALL_DEVICES_HAVE_ and __SYCL_ANY_DEVICES_HAVE_ macros manually. This patch adds a python script to generate the hole header automatically when compiling the project.
1 parent a5161f2 commit bcd7aca

File tree

4 files changed

+68
-793
lines changed

4 files changed

+68
-793
lines changed

sycl/CMakeLists.txt

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -199,10 +199,23 @@ string(TIMESTAMP __SYCL_COMPILER_VERSION "%Y%m%d")
199199
configure_file("source/version.hpp.in" "${SYCL_INCLUDE_BUILD_DIR}/sycl/version.hpp")
200200
configure_file("source/feature_test.hpp.in" "${SYCL_INCLUDE_BUILD_DIR}/sycl/feature_test.hpp")
201201

202+
# Generate device_aspect_macros.hpp
203+
find_package(Python3 REQUIRED)
204+
add_custom_command(
205+
COMMAND ${Python3_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/source/device_aspect_macros_generator.py ${CMAKE_CURRENT_SOURCE_DIR}/include/sycl ${SYCL_INCLUDE_BUILD_DIR}/sycl
206+
OUTPUT ${SYCL_INCLUDE_BUILD_DIR}/sycl/device_aspect_macros.hpp
207+
COMMENT "Generating device_aspect_macros.hpp"
208+
)
209+
210+
add_custom_target(sycl-device-aspect-macros-header
211+
DEPENDS "${SYCL_INCLUDE_BUILD_DIR}/sycl/device_aspect_macros.hpp"
212+
)
213+
202214
# Install generated headers.
203215
install(FILES
204216
"${SYCL_INCLUDE_BUILD_DIR}/sycl/feature_test.hpp"
205217
"${SYCL_INCLUDE_BUILD_DIR}/sycl/version.hpp"
218+
"${SYCL_INCLUDE_BUILD_DIR}/sycl/device_aspect_macros.hpp"
206219
DESTINATION "${SYCL_INCLUDE_DIR}/sycl"
207220
COMPONENT sycl-headers)
208221

@@ -232,6 +245,7 @@ add_custom_target(sycl-headers
232245
${OUT_HEADERS_IN_CL_DIR}
233246
${OUT_HEADERS_IN_STD_DIR}
234247
${OUT_HEADERS_IN_SYCLCOMPAT_DIR}
248+
sycl-device-aspect-macros-header
235249
boost_mp11-headers)
236250

237251
add_custom_command(

0 commit comments

Comments
 (0)