summaryrefslogtreecommitdiffstats
path: root/cloud_print
diff options
context:
space:
mode:
authorbrettw <brettw@chromium.org>2015-10-13 17:49:38 -0700
committerCommit bot <commit-bot@chromium.org>2015-10-14 00:50:16 +0000
commit53eae14bacb401632d4f2045ed8715705dcd8d1d (patch)
tree9e081d4dc9e2ac8570c7e120ad8812fe30a52b53 /cloud_print
parent0b999094d4ce8a462b70327cc38ca117313a1504 (diff)
downloadchromium_src-53eae14bacb401632d4f2045ed8715705dcd8d1d.zip
chromium_src-53eae14bacb401632d4f2045ed8715705dcd8d1d.tar.gz
chromium_src-53eae14bacb401632d4f2045ed8715705dcd8d1d.tar.bz2
Add cloud_print to the GN build.
There were some existing cloud_print targets that were hooked up only on Linux, but most of the code was Windows-only. This adds the missing targets and should bring us up to GYP parity. Fix the cloud print size_t to int warnings and remove the warning disable from GYP. Move generated resources file from cloud_print/resources.h to cloud_print/service/resources.h to match where the source file is. Cloud print does some messy things to get the content switches constants, including the file directly in its sources and manually setting LINK_CONTENT_STATICALLY for all targets. In GN, this adds a static_switches target in content that does this in an official way. Review URL: https://codereview.chromium.org/1393123003 Cr-Commit-Position: refs/heads/master@{#353928}
Diffstat (limited to 'cloud_print')
-rw-r--r--cloud_print/BUILD.gn38
-rw-r--r--cloud_print/cloud_print.gyp2
-rw-r--r--cloud_print/cloud_print_resources.gyp3
-rw-r--r--cloud_print/common/BUILD.gn26
-rw-r--r--cloud_print/common/common.gyp1
-rw-r--r--cloud_print/service/BUILD.gn56
-rw-r--r--cloud_print/service/service.gyp10
-rw-r--r--cloud_print/service/win/BUILD.gn108
-rw-r--r--cloud_print/service/win/cloud_print_service.cc4
-rw-r--r--cloud_print/service/win/cloud_print_service_config.cc7
-rw-r--r--cloud_print/service/win/installer.cc2
-rw-r--r--cloud_print/service/win/service.gyp5
-rw-r--r--cloud_print/service/win/service_controller.h2
-rw-r--r--cloud_print/virtual_driver/win/BUILD.gn19
-rw-r--r--cloud_print/virtual_driver/win/install/BUILD.gn110
-rw-r--r--cloud_print/virtual_driver/win/install/virtual_driver_install.gyp2
-rw-r--r--cloud_print/virtual_driver/win/port_monitor/BUILD.gn61
-rw-r--r--cloud_print/virtual_driver/win/virtual_driver.gypi3
18 files changed, 427 insertions, 32 deletions
diff --git a/cloud_print/BUILD.gn b/cloud_print/BUILD.gn
index 2cd785b..d92c3b2 100644
--- a/cloud_print/BUILD.gn
+++ b/cloud_print/BUILD.gn
@@ -4,6 +4,25 @@
import("//testing/test.gni")
+group("cloud_print") {
+ if (is_win) {
+ public_deps = [
+ "//cloud_print/service/win:cloud_print_service",
+ "//cloud_print/service/win:cloud_print_service_config",
+ "//cloud_print/service/win:cloud_print_service_setup",
+ "//cloud_print/virtual_driver/win/install:virtual_driver_setup",
+ "//cloud_print/virtual_driver/win/port_monitor",
+ ]
+
+ # When compiling 32-bit, also reference the 64-bit driver for installing on
+ # 64-bit systems.
+ if (target_cpu == "x86" && current_cpu == "x86") {
+ # TODO(brettw) enable this when Windows cross-compiles are set up.
+ # public_deps += [ "//cloud_print/virtual_driver/win/port_monitor(//build/toolchain/win:x64)" ]
+ }
+ }
+}
+
test("cloud_print_unittests") {
sources = [
"service/service_state_unittest.cc",
@@ -12,18 +31,17 @@ test("cloud_print_unittests") {
deps = [
"//base",
"//base/test:run_all_unittests",
- "//cloud_print/service:cloud_print_service_lib",
+ "//cloud_print/service:lib",
"//testing/gmock",
"//testing/gtest",
]
- # TODO(GYP)
- # if (is_win) {
- # sources += [
- # "service/win/service_ipc_unittest.cc",
- # "virtual_driver/win/port_monitor/port_monitor_unittest.cc",
- # ]
- #
- # deps += [ "virtual_driver/win:gcp_portmon_lib" ]
- #}
+ if (is_win) {
+ sources += [
+ "service/win/service_ipc_unittest.cc",
+ "virtual_driver/win/port_monitor/port_monitor_unittest.cc",
+ ]
+ deps += [ "//cloud_print/virtual_driver/win/port_monitor:lib" ]
+ libs = [ "secur32.lib" ]
+ }
}
diff --git a/cloud_print/cloud_print.gyp b/cloud_print/cloud_print.gyp
index a677438..8da7195 100644
--- a/cloud_print/cloud_print.gyp
+++ b/cloud_print/cloud_print.gyp
@@ -7,6 +7,7 @@
},
'targets': [
{
+ # GN version: //cloud_print
'target_name': 'cloud_print',
'type': 'none',
'dependencies': [
@@ -29,6 +30,7 @@
],
},
{
+ # GN version: //cloud_print:cloud_print_unittests
'target_name': 'cloud_print_unittests',
'type': 'executable',
'sources': [
diff --git a/cloud_print/cloud_print_resources.gyp b/cloud_print/cloud_print_resources.gyp
index 4057d23..8ebd5cd 100644
--- a/cloud_print/cloud_print_resources.gyp
+++ b/cloud_print/cloud_print_resources.gyp
@@ -17,6 +17,9 @@
],
'targets': [
{
+ # GN: Thes targets for this are split out depending on when the specific
+ # .ver file is used. For example, see:
+ # //cloud_print/sevice/win:exe_version
'target_name': 'cloud_print_version_resources',
'type': 'none',
'variables': {
diff --git a/cloud_print/common/BUILD.gn b/cloud_print/common/BUILD.gn
new file mode 100644
index 0000000..ca0b546
--- /dev/null
+++ b/cloud_print/common/BUILD.gn
@@ -0,0 +1,26 @@
+# Copyright 2015 The Chromium Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+source_set("common") {
+ sources = [
+ "win/cloud_print_utils.cc",
+ "win/cloud_print_utils.h",
+ ]
+
+ deps = [
+ "//base",
+ ]
+}
+
+source_set("install_utils") {
+ sources = [
+ "win/install_utils.cc",
+ "win/install_utils.h",
+ ]
+
+ deps = [
+ ":common",
+ "//base",
+ ]
+}
diff --git a/cloud_print/common/common.gyp b/cloud_print/common/common.gyp
index ea4efa3..13351fd 100644
--- a/cloud_print/common/common.gyp
+++ b/cloud_print/common/common.gyp
@@ -7,6 +7,7 @@
},
'targets': [
{
+ # GN version: //cloud_print/common:install_utils
'target_name': 'cloud_print_install_lib',
'type': 'static_library',
'dependencies': [
diff --git a/cloud_print/service/BUILD.gn b/cloud_print/service/BUILD.gn
index 7baf63b..172a71e 100644
--- a/cloud_print/service/BUILD.gn
+++ b/cloud_print/service/BUILD.gn
@@ -2,12 +2,34 @@
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
+import("//build/config/features.gni")
import("//tools/grit/grit_rule.gni")
-source_set("cloud_print_service_lib") {
+config("internal_config") {
+ defines = [
+ "SECURITY_WIN32",
+ "STRICT",
+ "_ATL_APARTMENT_THREADED",
+ "_ATL_CSTRING_EXPLICIT_CONSTRUCTORS",
+ "_ATL_NO_COM_SUPPORT",
+ "_ATL_NO_AUTOMATIC_NAMESPACE",
+ "_ATL_NO_EXCEPTIONS",
+ ]
+}
+
+if (is_win && is_clang) {
+ # service_controller.h uses DECLARE_REGISTRY_APPID_RESOURCEID, which
+ # in msvs2013 returns string literals via a non-const pointer. So
+ # disable this warning for now.
+ # TODO(thakis): Remove this once we're on 2014,
+ # https://connect.microsoft.com/VisualStudio/feedback/details/806376/atl-hindrances-to-adopting-new-strictstrings-conformance-option-in-vs2013
+ config("service_warning_config") {
+ cflags = [ "-Wno-writable-strings" ]
+ }
+}
+
+source_set("lib") {
sources = [
- "//cloud_print/common/win/cloud_print_utils.cc",
- "//cloud_print/common/win/cloud_print_utils.h",
"service_constants.cc",
"service_constants.h",
"service_state.cc",
@@ -28,24 +50,46 @@ source_set("cloud_print_service_lib") {
"win/setup_listener.h",
]
+ configs += [
+ ":internal_config",
+ "//build/config/compiler:wexit_time_destructors",
+ ]
+
deps = [
- ":service_resources",
+ ":resources",
"//base",
"//base:base_static",
"//base/third_party/dynamic_annotations",
- "//content/public/common",
+ "//chrome/common:constants",
+ "//cloud_print/common",
+ "//components/cloud_devices/common",
+ "//content/public/common:static_switches",
"//google_apis",
"//ipc",
"//net",
"//url",
]
+ if (enable_basic_printing || enable_print_preview) {
+ deps += [ "//printing" ]
+ }
+
+ if (is_win) {
+ deps += [
+ "//chrome/common:constants",
+ "//chrome/installer/launcher_support",
+ ]
+ }
+
if (is_clang) {
cflags = [ "-Wno-parentheses" ]
+ if (is_win) {
+ public_configs = [ ":service_warning_config" ]
+ }
}
}
-grit("service_resources") {
+grit("resources") {
source = "win/service_resources.grd"
outputs = [
"resources.h",
diff --git a/cloud_print/service/service.gyp b/cloud_print/service/service.gyp
index 1eb2b23..a6171a8 100644
--- a/cloud_print/service/service.gyp
+++ b/cloud_print/service/service.gyp
@@ -22,19 +22,14 @@
'_ATL_NO_AUTOMATIC_NAMESPACE',
'_ATL_NO_EXCEPTIONS',
],
- 'conditions': [
- ['OS=="win"', {
- # TODO(jschuh): crbug.com/167187 fix size_t to int truncations.
- 'msvs_disabled_warnings': [ 4267, ],
- }],
- ],
},
'targets': [
{
+ # GN version: //cloud_print/service:resources
'target_name': 'service_resources',
'type': 'none',
'variables': {
- 'grit_out_dir': '<(SHARED_INTERMEDIATE_DIR)/cloud_print',
+ 'grit_out_dir': '<(SHARED_INTERMEDIATE_DIR)/cloud_print/service',
},
'actions': [
{
@@ -48,6 +43,7 @@
'includes': [ '../../build/grit_target.gypi' ],
},
{
+ # GN version: //cloud_print/service
'target_name': 'cloud_print_service_lib',
'type': 'static_library',
'dependencies': [
diff --git a/cloud_print/service/win/BUILD.gn b/cloud_print/service/win/BUILD.gn
new file mode 100644
index 0000000..f4a6f84
--- /dev/null
+++ b/cloud_print/service/win/BUILD.gn
@@ -0,0 +1,108 @@
+# Copyright 2015 The Chromium Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+import("//build/config/win/manifest.gni")
+import("//chrome/version.gni")
+
+assert(is_win)
+
+executable("cloud_print_service") {
+ sources = [
+ "cloud_print_service.cc",
+ ]
+
+ configs += [
+ "//build/config/compiler:wexit_time_destructors",
+ "//cloud_print/service:internal_config",
+ ]
+
+ deps = [
+ ":exe_manifest",
+ ":exe_version",
+ "//cloud_print/service:lib",
+ ]
+
+ libs = [ "secur32.lib" ]
+}
+
+windows_manifest("exe_manifest") {
+ sources = [
+ common_controls_manifest,
+ default_compatibility_manifest,
+ require_administrator_manifest,
+ ]
+ type = "exe"
+}
+
+process_version("exe_version") {
+ template_file = chrome_version_rc_template
+ sources = [
+ "cloud_print_service_exe.ver",
+ ]
+ output = "$target_gen_dir/cloud_print_service_exe_version.rc"
+}
+
+executable("cloud_print_service_config") {
+ sources = [
+ "cloud_print_service_config.cc",
+ ]
+
+ configs -= [ "//build/config/win:console" ]
+ configs += [ "//build/config/win:windowed" ]
+
+ deps = [
+ ":config_version",
+ ":exe_manifest",
+ "//cloud_print/common:install_utils",
+ "//cloud_print/service:resources",
+ "//cloud_print/service:lib",
+ ]
+
+ libs = [ "secur32.lib" ]
+
+ # TODO: Remove once cloud_print_service_config.cc no longer depends on
+ # atlapp.h, http://crbug.com/5027
+ if (is_clang) {
+ cflags = [
+ # atlapp.h contains a global "using namespace WTL;".
+ "-Wno-header-hygiene",
+
+ # atlgdi.h does an intentional assignment in an if conditional.
+ "-Wno-parentheses",
+
+ # atlgdi.h fails with -Wreorder enabled.
+ "-Wno-reorder",
+
+ # atlgdi.h doesn"t use braces around subobject initializers.
+ "-Wno-missing-braces",
+ ]
+ }
+}
+
+process_version("config_version") {
+ template_file = chrome_version_rc_template
+ sources = [
+ "cloud_print_service_config_exe.ver",
+ ]
+ output = "$target_gen_dir/cloud_print_service_config_version.rc"
+}
+
+executable("cloud_print_service_setup") {
+ sources = [
+ "installer.cc",
+ "installer.h",
+ ]
+
+ configs -= [ "//build/config/win:console" ]
+ configs += [ "//build/config/win:windowed" ]
+
+ deps = [
+ ":exe_manifest",
+ "//cloud_print/common:install_utils",
+ "//cloud_print/service:resources",
+ "//cloud_print/service:lib",
+ ]
+
+ libs = [ "secur32.lib" ]
+}
diff --git a/cloud_print/service/win/cloud_print_service.cc b/cloud_print/service/win/cloud_print_service.cc
index 92e5fec..8c5a4a0 100644
--- a/cloud_print/service/win/cloud_print_service.cc
+++ b/cloud_print/service/win/cloud_print_service.cc
@@ -361,8 +361,8 @@ class CloudPrintServiceModule
}
if (new_contents != contents) {
- size_t written = base::WriteFile(file, new_contents.c_str(),
- new_contents.size());
+ size_t written = base::WriteFile(
+ file, new_contents.c_str(), static_cast<int>(new_contents.size()));
if (written != new_contents.size()) {
return ReportError(cloud_print::GetLastHResult(),
IDS_ERROR_FAILED_CREATE_CONFIG);
diff --git a/cloud_print/service/win/cloud_print_service_config.cc b/cloud_print/service/win/cloud_print_service_config.cc
index 278c0dc..bfb4af9 100644
--- a/cloud_print/service/win/cloud_print_service_config.cc
+++ b/cloud_print/service/win/cloud_print_service_config.cc
@@ -17,7 +17,7 @@
#include "base/threading/thread.h"
#include "chrome/common/chrome_constants.h"
#include "cloud_print/common/win/cloud_print_utils.h"
-#include "cloud_print/resources.h"
+#include "cloud_print/service/resources.h"
#include "cloud_print/service/service_state.h"
#include "cloud_print/service/win/chrome_launcher.h"
#include "cloud_print/service/win/service_controller.h"
@@ -297,7 +297,8 @@ base::string16 SetupDialog::GetDlgItemText(int id) const {
const ATL::CWindow& item = GetDlgItem(id);
size_t length = item.GetWindowTextLength();
base::string16 result(length + 1, L'\0');
- result.resize(item.GetWindowText(&result[0], result.size()));
+ result.resize(item.GetWindowText(&result[0],
+ static_cast<int>(result.size())));
return result;
}
@@ -396,7 +397,7 @@ void SetupDialog::Install(const base::string16& user,
return ShowError(IDS_ERROR_FAILED_CREATE_CONFIG);
size_t written = base::WriteFile(file, contents.c_str(),
- contents.size());
+ static_cast<int>(contents.size()));
if (written != contents.size()) {
DWORD last_error = GetLastError();
if (!last_error)
diff --git a/cloud_print/service/win/installer.cc b/cloud_print/service/win/installer.cc
index 312af6e..e09eca3 100644
--- a/cloud_print/service/win/installer.cc
+++ b/cloud_print/service/win/installer.cc
@@ -14,7 +14,7 @@
#include "base/win/shortcut.h"
#include "cloud_print/common/win/cloud_print_utils.h"
#include "cloud_print/common/win/install_utils.h"
-#include "cloud_print/resources.h"
+#include "cloud_print/service/resources.h"
#include "cloud_print/service/service_constants.h"
#include "cloud_print/service/service_switches.h"
#include "cloud_print/service/win/service_controller.h"
diff --git a/cloud_print/service/win/service.gyp b/cloud_print/service/win/service.gyp
index 0019b6f..5434c49 100644
--- a/cloud_print/service/win/service.gyp
+++ b/cloud_print/service/win/service.gyp
@@ -22,11 +22,10 @@
'_ATL_NO_AUTOMATIC_NAMESPACE',
'_ATL_NO_EXCEPTIONS',
],
- # TODO(jschuh): crbug.com/167187 fix size_t to int truncations.
- 'msvs_disabled_warnings': [ 4267, ],
},
'targets': [
{
+ # GN version: //cloud_print/service/win:cloud_print_service
'target_name': 'cloud_print_service',
'type': 'executable',
'sources': [
@@ -51,6 +50,7 @@
},
},
{
+ # GN version: //cloud_print/service/win:cloud_print_service_config
'target_name': 'cloud_print_service_config',
'type': 'executable',
'sources': [
@@ -99,6 +99,7 @@
},
},
{
+ # GN version: //cloud_print/service/win:cloud_print_service_setup
'target_name': 'cloud_print_service_setup',
'type': 'executable',
'sources': [
diff --git a/cloud_print/service/win/service_controller.h b/cloud_print/service/win/service_controller.h
index 6868fbd..fcec4fd 100644
--- a/cloud_print/service/win/service_controller.h
+++ b/cloud_print/service/win/service_controller.h
@@ -10,7 +10,7 @@
#include "base/command_line.h"
#include "base/strings/string16.h"
-#include "cloud_print/resources.h"
+#include "cloud_print/service/resources.h"
namespace base {
class FilePath;
diff --git a/cloud_print/virtual_driver/win/BUILD.gn b/cloud_print/virtual_driver/win/BUILD.gn
new file mode 100644
index 0000000..110b5a3
--- /dev/null
+++ b/cloud_print/virtual_driver/win/BUILD.gn
@@ -0,0 +1,19 @@
+# Copyright 2015 The Chromium Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+assert(is_win)
+
+source_set("win") {
+ sources = [
+ "virtual_driver_consts.cc",
+ "virtual_driver_consts.h",
+ "virtual_driver_helpers.cc",
+ "virtual_driver_helpers.h",
+ ]
+
+ deps = [
+ "//base",
+ "//cloud_print/common",
+ ]
+}
diff --git a/cloud_print/virtual_driver/win/install/BUILD.gn b/cloud_print/virtual_driver/win/install/BUILD.gn
new file mode 100644
index 0000000..edcf769
--- /dev/null
+++ b/cloud_print/virtual_driver/win/install/BUILD.gn
@@ -0,0 +1,110 @@
+# Copyright 2015 The Chromium Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+import("//chrome/version.gni")
+import("//tools/grit/grit_rule.gni")
+
+assert(is_win)
+
+executable("virtual_driver_setup") {
+ sources = [
+ "setup.cc",
+ ]
+
+ configs -= [ "//build/config/win:console" ]
+ configs += [ "//build/config/win:windowed" ]
+
+ deps = [
+ ":copy_gcp_driver",
+ ":resources",
+ ":setup_version",
+ "//base",
+ "//cloud_print/common:install_utils",
+ "//cloud_print/virtual_driver/win",
+ ]
+
+ libs = [ "setupapi.lib" ]
+ ldflags = [ "/DELAYLOAD:winspool.drv" ]
+}
+
+copy("copy_gcp_driver") {
+ sources = [
+ "../../gcp_driver.gpd",
+ ]
+ outputs = [
+ "$root_build_dir/gcp_driver.gpd",
+ ]
+}
+
+process_version("setup_version") {
+ template_file = chrome_version_rc_template
+ sources = [
+ "virtual_driver_setup_exe.ver",
+ ]
+ output = "$target_gen_dir/virtual_driver_setup.rc"
+}
+
+grit("resources") {
+ visibility = [ ":*" ]
+
+ source = "virtual_driver_setup_resources.grd"
+
+ output_dir = "$root_gen_dir/virtual_driver_setup_resources"
+
+ outputs = [
+ "grit/virtual_driver_setup_resources.h",
+ "virtual_driver_setup_resources_ar.rc",
+ "virtual_driver_setup_resources_bg.rc",
+ "virtual_driver_setup_resources_bn.rc",
+ "virtual_driver_setup_resources_ca.rc",
+ "virtual_driver_setup_resources_cs.rc",
+ "virtual_driver_setup_resources_da.rc",
+ "virtual_driver_setup_resources_de.rc",
+ "virtual_driver_setup_resources_el.rc",
+ "virtual_driver_setup_resources_en.rc",
+ "virtual_driver_setup_resources_en-GB.rc",
+ "virtual_driver_setup_resources_es.rc",
+ "virtual_driver_setup_resources_es-419.rc",
+ "virtual_driver_setup_resources_et.rc",
+ "virtual_driver_setup_resources_fa.rc",
+ "virtual_driver_setup_resources_fi.rc",
+ "virtual_driver_setup_resources_fil.rc",
+ "virtual_driver_setup_resources_fr.rc",
+ "virtual_driver_setup_resources_gu.rc",
+ "virtual_driver_setup_resources_he.rc",
+ "virtual_driver_setup_resources_hi.rc",
+ "virtual_driver_setup_resources_hr.rc",
+ "virtual_driver_setup_resources_hu.rc",
+ "virtual_driver_setup_resources_id.rc",
+ "virtual_driver_setup_resources_it.rc",
+ "virtual_driver_setup_resources_ja.rc",
+ "virtual_driver_setup_resources_kn.rc",
+ "virtual_driver_setup_resources_ko.rc",
+ "virtual_driver_setup_resources_lt.rc",
+ "virtual_driver_setup_resources_lv.rc",
+ "virtual_driver_setup_resources_ml.rc",
+ "virtual_driver_setup_resources_mr.rc",
+ "virtual_driver_setup_resources_ms.rc",
+ "virtual_driver_setup_resources_nl.rc",
+ "virtual_driver_setup_resources_nb.rc",
+ "virtual_driver_setup_resources_pl.rc",
+ "virtual_driver_setup_resources_pt-BR.rc",
+ "virtual_driver_setup_resources_pt-PT.rc",
+ "virtual_driver_setup_resources_ro.rc",
+ "virtual_driver_setup_resources_ru.rc",
+ "virtual_driver_setup_resources_sk.rc",
+ "virtual_driver_setup_resources_sl.rc",
+ "virtual_driver_setup_resources_sr.rc",
+ "virtual_driver_setup_resources_sv.rc",
+ "virtual_driver_setup_resources_sw.rc",
+ "virtual_driver_setup_resources_ta.rc",
+ "virtual_driver_setup_resources_te.rc",
+ "virtual_driver_setup_resources_th.rc",
+ "virtual_driver_setup_resources_tr.rc",
+ "virtual_driver_setup_resources_uk.rc",
+ "virtual_driver_setup_resources_vi.rc",
+ "virtual_driver_setup_resources_zh-CN.rc",
+ "virtual_driver_setup_resources_zh-TW.rc",
+ ]
+}
diff --git a/cloud_print/virtual_driver/win/install/virtual_driver_install.gyp b/cloud_print/virtual_driver/win/install/virtual_driver_install.gyp
index 6b19304..a788f1a 100644
--- a/cloud_print/virtual_driver/win/install/virtual_driver_install.gyp
+++ b/cloud_print/virtual_driver/win/install/virtual_driver_install.gyp
@@ -13,6 +13,7 @@
},
'targets' : [
{
+ # GN version: //cloud_print/virtual_driver/win/install:virtual_driver_setup
'target_name': 'virtual_driver_setup',
'type': 'executable',
'include_dirs': [
@@ -102,6 +103,7 @@
],
},
{
+ # GN version: //cloud_print/virtual_driver/win/install:resources
'target_name': 'virtual_driver_setup_resources',
'type': 'none',
'variables': {
diff --git a/cloud_print/virtual_driver/win/port_monitor/BUILD.gn b/cloud_print/virtual_driver/win/port_monitor/BUILD.gn
new file mode 100644
index 0000000..a9e5b35
--- /dev/null
+++ b/cloud_print/virtual_driver/win/port_monitor/BUILD.gn
@@ -0,0 +1,61 @@
+# Copyright 2015 The Chromium Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+import("//chrome/version.gni")
+
+assert(is_win)
+
+# When cross-compiling a 64-bit driver for a 32-bit build, some things get name
+# mangled with this suffix.
+if (target_cpu == "x86" && current_cpu == "x64") {
+ arch_suffix = "64"
+} else {
+ arch_suffix = ""
+}
+
+print("port_monitor $current_toolchain")
+
+shared_library("port_monitor") {
+ output_name = "gcp_portmon$arch_suffix"
+
+ sources = [
+ "port_monitor.def",
+ "port_monitor_dll.cc",
+ ]
+
+ deps = [
+ ":lib",
+ ":resources",
+ "//base",
+ "//chrome:version_header",
+ "//chrome/common:constants",
+ ]
+
+ libs = [ "userenv.lib" ]
+}
+
+source_set("lib") {
+ sources = [
+ "port_monitor.cc",
+ "port_monitor.h",
+ ]
+
+ deps = [
+ "//base",
+ "//chrome/common:constants",
+ "//chrome/installer/launcher_support",
+ "//cloud_print/virtual_driver/win",
+ ]
+}
+
+process_version("resources") {
+ template_file = chrome_version_rc_template
+ sources = [
+ "../gcp_portmon${arch_suffix}_dll.ver",
+ ]
+
+ # Note: target_gen_dir will be different for each toolchain so the output
+ # name doesn't need mangling.
+ output = "$target_gen_dir/gcp_portmon_dll.rc"
+}
diff --git a/cloud_print/virtual_driver/win/virtual_driver.gypi b/cloud_print/virtual_driver/win/virtual_driver.gypi
index 41b2a97..1595883 100644
--- a/cloud_print/virtual_driver/win/virtual_driver.gypi
+++ b/cloud_print/virtual_driver/win/virtual_driver.gypi
@@ -16,6 +16,7 @@
},
'targets' : [
{
+ # GN version: //cloud_print/virtual_driver/win
'target_name': 'virtual_driver_lib<(virtual_driver_suffix)',
'type': 'static_library',
'sources': [
@@ -28,6 +29,7 @@
],
},
{
+ # GN version: //cloud_print/virtual_driver/win/port_monitor:lib
'target_name': 'gcp_portmon_lib<(virtual_driver_suffix)',
'type': 'static_library',
'sources': [
@@ -39,6 +41,7 @@
],
},
{
+ # GN version: //cloud_print/virtual_driver/win/port_monitor
'target_name': 'gcp_portmon<(virtual_driver_suffix)',
'type': 'loadable_module',
'sources': [