electron/build/node/node_override.gypi
Jeremy Apthorp d7b41462af build: [gn win] fix dllimport usage in node's usage of icu
We're abusing the nodejs build a little bit by building it without ICU support, but forcing the inspector to be built, which depends on ICU. This synchronizes one of the build flags that's required to get ICU to link on Windows.
2018-07-23 10:11:32 -07:00

106 lines
3.2 KiB
Python

{
'variables': {
# Node disables the inspector unless icu is enabled. But node doesn't know
# that we're building v8 with icu, so force it on.
'v8_enable_inspector': 1,
'shlib_suffix': '<(shlib_suffix_gn)',
'is_component_build%': 'false',
},
'conditions': [
['OS=="linux"', {
'make_global_settings': [
['CC', '<(llvm_dir)/bin/clang'],
['CXX', '<(llvm_dir)/bin/clang++'],
['CC.host', '$(CC)'],
['CXX.host', '$(CXX)'],
],
'target_defaults': {
'target_conditions': [
['_toolset=="target"', {
'cflags_cc': [
'-std=gnu++14',
'-nostdinc++',
'-isystem<(libcxx_dir)/trunk/include',
'-isystem<(libcxxabi_dir)/trunk/include',
],
'ldflags': [
'-nostdlib++',
],
'libraries': [
'../../../../../../libc++.so',
],
}]
]
}
}],
['OS=="win"', {
'make_global_settings': [
['CC', '<(llvm_dir)/bin/clang-cl'],
# Also defining CXX doesn't appear to be necessary.
]
}],
],
'target_defaults': {
'target_conditions': [
['_target_name=="node_lib"', {
'include_dirs': [
'../../../v8',
'../../../v8/include',
'../../../third_party/icu/source/common',
'../../../third_party/icu/source/i18n',
],
'defines': [
'EVP_CTRL_AEAD_SET_IVLEN=EVP_CTRL_GCM_SET_IVLEN',
'EVP_CTRL_CCM_SET_TAG=EVP_CTRL_GCM_SET_TAG',
'EVP_CTRL_AEAD_GET_TAG=EVP_CTRL_GCM_GET_TAG',
'WIN32_LEAN_AND_MEAN',
],
'conditions': [
['OS=="win"', {
'conditions': [
['is_component_build=="true"', {
'libraries': [
'-lv8.dll',
'-lv8_libbase.dll',
'-lv8_libplatform.dll',
'-licuuc.dll',
'-ldbghelp',
],
'msvs_settings': {
# Change location of some hard-coded paths.
'VCLinkerTool': {
'AdditionalOptions!': [
'/WHOLEARCHIVE:<(PRODUCT_DIR)\\lib\\zlib<(STATIC_LIB_SUFFIX)',
'/WHOLEARCHIVE:<(PRODUCT_DIR)\\lib\\libuv<(STATIC_LIB_SUFFIX)',
],
'AdditionalOptions': [
'/WHOLEARCHIVE:<(PRODUCT_DIR)\\obj\\third_party\\electron_node\\deps\\zlib\\zlib<(STATIC_LIB_SUFFIX)',
'/WHOLEARCHIVE:<(PRODUCT_DIR)\\obj\\third_party\\electron_node\\deps\\uv\\libuv<(STATIC_LIB_SUFFIX)',
],
},
},
}, {
'defines': [
'U_STATIC_IMPLEMENTATION'
]
}]
],
}, {
'conditions': [
['is_component_build=="true"', {
'libraries': [
'-lv8',
'-lv8_libbase',
'-lv8_libplatform',
'-licuuc',
]
}]
]
}]
]
}],
],
},
}