Bazel/CMake: be more lenient with aquery

It turns out `bazel aquery` is not so well behaved on Windows, so we
need to accept that it reports errors and exits with an error.
This commit is contained in:
Paolo Tranquilli
2024-02-07 16:25:54 +01:00
parent 9cfef6e42f
commit b105d0cf9a

View File

@@ -20,6 +20,12 @@ macro(bazel)
WORKING_DIRECTORY ${PROJECT_SOURCE_DIR})
endmacro()
macro(bazel_even_if_failing)
execute_process(COMMAND ${BAZEL_BIN} ${ARGN}
OUTPUT_STRIP_TRAILING_WHITESPACE
WORKING_DIRECTORY ${PROJECT_SOURCE_DIR})
endmacro()
bazel(info workspace OUTPUT_VARIABLE BAZEL_WORKSPACE)
bazel(info output_base OUTPUT_VARIABLE BAZEL_OUTPUT_BASE)
@@ -37,7 +43,7 @@ endmacro()
macro(generate_and_include)
file(REMOVE "${BAZEL_WORKSPACE}/.bazel-cmake/BUILD.bazel")
# use aquery to only get targets compatible with the current platform
bazel(aquery "kind(\"cc_test|cc_binary\", ${ARGN})" --nocheck_visibility --output=jsonproto OUTPUT_VARIABLE BAZEL_AQUERY_RESULT)
bazel_even_if_failing(aquery "kind(\"cc_test|cc_binary\", ${ARGN})" --nocheck_visibility --keep_going --output=jsonproto OUTPUT_VARIABLE BAZEL_AQUERY_RESULT)
string(JSON BAZEL_JSON_TARGETS GET "${BAZEL_AQUERY_RESULT}" targets)
string(JSON LAST_IDX LENGTH "${BAZEL_JSON_TARGETS}")
math(EXPR LAST_IDX "${LAST_IDX} - 1")
@@ -48,7 +54,7 @@ macro(generate_and_include)
file(WRITE "${BAZEL_WORKSPACE}/.bazel-cmake/BUILD.bazel" "\
# this file was generated by cmake
load('@${CODEQL_BAZEL_WORKSPACE}//misc/bazel/cmake:cmake.bzl', 'generate_cmake')\n\
\n\
generate_cmake(\n\
name = 'cmake',\n\
testonly = True,\n\