summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/buildtool/build_engine/base_maps/source_map.cpp2
-rw-r--r--src/buildtool/build_engine/expression/expression_ptr.cpp2
-rw-r--r--src/buildtool/build_engine/expression/expression_ptr.hpp2
-rw-r--r--src/buildtool/build_engine/expression/linked_map.hpp23
-rw-r--r--src/buildtool/build_engine/expression/target_result.hpp2
-rw-r--r--src/buildtool/build_engine/target_map/result_map.hpp14
-rw-r--r--src/buildtool/crypto/hasher.cpp1
-rw-r--r--src/buildtool/execution_api/bazel_msg/TARGETS1
-rw-r--r--src/buildtool/execution_api/bazel_msg/bazel_common.hpp8
-rw-r--r--src/buildtool/execution_api/bazel_msg/bazel_msg_factory.cpp5
-rw-r--r--src/buildtool/execution_api/remote/TARGETS11
-rw-r--r--src/buildtool/execution_api/remote/bazel/bazel_ac_client.hpp1
-rw-r--r--src/buildtool/execution_api/remote/bazel/bazel_api.hpp1
-rw-r--r--src/buildtool/execution_api/remote/bazel/bazel_cas_client.hpp1
-rw-r--r--src/buildtool/execution_api/remote/bazel/bazel_client_common.hpp1
-rw-r--r--src/buildtool/execution_api/remote/bazel/bazel_execution_client.hpp1
-rw-r--r--src/buildtool/execution_api/remote/bazel/bazel_response.cpp2
-rw-r--r--src/buildtool/execution_api/remote/bazel/bytestream_client.hpp1
-rw-r--r--src/buildtool/execution_api/remote/config.hpp11
-rw-r--r--src/buildtool/file_system/git_cas.cpp6
-rw-r--r--src/buildtool/main/install_cas.hpp2
-rw-r--r--src/buildtool/main/main.cpp1
-rw-r--r--src/utils/cpp/concepts.hpp4
23 files changed, 59 insertions, 44 deletions
diff --git a/src/buildtool/build_engine/base_maps/source_map.cpp b/src/buildtool/build_engine/base_maps/source_map.cpp
index 0e96810c..9624ce1d 100644
--- a/src/buildtool/build_engine/base_maps/source_map.cpp
+++ b/src/buildtool/build_engine/base_maps/source_map.cpp
@@ -89,4 +89,4 @@ auto CreateSourceTargetMap(const gsl::not_null<DirectoryEntriesMap*>& dirs,
jobs);
}
-}; // namespace BuildMaps::Base
+} // namespace BuildMaps::Base
diff --git a/src/buildtool/build_engine/expression/expression_ptr.cpp b/src/buildtool/build_engine/expression/expression_ptr.cpp
index 256e580b..bb81e8ab 100644
--- a/src/buildtool/build_engine/expression/expression_ptr.cpp
+++ b/src/buildtool/build_engine/expression/expression_ptr.cpp
@@ -66,7 +66,7 @@ auto ExpressionPtr::IsNotNull() const noexcept -> bool {
return static_cast<bool>(ptr_) and not(ptr_->IsNone());
}
-auto ExpressionPtr::LinkedMap() const& -> ExpressionPtr::linked_map_t const& {
+auto ExpressionPtr::Map() const& -> ExpressionPtr::linked_map_t const& {
return ptr_->Map();
}
diff --git a/src/buildtool/build_engine/expression/expression_ptr.hpp b/src/buildtool/build_engine/expression/expression_ptr.hpp
index d7e05923..5f395c2a 100644
--- a/src/buildtool/build_engine/expression/expression_ptr.hpp
+++ b/src/buildtool/build_engine/expression/expression_ptr.hpp
@@ -75,7 +75,7 @@ class ExpressionPtr {
using linked_map_t = LinkedMap<std::string, ExpressionPtr, ExpressionPtr>;
[[nodiscard]] auto IsNotNull() const noexcept -> bool;
- [[nodiscard]] auto LinkedMap() const& -> linked_map_t const&;
+ [[nodiscard]] auto Map() const& -> linked_map_t const&;
[[nodiscard]] static auto Make(linked_map_t&& map) -> ExpressionPtr;
private:
diff --git a/src/buildtool/build_engine/expression/linked_map.hpp b/src/buildtool/build_engine/expression/linked_map.hpp
index 59361dcf..2df8982b 100644
--- a/src/buildtool/build_engine/expression/linked_map.hpp
+++ b/src/buildtool/build_engine/expression/linked_map.hpp
@@ -35,7 +35,7 @@ class LinkedMapPtr {
[[nodiscard]] auto IsNotNull() const noexcept -> bool {
return static_cast<bool>(ptr_);
}
- [[nodiscard]] auto LinkedMap() const& -> map_t const& { return *ptr_; }
+ [[nodiscard]] auto Map() const& -> map_t const& { return *ptr_; }
[[nodiscard]] static auto Make(map_t&& map) -> ptr_t {
return ptr_t{std::make_shared<map_t>(std::move(map))};
}
@@ -143,15 +143,15 @@ class LinkedMap {
}
[[nodiscard]] auto empty() const noexcept -> bool {
- return (content_.IsNotNull() ? content_.LinkedMap().empty()
+ return (content_.IsNotNull() ? content_.Map().empty()
: map_.empty()) and
- (not next_.IsNotNull() or next_.LinkedMap().empty());
+ (not next_.IsNotNull() or next_.Map().empty());
}
[[nodiscard]] auto Find(K const& key) const& noexcept
-> std::optional<std::reference_wrapper<V const>> {
if (content_.IsNotNull()) {
- auto val = content_.LinkedMap().Find(key);
+ auto val = content_.Map().Find(key);
if (val) {
return val;
}
@@ -163,7 +163,7 @@ class LinkedMap {
}
}
if (next_.IsNotNull()) {
- auto val = next_.LinkedMap().Find(key);
+ auto val = next_.Map().Find(key);
if (val) {
return val;
}
@@ -173,7 +173,7 @@ class LinkedMap {
[[nodiscard]] auto Find(K const& key) && noexcept -> std::optional<V> {
if (content_.IsNotNull()) {
- auto val = content_.LinkedMap().Find(key);
+ auto val = content_.Map().Find(key);
if (val) {
return val->get();
}
@@ -185,7 +185,7 @@ class LinkedMap {
}
}
if (next_.IsNotNull()) {
- auto val = next_.LinkedMap().Find(key);
+ auto val = next_.Map().Find(key);
if (val) {
return val->get();
}
@@ -294,10 +294,9 @@ class LinkedMap {
AtomicValue<items_t> items_{};
[[nodiscard]] auto ComputeSortedItems() const noexcept -> items_t {
- auto size =
- content_.IsNotNull() ? content_.LinkedMap().size() : map_.size();
+ auto size = content_.IsNotNull() ? content_.Map().size() : map_.size();
if (next_.IsNotNull()) {
- size += next_.LinkedMap().size();
+ size += next_.Map().size();
}
auto items = items_t{};
@@ -311,7 +310,7 @@ class LinkedMap {
typename items_t::const_iterator nitemsend;
if (content_.IsNotNull()) {
- auto const& citems = content_.LinkedMap().Items();
+ auto const& citems = content_.Map().Items();
citemsit = citems.begin();
citemsend = citems.end();
}
@@ -322,7 +321,7 @@ class LinkedMap {
citemsend = map_copy.end();
}
if (next_.IsNotNull()) {
- auto const& nitems = next_.LinkedMap().Items();
+ auto const& nitems = next_.Map().Items();
nitemsit = nitems.begin();
nitemsend = nitems.end();
}
diff --git a/src/buildtool/build_engine/expression/target_result.hpp b/src/buildtool/build_engine/expression/target_result.hpp
index 7df20000..6f820ef2 100644
--- a/src/buildtool/build_engine/expression/target_result.hpp
+++ b/src/buildtool/build_engine/expression/target_result.hpp
@@ -33,7 +33,7 @@ struct TargetResult {
namespace std {
template <>
-struct std::hash<TargetResult> {
+struct hash<TargetResult> {
[[nodiscard]] auto operator()(TargetResult const& r) noexcept
-> std::size_t {
auto seed = std::hash<ExpressionPtr>{}(r.artifact_stage);
diff --git a/src/buildtool/build_engine/target_map/result_map.hpp b/src/buildtool/build_engine/target_map/result_map.hpp
index 1cabade1..d4d9cfaf 100644
--- a/src/buildtool/build_engine/target_map/result_map.hpp
+++ b/src/buildtool/build_engine/target_map/result_map.hpp
@@ -41,13 +41,6 @@ class ResultTargetMap {
std::vector<Tree::Ptr> trees{};
};
- template <>
- struct ResultType</*kIncludeOrigins=*/true> {
- std::vector<ActionWithOrigin> actions{};
- std::vector<std::string> blobs{};
- std::vector<Tree::Ptr> trees{};
- };
-
explicit ResultTargetMap(std::size_t jobs) : width_{ComputeWidth(jobs)} {}
ResultTargetMap() = default;
@@ -350,6 +343,13 @@ class ResultTargetMap {
}; // namespace BuildMaps::Target
+template <>
+struct ResultTargetMap::ResultType</*kIncludeOrigins=*/true> {
+ std::vector<ActionWithOrigin> actions{};
+ std::vector<std::string> blobs{};
+ std::vector<Tree::Ptr> trees{};
+};
+
} // namespace BuildMaps::Target
#endif // INCLUDED_SRC_BUILDTOOL_BUILD_ENGINE_TARGET_MAP_RESULT_MAP_HPP
diff --git a/src/buildtool/crypto/hasher.cpp b/src/buildtool/crypto/hasher.cpp
index 6f432679..ae5db5af 100644
--- a/src/buildtool/crypto/hasher.cpp
+++ b/src/buildtool/crypto/hasher.cpp
@@ -11,4 +11,5 @@ auto Hasher::CreateHashImpl(HashType type) noexcept
case HashType::SHA256:
return CreateHashImplSha256();
}
+ return nullptr; // make gcc happy
}
diff --git a/src/buildtool/execution_api/bazel_msg/TARGETS b/src/buildtool/execution_api/bazel_msg/TARGETS
index 1ca96dbd..8812d401 100644
--- a/src/buildtool/execution_api/bazel_msg/TARGETS
+++ b/src/buildtool/execution_api/bazel_msg/TARGETS
@@ -8,7 +8,6 @@
, ["src/buildtool/file_system", "file_system_manager"]
, ["src/buildtool/file_system", "git_cas"]
, ["src/utils/cpp", "concepts"]
- , ["src/utils/cpp", "type_safe_arithmetic"]
]
, "stage": ["src", "buildtool", "execution_api", "bazel_msg"]
}
diff --git a/src/buildtool/execution_api/bazel_msg/bazel_common.hpp b/src/buildtool/execution_api/bazel_msg/bazel_common.hpp
index cc76541c..4d829fe2 100644
--- a/src/buildtool/execution_api/bazel_msg/bazel_common.hpp
+++ b/src/buildtool/execution_api/bazel_msg/bazel_common.hpp
@@ -4,14 +4,6 @@
/// \file bazel_common.hpp
/// \brief Common types and functions required by Bazel API.
-#include <cstdint>
-
-#include "src/utils/cpp/type_safe_arithmetic.hpp"
-
-// Port
-struct PortTag : type_safe_arithmetic_tag<std::uint16_t> {};
-using Port = type_safe_arithmetic<PortTag>;
-
struct ExecutionConfiguration {
int execution_priority{};
int results_cache_priority{};
diff --git a/src/buildtool/execution_api/bazel_msg/bazel_msg_factory.cpp b/src/buildtool/execution_api/bazel_msg/bazel_msg_factory.cpp
index 175996d1..45adde3b 100644
--- a/src/buildtool/execution_api/bazel_msg/bazel_msg_factory.cpp
+++ b/src/buildtool/execution_api/bazel_msg/bazel_msg_factory.cpp
@@ -156,7 +156,8 @@ template <class T>
-> std::optional<std::string> {
try {
std::string content(message.ByteSizeLong(), '\0');
- message.SerializeToArray(content.data(), content.size());
+ message.SerializeToArray(content.data(),
+ gsl::narrow<int>(content.size()));
return content;
} catch (...) {
}
@@ -184,7 +185,7 @@ template <class T>
bazel_re::Directory dir{};
auto copy_nodes = [](auto* pb_container, auto const& nodes) {
- pb_container->Reserve(nodes.size());
+ pb_container->Reserve(gsl::narrow<int>(nodes.size()));
std::copy(nodes.begin(), nodes.end(), pb::back_inserter(pb_container));
std::sort(
pb_container->begin(),
diff --git a/src/buildtool/execution_api/remote/TARGETS b/src/buildtool/execution_api/remote/TARGETS
index 492bd0de..50a28550 100644
--- a/src/buildtool/execution_api/remote/TARGETS
+++ b/src/buildtool/execution_api/remote/TARGETS
@@ -20,7 +20,8 @@
, "bazel/bazel_execution_client.cpp"
]
, "deps":
- [ ["src/buildtool/common", "common"]
+ [ "config"
+ , ["src/buildtool/common", "common"]
, ["src/buildtool/logging", "logging"]
, ["src/buildtool/file_system", "file_system_manager"]
, ["src/buildtool/file_system", "object_type"]
@@ -42,7 +43,8 @@
, "hdrs": ["bazel/bazel_api.hpp"]
, "srcs": ["bazel/bazel_api.cpp"]
, "deps":
- [ "bazel_network"
+ [ "config"
+ , "bazel_network"
, ["src/buildtool/execution_api/common", "common"]
, ["src/buildtool/execution_api/bazel_msg", "bazel_msg"]
, ["@", "gsl-lite", "", "gsl-lite"]
@@ -54,7 +56,10 @@
, "name": ["config"]
, "hdrs": ["config.hpp"]
, "deps":
- [["src/buildtool/logging", "logging"], ["@", "gsl-lite", "", "gsl-lite"]]
+ [ ["src/buildtool/logging", "logging"]
+ , ["src/utils/cpp", "type_safe_arithmetic"]
+ , ["@", "gsl-lite", "", "gsl-lite"]
+ ]
, "stage": ["src", "buildtool", "execution_api", "remote"]
}
}
diff --git a/src/buildtool/execution_api/remote/bazel/bazel_ac_client.hpp b/src/buildtool/execution_api/remote/bazel/bazel_ac_client.hpp
index 4e3aafcd..29f2c655 100644
--- a/src/buildtool/execution_api/remote/bazel/bazel_ac_client.hpp
+++ b/src/buildtool/execution_api/remote/bazel/bazel_ac_client.hpp
@@ -8,6 +8,7 @@
#include "src/buildtool/common/bazel_types.hpp"
#include "src/buildtool/execution_api/bazel_msg/bazel_common.hpp"
+#include "src/buildtool/execution_api/remote/config.hpp"
#include "src/buildtool/logging/logger.hpp"
/// Implements client side for serivce defined here:
diff --git a/src/buildtool/execution_api/remote/bazel/bazel_api.hpp b/src/buildtool/execution_api/remote/bazel/bazel_api.hpp
index 3fddca1f..3fccf226 100644
--- a/src/buildtool/execution_api/remote/bazel/bazel_api.hpp
+++ b/src/buildtool/execution_api/remote/bazel/bazel_api.hpp
@@ -11,6 +11,7 @@
#include "src/buildtool/execution_api/bazel_msg/bazel_common.hpp"
#include "src/buildtool/execution_api/common/execution_api.hpp"
#include "src/buildtool/execution_api/common/local_tree_map.hpp"
+#include "src/buildtool/execution_api/remote/config.hpp"
// forward declaration for actual implementations
class BazelNetwork;
diff --git a/src/buildtool/execution_api/remote/bazel/bazel_cas_client.hpp b/src/buildtool/execution_api/remote/bazel/bazel_cas_client.hpp
index 33de4205..2c731037 100644
--- a/src/buildtool/execution_api/remote/bazel/bazel_cas_client.hpp
+++ b/src/buildtool/execution_api/remote/bazel/bazel_cas_client.hpp
@@ -12,6 +12,7 @@
#include "src/buildtool/execution_api/bazel_msg/bazel_blob_container.hpp"
#include "src/buildtool/execution_api/bazel_msg/bazel_common.hpp"
#include "src/buildtool/execution_api/remote/bazel/bytestream_client.hpp"
+#include "src/buildtool/execution_api/remote/config.hpp"
#include "src/buildtool/logging/logger.hpp"
/// Implements client side for serivce defined here:
diff --git a/src/buildtool/execution_api/remote/bazel/bazel_client_common.hpp b/src/buildtool/execution_api/remote/bazel/bazel_client_common.hpp
index 6e37fa28..e8b0f493 100644
--- a/src/buildtool/execution_api/remote/bazel/bazel_client_common.hpp
+++ b/src/buildtool/execution_api/remote/bazel/bazel_client_common.hpp
@@ -10,6 +10,7 @@
#include "grpcpp/grpcpp.h"
#include "src/buildtool/common/bazel_types.hpp"
#include "src/buildtool/execution_api/bazel_msg/bazel_common.hpp"
+#include "src/buildtool/execution_api/remote/config.hpp"
#include "src/buildtool/logging/logger.hpp"
[[maybe_unused]] [[nodiscard]] static inline auto CreateChannelWithCredentials(
diff --git a/src/buildtool/execution_api/remote/bazel/bazel_execution_client.hpp b/src/buildtool/execution_api/remote/bazel/bazel_execution_client.hpp
index cd6c0eb6..0889916c 100644
--- a/src/buildtool/execution_api/remote/bazel/bazel_execution_client.hpp
+++ b/src/buildtool/execution_api/remote/bazel/bazel_execution_client.hpp
@@ -9,6 +9,7 @@
#include "google/longrunning/operations.pb.h"
#include "src/buildtool/common/bazel_types.hpp"
#include "src/buildtool/execution_api/bazel_msg/bazel_common.hpp"
+#include "src/buildtool/execution_api/remote/config.hpp"
#include "src/buildtool/logging/logger.hpp"
/// Implements client side for serivce defined here:
diff --git a/src/buildtool/execution_api/remote/bazel/bazel_response.cpp b/src/buildtool/execution_api/remote/bazel/bazel_response.cpp
index 395fd08e..d05517a1 100644
--- a/src/buildtool/execution_api/remote/bazel/bazel_response.cpp
+++ b/src/buildtool/execution_api/remote/bazel/bazel_response.cpp
@@ -63,7 +63,7 @@ auto BazelResponse::Artifacts() const noexcept -> ArtifactInfos {
// collect root digests from trees and store them
auto blob_reader = network_->ReadBlobs(tree_digests);
auto tree_blobs = blob_reader.Next();
- std::size_t pos{};
+ int pos{};
while (not tree_blobs.empty()) {
for (auto const& tree_blob : tree_blobs) {
try {
diff --git a/src/buildtool/execution_api/remote/bazel/bytestream_client.hpp b/src/buildtool/execution_api/remote/bazel/bytestream_client.hpp
index 1bd44c42..e2381573 100644
--- a/src/buildtool/execution_api/remote/bazel/bytestream_client.hpp
+++ b/src/buildtool/execution_api/remote/bazel/bytestream_client.hpp
@@ -10,6 +10,7 @@
#include "google/bytestream/bytestream.grpc.pb.h"
#include "src/buildtool/execution_api/remote/bazel/bazel_client_common.hpp"
+#include "src/buildtool/execution_api/remote/config.hpp"
#include "src/buildtool/logging/logger.hpp"
/// Implements client side for google.bytestream.ByteStream service.
diff --git a/src/buildtool/execution_api/remote/config.hpp b/src/buildtool/execution_api/remote/config.hpp
index 14995b89..cf1fd3ee 100644
--- a/src/buildtool/execution_api/remote/config.hpp
+++ b/src/buildtool/execution_api/remote/config.hpp
@@ -1,6 +1,7 @@
#ifndef INCLUDED_SRC_BUILDTOOL_EXECUTION_API_REMOTE_CONFIG_HPP
#define INCLUDED_SRC_BUILDTOOL_EXECUTION_API_REMOTE_CONFIG_HPP
+#include <cstdint>
#include <map>
#include <memory>
#include <optional>
@@ -12,12 +13,17 @@
#include "gsl-lite/gsl-lite.hpp"
#include "src/buildtool/logging/logger.hpp"
+#include "src/utils/cpp/type_safe_arithmetic.hpp"
+
+// Port
+struct PortTag : type_safe_arithmetic_tag<std::uint16_t> {};
+using Port = type_safe_arithmetic<PortTag>;
class RemoteExecutionConfig {
public:
struct ServerAddress {
std::string host{};
- int port{};
+ Port port{};
};
// Obtain global instance
@@ -94,7 +100,8 @@ class RemoteExecutionConfig {
auto port_num = std::stoi(port);
if (not host.empty() and port_num >= 0 and
port_num <= kMaxPortNumber) {
- return ServerAddress{std::move(host), port_num};
+ return ServerAddress{std::move(host),
+ gsl::narrow_cast<Port::value_t>(port_num)};
}
} catch (std::out_of_range const& e) {
Logger::Log(LogLevel::Error, "Port raised out_of_range exception.");
diff --git a/src/buildtool/file_system/git_cas.cpp b/src/buildtool/file_system/git_cas.cpp
index e24ab8ad..fcd56006 100644
--- a/src/buildtool/file_system/git_cas.cpp
+++ b/src/buildtool/file_system/git_cas.cpp
@@ -14,8 +14,8 @@ extern "C" {
namespace {
-constexpr auto kOIDRawSize{GIT_OID_RAWSZ};
-constexpr auto kOIDHexSize{GIT_OID_HEXSZ};
+constexpr std::size_t kOIDRawSize{GIT_OID_RAWSZ};
+constexpr std::size_t kOIDHexSize{GIT_OID_HEXSZ};
[[nodiscard]] auto GitLastError() noexcept -> std::string {
git_error const* err{nullptr};
@@ -102,6 +102,8 @@ constexpr auto kOIDHexSize{GIT_OID_HEXSZ};
case ObjectType::Tree:
return GIT_FILEMODE_TREE;
}
+
+ return GIT_FILEMODE_UNREADABLE; // make gcc happy
}
[[nodiscard]] auto GitTypeToObjectType(git_object_t const& type) noexcept
diff --git a/src/buildtool/main/install_cas.hpp b/src/buildtool/main/install_cas.hpp
index 1aab854a..9937baf3 100644
--- a/src/buildtool/main/install_cas.hpp
+++ b/src/buildtool/main/install_cas.hpp
@@ -4,7 +4,7 @@
#include <string>
-#include <gsl-lite/gsl-lite.h>
+#include <gsl-lite/gsl-lite.hpp>
#include "src/buildtool/common/artifact.hpp"
#include "src/buildtool/common/cli.hpp"
diff --git a/src/buildtool/main/main.cpp b/src/buildtool/main/main.cpp
index f066b13e..557b10a3 100644
--- a/src/buildtool/main/main.cpp
+++ b/src/buildtool/main/main.cpp
@@ -963,6 +963,7 @@ auto DetermineNonExplicitTarget(
case Base::ReferenceType::kTarget:
return id;
}
+ return std::nullopt; // make gcc happy
}
void DumpArtifactsToBuild(
diff --git a/src/utils/cpp/concepts.hpp b/src/utils/cpp/concepts.hpp
index 04b2bfcc..24efe70e 100644
--- a/src/utils/cpp/concepts.hpp
+++ b/src/utils/cpp/concepts.hpp
@@ -68,7 +68,9 @@ concept ClockHasFromTime = requires(std::time_t const t) {
template <typename T>
concept StrMapConstForwardIterator = requires(T const c) {
- { (*c).first }
+ {
+ std::remove_reference_t<decltype((*c).first)> { (*c).first }
+ }
->same_as<std::string const>;
};