If you are not sure what the following commands do, please check the descriptions below and make sure the operations before running them.
git clone https://github.com/google/mozc.git
cd mozc/src
export PYTHON_VENV_ROOT=${PWD}/python-venv
python3 -m venv ${PYTHON_VENV_ROOT}
source ${PYTHON_VENV_ROOT}/bin/activate
python3 -m pip install requests
python3 build_tools/update_deps.py
# CMake is also required to build Qt.
python3 build_tools/build_qt.py --release --confirm_license
MOZC_QT_PATH=${PWD}/third_party/qt bazel build package --config oss_macos --config release_build
open bazel-bin/mac/Mozc.pkg
💡 With the above build steps, the target CPU architecture of the binaries in
Mozc.pkg
is the same as the CPU architecture of the build environment.
That is, if you build Mozc on arm64 environment, Mozc.pkg
contains arm64
binaries. See the
"how to specify target CPU architectures"
section below about how to do cross build.
💡 You can also download Mozc.pkg
from GitHub Actions.
Check Build with GitHub Actions for details.
64-bit macOS 11 and later versions are supported.
Building on Mac requires the following software.
- Xcode
- Xcode 13 (macOS 13 SDK) or later
⚠️ Xcode Command Line Tools aren't sufficient.
- Bazel for Bazel build
- Python 3.9 or later with the following pip module.
requests
- CMake 3.18.4 or later (to build Qt6)
You can download Mozc source code as follows:
git clone https://github.com/google/mozc.git
cd mozc/src
Hereafter you can do all the operations without changing directory.
The following commands set up Python virtual environment under mozc/src/python-venv
.
export PYTHON_VENV_ROOT=${PWD}/python-venv
python3 -m venv ${PYTHON_VENV_ROOT}
source ${PYTHON_VENV_ROOT}/bin/activate
python3 -m pip install requests
Using mozc/src/python-venv
as the virtual environment location is not mandatory. Any other location should also work.
python build_tools/update_deps.py
In this step, additional build dependencies will be downloaded.
You can specify --noqt
option if you would like to use your own Qt binaries.
python3 build_tools/build_qt.py --release --confirm_license
Drop --confirm_license
option if you would like to manually confirm the Qt license.
You can also specify --debug
option to build debug version of Mozc.
python3 build_tools/build_qt.py --release --debug --confirm_license
You can also specify --macos_cpus
option, which has the same semantics as the
same name option in Bazel,
for cross-build including building a Universal macOS Binary.
# Building x86_64 binaries regardless of the host CPU architecture.
python3 build_tools/build_qt.py --release --debug --confirm_license --macos_cpus=x86_64
# Building Universal macOS Binary for both x86_64 and arm64.
python3 build_tools/build_qt.py --release --debug --confirm_license --macos_cpus=x86_64,arm64
You can skip this process if you have already installed Qt prebuilt binaries.
CMake is also required to build Qt. If you use brew
, you can install cmake
as follows.
brew install cmake
MOZC_QT_PATH=${PWD}/third_party/qt bazel build package --config oss_macos --config release_build
open bazel-bin/mac/Mozc.pkg
To build an Intel64 macOS binary regardless of the host CPU architecture.
python3 build_tools/build_qt.py --release --debug --confirm_license --macos_cpus=x64_64
MOZC_QT_PATH=${PWD}/third_party/qt bazel build package --config oss_macos --config release_build --macos_cpus=x64_64
open bazel-bin/mac/Mozc.pkg
To build a Universal macOS Binary both x86_64 and arm64.
python3 build_tools/build_qt.py --release --debug --confirm_license --macos_cpus=x86_64,arm64
MOZC_QT_PATH=${PWD}/third_party/qt bazel build package --config oss_macos --config release_build --macos_cpus=x86_64,arm64
open bazel-bin/mac/Mozc.pkg
MOZC_QT_PATH=${PWD}/third_party/qt bazel test ... --config oss_macos --build_tests_only -c dbg
See build Mozc in Docker for details.
You can modify variables in src/config.bzl
to fit your environment.
Note: ~
does not represent the home directory.
The exact path should be specified (e.g. MACOS_QT_PATH = "/Users/mozc/myqt"
).
Tips: the following command makes the specified file untracked by Git.
git update-index --assume-unchanged src/config.bzl
This command reverts the above change.
git update-index --no-assume-unchanged src/config.bzl
GitHub Actions steps are already set up in macos.yaml. With that, you can build and install Mozc with your own commit as follows.
- Fork https://github.com/google/mozc to your GitHub repository.
- Push a new commit to your own fork.
- Click "Actions" tab on your fork.
- Wait until the action triggered with your commit succeeds.
- Download
Mozc.pkg
from the action result page. - Install
Mozc.pkg
.
Files in the GitHub Actions page remain available up to 90 days.
You can also find Mozc Installers for macOS in google/mozc repository. Please keep in mind that Mozc is not an officially supported Google product, even if downloaded from https://github.com/google/mozc/.
- Sign in GitHub.
- Check recent successfull macOS runs in google/mozc repository.
- Find action in last 90 days and click it.
- Download
Mozc.pkg
from the action result page.
GYP build is under maintenance mode. Bazel build is recommended.
While the existing targets are supported by both GYP and Bazel as much as possible, new targets will be supported by Bazel only.
Targets only for Bazel:
- AUX dictionary (//data/dictionary_oss:aux_dictionary)
- Filtered dictionary (//data/dictionary_oss:filtered_dictionary)
- SVS character input instead of CJK compatibility ideographs (//rewriter:single_kanji_rewriter)
- Zip code conversion (//server:mozc_server)
For GYP build, Ninja and Packages are also required.
- Ninja for GYP build
- Packages for installer
- Python 3.9 or later with the following pip module.
requests
six
First, you'll need to generate Xcode project using a tool called GYP.
GYP_DEFINES="mac_sdk=13.0 mac_deployment_target=11.0" python3 build_mozc.py gyp
You can customize the SDK version target OS version here.
Then, build Mozc.app and necessary files:
python3 build_mozc.py build -c Release mac/mac.gyp:GoogleJapaneseInput
If you want to build Mozc without Qt dependencies, specify --noqt
option as follows. Note that GUI tools will be built as a mock version that does nothing if you specify --noqt
.
GYP_DEFINES="mac_sdk=13.0 mac_deployment_target=11.0" python3 build_mozc.py gyp --noqt
python3 build_mozc.py build -c Release mac/mac.gyp:GoogleJapaneseInput
Executables are written in out_mac/Release
for Release builds, and out_mac/Debug
for Debug builds. For instance, you'll have out_mac/Release/Mozc.app
once the build finishes successfully in the Release mode.
GUI tools executables are linked with the libraries in third_party/qt
. You might want to change it with install_name_tool
.
You can also build an installer.
GYP_DEFINES="mac_sdk=13.0 mac_deployment_target=11.0" python3 build_mozc.py gyp
python3 build_mozc.py build -c Release :Installer
To clean up the tree, execute the following. This will remove executables and intermediate files like object files, generated source files, project files, etc.
python3 build_mozc.py clean
Without building an installer .pkg file, you can just place the created Mozc.app into /Library/Input Methods
, and mac/installer/LaunchAgents/org.mozc.inputmethod.Japanese.Converter.plist
and org.mozc.inputmethod.Japanese.Renderer.plist
into /Library/LaunchAgents
, and then log in again. Then it works well.
sudo cp -r out_mac/Release/Mozc.app /Library/Input\ Methods/
sudo cp mac/installer/LaunchAgents/org.mozc.inputmethod.Japanese.Converter.plist /Library/LaunchAgents
sudo cp mac/installer/LaunchAgents/org.mozc.inputmethod.Japanese.Renderer.plist /Library/LaunchAgents