22# include directory. These files are checked in with the rest of the source,
33# therefore it is only needed when making changes to the API.
44
5- find_program (CLANG_FORMAT clang-format PATHS ${LLVM_TOOLS_BINARY_DIR} NO_DEFAULT_PATH)
6- if (CLANG_FORMAT )
5+ find_program (clang_format clang-format PATHS ${LLVM_TOOLS_BINARY_DIR} NO_DEFAULT_PATH)
6+ if (clang_format )
77 set (LLVM_TARGET_DEFINITIONS ${CMAKE_CURRENT_SOURCE_DIR} /OffloadAPI.td)
88
99 tablegen(OFFLOAD OffloadAPI.h -gen-api)
@@ -13,15 +13,31 @@ if (CLANG_FORMAT)
1313 tablegen(OFFLOAD OffloadPrint.hpp -gen-print-header)
1414 tablegen(OFFLOAD OffloadErrcodes.inc -gen-errcodes)
1515
16- set (FILES_TO_COPY "OffloadAPI.h;OffloadEntryPoints.inc;OffloadFuncs.inc;OffloadImplFuncDecls.inc;OffloadPrint.hpp" )
17- set (GEN_DIR ${CMAKE_CURRENT_SOURCE_DIR} /../include /generated )
16+ set (files_to_copy "OffloadAPI.h;OffloadEntryPoints.inc;OffloadFuncs.inc;OffloadImplFuncDecls.inc;OffloadPrint.hpp" )
17+ set (generated_dir ${CMAKE_CURRENT_SOURCE_DIR} /../include /generated )
18+ set (shared_dir ${LIBOMPTARGET_INCLUDE_DIR} /Shared)
1819 add_public_tablegen_target(OffloadGenerate)
19- add_custom_command (TARGET OffloadGenerate POST_BUILD COMMAND ${CLANG_FORMAT}
20- -i ${TABLEGEN_OUTPUT} )
21- add_custom_command (TARGET OffloadGenerate POST_BUILD COMMAND ${CMAKE_COMMAND}
22- -E copy_if_different ${FILES_TO_COPY} ${GEN_DIR} )
23- add_custom_command (TARGET OffloadGenerate POST_BUILD COMMAND ${CMAKE_COMMAND}
24- -E copy_if_different OffloadErrcodes.inc "${LIBOMPTARGET_INCLUDE_DIR} /Shared/OffloadErrcodes.inc" )
20+
21+ add_custom_target (OffloadAPI DEPENDS OffloadGenerate)
22+ add_custom_command (
23+ OUTPUT ${shared_dir} /OffloadErrcodes.inc
24+ COMMAND ${clang_format} -i OffloadErrcodes.inc
25+ COMMAND ${CMAKE_COMMAND} -E copy_if_different OffloadErrcodes.inc ${shared_dir}
26+ DEPENDS OffloadErrcodes.inc
27+ )
28+ add_custom_target (OffloadAPI.OffloadErrcodes.inc DEPENDS ${shared_dir} /OffloadErrcodes.inc)
29+ add_dependencies (OffloadAPI OffloadAPI.OffloadErrcodes.inc)
30+ foreach (file IN LISTS files_to_copy)
31+ add_custom_command (
32+ OUTPUT ${generated_dir} /${file}
33+ COMMAND ${clang_format} -i ${file}
34+ COMMAND ${CMAKE_COMMAND} -E make_directory ${generated_dir}
35+ COMMAND ${CMAKE_COMMAND} -E copy_if_different ${file} ${generated_dir}
36+ DEPENDS ${file}
37+ )
38+ add_custom_target (OffloadAPI.${file} DEPENDS ${generated_dir} /${file} )
39+ add_dependencies (OffloadAPI OffloadAPI.${file} )
40+ endforeach ()
2541else ()
2642 message (WARNING "clang-format was not found, so the OffloadGenerate target\
2743 will not be available. Offload will still build, but you will not be\
0 commit comments