diff options
author | kkinnunen <kkinnunen@nvidia.com> | 2014-11-13 05:00:57 -0800 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2014-11-13 05:00:57 -0800 |
commit | c092d3bdab5f723576cc0346cea3ee282a9cb444 (patch) | |
tree | d2a5ecf4ded3f126e2968d6ad7b4b05c1d536bfa | |
parent | 5adbf1b57988eaad84d6615395c90a08b7ea225a (diff) |
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
-rw-r--r-- | bench/nanobench.cpp | 8 | ||||
-rw-r--r-- | bench/nanobench.h | 13 | ||||
-rw-r--r-- | bench/nanobench_main.cpp | 18 | ||||
-rw-r--r-- | dm/DM.cpp | 10 | ||||
-rw-r--r-- | dm/dm.h | 14 | ||||
-rw-r--r-- | dm/dm_main.cpp | 16 | ||||
-rw-r--r-- | gyp/bench.gyp | 1 | ||||
-rw-r--r-- | gyp/dm.gyp | 3 | ||||
-rw-r--r-- | gyp/most.gyp | 2 | ||||
-rw-r--r-- | tools/iOSShell.cpp | 5 |
10 files changed, 68 insertions, 22 deletions
diff --git a/bench/nanobench.cpp b/bench/nanobench.cpp index 1f5ae60f82..baa109ede7 100644 --- a/bench/nanobench.cpp +++ b/bench/nanobench.cpp @@ -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 diff --git a/bench/nanobench.h b/bench/nanobench.h new file mode 100644 index 0000000000..4616747382 --- /dev/null +++ b/bench/nanobench.h @@ -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 diff --git a/bench/nanobench_main.cpp b/bench/nanobench_main.cpp new file mode 100644 index 0000000000..a598adc264 --- /dev/null +++ b/bench/nanobench_main.cpp @@ -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(); + +} @@ -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 diff --git a/dm/dm.h b/dm/dm.h new file mode 100644 index 0000000000..99b6e10a66 --- /dev/null +++ b/dm/dm.h @@ -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 diff --git a/dm/dm_main.cpp b/dm/dm_main.cpp new file mode 100644 index 0000000000..ac8e0f3ce0 --- /dev/null +++ b/dm/dm_main.cpp @@ -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(); +} diff --git a/gyp/bench.gyp b/gyp/bench.gyp index 26849d511a..e91c4f29f5 100644 --- a/gyp/bench.gyp +++ b/gyp/bench.gyp @@ -13,6 +13,7 @@ '../bench/GMBench.cpp', '../bench/RecordingBench.cpp', '../bench/SKPBench.cpp', + '../bench/nanobench_main.cpp', '../bench/nanobench.cpp', ], 'includes': [ diff --git a/gyp/dm.gyp b/gyp/dm.gyp index e4d6bd6708..0e5eebd416 100644 --- a/gyp/dm.gyp +++ b/gyp/dm.gyp @@ -8,6 +8,9 @@ 'includes': [ 'dm.gypi', ], + 'sources': [ + '../dm/dm_main.cpp', + ], 'conditions': [ ['skia_android_framework', { 'libraries': [ '-lskia' ], diff --git a/gyp/most.gyp b/gyp/most.gyp index e22629ae74..61efe1e455 100644 --- a/gyp/most.gyp +++ b/gyp/most.gyp @@ -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"', { diff --git a/tools/iOSShell.cpp b/tools/iOSShell.cpp index 8656e645aa..99d5ebd29a 100644 --- a/tools/iOSShell.cpp +++ b/tools/iOSShell.cpp @@ -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); |