electron/atom.gyp

577 строки
19 KiB
Plaintext
Исходник Обычный вид История

2013-04-12 05:46:58 +04:00
{
'variables': {
'project_name': 'atom',
'product_name': 'Atom',
'framework_name': 'Atom Framework',
2013-04-12 05:46:58 +04:00
'app_sources': [
'app/atom_main.cc',
'app/atom_main.h',
2013-04-12 05:46:58 +04:00
],
2013-05-14 11:50:33 +04:00
'bundle_sources': [
'browser/mac/atom.icns',
],
2013-04-14 18:48:35 +04:00
'coffee_sources': [
2013-05-02 20:05:09 +04:00
'browser/api/lib/app.coffee',
'browser/api/lib/atom-delegate.coffee',
2013-06-03 13:59:34 +04:00
'browser/api/lib/auto-updater.coffee',
'browser/api/lib/browser-window.coffee',
'browser/api/lib/dialog.coffee',
'browser/api/lib/ipc.coffee',
2013-05-14 15:24:52 +04:00
'browser/api/lib/menu.coffee',
'browser/api/lib/menu-item.coffee',
2013-08-03 11:58:59 +04:00
'browser/api/lib/power-monitor.coffee',
2013-08-24 11:26:10 +04:00
'browser/api/lib/protocol.coffee',
2013-04-14 18:48:35 +04:00
'browser/atom/atom.coffee',
'browser/atom/objects-registry.coffee',
'browser/atom/rpc-server.coffee',
'common/api/lib/callbacks-registry.coffee',
2013-04-30 12:10:25 +04:00
'common/api/lib/clipboard.coffee',
'common/api/lib/crash-reporter.coffee',
'common/api/lib/id-weak-map.coffee',
'common/api/lib/shell.coffee',
'renderer/api/lib/ipc.coffee',
'renderer/api/lib/remote.coffee',
2013-04-14 18:48:35 +04:00
],
2013-04-12 05:46:58 +04:00
'lib_sources': [
'app/atom_main_delegate.cc',
'app/atom_main_delegate.h',
'app/atom_main_delegate_mac.mm',
2013-05-02 20:05:09 +04:00
'browser/api/atom_api_app.cc',
'browser/api/atom_api_app.h',
2013-06-03 13:59:34 +04:00
'browser/api/atom_api_auto_updater.cc',
'browser/api/atom_api_auto_updater.h',
'browser/api/atom_api_browser_ipc.cc',
'browser/api/atom_api_browser_ipc.h',
'browser/api/atom_api_dialog.cc',
'browser/api/atom_api_dialog.h',
2013-04-18 17:42:20 +04:00
'browser/api/atom_api_event.cc',
'browser/api/atom_api_event.h',
'browser/api/atom_api_event_emitter.cc',
'browser/api/atom_api_event_emitter.h',
2013-05-06 16:27:09 +04:00
'browser/api/atom_api_menu.cc',
'browser/api/atom_api_menu.h',
'browser/api/atom_api_menu_mac.h',
'browser/api/atom_api_menu_mac.mm',
'browser/api/atom_api_menu_win.cc',
'browser/api/atom_api_menu_win.h',
2013-08-03 11:58:59 +04:00
'browser/api/atom_api_power_monitor.cc',
'browser/api/atom_api_power_monitor.h',
2013-08-24 11:26:10 +04:00
'browser/api/atom_api_protocol.cc',
'browser/api/atom_api_protocol.h',
'browser/api/atom_api_window.cc',
'browser/api/atom_api_window.h',
'browser/api/atom_browser_bindings.cc',
'browser/api/atom_browser_bindings.h',
'browser/auto_updater.cc',
'browser/auto_updater.h',
'browser/auto_updater_delegate.cc',
'browser/auto_updater_delegate.h',
'browser/auto_updater_mac.mm',
'browser/auto_updater_win.cc',
2013-05-02 19:03:14 +04:00
'browser/atom_application_mac.h',
'browser/atom_application_mac.mm',
'browser/atom_application_delegate_mac.h',
'browser/atom_application_delegate_mac.mm',
2013-04-12 05:46:58 +04:00
'browser/atom_browser_client.cc',
'browser/atom_browser_client.h',
'browser/atom_browser_context.cc',
'browser/atom_browser_context.h',
2013-04-12 05:46:58 +04:00
'browser/atom_browser_main_parts.cc',
'browser/atom_browser_main_parts.h',
'browser/atom_browser_main_parts_mac.mm',
'browser/atom_javascript_dialog_manager.cc',
'browser/atom_javascript_dialog_manager.h',
'browser/browser.cc',
'browser/browser.h',
'browser/browser_mac.mm',
'browser/browser_win.cc',
'browser/browser_observer.h',
2013-04-12 11:04:46 +04:00
'browser/native_window.cc',
'browser/native_window.h',
'browser/native_window_mac.h',
'browser/native_window_mac.mm',
'browser/native_window_win.cc',
'browser/native_window_win.h',
2013-04-18 16:50:58 +04:00
'browser/native_window_observer.h',
'browser/net/adapter_request_job.cc',
'browser/net/adapter_request_job.h',
'browser/net/atom_url_request_context_getter.cc',
'browser/net/atom_url_request_context_getter.h',
'browser/net/atom_url_request_job_factory.cc',
'browser/net/atom_url_request_job_factory.h',
'browser/net/url_request_string_job.cc',
'browser/net/url_request_string_job.h',
2013-08-13 13:07:25 +04:00
'browser/ui/accelerator_util.cc',
'browser/ui/accelerator_util.h',
'browser/ui/accelerator_util_mac.mm',
'browser/ui/accelerator_util_win.cc',
'browser/ui/atom_event_processing_window.h',
'browser/ui/atom_event_processing_window.mm',
'browser/ui/atom_menu_controller_mac.h',
'browser/ui/atom_menu_controller_mac.mm',
'browser/ui/file_dialog.h',
'browser/ui/file_dialog_mac.mm',
'browser/ui/file_dialog_win.cc',
'browser/ui/message_box.h',
'browser/ui/message_box_mac.mm',
'browser/ui/message_box_win.cc',
'browser/ui/nsalert_synchronous_sheet_mac.h',
'browser/ui/nsalert_synchronous_sheet_mac.mm',
'browser/ui/win/menu_2.cc',
'browser/ui/win/menu_2.h',
'browser/ui/win/native_menu_win.cc',
'browser/ui/win/native_menu_win.h',
'browser/window_list.cc',
'browser/window_list.h',
'browser/window_list_observer.h',
'common/api/api_messages.cc',
'common/api/api_messages.h',
2013-04-30 12:10:25 +04:00
'common/api/atom_api_clipboard.cc',
'common/api/atom_api_clipboard.h',
'common/api/atom_api_crash_reporter.cc',
'common/api/atom_api_crash_reporter.h',
2013-04-25 17:46:04 +04:00
'common/api/atom_api_id_weak_map.cc',
'common/api/atom_api_id_weak_map.h',
'common/api/atom_api_shell.cc',
'common/api/atom_api_shell.h',
'common/api/atom_api_v8_util.cc',
'common/api/atom_bindings.cc',
'common/api/atom_bindings.h',
'common/api/atom_extensions.cc',
'common/api/atom_extensions.h',
'common/api/object_life_monitor.cc',
'common/api/object_life_monitor.h',
'common/crash_reporter/crash_reporter.cc',
'common/crash_reporter/crash_reporter.h',
'common/crash_reporter/crash_reporter_mac.h',
'common/crash_reporter/crash_reporter_mac.mm',
'common/crash_reporter/crash_reporter_win.cc',
2013-11-14 09:42:28 +04:00
'common/crash_reporter/crash_reporter_win.h',
2013-11-23 16:26:47 +04:00
'common/crash_reporter/win/crash_service.cc',
'common/crash_reporter/win/crash_service.h',
'common/crash_reporter/win/crash_service_main.cc',
'common/crash_reporter/win/crash_service_main.h',
'common/draggable_region.cc',
'common/draggable_region.h',
2013-04-13 14:39:09 +04:00
'common/node_bindings.cc',
'common/node_bindings.h',
'common/node_bindings_mac.cc',
'common/node_bindings_mac.h',
'common/node_bindings_win.cc',
'common/node_bindings_win.h',
2013-04-12 11:04:46 +04:00
'common/options_switches.cc',
'common/options_switches.h',
'common/platform_util.h',
'common/platform_util_mac.mm',
'common/platform_util_win.cc',
'common/v8_conversions.h',
'common/v8_value_converter_impl.cc',
'common/v8_value_converter_impl.h',
'renderer/api/atom_api_renderer_ipc.cc',
'renderer/api/atom_api_renderer_ipc.h',
2013-04-22 12:27:34 +04:00
'renderer/api/atom_renderer_bindings.cc',
'renderer/api/atom_renderer_bindings.h',
2013-04-12 05:46:58 +04:00
'renderer/atom_render_view_observer.cc',
'renderer/atom_render_view_observer.h',
'renderer/atom_renderer_client.cc',
'renderer/atom_renderer_client.h',
],
'framework_sources': [
'app/atom_library_main.cc',
'app/atom_library_main.h',
],
2013-07-06 04:29:08 +04:00
'conditions': [
['OS=="win"', {
'app_sources': [
'app/win/resource.h',
2013-11-07 05:55:59 +04:00
'app/win/atom.ico',
2013-07-06 04:29:08 +04:00
'app/win/atom.rc',
'<(libchromiumcontent_src_dir)/content/app/startup_helper_win.cc',
],
}], # OS=="win"
],
2013-06-01 10:29:35 +04:00
'fix_framework_link_command': [
'install_name_tool',
'-change',
2013-06-02 11:48:08 +04:00
'@loader_path/../Frameworks/Sparkle.framework/Versions/A/Sparkle',
'@rpath/Sparkle.framework/Versions/A/Sparkle',
2013-06-01 10:29:35 +04:00
'${BUILT_PRODUCTS_DIR}/${EXECUTABLE_PATH}'
],
'atom_source_root': '<!(python tools/atom_source_root.py)',
2013-04-12 05:46:58 +04:00
},
2013-06-01 10:29:35 +04:00
'target_defaults': {
2013-06-19 17:31:57 +04:00
'mac_framework_dirs': [
'<(atom_source_root)/frameworks',
2013-06-19 17:31:57 +04:00
],
'includes': [
# Rules for excluding e.g. foo_win.cc from the build on non-Windows.
'filename_rules.gypi',
],
'configurations': {
'Debug': {
'defines': [
'DEBUG',
],
},
},
2013-06-01 10:29:35 +04:00
},
2013-04-12 05:46:58 +04:00
'targets': [
{
'target_name': '<(project_name)',
'type': 'executable',
'dependencies': [
2013-04-14 18:48:35 +04:00
'generated_sources',
2013-04-12 05:46:58 +04:00
'<(project_name)_lib',
],
'sources': [
'<@(app_sources)',
],
'include_dirs': [
'.',
],
'conditions': [
['OS=="mac"', {
'product_name': '<(product_name)',
'mac_bundle': 1,
'dependencies!': [
'<(project_name)_lib',
],
'dependencies': [
'<(project_name)_framework',
'<(project_name)_helper',
],
'xcode_settings': {
'INFOPLIST_FILE': 'browser/mac/Info.plist',
2013-06-19 17:31:57 +04:00
'LD_RUNPATH_SEARCH_PATHS': [
'@executable_path/../Frameworks',
],
2013-04-12 05:46:58 +04:00
},
2013-07-06 04:29:08 +04:00
'mac_bundle_resources': [
'<@(bundle_sources)',
],
2013-04-12 05:46:58 +04:00
'copies': [
{
'destination': '<(PRODUCT_DIR)/<(product_name).app/Contents/Frameworks',
'files': [
'<(PRODUCT_DIR)/<(product_name) Helper.app',
'<(PRODUCT_DIR)/<(framework_name).framework',
2013-06-02 11:48:08 +04:00
'frameworks/Sparkle.framework',
2013-04-12 05:46:58 +04:00
],
},
2013-04-14 19:24:46 +04:00
{
2013-04-15 11:39:54 +04:00
'destination': '<(PRODUCT_DIR)/<(product_name).app/Contents/Resources/browser',
2013-04-14 19:24:46 +04:00
'files': [
'browser/default_app',
],
},
2013-04-12 05:46:58 +04:00
],
'postbuilds': [
2013-06-01 10:29:35 +04:00
{
'postbuild_name': 'Fix Framework Link',
'action': [
'<@(fix_framework_link_command)',
],
},
2013-04-12 05:46:58 +04:00
{
# This postbuid step is responsible for creating the following
# helpers:
#
# <(product_name) EH.app and <(product_name) NP.app are created
# from <(product_name).app.
#
# The EH helper is marked for an executable heap. The NP helper
# is marked for no PIE (ASLR).
'postbuild_name': 'Make More Helpers',
'action': [
'vendor/brightray/tools/mac/make_more_helpers.sh',
'Frameworks',
'<(product_name)',
],
},
]
2013-07-06 04:29:08 +04:00
}], # OS=="mac"
['OS=="win"', {
'copies': [
{
'destination': '<(PRODUCT_DIR)',
'files': [
'<(libchromiumcontent_library_dir)/chromiumcontent.dll',
'<(libchromiumcontent_library_dir)/ffmpegsumo.dll',
2013-07-06 04:29:08 +04:00
'<(libchromiumcontent_library_dir)/icudt.dll',
'<(libchromiumcontent_library_dir)/libGLESv2.dll',
'<(libchromiumcontent_resources_dir)/content_shell.pak',
2013-07-06 04:29:08 +04:00
],
},
{
'destination': '<(PRODUCT_DIR)/resources/browser',
'files': [
'browser/default_app',
]
},
],
}], # OS=="win"
2013-04-12 05:46:58 +04:00
],
}, # target <(project_name)
2013-04-12 05:46:58 +04:00
{
'target_name': '<(project_name)_lib',
'type': 'static_library',
'dependencies': [
'vendor/brightray/brightray.gyp:brightray',
2013-04-12 18:52:32 +04:00
'vendor/node/node.gyp:node',
2013-04-12 05:46:58 +04:00
],
'sources': [
'<@(lib_sources)',
],
'include_dirs': [
'.',
'vendor',
],
2013-07-01 18:21:31 +04:00
'direct_dependent_settings': {
'include_dirs': [
'.',
],
},
'export_dependent_settings': [
'vendor/brightray/brightray.gyp:brightray',
],
'conditions': [
['OS=="win"', {
'link_settings': {
'libraries': [
'-limm32.lib',
'-loleacc.lib',
2013-08-01 11:39:53 +04:00
'-lComdlg32.lib',
'-lWininet.lib',
'<(atom_source_root)/<(libchromiumcontent_library_dir)/chromiumviews.lib',
],
},
2013-11-12 14:07:25 +04:00
'dependencies': [
'vendor/breakpad/breakpad.gyp:breakpad_handler',
'vendor/breakpad/breakpad.gyp:breakpad_sender',
],
}],
['OS=="mac"', {
'dependencies': [
'vendor/breakpad/breakpad.gyp:breakpad',
],
}],
],
}, # target <(product_name)_lib
2013-04-14 18:48:35 +04:00
{
'target_name': 'generated_sources',
'type': 'none',
'sources': [
'<@(coffee_sources)',
],
'rules': [
{
'rule_name': 'coffee',
'extension': 'coffee',
'inputs': [
'script/compile-coffee.py',
2013-04-14 18:48:35 +04:00
],
2013-07-06 04:29:08 +04:00
'conditions': [
['OS=="mac"', {
'outputs': [
'<(PRODUCT_DIR)/<(product_name).app/Contents/Resources/<(RULE_INPUT_DIRNAME)/<(RULE_INPUT_ROOT).js',
],
'action': [
'python',
'script/compile-coffee.py',
'<(RULE_INPUT_PATH)',
'<(PRODUCT_DIR)/<(product_name).app/Contents/Resources/<(RULE_INPUT_DIRNAME)/<(RULE_INPUT_ROOT).js',
],
}], # OS=="mac"
['OS=="win"', {
'outputs': [
'<(PRODUCT_DIR)/resources/<(RULE_INPUT_DIRNAME)/<(RULE_INPUT_ROOT).js',
],
'action': [
'python',
'script/compile-coffee.py',
'<(RULE_INPUT_PATH)',
'<(PRODUCT_DIR)/resources/<(RULE_INPUT_DIRNAME)/<(RULE_INPUT_ROOT).js',
],
}], # OS=="win"
2013-04-14 18:48:35 +04:00
],
},
],
}, # target generated_sources
{
'target_name': '<(project_name)_dump_symbols',
'type': 'none',
'dependencies': [
'<(project_name)',
],
'conditions': [
['OS=="mac"', {
'dependencies': [
'vendor/breakpad/breakpad.gyp:dump_syms',
],
'actions': [
{
'action_name': 'Dump Symbols',
'inputs': [
'<(PRODUCT_DIR)/<(product_name).app/Contents/MacOS/<(product_name)',
],
'outputs': [
'<(PRODUCT_DIR)/<(product_name).breakpad.syms',
],
'action': [
'tools/mac/generate_breakpad_symbols.py',
'--build-dir=<(PRODUCT_DIR)',
'--binary=<(PRODUCT_DIR)/<(product_name).app/Contents/MacOS/<(product_name)',
'--symbols-dir=<(PRODUCT_DIR)/Atom-Shell.breakpad.syms',
'--clear',
'--jobs=16',
],
},
],
}], # OS=="mac"
],
}, # target <(project_name>_dump_symbols
2013-04-12 05:46:58 +04:00
],
'conditions': [
['OS=="mac"', {
'targets': [
{
'target_name': '<(project_name)_framework',
'product_name': '<(framework_name)',
2013-04-12 05:46:58 +04:00
'type': 'shared_library',
'dependencies': [
'<(project_name)_lib',
],
'sources': [
'<@(framework_sources)',
],
'include_dirs': [
'.',
'vendor',
'<(libchromiumcontent_include_dir)',
],
2013-07-01 18:21:31 +04:00
'export_dependent_settings': [
'<(project_name)_lib',
],
2013-06-01 10:29:35 +04:00
'link_settings': {
'libraries': [
'$(SDKROOT)/System/Library/Frameworks/Carbon.framework',
2013-06-02 11:48:08 +04:00
'frameworks/Sparkle.framework',
2013-06-01 10:29:35 +04:00
],
},
2013-04-12 05:46:58 +04:00
'mac_bundle': 1,
'mac_bundle_resources': [
'browser/mac/MainMenu.xib',
'<(libchromiumcontent_resources_dir)/content_shell.pak',
],
'xcode_settings': {
2013-06-19 17:31:57 +04:00
'LIBRARY_SEARCH_PATHS': [
'<(libchromiumcontent_library_dir)',
],
'LD_DYLIB_INSTALL_NAME': '@rpath/<(framework_name).framework/<(framework_name)',
2013-06-19 17:31:57 +04:00
'LD_RUNPATH_SEARCH_PATHS': [
'@loader_path/Libraries',
2013-04-12 05:46:58 +04:00
],
'OTHER_LDFLAGS': [
'-ObjC',
],
2013-04-12 05:46:58 +04:00
},
'copies': [
{
'destination': '<(PRODUCT_DIR)/<(framework_name).framework/Versions/A/Libraries',
2013-04-12 05:46:58 +04:00
'files': [
'<(libchromiumcontent_library_dir)/ffmpegsumo.so',
'<(libchromiumcontent_library_dir)/libchromiumcontent.dylib',
],
},
{
'destination': '<(PRODUCT_DIR)/<(framework_name).framework/Versions/A/Resources',
'files': [
'<(PRODUCT_DIR)/Inspector',
'<(PRODUCT_DIR)/crash_report_sender.app',
],
},
2013-04-12 05:46:58 +04:00
],
2013-06-01 10:29:35 +04:00
'postbuilds': [
{
'postbuild_name': 'Fix Framework Link',
'action': [
'<@(fix_framework_link_command)',
],
},
{
'postbuild_name': 'Add symlinks for framework subdirectories',
'action': [
'tools/mac/create-framework-subdir-symlinks.sh',
'<(framework_name)',
'Libraries',
'Frameworks',
],
},
2013-06-01 10:29:35 +04:00
],
}, # target framework
2013-04-12 05:46:58 +04:00
{
'target_name': '<(project_name)_helper',
'product_name': '<(product_name) Helper',
'type': 'executable',
'dependencies': [
'<(project_name)_framework',
],
'sources': [
'<@(app_sources)',
],
'include_dirs': [
'.',
],
'mac_bundle': 1,
'xcode_settings': {
'INFOPLIST_FILE': 'renderer/mac/Info.plist',
2013-06-19 17:31:57 +04:00
'LD_RUNPATH_SEARCH_PATHS': [
'@executable_path/../../..',
],
2013-04-12 05:46:58 +04:00
},
2013-06-01 10:29:35 +04:00
'postbuilds': [
{
'postbuild_name': 'Fix Framework Link',
'action': [
'<@(fix_framework_link_command)',
],
},
],
}, # target helper
2013-04-12 05:46:58 +04:00
],
2013-06-19 17:31:57 +04:00
}], # OS==Mac
['OS=="win"', {
'targets': [
{
'target_name': 'generate_node_lib',
'type': 'none',
'dependencies': [
'<(project_name)',
],
'actions': [
{
'action_name': 'Create node.lib',
'inputs': [
'<(PRODUCT_DIR)/atom.lib',
'<(libchromiumcontent_library_dir)/chromiumcontent.dll.lib',
],
'outputs': [
'<(PRODUCT_DIR)/node.lib',
],
'action': [
'lib.exe',
'/nologo',
# We can't use <(_outputs) here because that escapes the
# backslash in the path, which confuses lib.exe.
'/OUT:<(PRODUCT_DIR)\\node.lib',
'<@(_inputs)',
],
'msvs_cygwin_shell': 0,
},
],
}, # target generate_node_lib
],
}], # OS==win
2013-04-12 05:46:58 +04:00
],
}