ninja: error: '../../third_party/icu/windows/icudt.dll', needed by 'icudt.dll', missing and no known rule to maje it

163 views
Skip to first unread message

Shanmugapriya Shanmugasundaram

unread,
Dec 30, 2019, 6:47:27 AM12/30/19
to nw.js
Bringing it up again, as we are facing the same issue for the 3rd time. It has already consumed lot of our time and efforts and still remains unresolved.



Using nwjs 43,

nwjs\src - origin/nw43 branch (after a successful gclient sync --with_branch_heads)
nwjs\src\content\nw - nw43 branch (https://github.com/nwjs/nw.js)
nwjs\src\v8 - nw43-log (https://github.com/nwjs/v8)
nwjs\src\third_party\node-nw - nw43-log (https://github.com/nwjs/node)

ninja -C out/nw nwjs is successful [39135/39135] STAMP obj/content/nw/nwjs.stamp.

But ninja -C out/Release_x64 node is failing with the icudt.dll error.


Roger Wang

unread,
Dec 30, 2019, 6:50:42 AM12/30/19
to Shanmugapriya Shanmugasundaram, nw.js
Please make sure Node.js is properly configured before compilation. You can see the official build log here (step config node):


click 'stdio' for command line and environment variable.

Roger 

--
You received this message because you are subscribed to the Google Groups "nw.js" group.
To unsubscribe from this group and stop receiving emails from it, send an email to nwjs-general...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/nwjs-general/873d9568-cbce-4848-a18b-6ac6e11b5829%40googlegroups.com.

Shanmugapriya Shanmugasundaram

unread,
Jan 7, 2020, 6:08:30 PM1/7/20
to nw.js
Hi Roger,

Thanks for the info. But we checked all the environment variables and they look ok. Could you please give more specific details which might help us in resolving this issue.

Thanks


On Monday, December 30, 2019 at 5:20:42 PM UTC+5:30, Roger Wang wrote:
Please make sure Node.js is properly configured before compilation. You can see the official build log here (step config node):


click 'stdio' for command line and environment variable.

Roger 

On Mon, Dec 30, 2019 at 7:47 PM Shanmugapriya Shanmugasundaram <mailp...@gmail.com> wrote:
Bringing it up again, as we are facing the same issue for the 3rd time. It has already consumed lot of our time and efforts and still remains unresolved.



Using nwjs 43,

nwjs\src - origin/nw43 branch (after a successful gclient sync --with_branch_heads)
nwjs\src\content\nw - nw43 branch (https://github.com/nwjs/nw.js)
nwjs\src\v8 - nw43-log (https://github.com/nwjs/v8)
nwjs\src\third_party\node-nw - nw43-log (https://github.com/nwjs/node)

ninja -C out/nw nwjs is successful [39135/39135] STAMP obj/content/nw/nwjs.stamp.

But ninja -C out/Release_x64 node is failing with the icudt.dll error.


--
You received this message because you are subscribed to the Google Groups "nw.js" group.
To unsubscribe from this group and stop receiving emails from it, send an email to nwjs-g...@googlegroups.com.

Roger Wang

unread,
Jan 7, 2020, 6:11:32 PM1/7/20
to Shanmugapriya Shanmugasundaram, nw.js
How did you config Node and what're the environment variables?

Roger

To unsubscribe from this group and stop receiving emails from it, send an email to nwjs-general...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/nwjs-general/b0fb8d3f-7705-4333-91dd-68709b667810%40googlegroups.com.

matthia...@gmail.com

unread,
Jan 19, 2020, 7:28:29 PM1/19/20
to nw.js
I have had the same issue when trying to compile Node using the instructions here for several months:


While investigating, I found the src\out\Release\obj\third_party\icu\icudata.ninja file was trying to copy a windows/icudt.dll that is not included in the chromium dependencies since the following commit (10 months ago):


The src\out\Release\build.ninja was also using the MSVC 2017 cl.exe instead of the clang-cl.exe in the llvm-build chromium provides. I tried altering the ninja files to accommodate both issues but then it complains about /SAFESEH when compiling the icuuc.dll.

I tried looking through the build-bot but I don't see anything different. Changing GYP_DEFINES or target_arch makes no difference.

The windows DLL dependancy is gone and the build setup for ICU does not seem current? Are we missing something?


Matthias Fostel

unread,
Jan 19, 2020, 7:28:39 PM1/19/20
to nw.js
I also had the same issue when trying to compile using the instructions here:


I spent some time trying to troubleshoot what was happening and it looks like a required windows/icudt.dll was removed during this commit to chromium dependencies for ICU.


I tried downloading the DLL, putting it in place, but it still gave compile errors after finding the DLL and I think it was from the ninja.build for ICU trying to use the MSVC cl.exe instead of clang-cl.exe.

After changing the ninja.build over to clang, it gets pretty far with only warnings but errors out on another of the icu dlls it's trying to create.

Something seems to be wrong with the node compiling on Windows. I think I saw others with a similar problem in the gitter feed but I had already given up on it.

I tried copying GYP_DEFINES out of the build-bot but that didn't seem to help either.

Matthias Fostel

unread,
Jan 20, 2020, 1:49:41 AM1/20/20
to nw.js
I apologize for the duplicate messages. I thought my NoScript settings stopped the first.

Matthias Fostel

unread,
Jan 21, 2020, 7:14:39 PM1/21/20
to nw.js
Went through the build-bot logs more to try to figure out what was missing and I tried this:

set GYP_MSVS_OVERRIDE_PATH=C:\Program Files (x86)\Microsoft Visual Studio\2017\Community
set GYP_MSVS_VERSION=2017
set GYP_DEFINES=target_arch=x64 building_nw=1 icu_use_data_file_flag=1 host_arch=x64 clang=1
set GYP_CHROMIUM_NO_ACTION=0
cd c:/nwjs/src
python content/nw/tools/sync.py
gn gen out/nw ^"--args=is_component_ffmpeg=true target_cpu=\^"x64\^" is_component_build=true is_debug=false v8_win64_unwinding_info=true nwjs_sdk=false enable_widevine=false ffmpeg_branding=\^"Chromium\^" symbol_level=0^"
python build/gyp_chromium -D component=shared_library -I third_party/node-nw/common.gypi third_party/node-nw/node.gyp
ninja -C out/nw nwjs && ninja -C out/Release_x64 node

But NWJS fails to build with the following error:

FAILED: gen/chrome/resources_stamp.d.stamp gen/chrome/grit/browser_resources.h gen/chrome/browser_resources.pak gen/chrome/browser_resources.pak.info
C:/src/depot_tools/bootstrap-3_8_0_chromium_8_bin/python/bin/python.exe ../../tools/grit/grit.py -i ../../chrome/browser/nwjs_resources.grd build -o gen/chrome --depdir . --depfile gen/chrome/resources_stamp.d --write-only-new=1 --depend-on-stamp -D scale_factors=2x -D _chromium -E CHROMIUM_BUILD=chromium -D toolkit_views -D use_aura --brotli brotli.exe -D enable_app_list=false -D enable_arcore=false -D enable_background_mode=true -D enable_background_contents=true -D enable_extensions=true -D enable_hangout_services_extension=false -D enable_plugins=true -D enable_print_preview=true -D enable_printing=true -D enable_service_discovery=true -D enable_supervised_users=false -D enable_vr=true -D enable_webui_tab_strip=false -D safe_browsing_mode=0 -D optimize_webui=true -E additional_modules_list_file=gen/chrome/browser/internal/additional_modules_list.txt -E root_gen_dir=gen -f ../../tools/gritsettings/resource_ids -p ../../tools/gritsettings/startup_resources_win.txt --assert-file-list=obj/chrome/browser/resources_expected_outputs.txt
Error processing node <?xml version="1.0" encoding="UTF-8"?>
<include file="${root_gen_dir}\services\resource_coordinator\public\mojom\webui_graph_dump.mojom.js" name="IDR_DISCARDS_WEBUI_GRAPH_DUMP_MOJO_JS" type="BINDATA" use_base_dir="false" />: [Errno 2] No such file or directory: u'..\\..\\out\\nw\\gen\\services\\resource_coordinator\\public\\mojom\\webui_graph_dump.mojom.js'
Traceback (most recent call last):
  File "../../tools/grit/grit.py", line 17, in <module>
    sys.exit(grit.grit_runner.Main(sys.argv[1:]))
  File "c:\nwjs\src\tools\grit\grit\grit_runner.py", line 259, in Main
    return toolobject.Run(options, args[1:])
  File "c:\nwjs\src\tools\grit\grit\tool\build.py", line 260, in Run
    self.Process()
  File "c:\nwjs\src\tools\grit\grit\tool\build.py", line 392, in Process
    self.ProcessNode(self.res, output, outfile)
  File "c:\nwjs\src\tools\grit\grit\tool\build.py", line 319, in ProcessNode
    formatted = formatter(node, output_node.GetLanguage(), output_dir=base_dir)
  File "c:\nwjs\src\tools\grit\grit\format\data_pack.py", line 88, in Format
    value = node.GetDataPackValue(lang, UTF8)
  File "c:\nwjs\src\tools\grit\grit\node\include.py", line 107, in GetDataPackValue
    data = util.ReadFile(filename, util.BINARY)
  File "c:\nwjs\src\tools\grit\grit\util.py", line 210, in ReadFile
    with open(filename, mode) as f:
IOError: [Errno 2] No such file or directory: u'..\\..\\out\\nw\\gen\\services\\resource_coordinator\\public\\mojom\\webui_graph_dump.mojom.js'
[19252/38921] CXX obj/v8/bytecode_builtins_list_generator/bytecodes.obj
ninja: build stopped: subcommand failed.

I feel like a dependency or step is still missing but I can not figure out what from the build-bot logs.

Russel Valentine reported the the same error compiling for Mac OS on the Gitter chat feed in November.

Roger Wang

unread,
Jan 21, 2020, 8:14:42 PM1/21/20
to Matthias Fostel, nw.js
From the error message it looks like you don't have the correct commits checked out.

--
You received this message because you are subscribed to the Google Groups "nw.js" group.
To unsubscribe from this group and stop receiving emails from it, send an email to nwjs-general...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/nwjs-general/77efef1f-b669-46be-954a-2fd52f472b70%40googlegroups.com.

Matthias Fostel

unread,
Jan 22, 2020, 1:37:19 AM1/22/20
to nw.js
My setup process, doing my best to guess from the wiki instructions:

mkdir -p c:/nwjs && cd c:/nwjs
gclient config --name=src https://github.com/nwjs/chromium.src.git@origin/nw43
git clone --single-branch --branch nw43 https://github.com/nwjs/nw.js.git c:\nwjs\src\content\nw
git clone --single-branch --branch nw43 https://github.com/nwjs/node.git c:\nwjs\src\third_party\node-nw
git clone --single-branch --branch nw43 https://github.com/nwjs/v8.git c:\nwjs\src\v8
gclient sync --with_branch_heads

I saw there was a log branch for several of the git repositories but I figured they were for detailed debugging and went with the non-log branches.
To unsubscribe from this group and stop receiving emails from it, send an email to nwjs-g...@googlegroups.com.

Roger Wang

unread,
Jan 22, 2020, 3:26:09 AM1/22/20
to Matthias Fostel, nw.js
It looks good. You can try to set the same compile config as the official build.

To unsubscribe from this group and stop receiving emails from it, send an email to nwjs-general...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/nwjs-general/5aea2304-750f-415a-9ea1-eb81446c05de%40googlegroups.com.

Matthias Fostel

unread,
Jan 23, 2020, 8:30:13 PM1/23/20
to nw.js
Would you mind sharing an example of your .gclient file?

I think the dependencies are still wrong for me.

Roger Wang

unread,
Jan 24, 2020, 12:19:30 AM1/24/20
to nw.js

solutions = [

   { "name"        : "src",

     "deps_file"   : "DEPS",

     "url"         : "https://github.com/nwjs/chromium.src.git@nw44",

     "managed"     : False,

     "custom_deps" : {

       "src/third_party/WebKit/LayoutTests": None,

       "src/chrome_frame/tools/test/reference_build/chrome_win": None,

       "src/chrome/tools/test/reference_build/chrome_linux": None,

       "src/chrome/tools/test/reference_build/chrome_mac": None,

       "src/chrome/tools/test/reference_build/chrome_win": None,

     },

   },

]

Matthias Fostel

unread,
Jan 27, 2020, 3:33:55 AM1/27/20
to nw.js
I created a new Windows virtual host, started fresh on the nw44 branch using the procedure outlined above and settings from the build-bot but I am still stopping on the same exact error.

I don't think it's the commits. I went through several of the files referenced in the error to compare with Github's reported version for the branch and everything seems to match.

The files simply do not seem to be generated and I have no idea how to troubleshoot it.

Roger Wang

unread,
Jan 27, 2020, 3:37:16 AM1/27/20
to Matthias Fostel, nw.js
It could be a bug. Please file an issue and I'll fix it.

In the meantime, you could try to build with 'nwjs_sdk=true'. It should pass.

Regards,
Roger

To unsubscribe from this group and stop receiving emails from it, send an email to nwjs-general...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/nwjs-general/80183129-567a-4070-9300-e59a69ae5acc%40googlegroups.com.

Matthias Fostel

unread,
Jan 27, 2020, 5:58:31 PM1/27/20
to nw.js
That worked! Thank you! NW compiled with that change.

Node compiled without issue and I continued through the build-bot procedures for NW44_SDK_win64, running the ninja dump and dist commands but the dist threw an error that it could not find the "natives_blob.bin".

I notice the one in the official build has only a null byte in it. Can I just use an empty file or do I absolutely need that null byte in there?
Reply all
Reply to author
Forward
0 new messages