未验证 提交 b94e759b 编写于 作者: K Kaushik Iska 提交者: GitHub

Expose the Flutter engine, Dart and Skia versions to Dart. (#7634)

- Moved versions from shell to common
- versions singleton contains all the required versions.
上级 64e17076
......@@ -23,6 +23,8 @@ FILE: ../../../flutter/common/settings.cc
FILE: ../../../flutter/common/settings.h
FILE: ../../../flutter/common/task_runners.cc
FILE: ../../../flutter/common/task_runners.h
FILE: ../../../flutter/common/version/version.cc
FILE: ../../../flutter/common/version/version.h
FILE: ../../../flutter/flow/compositor_context.cc
FILE: ../../../flutter/flow/compositor_context.h
FILE: ../../../flutter/flow/debug_print.cc
......@@ -307,6 +309,9 @@ FILE: ../../../flutter/lib/ui/text/text_box.h
FILE: ../../../flutter/lib/ui/ui.dart
FILE: ../../../flutter/lib/ui/ui_dart_state.cc
FILE: ../../../flutter/lib/ui/ui_dart_state.h
FILE: ../../../flutter/lib/ui/versions.cc
FILE: ../../../flutter/lib/ui/versions.dart
FILE: ../../../flutter/lib/ui/versions.h
FILE: ../../../flutter/lib/ui/window.dart
FILE: ../../../flutter/lib/ui/window/platform_message.cc
FILE: ../../../flutter/lib/ui/window/platform_message.h
......@@ -570,8 +575,6 @@ FILE: ../../../flutter/shell/platform/embedder/embedder_surface_software.h
FILE: ../../../flutter/shell/platform/embedder/fixtures/simple_main.dart
FILE: ../../../flutter/shell/platform/embedder/platform_view_embedder.cc
FILE: ../../../flutter/shell/platform/embedder/platform_view_embedder.h
FILE: ../../../flutter/shell/version/version.cc
FILE: ../../../flutter/shell/version/version.h
FILE: ../../../flutter/sky/packages/flutter_services/lib/empty.dart
FILE: ../../../flutter/sky/tools/roll/patches/chromium/android_build.patch
FILE: ../../../flutter/synchronization/pipeline.cc
......
......@@ -11,9 +11,9 @@ source_set("version") {
]
defines = [
"SHELL_FLUTTER_ENGINE_VERSION=\"$shell_engine_version\"",
"SHELL_SKIA_VERSION=\"$shell_skia_version\"",
"SHELL_DART_VERSION=\"$shell_dart_version\"",
"FLUTTER_ENGINE_VERSION=\"$engine_version\"",
"SKIA_VERSION=\"$skia_version\"",
"DART_VERSION=\"$dart_version\"",
]
public_configs = [ "$flutter_root:config" ]
......
......@@ -2,20 +2,20 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "flutter/shell/version/version.h"
#include "flutter/common/version/version.h"
namespace shell {
namespace blink {
const char* GetFlutterEngineVersion() {
return SHELL_FLUTTER_ENGINE_VERSION;
return FLUTTER_ENGINE_VERSION;
}
const char* GetSkiaVersion() {
return SHELL_SKIA_VERSION;
return SKIA_VERSION;
}
const char* GetDartVersion() {
return SHELL_DART_VERSION;
return DART_VERSION;
}
} // namespace shell
} // namespace blink
......@@ -3,42 +3,42 @@
# found in the LICENSE file.
declare_args() {
shell_engine_version = ""
engine_version = ""
shell_skia_version = ""
skia_version = ""
shell_dart_version = ""
dart_version = ""
}
if (shell_engine_version == "") {
shell_engine_version_lines =
if (engine_version == "") {
engine_version_lines =
exec_script("$flutter_root/build/git_revision.py",
[
"--repository",
rebase_path(flutter_root, "", flutter_root),
],
"list lines")
shell_engine_version = shell_engine_version_lines[0]
engine_version = engine_version_lines[0]
}
if (shell_skia_version == "") {
shell_skia_version_lines =
if (skia_version == "") {
skia_version_lines =
exec_script("$flutter_root/build/git_revision.py",
[
"--repository",
rebase_path("//third_party/skia", "", flutter_root),
],
"list lines")
shell_skia_version = shell_skia_version_lines[0]
skia_version = skia_version_lines[0]
}
if (shell_dart_version == "") {
shell_dart_version_lines =
if (dart_version == "") {
dart_version_lines =
exec_script("$flutter_root/build/git_revision.py",
[
"--repository",
rebase_path("//third_party/dart", "", flutter_root),
],
"list lines")
shell_dart_version = shell_dart_version_lines[0]
dart_version = dart_version_lines[0]
}
......@@ -2,10 +2,10 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef FLUTTER_SHELL_COMMON_VERSION_H_
#define FLUTTER_SHELL_COMMON_VERSION_H_
#ifndef FLUTTER_COMMON_VERSION_VERSION_H_
#define FLUTTER_COMMON_VERSION_VERSION_H_
namespace shell {
namespace blink {
const char* GetFlutterEngineVersion();
......@@ -13,6 +13,6 @@ const char* GetSkiaVersion();
const char* GetDartVersion();
} // namespace shell
} // namespace blink
#endif // FLUTTER_SHELL_COMMON_VERSION_H_
#endif // FLUTTER_COMMON_VERSION_VERSION_H_
......@@ -83,6 +83,8 @@ source_set("ui") {
"text/text_box.h",
"ui_dart_state.cc",
"ui_dart_state.h",
"versions.cc",
"versions.h",
"window/platform_message.cc",
"window/platform_message.h",
"window/platform_message_response.cc",
......@@ -104,6 +106,7 @@ source_set("ui") {
deps = [
"$flutter_root/assets",
"$flutter_root/common",
"$flutter_root/common/version",
"$flutter_root/flow",
"$flutter_root/fml",
"$flutter_root/runtime:test_font",
......
......@@ -27,6 +27,7 @@
#include "flutter/lib/ui/text/font_collection.h"
#include "flutter/lib/ui/text/paragraph.h"
#include "flutter/lib/ui/text/paragraph_builder.h"
#include "flutter/lib/ui/versions.h"
#include "flutter/lib/ui/window/window.h"
#include "third_party/tonic/converter/dart_converter.h"
#include "third_party/tonic/logging/dart_error.h"
......@@ -87,6 +88,7 @@ void DartUI::InitForGlobal() {
SceneHost::RegisterNatives(g_natives);
SemanticsUpdate::RegisterNatives(g_natives);
SemanticsUpdateBuilder::RegisterNatives(g_natives);
Versions::RegisterNatives(g_natives);
Vertices::RegisterNatives(g_natives);
Window::RegisterNatives(g_natives);
......
......@@ -16,6 +16,7 @@ dart_ui_files = [
"$flutter_root/lib/ui/semantics.dart",
"$flutter_root/lib/ui/text.dart",
"$flutter_root/lib/ui/ui.dart",
"$flutter_root/lib/ui/versions.dart",
"$flutter_root/lib/ui/window.dart",
]
......
......@@ -34,4 +34,5 @@ part 'plugins.dart';
part 'pointer.dart';
part 'semantics.dart';
part 'text.dart';
part 'versions.dart';
part 'window.dart';
// Copyright 2013 The Flutter Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "flutter/lib/ui/versions.h"
#include "flutter/common/version/version.h"
#include "third_party/tonic/converter/dart_converter.h"
#include "third_party/tonic/dart_library_natives.h"
#include <string>
#include <vector>
using tonic::DartConverter;
namespace blink {
// returns a vector with 3 versions.
// Dart, Skia and Flutter engine versions in this order.
void GetVersions(Dart_NativeArguments args) {
const std::vector<std::string> versions_list = {
GetDartVersion(), GetSkiaVersion(), GetFlutterEngineVersion()};
Dart_Handle dart_val =
DartConverter<std::vector<std::string>>::ToDart(versions_list);
Dart_SetReturnValue(args, dart_val);
}
void Versions::RegisterNatives(tonic::DartLibraryNatives* natives) {
natives->Register({{"Versions_getVersions", GetVersions, 1, true}});
}
} // namespace blink
// Copyright 2013 The Flutter Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
part of dart.ui;
/// Wraps version information for Dart, Skia and Flutter.
class Versions {
/// Builds a versions object using the information
/// we get from calling the native getVersions.
factory Versions._internal() {
final List<String> versions = _getVersions();
return Versions._(versions[0], versions[1], versions[2]);
}
/// Private constructor to capture the versions.
Versions._(
this.dartVersion,
this.skiaVersion,
this.flutterEngineVersion
) : assert(dartVersion != null),
assert(skiaVersion != null),
assert(flutterEngineVersion != null);
/// returns a vector with 3 versions.
/// Dart, Skia and Flutter engine versions in this order.
static List<String> _getVersions() native 'Versions_getVersions';
final String dartVersion;
final String skiaVersion;
final String flutterEngineVersion;
}
/// [Versions] singleton. This object exposes Dart, Skia and
/// Flutter engine versions.
final Versions versions = Versions._internal();
// Copyright 2013 The Flutter Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef FLUTTER_LIB_UI_VERSIONS_H_
#define FLUTTER_LIB_UI_VERSIONS_H_
namespace tonic {
class DartLibraryNatives;
} // namespace tonic
namespace blink {
class Versions final {
public:
static void RegisterNatives(tonic::DartLibraryNatives* natives);
};
} // namespace blink
#endif // FLUTTER_LIB_UI_VERSIONS_H_
......@@ -105,7 +105,7 @@ source_set("common") {
]
public_deps = [
"$flutter_root/shell/version",
"$flutter_root/common/version",
"$flutter_root/third_party/txt",
"//third_party/rapidjson",
"//third_party/tonic",
......
......@@ -10,6 +10,7 @@
#include <vector>
#include "flutter/common/settings.h"
#include "flutter/common/version/version.h"
#include "flutter/fml/eintr_wrapper.h"
#include "flutter/fml/file.h"
#include "flutter/fml/make_copyable.h"
......
......@@ -7,13 +7,13 @@
#include <memory>
#include <string>
#include "flutter/common/version/version.h"
#include "flutter/fml/base32.h"
#include "flutter/fml/file.h"
#include "flutter/fml/make_copyable.h"
#include "flutter/fml/mapping.h"
#include "flutter/fml/paths.h"
#include "flutter/fml/trace_event.h"
#include "flutter/shell/version/version.h"
namespace shell {
......
......@@ -9,10 +9,10 @@
#include <sstream>
#include <string>
#include "flutter/common/version/version.h"
#include "flutter/fml/native_library.h"
#include "flutter/fml/paths.h"
#include "flutter/fml/string_view.h"
#include "flutter/shell/version/version.h"
// Include once for the default enum definition.
#include "flutter/shell/common/switches.h"
......@@ -46,11 +46,12 @@ void PrintUsage(const std::string& executable_name) {
std::cerr << "Versions: " << std::endl << std::endl;
std::cerr << "Flutter Engine Version: " << GetFlutterEngineVersion()
std::cerr << "Flutter Engine Version: " << blink::GetFlutterEngineVersion()
<< std::endl;
std::cerr << "Skia Version: " << GetSkiaVersion() << std::endl;
std::cerr << "Skia Version: " << blink::GetSkiaVersion() << std::endl;
std::cerr << "Dart Version: " << GetDartVersion() << std::endl << std::endl;
std::cerr << "Dart Version: " << blink::GetDartVersion() << std::endl
<< std::endl;
std::cerr << "Available Flags:" << std::endl;
......
// Copyright 2013 The Flutter Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
// HACK: pretend to be dart.ui in order to access its internals
library dart.ui;
import 'package:test/test.dart';
part '../../lib/ui/versions.dart';
bool _isNotEmpty(String s) {
if (s == null || s.isEmpty) {
return false;
} else {
return true;
}
}
void main() {
test('dartVersion should not be empty', () {
final String dartVersion = versions.dartVersion;
expect(_isNotEmpty(dartVersion), equals(true));
});
test('skiaVersion should not be empty', () {
final String skiaVersion = versions.skiaVersion;
expect(_isNotEmpty(skiaVersion), equals(true));
});
test('flutterEngineVersion should not be empty', () {
final String flutterEngineVersion = versions.flutterEngineVersion;
expect(_isNotEmpty(flutterEngineVersion), equals(true));
});
}
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册