Closed zelid closed 4 years ago
Update 1:
Had to edit src\content\nw\src\nw_content.h
and change lines 86-87 from:
bool GetUserAgentFromManifest(std::string* agent);
void SetUserAgentOverride(const std::string& agent,
const std::string& name,
const std::string& version);
to:
CONTENT_EXPORT bool GetUserAgentFromManifest(std::string* agent);
CONTENT_EXPORT void SetUserAgentOverride(const std::string& agent,
const std::string& name,
const std::string& version);
in order to match declarations in src\content\nw\src\common\nw_content_common_hooks.h
Looks like it helped.
Update 2:
Failed on linking with non resolvable error:
PS E:\dev\nwjs\src> ninja -C out/nw nwjs
ninja: Entering directory `out/nw'
[15/259] LINK v8_context_snapshot_generator.exe v8_context_snapshot_generator.exe.pdb
FAILED: v8_context_snapshot_generator.exe v8_context_snapshot_generator.exe.pdb
ninja -t msvc -e environment.x64 -- ../../third_party/llvm-build/Release+Asserts/bin/lld-link.exe /nologo /OUT:./v8_context_snapshot_generator.exe /PDB:./v8_context_snapshot_generator.exe.pdb @./v8_context_snapshot_generator.exe.rsp
lld-link: error: duplicate symbol: "public: static void __cdecl v8::V8::SetFlagsFromString(char const *, int)" (?SetFlagsFromString@V8@v8@@SAXPEBDH@Z) in obj/v8/v8_base/api.obj and in v8.dll
[16/259] LINK(DLL) content.dll content.dll.lib content.dll.pdb
ninja: build stopped: subcommand failed.
Please try this patch:
diff --git a/tools/v8_context_snapshot/BUILD.gn b/tools/v8_context_snapshot/BUILD.gn
index 6f0f5d01db60..7fdd0e5ccfab 100644
--- a/tools/v8_context_snapshot/BUILD.gn
+++ b/tools/v8_context_snapshot/BUILD.gn
@@ -104,7 +104,7 @@ if (use_v8_context_snapshot) {
"//services/service_manager/public/cpp",
"//third_party/blink/public:blink",
"//v8",
- "//v8:v8_initializers",
+ #"//v8:v8_initializers",
]
if (is_linux && !is_component_build) {
@rogerwang I'm a bit confused. Automatic patch apply didn't work because of the different line numbers. "//v8:v8_initializers",
is on line 107 in my version of E:\dev\nw\src\tools\v8_context_snapshot\BUILD.gn which gives an idea I have different source code version.
I decided to delete sources and run all commands from scratch in cmd having VS2017 with MFC/ATL installed:
E:\dev\nw> gclient config --name=src https://github.com/nwjs/chromium.src.git@origin/nw38
E:\dev\nw> git clone -b nw38 https://github.com/nwjs/nw.js src/content/nw
E:\dev\nw> git clone -b nw38 https://github.com/nwjs/node src/third_party/node-nw
E:\dev\nw> git clone -b nw38 https://github.com/nwjs/v8 src/v8
E:\dev\nw\src>gclient sync --with_branch_heads
This time even gclient sync --with_branch_heads
failed with nw
patch of E:\dev\nw\src\buildtools
(yesterday everything was fine):
Hook ''E:\dev\depot_tools\win_tools-2_7_13_chromium7_bin\python\bin\python.exe' src/third_party/depot_tools/download_from_google_storage.py --no_resume --no_auth -u --bucket v8-wasm-fuzzer -s src/v8/test/fuzzer/wasm_corpus.tar.gz.sha1' took 19.71 secs
Running hooks: 48% (37/77) nw_patch
________ running 'E:\dev\depot_tools\win_tools-2_7_13_chromium7_bin\python\bin\python.exe src/content/nw/tools/patcher.py' in 'E:\dev\nw'
Apply selenium.patch in E:\dev\nw\src\third_party\webdriver\pylib
21 0 selenium/webdriver/chrome/options.py
... successfully applied.
Apply ffmpeg.patch in E:\dev\nw\src\third_party\ffmpeg
8 4 BUILD.gn
... successfully applied (with warnings):
warning: BUILD.gn has type 100644, expected 100755
Apply icu.patch in E:\dev\nw\src\third_party\icu
7 0 icu.gyp
... successfully applied.
Apply buildtools.patch in E:\dev\nw\src\buildtools
... patch directory is not a repository root.
-------------------------------------------------------------------------------
!!!! ERROR: This patch failed to apply. Your build will not be correct.
-------------------------------------------------------------------------------
4 patches total (3 applied, 0 skipped, 1 failed)
-------------------------------------------------------------------------------
!!!! ERROR: 1 patches failed to apply. Your build will not be correct.
-------------------------------------------------------------------------------
Traceback (most recent call last):
File "src/content/nw/tools/patcher.py", line 121, in <module>
apply_patch_config()
File "src/content/nw/tools/patcher.py", line 96, in apply_patch_config
results['fail'])
Exception: 1 patches failed to apply. Your build will not be correct.
Error: Command 'E:\\dev\\depot_tools\\win_tools-2_7_13_chromium7_bin\\python\\bin\\python.exe src/content/nw/tools/patcher.py' returned non-zero exit status 1 in E:\dev\nw
The failing patch content is E:\dev\nw\src\content\nw\patch\patches\buildtools.patch
but there are no libc++
and libc++abi
folders inside E:\dev\nw\src\third_party
:
E:\dev\nw\src\third_party>dir
Volume in drive E is NVME 1TB
Directory of E:\dev\nw\src\third_party
05/31/2019 12:08 AM <DIR> .
05/31/2019 12:08 AM <DIR> ..
05/30/2019 11:56 PM 4,328 .gitignore
05/30/2019 11:56 PM <DIR> abseil-cpp
05/30/2019 11:56 PM <DIR> accessibility-audit
05/30/2019 11:56 PM <DIR> accessibility_test_framework
05/30/2019 11:56 PM <DIR> adobe
05/30/2019 11:56 PM <DIR> afl
05/30/2019 11:56 PM <DIR> android_build_tools
05/30/2019 11:56 PM <DIR> android_crazy_linker
05/30/2019 11:56 PM <DIR> android_data_chart
05/30/2019 11:56 PM <DIR> android_deps
05/30/2019 11:56 PM <DIR> android_media
05/30/2019 11:56 PM <DIR> android_opengl
05/30/2019 11:56 PM <DIR> android_platform
05/30/2019 11:56 PM <DIR> android_protobuf
05/30/2019 11:56 PM <DIR> android_sdk
05/30/2019 11:56 PM <DIR> android_support_test_runner
05/30/2019 11:56 PM <DIR> android_swipe_refresh
05/30/2019 11:56 PM <DIR> android_system_sdk
05/31/2019 12:01 AM <DIR> angle
05/30/2019 11:56 PM <DIR> apache-portable-runtime
05/30/2019 11:56 PM <DIR> apache-win32
05/30/2019 11:56 PM <DIR> apk-patch-size-estimator
05/30/2019 11:56 PM <DIR> apple_apsl
05/30/2019 11:56 PM <DIR> arcore-android-sdk
05/30/2019 11:56 PM <DIR> ashmem
05/30/2019 11:56 PM <DIR> auto
05/30/2019 11:56 PM <DIR> axe-core
05/30/2019 11:56 PM <DIR> bazel
05/30/2019 11:56 PM <DIR> binutils
05/30/2019 11:58 PM <DIR> bison
05/30/2019 11:56 PM <DIR> blanketjs
05/30/2019 11:56 PM <DIR> blink
05/31/2019 12:02 AM <DIR> boringssl
05/30/2019 11:57 PM <DIR> bouncycastle
05/31/2019 12:00 AM <DIR> breakpad
05/30/2019 11:57 PM <DIR> brotli
05/30/2019 11:57 PM <DIR> bspatch
05/30/2019 11:56 PM 2,244 BUILD.gn
05/30/2019 11:57 PM <DIR> byte_buddy
05/30/2019 11:57 PM <DIR> cacheinvalidation
05/31/2019 12:05 AM <DIR> catapult
05/30/2019 11:57 PM <DIR> cct_dynamic_module
05/30/2019 11:58 PM <DIR> ced
05/30/2019 11:57 PM <DIR> chaijs
05/30/2019 11:57 PM <DIR> checkstyle
05/30/2019 11:57 PM <DIR> chromevox
05/30/2019 11:58 PM <DIR> cld_3
05/30/2019 11:57 PM <DIR> closure_compiler
05/30/2019 11:58 PM <DIR> colorama
05/30/2019 11:57 PM <DIR> crashpad
05/30/2019 11:58 PM <DIR> crc32c
05/30/2019 11:57 PM <DIR> custom_tabs_client
05/30/2019 11:57 PM <DIR> d3
05/30/2019 11:58 PM <DIR> dav1d
05/30/2019 11:59 PM <DIR> dawn
05/30/2019 11:57 PM <DIR> decklink
05/31/2019 12:08 AM <DIR> depot_tools
05/30/2019 11:56 PM 245 DEPS
05/30/2019 11:57 PM <DIR> devscripts
05/30/2019 11:58 PM <DIR> devtools-node-modules
05/30/2019 11:58 PM <DIR> dom_distiller_js
05/30/2019 11:58 PM <DIR> emoji-segmenter
05/30/2019 11:57 PM <DIR> errorprone
05/30/2019 11:57 PM <DIR> espresso
05/30/2019 11:57 PM <DIR> expat
05/30/2019 11:57 PM <DIR> feed
05/31/2019 12:10 AM <DIR> ffmpeg
05/30/2019 11:57 PM <DIR> fips181
05/30/2019 11:58 PM <DIR> flac
05/30/2019 11:59 PM <DIR> flatbuffers
05/30/2019 11:57 PM <DIR> flot
05/30/2019 11:57 PM <DIR> fontconfig
05/30/2019 11:59 PM <DIR> freetype
05/30/2019 11:57 PM <DIR> fuchsia-sdk
05/30/2019 11:57 PM <DIR> gestures
05/30/2019 11:57 PM <DIR> gif_player
05/30/2019 11:58 PM <DIR> glfw
05/31/2019 12:00 AM <DIR> glslang
05/30/2019 11:58 PM <DIR> gnu_binutils
05/30/2019 11:57 PM <DIR> google-truth
05/30/2019 11:59 PM <DIR> googletest
05/30/2019 11:57 PM <DIR> google_android_play_core
05/30/2019 11:57 PM <DIR> google_appengine_cloudstorage
05/30/2019 11:57 PM <DIR> google_input_tools
05/30/2019 11:57 PM <DIR> google_toolbox_for_mac
05/30/2019 11:58 PM <DIR> gperf
05/30/2019 11:57 PM <DIR> gradle_wrapper
05/31/2019 12:04 AM <DIR> grpc
05/30/2019 11:57 PM <DIR> gson
05/30/2019 11:57 PM <DIR> guava
05/30/2019 11:57 PM <DIR> gvr-android-keyboard
05/30/2019 11:57 PM <DIR> gvr-android-sdk
05/30/2019 11:57 PM <DIR> hamcrest
05/31/2019 12:00 AM <DIR> harfbuzz-ng
05/30/2019 11:57 PM <DIR> hunspell
05/31/2019 12:03 AM <DIR> hunspell_dictionaries
05/30/2019 11:57 PM <DIR> iaccessible2
05/30/2019 11:57 PM <DIR> iccjpeg
05/31/2019 12:10 AM <DIR> icu
05/30/2019 11:57 PM <DIR> icu4j
05/30/2019 11:57 PM <DIR> ijar
05/30/2019 11:57 PM <DIR> ink
05/30/2019 11:57 PM <DIR> inspector_protocol
05/30/2019 11:57 PM <DIR> instrumented_libraries
05/30/2019 11:57 PM <DIR> intellij
05/30/2019 11:57 PM <DIR> isimpledom
05/30/2019 11:57 PM <DIR> jinja2
05/30/2019 11:58 PM <DIR> jsoncpp
05/30/2019 11:57 PM <DIR> jsr-305
05/30/2019 11:57 PM <DIR> jstemplate
05/30/2019 11:57 PM <DIR> junit
05/30/2019 11:57 PM <DIR> khronos
05/30/2019 11:57 PM <DIR> lcov
05/30/2019 11:58 PM <DIR> leveldatabase
05/30/2019 11:58 PM <DIR> libaddressinput
05/30/2019 11:57 PM <DIR> libaom
05/30/2019 11:57 PM <DIR> libcxx-pretty-printers
05/30/2019 11:57 PM <DIR> libdrm
05/30/2019 11:57 PM <DIR> libevdev
05/30/2019 11:58 PM <DIR> libFuzzer
05/30/2019 11:57 PM <DIR> libjingle_xmpp
05/30/2019 11:57 PM <DIR> libjpeg
05/30/2019 11:57 PM 401 libjpeg.gni
05/30/2019 11:58 PM <DIR> libjpeg_turbo
05/30/2019 11:57 PM <DIR> liblouis
05/30/2019 11:57 PM <DIR> libovr
05/31/2019 12:02 AM <DIR> libphonenumber
05/30/2019 11:57 PM <DIR> libpng
05/30/2019 11:58 PM <DIR> libprotobuf-mutator
05/30/2019 11:57 PM <DIR> libsecret
05/30/2019 11:58 PM <DIR> libsrtp
05/30/2019 11:57 PM <DIR> libsync
05/30/2019 11:57 PM <DIR> libudev
05/30/2019 11:57 PM <DIR> libusb
05/30/2019 11:57 PM <DIR> libvpx
05/30/2019 11:58 PM <DIR> libwebm
05/30/2019 11:57 PM <DIR> libwebp
05/30/2019 11:57 PM <DIR> libxml
05/30/2019 11:57 PM <DIR> libXNVCtrl
05/30/2019 11:57 PM <DIR> libxslt
05/30/2019 11:58 PM <DIR> libyuv
05/30/2019 11:58 PM <DIR> lighttpd
05/31/2019 12:08 AM <DIR> llvm-build
05/30/2019 11:57 PM <DIR> logilab
05/30/2019 11:57 PM <DIR> lzma_sdk
05/30/2019 11:57 PM <DIR> mach_override
05/30/2019 11:57 PM <DIR> markdown
05/30/2019 11:57 PM <DIR> markupsafe
05/30/2019 11:57 PM <DIR> material_design_icons
05/30/2019 11:57 PM <DIR> mesa_headers
05/30/2019 11:57 PM <DIR> metrics_proto
05/30/2019 11:57 PM <DIR> microsoft_webauthn
05/30/2019 11:58 PM <DIR> mingw-w64
05/30/2019 11:57 PM <DIR> minigbm
05/30/2019 11:57 PM <DIR> minizip
05/30/2019 11:57 PM <DIR> mocha
05/30/2019 11:57 PM <DIR> mockito
05/30/2019 11:57 PM <DIR> modp_b64
05/30/2019 11:57 PM <DIR> motemplate
05/30/2019 11:57 PM <DIR> mozilla
05/30/2019 11:58 PM <DIR> nacl_sdk_binaries
05/30/2019 11:58 PM <DIR> nasm
05/30/2019 11:57 PM <DIR> netty-tcnative
05/30/2019 11:57 PM <DIR> netty4
05/30/2019 11:57 PM <DIR> node
05/30/2019 11:03 PM <DIR> node-nw
05/30/2019 11:57 PM <DIR> nvml
05/30/2019 11:57 PM <DIR> objenesis
05/30/2019 11:57 PM <DIR> ocmock
05/31/2019 12:02 AM <DIR> openh264
05/30/2019 11:58 PM <DIR> openmax_dl
05/31/2019 12:00 AM <DIR> openscreen
05/30/2019 11:57 PM <DIR> openvr
05/30/2019 11:57 PM <DIR> opus
05/30/2019 11:57 PM <DIR> ots
05/30/2019 11:57 PM <DIR> ow2_asm
05/30/2019 11:56 PM 984 OWNERS
05/31/2019 12:02 AM <DIR> pdfium
05/30/2019 11:58 PM <DIR> pefile
05/30/2019 11:59 PM <DIR> perfetto
05/31/2019 12:01 AM <DIR> perl
05/30/2019 11:57 PM <DIR> pexpect
05/30/2019 11:57 PM <DIR> pffft
05/30/2019 11:57 PM <DIR> ply
05/30/2019 11:57 PM <DIR> polymer
05/30/2019 11:56 PM 6,539 PRESUBMIT.py
05/30/2019 11:57 PM <DIR> proguard
05/30/2019 11:57 PM <DIR> protobuf
05/30/2019 11:57 PM <DIR> protoc_javalite
05/30/2019 11:57 PM <DIR> pycoverage
05/30/2019 11:58 PM <DIR> pyftpdlib
05/30/2019 11:57 PM <DIR> pyjson5
05/30/2019 11:57 PM <DIR> pylint
05/30/2019 11:57 PM <DIR> pymock
05/30/2019 11:57 PM <DIR> pystache
05/30/2019 11:56 PM <DIR> Python-Markdown
05/30/2019 11:58 PM <DIR> pywebsocket
05/30/2019 11:57 PM <DIR> qcms
05/30/2019 11:58 PM <DIR> quic_trace
05/30/2019 11:57 PM <DIR> qunit
05/30/2019 11:57 PM <DIR> r8
05/30/2019 11:58 PM <DIR> re2
05/30/2019 11:56 PM 641 README.chromium
05/30/2019 11:56 PM 1,547 README.chromium.template
05/30/2019 11:57 PM <DIR> requests
05/30/2019 11:57 PM <DIR> rnnoise
05/30/2019 11:57 PM <DIR> robolectric
05/30/2019 11:57 PM <DIR> s2cellid
05/31/2019 12:00 AM <DIR> sfntly
05/30/2019 11:58 PM <DIR> shaderc
05/30/2019 11:57 PM <DIR> simplejson
05/30/2019 11:57 PM <DIR> sinonjs
05/31/2019 12:06 AM <DIR> skia
05/30/2019 11:58 PM <DIR> smhasher
05/30/2019 11:58 PM <DIR> snappy
05/30/2019 11:57 PM <DIR> speech-dispatcher
05/30/2019 11:58 PM <DIR> spirv-cross
05/30/2019 11:58 PM <DIR> spirv-headers
05/30/2019 11:59 PM <DIR> SPIRV-Tools
05/30/2019 11:57 PM <DIR> sqlite
05/30/2019 11:57 PM <DIR> sqlite4java
05/30/2019 11:57 PM <DIR> sudden_motion_sensor
05/31/2019 12:02 AM <DIR> swiftshader
05/30/2019 11:57 PM <DIR> tcmalloc
05/31/2019 12:08 AM <DIR> test_fonts
05/30/2019 11:57 PM <DIR> tlslite
05/30/2019 11:57 PM <DIR> ub-uiautomator
05/30/2019 11:57 PM <DIR> unrar
05/30/2019 11:57 PM <DIR> usb_ids
05/30/2019 11:59 PM <DIR> usrsctp
05/30/2019 11:57 PM <DIR> v4l-utils
05/31/2019 12:00 AM <DIR> visualmetrics
05/30/2019 11:57 PM <DIR> vulkan
05/30/2019 11:57 PM <DIR> wayland
05/30/2019 11:57 PM <DIR> wayland-protocols
05/30/2019 11:57 PM <DIR> wds
05/30/2019 11:57 PM <DIR> web-animations-js
05/30/2019 11:58 PM <DIR> webdriver
05/31/2019 12:00 AM <DIR> webgl
05/31/2019 12:04 AM <DIR> webrtc
05/30/2019 11:57 PM <DIR> webrtc_overrides
05/30/2019 11:57 PM <DIR> webxr_test_pages
05/30/2019 11:57 PM <DIR> widevine
05/30/2019 11:57 PM <DIR> win_build_output
05/30/2019 11:57 PM <DIR> woff2
05/30/2019 11:57 PM <DIR> wtl
05/30/2019 11:57 PM <DIR> xstream
05/30/2019 11:57 PM <DIR> yasm
05/30/2019 11:57 PM <DIR> zlib
8 File(s) 16,929 bytes
243 Dir(s) 551,757,602,816 bytes free
The depot_tools
being used was downloaded from https://storage.googleapis.com/chrome-infra/depot_tools.zip and global variable DEPOT_TOOLS_WIN_TOOLCHAIN=0
exists.
Here is a full output of gclient sync --with_branch_heads
Is anything wrong in commands or git branches I"m trying to use?
For now please use nw38-log
branch for the chromium repo, v8 repo and Node repo. I'll update the 'nw38' branch soon, or update the build documentation. Thanks.
This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.
I'm building on Windows 10 from latest sources using these commands:
On linking the build fails with errors:
Did I miss some steps in the middle? Is it fixable by disabling
[-Werror,-Winconsistent-dllimport]
somehow or requires NW.js source changes with addingdllimport
?