| # Copyright 2010-2015, 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. |
| |
| { |
| 'variables': { |
| 'relative_dir': 'mac', |
| 'gen_out_dir': '<(SHARED_INTERMEDIATE_DIR)/<(relative_dir)', |
| 'build_type': 'stable', |
| }, |
| # Add a dummy target because at least one target is needed in a gyp file. |
| 'targets': [ |
| { |
| 'target_name': 'mac_test', |
| 'type': 'executable', |
| 'dependencies': [ |
| '../base/base.gyp:base', |
| '../client/client.gyp:client', |
| '../client/client.gyp:client_mock', |
| '../config/config.gyp:config_protocol', |
| '../renderer/renderer.gyp:renderer_client', |
| '../renderer/renderer.gyp:renderer_protocol', |
| '../session/session_base.gyp:ime_switch_util', |
| '../session/session_base.gyp:session_protocol', |
| '../testing/testing.gyp:gtest_main', |
| 'gen_key_mappings', |
| ], |
| 'variables': { |
| 'test_size': 'small', |
| }, |
| 'conditions': [ |
| ['OS=="mac"', { |
| 'sources': [ |
| 'GoogleJapaneseInputController.mm', |
| 'GoogleJapaneseInputController_test.mm', |
| 'GoogleJapaneseInputServer.mm', |
| 'GoogleJapaneseInputServer_test.mm', |
| 'KeyCodeMap.mm', |
| 'KeyCodeMap_test.mm', |
| ], |
| 'link_settings': { |
| 'libraries': [ |
| '$(SDKROOT)/System/Library/Frameworks/InputMethodKit.framework', |
| ], |
| }, |
| 'xcode_settings': { |
| 'GCC_ENABLE_CPP_EXCEPTIONS': 'YES', |
| }, |
| }], |
| ['OS=="win"', { |
| 'msvs_settings': { |
| 'VCLinkerTool': { |
| # W/O this flag, an error occurs during building mac_test |
| # on Windows. |
| 'GenerateManifest': 'false', |
| }, |
| }, |
| }], |
| ], |
| }, |
| # Test cases meta target: this target is referred from gyp/tests.gyp |
| { |
| 'target_name': 'mac_all_test', |
| 'type': 'none', |
| 'conditions': [ |
| ['OS=="mac"', { |
| 'dependencies': [ |
| 'mac_test', |
| ], |
| },], |
| ], |
| }, |
| { |
| 'target_name': 'gen_key_mappings', |
| 'type': 'none', |
| 'actions': [ |
| { |
| 'action_name': 'mac-kana', |
| 'variables': { |
| 'input_file': '../data/preedit/mac-kana.tsv', |
| 'output_file': '<(gen_out_dir)/init_kanamap.h', |
| }, |
| 'inputs': [ |
| '<(input_file)', |
| ], |
| 'outputs': [ |
| '<(output_file)', |
| ], |
| 'action': [ |
| 'python', '../build_tools/redirect.py', |
| '<(output_file)', |
| 'generate_mapping.py', |
| '--mapname=KanaMap', |
| '--result_type=const char *', |
| '--filename=<(input_file)', |
| ], |
| }, |
| { |
| 'action_name': 'mac-specialkeys', |
| 'variables': { |
| 'input_file': '../data/preedit/mac-specialkeys.tsv', |
| 'output_file': '<(gen_out_dir)/init_specialkeymap.h', |
| }, |
| 'inputs': [ |
| '<(input_file)', |
| ], |
| 'outputs': [ |
| '<(output_file)', |
| ], |
| 'action': [ |
| 'python', '../build_tools/redirect.py', |
| '<(output_file)', |
| 'generate_mapping.py', |
| '--mapname=SpecialKeyMap', |
| '--result_type=KeyEvent::SpecialKey', |
| '--filename=<(input_file)', |
| ], |
| }, |
| { |
| 'action_name': 'mac-specialchars', |
| 'variables': { |
| 'input_file': '../data/preedit/mac-specialchars.tsv', |
| 'output_file': '<(gen_out_dir)/init_specialcharmap.h', |
| }, |
| 'inputs': [ |
| '<(input_file)', |
| ], |
| 'outputs': [ |
| '<(output_file)', |
| ], |
| 'action': [ |
| 'python', '../build_tools/redirect.py', |
| '<(output_file)', |
| 'generate_mapping.py', |
| '--mapname=SpecialCharMap', |
| '--key_type=unichar', |
| '--result_type=KeyEvent::SpecialKey', |
| '--filename=<(input_file)', |
| ], |
| }, |
| ], |
| }, |
| ], |
| 'conditions': [ |
| ['OS=="mac"', { |
| 'conditions': [ |
| ['channel_dev==1', { |
| 'variables': { |
| 'build_type': 'dev', |
| }, |
| },], |
| ], |
| 'targets': [ |
| { |
| 'target_name': 'ActivatePane', |
| 'type': 'loadable_module', |
| 'mac_bundle': 1, |
| 'sources': [ |
| 'ActivatePane/ActivatePane.mm', |
| ], |
| 'dependencies': [ |
| 'gen_client_info_plist', |
| ], |
| 'mac_bundle_resources': [ |
| 'ActivatePane/ActivatePane.xib', |
| '<(gen_out_dir)/ActivatePane/English.lproj/Localizable.strings', |
| '<(gen_out_dir)/ActivatePane/Japanese.lproj/Localizable.strings', |
| ], |
| 'xcode_settings': { |
| 'INFOPLIST_FILE': '<(gen_out_dir)/ActivatePane/Info.plist', |
| }, |
| 'link_settings': { |
| 'libraries': [ |
| '$(SDKROOT)/System/Library/Frameworks/Carbon.framework', |
| '$(SDKROOT)/System/Library/Frameworks/InstallerPlugins.framework', |
| ], |
| }, |
| }, |
| { |
| 'target_name': 'DevConfirmPane', |
| 'type': 'loadable_module', |
| 'mac_bundle': 1, |
| 'sources': [ |
| 'DevConfirmPane/DevConfirmPane.mm', |
| ], |
| 'mac_bundle_resources': [ |
| 'DevConfirmPane/DevConfirmPane.xib', |
| 'DevConfirmPane/English.lproj/Localizable.strings', |
| 'DevConfirmPane/Japanese.lproj/Localizable.strings', |
| ], |
| 'xcode_settings': { |
| 'INFOPLIST_FILE': 'DevConfirmPane/Info.plist', |
| }, |
| 'link_settings': { |
| 'libraries': [ |
| '$(SDKROOT)/System/Library/Frameworks/Carbon.framework', |
| '$(SDKROOT)/System/Library/Frameworks/InstallerPlugins.framework', |
| ], |
| }, |
| }, |
| { |
| 'target_name': 'UninstallGoogleJapaneseInput', |
| 'type': 'executable', |
| 'mac_bundle': 1, |
| 'sources': [ |
| 'Uninstaller/DialogsController.mm', |
| 'Uninstaller/Uninstaller.mm', |
| 'Uninstaller/Uninstaller_main.mm', |
| ], |
| 'product_name': 'Uninstall<(branding)', |
| 'dependencies': [ |
| '../base/base.gyp:base', |
| 'gen_client_info_plist', |
| ], |
| 'mac_bundle_resources': [ |
| '../data/images/mac/product_icon.icns', |
| 'Uninstaller/English.lproj/Dialogs.xib', |
| 'Uninstaller/English.lproj/InfoPlist.strings', |
| 'Uninstaller/Japanese.lproj/Dialogs.xib', |
| 'Uninstaller/Japanese.lproj/InfoPlist.strings', |
| ], |
| 'xcode_settings': { |
| 'INFOPLIST_FILE': '<(gen_out_dir)/Uninstaller/Info.plist', |
| }, |
| 'link_settings': { |
| 'libraries': [ |
| '$(SDKROOT)/System/Library/Frameworks/Carbon.framework', |
| '$(SDKROOT)/System/Library/Frameworks/Security.framework', |
| ], |
| }, |
| }, |
| { |
| 'target_name': 'GoogleJapaneseInput', |
| 'type': 'executable', |
| 'mac_bundle': 1, |
| 'sources': [ |
| 'GoogleJapaneseInputController.mm', |
| 'GoogleJapaneseInputServer.mm', |
| 'KeyCodeMap.mm', |
| 'main.mm', |
| ], |
| 'product_name': '<(branding)', |
| 'dependencies': [ |
| '../base/base.gyp:crash_report_handler', |
| '../client/client.gyp:client', |
| '../config/config.gyp:stats_config_util', |
| '../gui/gui.gyp:mozc_tool', |
| '../gui/gui.gyp:about_dialog_mac', |
| '../gui/gui.gyp:character_palette_mac', |
| '../gui/gui.gyp:config_dialog_mac', |
| '../gui/gui.gyp:dictionary_tool_mac', |
| '../gui/gui.gyp:error_message_dialog_mac', |
| '../gui/gui.gyp:hand_writing_mac', |
| '../gui/gui.gyp:prelauncher_mac', |
| '../gui/gui.gyp:word_register_dialog_mac', |
| '../renderer/renderer.gyp:mozc_renderer', |
| '../renderer/renderer.gyp:renderer_client', |
| '../server/server.gyp:mozc_server', |
| '../session/session_base.gyp:ime_switch_util', |
| 'gen_client_info_plist', |
| 'gen_key_mappings', |
| ], |
| 'mac_bundle_resources': [ |
| '../data/images/mac/direct.tiff', |
| '../data/images/mac/full_ascii.tiff', |
| '../data/images/mac/full_katakana.tiff', |
| '../data/images/mac/half_ascii.tiff', |
| '../data/images/mac/half_katakana.tiff', |
| '../data/images/mac/hiragana.tiff', |
| '../data/images/mac/product_icon.icns', |
| '../data/installer/credits_en.html', |
| '../data/installer/credits_ja.html', |
| 'English.lproj/Config.xib', |
| '<(gen_out_dir)/English.lproj/InfoPlist.strings', |
| 'Japanese.lproj/Config.xib', |
| '<(gen_out_dir)/Japanese.lproj/InfoPlist.strings', |
| ], |
| 'xcode_settings': { |
| 'INFOPLIST_FILE': '<(gen_out_dir)/Info.plist', |
| 'GCC_ENABLE_CPP_EXCEPTIONS': 'YES', |
| }, |
| 'copies': [ |
| { |
| 'files': [ |
| '<(PRODUCT_DIR)/<(branding)Converter.app', |
| '<(PRODUCT_DIR)/<(branding)Prelauncher.app', |
| '<(PRODUCT_DIR)/<(branding)Renderer.app', |
| '<(PRODUCT_DIR)/<(branding)Tool.app', |
| '<(PRODUCT_DIR)/AboutDialog.app', |
| '<(PRODUCT_DIR)/CharacterPalette.app', |
| '<(PRODUCT_DIR)/ConfigDialog.app', |
| '<(PRODUCT_DIR)/DictionaryTool.app', |
| '<(PRODUCT_DIR)/ErrorMessageDialog.app', |
| '<(PRODUCT_DIR)/HandWriting.app', |
| '<(PRODUCT_DIR)/WordRegisterDialog.app', |
| ], |
| 'destination': '<(PRODUCT_DIR)/<(branding).app/Contents/Resources', |
| }, |
| ], |
| 'link_settings': { |
| 'libraries': [ |
| '$(SDKROOT)/System/Library/Frameworks/Carbon.framework', |
| '$(SDKROOT)/System/Library/Frameworks/InputMethodKit.framework', |
| ], |
| }, |
| 'variables': { |
| # This product name is used in postbuilds_mac.gypi. |
| 'product_name': '<(branding)', |
| }, |
| 'includes': [ |
| '../gyp/postbuilds_mac.gypi', |
| ], |
| }, |
| { |
| 'target_name': 'gen_client_info_plist', |
| 'type': 'none', |
| 'actions': [ |
| { |
| 'action_name': 'generate', |
| 'inputs': [ |
| 'Info.plist', |
| ], |
| 'outputs': [ |
| '<(gen_out_dir)/Info.plist', |
| ], |
| 'action': [ |
| 'python', '../build_tools/tweak_info_plist.py', |
| '--output', '<(gen_out_dir)/Info.plist', |
| '--input', 'Info.plist', |
| '--version_file', '../mozc_version.txt', |
| '--branding', '<(branding)', |
| ], |
| }, |
| { |
| 'action_name': 'generateActivatePaneInfoPlist', |
| 'inputs': [ |
| 'ActivatePane/Info.plist', |
| ], |
| 'outputs': [ |
| '<(gen_out_dir)/ActivatePane/Info.plist', |
| ], |
| 'action': [ |
| 'python', '../build_tools/tweak_info_plist.py', |
| '--output', '<(gen_out_dir)/ActivatePane/Info.plist', |
| '--input', 'ActivatePane/Info.plist', |
| '--version_file', '../mozc_version.txt', |
| '--branding', '<(branding)', |
| ], |
| }, |
| { |
| 'action_name': 'generateUninstallerInfoPlist', |
| 'inputs': [ |
| 'Uninstaller/Info.plist', |
| ], |
| 'outputs': [ |
| '<(gen_out_dir)/Uninstaller/Info.plist', |
| ], |
| 'action': [ |
| 'python', '../build_tools/tweak_info_plist.py', |
| '--output', '<(gen_out_dir)/Uninstaller/Info.plist', |
| '--input', 'Uninstaller/Info.plist', |
| '--version_file', '../mozc_version.txt', |
| '--branding', '<(branding)', |
| ], |
| }, |
| { |
| 'action_name': 'generate_ActivatePane_english_strings', |
| 'inputs': [ |
| 'ActivatePane/English.lproj/Localizable.strings', |
| ], |
| 'outputs': [ |
| '<(gen_out_dir)/ActivatePane/English.lproj/Localizable.strings', |
| ], |
| 'action': [ |
| 'python', '../build_tools/tweak_info_plist_strings.py', |
| '--output', |
| '<(gen_out_dir)/ActivatePane/English.lproj/Localizable.strings', |
| '--input', |
| 'ActivatePane/English.lproj/Localizable.strings', |
| '--branding', '<(branding)', |
| ], |
| }, |
| { |
| 'action_name': 'generate_ActivatePane_japanese_strings', |
| 'inputs': [ |
| 'ActivatePane/Japanese.lproj/Localizable.strings', |
| ], |
| 'outputs': [ |
| '<(gen_out_dir)/ActivatePane/Japanese.lproj/Localizable.strings', |
| ], |
| 'action': [ |
| 'python', '../build_tools/tweak_info_plist_strings.py', |
| '--output', |
| '<(gen_out_dir)/ActivatePane/Japanese.lproj/Localizable.strings', |
| '--input', |
| 'ActivatePane/Japanese.lproj/Localizable.strings', |
| '--branding', '<(branding)', |
| ], |
| }, |
| { |
| 'action_name': 'generate_english_strings', |
| 'inputs': [ |
| 'English.lproj/InfoPlist.strings', |
| ], |
| 'outputs': [ |
| '<(gen_out_dir)/English.lproj/InfoPlist.strings', |
| ], |
| 'action': [ |
| 'python', '../build_tools/tweak_info_plist_strings.py', |
| '--output', '<(gen_out_dir)/English.lproj/InfoPlist.strings', |
| '--input', 'English.lproj/InfoPlist.strings', |
| '--branding', '<(branding)', |
| ], |
| }, |
| { |
| 'action_name': 'generate_japanese_strings', |
| 'inputs': [ |
| 'Japanese.lproj/InfoPlist.strings', |
| ], |
| 'outputs': [ |
| '<(gen_out_dir)/Japanese.lproj/InfoPlist.strings', |
| ], |
| 'action': [ |
| 'python', '../build_tools/tweak_info_plist_strings.py', |
| '--output', '<(gen_out_dir)/Japanese.lproj/InfoPlist.strings', |
| '--input', 'Japanese.lproj/InfoPlist.strings', |
| '--branding', '<(branding)', |
| ], |
| }, |
| ], |
| }, |
| { |
| 'target_name': 'gen_launchd_confs', |
| 'type': 'none', |
| 'actions': [ |
| { |
| 'action_name': 'tweak_converter_launchd_conf', |
| 'inputs': [ '../data/mac/com.google.inputmethod.Japanese.Converter.plist', ], |
| 'outputs': [ '<(gen_out_dir)/<(domain_prefix).inputmethod.Japanese.Converter.plist' ], |
| 'action': [ |
| 'python', '../build_tools/tweak_info_plist.py', |
| '--output', '<(gen_out_dir)/<(domain_prefix).inputmethod.Japanese.Converter.plist', |
| '--input', '../data/mac/com.google.inputmethod.Japanese.Converter.plist', |
| '--version_file', '../mozc_version.txt', |
| '--branding', '<(branding)', |
| ], |
| }, |
| { |
| 'action_name': 'tweak_renderer_launchd_conf', |
| 'inputs': [ '../data/mac/com.google.inputmethod.Japanese.Renderer.plist', ], |
| 'outputs': [ '<(gen_out_dir)/<(domain_prefix).inputmethod.Japanese.Renderer.plist' ], |
| 'action': [ |
| 'python', '../build_tools/tweak_info_plist.py', |
| '--output', '<(gen_out_dir)/<(domain_prefix).inputmethod.Japanese.Renderer.plist', |
| '--input', '../data/mac/com.google.inputmethod.Japanese.Renderer.plist', |
| '--version_file', '../mozc_version.txt', |
| '--branding', '<(branding)', |
| ], |
| }, |
| ], |
| 'conditions': [ |
| ['branding=="GoogleJapaneseInput"', { |
| 'variables': { |
| 'domain_prefix': 'com.google', |
| }, |
| }, # else |
| { |
| 'variables': { |
| 'domain_prefix': 'org.mozc', |
| }, |
| }], |
| ], |
| }, |
| { |
| 'target_name': 'gen_packproj_files', |
| 'type': 'none', |
| 'actions': [ |
| { |
| 'action_name': 'tweak_preflight', |
| 'inputs': [ 'installer/preflight_template.sh', ], |
| 'outputs': [ '<(gen_out_dir)/preflight.sh' ], |
| 'action': [ |
| 'python', '../build_tools/tweak_macinstaller_script.py', |
| '--output', '<(gen_out_dir)/preflight.sh', |
| '--input', 'installer/preflight_template.sh', |
| '--version_file', '../mozc_version.txt', |
| '--build_type', '<(build_type)', |
| ], |
| }, |
| { |
| 'action_name': 'tweak_postflight', |
| 'inputs': [ 'installer/postflight_template.sh', ], |
| 'outputs': [ '<(gen_out_dir)/postflight.sh' ], |
| 'action': [ |
| 'python', '../build_tools/tweak_macinstaller_script.py', |
| '--output', '<(gen_out_dir)/postflight.sh', |
| '--input', 'installer/postflight_template.sh', |
| '--version_file', '../mozc_version.txt', |
| '--build_type', '<(build_type)', |
| ], |
| }, |
| { |
| 'action_name': 'tweak_pkgproj', |
| 'inputs': [ 'installer/<(branding)_template.pkgproj', ], |
| 'outputs': [ '<(gen_out_dir)/<(branding).pkgproj' ], |
| 'action': [ |
| 'python', '../build_tools/tweak_pkgproj.py', |
| '--output', '<(gen_out_dir)/<(branding).pkgproj', |
| '--input', 'installer/<(branding)_template.pkgproj', |
| '--version_file', '../mozc_version.txt', |
| '--gen_out_dir', '<(gen_out_dir)', |
| '--build_dir', '$(BUILT_PRODUCTS_DIR)', |
| '--keystone_dir', '<(mac_dir)/Releases/Keystone', |
| '--build_type', '<(build_type)', |
| ], |
| }, |
| ], |
| }, |
| # Installer-related actions and targets |
| { |
| 'target_name': 'Installer', |
| 'type': 'none', |
| 'actions': [ |
| { |
| 'action_name': 'generate', |
| 'inputs': [ |
| '$(BUILT_PRODUCTS_DIR)/ActivatePane.bundle', |
| '$(BUILT_PRODUCTS_DIR)/<(branding).app', |
| '$(BUILT_PRODUCTS_DIR)/Uninstall<(branding).app', |
| '<(gen_out_dir)/<(branding).pkgproj', |
| ], |
| 'outputs': [ |
| '$(BUILT_PRODUCTS_DIR)/<(branding).pkg', |
| ], |
| 'action': [ |
| 'python', '../build_tools/build_and_sign_pkg_mac.py', |
| '--pkgproj', '<(gen_out_dir)/<(branding).pkgproj', |
| ], |
| 'conditions': [ |
| ['branding=="GoogleJapaneseInput"', { |
| 'inputs': [ |
| '$(BUILT_PRODUCTS_DIR)/DevConfirmPane.bundle', |
| ], |
| 'action': [ |
| '--signpkg', '$(BUILT_PRODUCTS_DIR)/<(branding).pkg', |
| ], |
| }], |
| ], |
| }, |
| ], |
| 'dependencies': [ |
| 'ActivatePane', |
| 'GoogleJapaneseInput', |
| 'UninstallGoogleJapaneseInput', |
| 'gen_packproj_files', |
| 'gen_launchd_confs', |
| ], |
| 'conditions': [ |
| ['branding=="GoogleJapaneseInput"', { |
| 'dependencies': [ |
| 'DevConfirmPane', |
| 'codesign_client', |
| ], |
| }], |
| ], |
| }, |
| ], |
| }], |
| ], |
| } |