@@ -14,13 +14,19 @@ if (NOT DEFINED CODEQL_BAZEL_WORKSPACE)
1414endif ()
1515
1616macro (bazel)
17+ message (STATUS "================================================================================" )
18+ message (STATUS "Running: ${BAZEL_BIN} ${BAZEL_STARTUP_OPTIONS} ${ARGN} " )
19+ message (STATUS "================================================================================" )
1720 execute_process (COMMAND ${BAZEL_BIN} ${BAZEL_STARTUP_OPTIONS} ${ARGN}
1821 COMMAND_ERROR_IS_FATAL ANY
1922 OUTPUT_STRIP_TRAILING_WHITESPACE
2023 WORKING_DIRECTORY ${PROJECT_SOURCE_DIR} )
2124endmacro ()
2225
2326macro (bazel_even_if_failing)
27+ message (STATUS "================================================================================" )
28+ message (STATUS "Running: ${BAZEL_BIN} ${BAZEL_STARTUP_OPTIONS} ${ARGN} " )
29+ message (STATUS "================================================================================" )
2430 execute_process (COMMAND ${BAZEL_BIN} ${BAZEL_STARTUP_OPTIONS} ${ARGN}
2531 OUTPUT_STRIP_TRAILING_WHITESPACE
2632 WORKING_DIRECTORY ${PROJECT_SOURCE_DIR} )
@@ -46,10 +52,24 @@ macro(generate_and_include)
4652 string (JSON BAZEL_JSON_TARGETS GET "${BAZEL_AQUERY_RESULT} " targets)
4753 string (JSON LAST_IDX LENGTH "${BAZEL_JSON_TARGETS} " )
4854 math (EXPR LAST_IDX "${LAST_IDX} - 1" )
55+ set (BAZEL_TARGETS_LIST "" )
4956 foreach (IDX RANGE ${LAST_IDX} )
5057 string (JSON CUR_BAZEL_TARGET GET "${BAZEL_JSON_TARGETS} " ${IDX} label)
5158 string (APPEND BAZEL_TARGETS " '${CUR_BAZEL_TARGET} ',\n " )
59+ list (APPEND BAZEL_TARGETS_LIST ${CUR_BAZEL_TARGET} )
5260 endforeach ()
61+ # Find and build targets that generate source files
62+ if (NOT "${BAZEL_TARGETS_LIST} " STREQUAL "" )
63+ string (REPLACE ";" " " BAZEL_TARGETS_QUERY "${BAZEL_TARGETS_LIST} " )
64+ bazel_even_if_failing(cquery "filter(\"\\\\ .\\ (h\\ |c\\ |cpp\\ |hpp\\ )$\" , kind(\" generated file\" , deps(set(${BAZEL_TARGETS_QUERY} ))))" --output =label OUTPUT_VARIABLE GENERATED_SOURCE_TARGETS)
65+ # Build only the generator targets (strip configuration hashes)
66+ if (NOT "${GENERATED_SOURCE_TARGETS} " STREQUAL "" )
67+ string (REGEX REPLACE " \\ ([^)]+\\ )" "" GENERATED_SOURCE_TARGETS "${GENERATED_SOURCE_TARGETS} " )
68+ string (REPLACE "\n " ";" GENERATED_SOURCE_TARGETS_LIST "${GENERATED_SOURCE_TARGETS} " )
69+ list (REMOVE_DUPLICATES GENERATED_SOURCE_TARGETS_LIST)
70+ bazel(build ${GENERATED_SOURCE_TARGETS_LIST} ${BAZEL_BUILD_OPTIONS} )
71+ endif ()
72+ endif ()
5373 file (WRITE "${BAZEL_WORKSPACE} /.bazel-cmake/BUILD.bazel" "\
5474# this file was generated by cmake
5575load('@${CODEQL_BAZEL_WORKSPACE} //misc/bazel/cmake:cmake.bzl', 'generate_cmake')\n\
0 commit comments