Skip to content

Commit

Permalink
Add a build rule //win32/installer:executables
Browse files Browse the repository at this point in the history
As a preparation to build Mozc installer for Windows (#948), this commit
adds a rule to build all the Mozc executables to be installed with the
correct build configurations (e.g. CPU architecture, CRT link type).

  bazel --bazelrc=windows.bazelrc               \
        build //win32/installer:artifacts       \
        --config oss_windows --cpu=x64_windows

Keep in mind that there still remain many known issues in these
executables. They are not yet ready to correctly run in real devices.

 * Win32 resources are not yet embedded
 * manifest files are not yet embedded
 * some security related compiler / linker flags are not yet set
   (e.g. '/CETCOMPAT' and /DEPENDENTLOADFLAG)

PiperOrigin-RevId: 646329541
  • Loading branch information
yukawa authored and hiroyuki-komatsu committed Jun 25, 2024
1 parent 5efa371 commit cd37f5a
Show file tree
Hide file tree
Showing 6 changed files with 116 additions and 1 deletion.
9 changes: 8 additions & 1 deletion src/build_defs.bzl
Original file line number Diff line number Diff line change
Expand Up @@ -479,14 +479,21 @@ def _mozc_win_build_rule_impl(ctx):
executable = output,
)]

# The follwoing CPU values are mentioned in https://bazel.build/configure/windows#build_cpp
CPU = struct(
ARM64 = "arm64_windows", # aarch64 (64-bit) environment
X64 = "x64_windows", # x86-64 (64-bit) environment
X86 = "x64_x86_windows", # x86 (32-bit) environment
)

# A custom rule to reference the given build target with the given build configurations.
#
# For instance, the following rule creates a target "my_target" with setting "cpu" as "x64_windows"
# and setting "static_link_msvcrt" feature.
#
# mozc_win_build_rule(
# name = "my_target",
# cpu = "x64_windows",
# cpu = CPU.X64,
# static_crt = True,
# target = "//bath/to/target:my_target",
# )
Expand Down
1 change: 1 addition & 0 deletions src/renderer/win32/BUILD.bazel
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,7 @@ mozc_cc_binary(
srcs = ["win32_renderer_main.cc"],
tags = MOZC_TAGS.WIN_ONLY,
target_compatible_with = ["@platforms//os:windows"],
visibility = ["//win32/installer:__subpackages__"],
deps = [
":win32_renderer_main_resources",
":win32_server",
Expand Down
1 change: 1 addition & 0 deletions src/win32/broker/BUILD.bazel
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,7 @@ mozc_cc_binary(
srcs = ["mozc_broker_main.cc"],
tags = MOZC_TAGS.WIN_ONLY,
target_compatible_with = ["@platforms//os:windows"],
visibility = ["//win32/installer:__subpackages__"],
deps = [
":prelauncher",
"//base:crash_report_handler",
Expand Down
1 change: 1 addition & 0 deletions src/win32/custom_action/BUILD.bazel
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,7 @@ mozc_cc_binary(
linkshared = True,
tags = MOZC_TAGS.WIN_ONLY,
target_compatible_with = ["@platforms//os:windows"],
visibility = ["//win32/installer:__subpackages__"],
win_def_file = "custom_action.def",
deps = [
":custom_action_resource", # buildcleaner: keep
Expand Down
104 changes: 104 additions & 0 deletions src/win32/installer/BUILD.bazel
Original file line number Diff line number Diff line change
@@ -0,0 +1,104 @@
# Copyright 2010-2021, Google Inc.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions are
# met:
#
# * Redistributions of source code must retain the above copyright
# notice, this list of conditions and the following disclaimer.
# * Redistributions in binary form must reproduce the above
# copyright notice, this list of conditions and the following disclaimer
# in the documentation and/or other materials provided with the
# distribution.
# * Neither the name of Google Inc. nor the names of its
# contributors may be used to endorse or promote products derived from
# this software without specific prior written permission.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

# Build rules for the Windows installer.

load(
"//:build_defs.bzl",
"CPU",
"mozc_win_build_rule",
)

package(default_visibility = ["//visibility:private"])

mozc_win_build_rule(
name = "mozc_tool",
cpu = CPU.X64,
target = "//gui/tool:mozc_tool",
)

mozc_win_build_rule(
name = "mozc_renderer",
cpu = CPU.X64,
target = "//renderer/win32:win32_renderer_main",
)

mozc_win_build_rule(
name = "mozc_server",
cpu = CPU.X64,
target = "//server:mozc_server",
)

mozc_win_build_rule(
name = "mozc_broker",
cpu = CPU.X64,
target = "//win32/broker:mozc_broker_main",
)

mozc_win_build_rule(
name = "mozc_cache_service",
cpu = CPU.X64,
target = "//win32/cache_service:mozc_cache_service",
)

mozc_win_build_rule(
name = "mozc_tip32",
cpu = CPU.X86,
static_crt = True,
target = "//win32/tip:mozc_tip",
)

mozc_win_build_rule(
name = "mozc_tip64",
cpu = CPU.X64,
static_crt = True,
target = "//win32/tip:mozc_tip",
)

mozc_win_build_rule(
name = "custom_action",
cpu = CPU.X64,
static_crt = True,
target = "//win32/custom_action",
)

filegroup(
name = "executables",
srcs = [
":custom_action",
":mozc_broker",
":mozc_cache_service",
":mozc_renderer",
":mozc_server",
":mozc_tip32",
":mozc_tip64",
":mozc_tool",
],
target_compatible_with = ["@platforms//os:windows"],
)
1 change: 1 addition & 0 deletions src/win32/tip/BUILD.bazel
Original file line number Diff line number Diff line change
Expand Up @@ -48,6 +48,7 @@ mozc_cc_binary(
linkshared = True,
tags = MOZC_TAGS.WIN_ONLY,
target_compatible_with = ["@platforms//os:windows"],
visibility = ["//win32/installer:__subpackages__"],
win_def_file = "mozc_tip.def",
deps = [
":mozc_tip_resource",
Expand Down

0 comments on commit cd37f5a

Please sign in to comment.