Make nanobench and dm be usable from Chromium build
Move the app logic for each app as follows: <app>.cpp -- the file which contains main(). Embedders that compile their own apps, such as ios shell, upcoming Chromium dm etc, do not use this. <app>_main.cpp -- the main logic of the Skia test application. This will be used by Skia -compiled apps as well as embedder -compiled apps. <app>_main.h -- the API for the main logic. This will be used by Skia -compiled apps as well as embedder -compiled apps. This way (the upcoming) Chromium dm can setup its Chromium-specific setup in custom main(), and then call dm_main(), without the need of any SK_BUILD_FOR_XXXX defines controlling whether the tool defines main or not. BUG=skia:2992 Review URL: https://codereview.chromium.org/657373002
This commit is contained in:
parent
5adbf1b579
commit
c092d3bdab
@ -572,9 +572,7 @@ private:
|
||||
int fCurrentSKP;
|
||||
};
|
||||
|
||||
int nanobench_main();
|
||||
int nanobench_main() {
|
||||
SetupCrashHandler();
|
||||
SkAutoGraphics ag;
|
||||
|
||||
#if SK_SUPPORT_GPU
|
||||
@ -752,9 +750,3 @@ int nanobench_main() {
|
||||
return 0;
|
||||
}
|
||||
|
||||
#if !defined SK_BUILD_FOR_IOS
|
||||
int main(int argc, char** argv) {
|
||||
SkCommandLineFlags::Parse(argc, argv);
|
||||
return nanobench_main();
|
||||
}
|
||||
#endif
|
||||
|
13
bench/nanobench.h
Normal file
13
bench/nanobench.h
Normal file
@ -0,0 +1,13 @@
|
||||
/*
|
||||
* Copyright 2014 Google Inc.
|
||||
*
|
||||
* Use of this source code is governed by a BSD-style license that can be
|
||||
* found in the LICENSE file.
|
||||
*/
|
||||
#ifndef nanobench_DEFINED
|
||||
#define nanobench_DEFINED
|
||||
|
||||
// API for nanobench app.
|
||||
int nanobench_main();
|
||||
|
||||
#endif
|
18
bench/nanobench_main.cpp
Normal file
18
bench/nanobench_main.cpp
Normal file
@ -0,0 +1,18 @@
|
||||
/*
|
||||
* Copyright 2014 Google Inc.
|
||||
*
|
||||
* Use of this source code is governed by a BSD-style license that can be
|
||||
* found in the LICENSE file.
|
||||
*/
|
||||
|
||||
|
||||
#include "CrashHandler.h"
|
||||
#include "SkCommandLineFlags.h"
|
||||
#include "nanobench.h"
|
||||
|
||||
int main(int argc, char * const argv[]) {
|
||||
SetupCrashHandler();
|
||||
SkCommandLineFlags::Parse(argc, const_cast<char**>(argv));
|
||||
return nanobench_main();
|
||||
|
||||
}
|
10
dm/DM.cpp
10
dm/DM.cpp
@ -1,7 +1,6 @@
|
||||
// Main binary for DM.
|
||||
// For a high-level overview, please see dm/README.
|
||||
|
||||
#include "CrashHandler.h"
|
||||
#include "LazyDecodeBitmap.h"
|
||||
#include "SkCommonFlags.h"
|
||||
#include "SkForceLinking.h"
|
||||
@ -187,9 +186,7 @@ static void append_matching_factories(Registry* head, SkTDArray<typename Registr
|
||||
}
|
||||
}
|
||||
|
||||
int dm_main();
|
||||
int dm_main() {
|
||||
SetupCrashHandler();
|
||||
SkAutoGraphics ag;
|
||||
SkTaskGroup::Enabler enabled(FLAGS_threads);
|
||||
|
||||
@ -244,10 +241,3 @@ int dm_main() {
|
||||
report_failures(failures);
|
||||
return failures.count() > 0;
|
||||
}
|
||||
|
||||
#if !defined(SK_BUILD_FOR_IOS) && !defined(SK_BUILD_FOR_NACL)
|
||||
int main(int argc, char** argv) {
|
||||
SkCommandLineFlags::Parse(argc, argv);
|
||||
return dm_main();
|
||||
}
|
||||
#endif
|
||||
|
14
dm/dm.h
Normal file
14
dm/dm.h
Normal file
@ -0,0 +1,14 @@
|
||||
/*
|
||||
* Copyright 2014 Google Inc.
|
||||
*
|
||||
* Use of this source code is governed by a BSD-style license that can be
|
||||
* found in the LICENSE file.
|
||||
*/
|
||||
#ifndef dm_DEFINED
|
||||
#define dm_DEFINED
|
||||
|
||||
// API for dm app.
|
||||
|
||||
int dm_main();
|
||||
|
||||
#endif
|
16
dm/dm_main.cpp
Normal file
16
dm/dm_main.cpp
Normal file
@ -0,0 +1,16 @@
|
||||
/*
|
||||
* Copyright 2014 Google Inc.
|
||||
*
|
||||
* Use of this source code is governed by a BSD-style license that can be
|
||||
* found in the LICENSE file.
|
||||
*/
|
||||
|
||||
#include "CrashHandler.h"
|
||||
#include "SkCommandLineFlags.h"
|
||||
#include "dm.h"
|
||||
|
||||
int main(int argc, char * const argv[]) {
|
||||
SetupCrashHandler();
|
||||
SkCommandLineFlags::Parse(argc, const_cast<char**>(argv));
|
||||
return dm_main();
|
||||
}
|
@ -13,6 +13,7 @@
|
||||
'../bench/GMBench.cpp',
|
||||
'../bench/RecordingBench.cpp',
|
||||
'../bench/SKPBench.cpp',
|
||||
'../bench/nanobench_main.cpp',
|
||||
'../bench/nanobench.cpp',
|
||||
],
|
||||
'includes': [
|
||||
|
@ -8,6 +8,9 @@
|
||||
'includes': [
|
||||
'dm.gypi',
|
||||
],
|
||||
'sources': [
|
||||
'../dm/dm_main.cpp',
|
||||
],
|
||||
'conditions': [
|
||||
['skia_android_framework', {
|
||||
'libraries': [ '-lskia' ],
|
||||
|
@ -29,7 +29,7 @@
|
||||
'dependencies': [ 'android_system.gyp:SampleApp_APK' ],
|
||||
}],
|
||||
['skia_os == "ios"', {
|
||||
'dependencies!': [ 'SampleApp.gyp:SampleApp' ],
|
||||
'dependencies!': [ 'SampleApp.gyp:SampleApp', 'dm.gyp:dm', 'bench.gyp:*' ],
|
||||
'dependencies': ['iOSShell.gyp:iOSShell' ],
|
||||
}],
|
||||
['skia_os == "mac" or skia_os == "linux"', {
|
||||
|
@ -13,6 +13,8 @@
|
||||
#include "SkCommonFlags.h"
|
||||
#include "SkGraphics.h"
|
||||
#include "SkWindow.h"
|
||||
#include "dm.h"
|
||||
#include "nanobench.h"
|
||||
#include "sk_tool_utils.h"
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////////
|
||||
@ -56,9 +58,6 @@ void ShellWindow::onSizeChange() {
|
||||
DEFINE_bool(dm, false, "run dm");
|
||||
DEFINE_bool(nanobench, false, "run nanobench");
|
||||
|
||||
int nanobench_main();
|
||||
int dm_main();
|
||||
|
||||
IOS_launch_type set_cmd_line_args(int argc, char *argv[], const char* resourceDir) {
|
||||
SkCommandLineFlags::Parse(argc, argv);
|
||||
SetResourcePath(resourceDir);
|
||||
|
Loading…
Reference in New Issue
Block a user