win: Fix link errors caused by libicu

This commit is contained in:
Cheng Zhao 2015-04-10 15:35:25 +08:00
parent 3a5bb588e5
commit 1f66006c93
2 changed files with 31 additions and 0 deletions

View file

@ -52,6 +52,14 @@ REFERENCE_MODULE(atom_renderer_ipc);
REFERENCE_MODULE(atom_renderer_web_frame); REFERENCE_MODULE(atom_renderer_web_frame);
#undef REFERENCE_MODULE #undef REFERENCE_MODULE
// The "v8::Function::kLineOffsetNotFound" is exported in node.dll, but the
// linker can not find it, could be a bug of VS.
#if defined(OS_WIN) && !defined(DEBUG)
namespace v8 {
const int Function::kLineOffsetNotFound = -1;
}
#endif
namespace atom { namespace atom {
namespace { namespace {

View file

@ -102,10 +102,33 @@
'include_dirs': [ '<(libchromiumcontent_src_dir)/v8/include' ], 'include_dirs': [ '<(libchromiumcontent_src_dir)/v8/include' ],
'conditions': [ 'conditions': [
['OS=="mac" and libchromiumcontent_component==0', { ['OS=="mac" and libchromiumcontent_component==0', {
# -all_load is the "whole-archive" on OS X.
'xcode_settings': { 'xcode_settings': {
'OTHER_LDFLAGS': [ '-Wl,-all_load' ], 'OTHER_LDFLAGS': [ '-Wl,-all_load' ],
}, },
}], }],
['OS=="win" and libchromiumcontent_component==0', {
'libraries': [ '-lwinmm.lib' ],
'msvs_settings': {
'VCLinkerTool': {
# There is nothing like "whole-archive" on Windows, so we
# have to manually force some objets files to be included
# by referencing them.
'ForceSymbolReferences': [
'_u_errorName_52',
'_ubidi_setPara_52',
'_ucsdet_getName_52',
'_ulocdata_close_52',
'_uregex_matches_52',
'_uscript_getCode_52',
'_usearch_setPattern_52',
'?createInstance@Transliterator@icu_52@@SAPAV12@ABVUnicodeString@2@W4UTransDirection@@AAW4UErrorCode@@@Z',
'?nameToUnicodeUTF8@IDNA@icu_52@@UBEXABVStringPiece@2@AAVByteSink@2@AAVIDNAInfo@2@AAW4UErrorCode@@@Z',
'?kLineOffsetNotFound@Function@v8@@2HB',
], # '/INCLUDE'
},
},
}],
['OS=="linux" and libchromiumcontent_component==0', { ['OS=="linux" and libchromiumcontent_component==0', {
# Prevent the linker from stripping symbols. # Prevent the linker from stripping symbols.
'ldflags': [ 'ldflags': [