// Copyright 2023 The Cobalt Authors. All Rights Reserved.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
//     http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.

#ifndef COMPONENTS_VERSION_INFO_STARBOARD_VERSION_INFO_VALUES_H_
#define COMPONENTS_VERSION_INFO_STARBOARD_VERSION_INFO_VALUES_H_

// TODO(b/283264050): Update with real version info values for Cobalt/SB.
#define PRODUCT_NAME "Cobalt"
#define PRODUCT_VERSION "0.0.0"
#define LAST_CHANGE "2023-05-18"
#define IS_OFFICIAL_BUILD true

#endif  // COMPONENTS_VERSION_INFO_STARBOARD_VERSION_INFO_VALUES_H_
