aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorGravatar kkinnunen <kkinnunen@nvidia.com>2014-11-13 05:00:57 -0800
committerGravatar Commit bot <commit-bot@chromium.org>2014-11-13 05:00:57 -0800
commitc092d3bdab5f723576cc0346cea3ee282a9cb444 (patch)
treed2a5ecf4ded3f126e2968d6ad7b4b05c1d536bfa
parent5adbf1b57988eaad84d6615395c90a08b7ea225a (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.cpp8
-rw-r--r--bench/nanobench.h13
-rw-r--r--bench/nanobench_main.cpp18
-rw-r--r--dm/DM.cpp10
-rw-r--r--dm/dm.h14
-rw-r--r--dm/dm_main.cpp16
-rw-r--r--gyp/bench.gyp1
-rw-r--r--gyp/dm.gyp3
-rw-r--r--gyp/most.gyp2
-rw-r--r--tools/iOSShell.cpp5
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();
+
+}
diff --git a/dm/DM.cpp b/dm/DM.cpp
index 52c86d5f68..08a458756f 100644
--- a/dm/DM.cpp
+++ b/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
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);