smanders / externpro

build external projects with cmake
MIT License
13 stars 12 forks source link

update node.js version beyond 10 #272

Closed smanders closed 3 years ago

smanders commented 4 years ago

we currently build node version 10.17.0 https://github.com/smanders/externpro/blob/20.02.1/projects/node_10.17.0.cmake#L1

https://nodejs.org/en/about/releases/

with v10 there is an "intermittent linux build" failure "due to mulitple threads trying to access the cache", which slows down linux builds of VANTAGE webclient, but hopefully only a temporary slowdown until we move to a newer node version (VantageSuper/pull/4095)

smanders commented 4 years ago

Cameron mentioned that we may be able to turn off building npm when we build node

sbowler commented 3 years ago

Is this anywhere on the near roadmap? v14 has been active LTS for several months now and the current version will be EOL within a month. Of course there are also several nice features and capabilities in the newer versions that would be nice to be able to use.

smanders commented 3 years ago

there you go @sbowler ... on the near roadmap, now! do we have opinions on whether we should move straight from v10 to v14, or first go to v12? are we going to run into issues with either update (to v12 or v14)? should addons build without any changes, etc? @cameronfrandsen

sbowler commented 3 years ago

Thanks. I don't see any reason not to try to go straight to v14. Not sure what issues there might be. If anything I would expect issues with the addons. It would be really nice if someone could update them to use the new NAPI stuff and then updates would be less of an issue. Not sure who has time and could do that though.

grahamaj commented 3 years ago

I have had my eye on v16. It comes out in April and it could potentially solve our FIPS compliance problems.

smanders commented 3 years ago

only visual studio 2017 is supported by node v10.x (the latest is v10.24.1 as of right now) https://github.com/nodejs/node/blob/v10.24.1/vcbuild.bat#L83

visual studio 2017 and 2019 are supported by node v12.x (latest is v12.22.1 as of right now) https://github.com/nodejs/node/blob/v12.22.1/vcbuild.bat#L84-L85

the latest node v14.x is currently v14.16.1

node v14.16.1 uses openssl 1.1.1k https://github.com/nodejs/node/tree/v14.16.1/deps/openssl https://github.com/nodejs/node/commit/6bc8f5818216d588f012849d7446e21fe56ce389

smanders commented 3 years ago

latest node v14.x is currently v14.17.0

smanders commented 3 years ago

we currently patch v10.17.0 https://github.com/nodejs/node/compare/v10.17.0...smanders:xp10.17.0

the patch is discussed here https://github.com/smanders/externpro/issues/219#issuecomment-502204106

smanders commented 3 years ago

building on Windows with Visual Studio 2019

33>Performing configure step for 'nodejs_14.17.0_Releasevcbuild'
33>Note: vcbuild no longer signs by default. "nosign" is redundant.
33>Looking for Python
33>Python found in C:\Python27\\python.exe
33>Looking for NASM
33>Could not find NASM, install it or build with openssl-no-asm. See BUILDING.md.
33>Looking for Visual Studio 2019
33>calling: "C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\VC\\Auxiliary\Build\vcvarsall.bat" amd64
33>**********************************************************************
33>** Visual Studio 2019 Developer Command Prompt v16.9.5
33>** Copyright (c) 2021 Microsoft Corporation
33>**********************************************************************
33>[vcvarsall.bat] Environment initialized for: 'x64'
33>Found MSVS version 16.0
33>configure  --with-ltcg --dest-cpu=x64
33>Node.js configure: Found Python 2.7.18...
33>CUSTOMBUILD : warning : No acceptable ASM compiler found!
33>         Please make sure you have installed NASM from https://www.nasm.us
33>         and refer BUILDING.md.
33>CUSTOMBUILD : error : Did not find a new enough assembler, install one or build with
33>       --openssl-no-asm.
33>       Please refer to BUILDING.md
33>Failed to create vc project files.
33>C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\MSBuild\Microsoft\VC\v160\Microsoft.CppCommon.targets(240,5): error MSB8066: Custom build for 'C:\dev\src\externpro\_bld\CMakeFiles\96caf2fa2cea28fd62023cca56230e3b\nodejs_14.17.0_Releasevcbuild-configure.rule;C:\dev\src\externpro\_bld\CMakeFiles\96caf2fa2cea28fd62023cca56230e3b\nodejs_14.17.0_Releasevcbuild-build.rule;C:\dev\src\externpro\_bld\CMakeFiles\96caf2fa2cea28fd62023cca56230e3b\nodejs_14.17.0_Releasevcbuild-install.rule;C:\dev\src\externpro\_bld\CMakeFiles\2ca6e6f6a3563753e205327f3d73fb01\nodejs_14.17.0_Releasevcbuild-complete.rule;C:\dev\src\externpro\_bld\CMakeFiles\9f402c4deb4245014d6e81937f991915\nodejs_14.17.0_Releasevcbuild.rule' exited with code 1.
33>Done building project "nodejs_14.17.0_Releasevcbuild.vcxproj" -- FAILED.
smanders commented 3 years ago

nodejs 14.17.0 fails to build with Visual Studio 2017

1>------ Build started: Project: patch, Configuration: Release x64 ------
2>------ Build started: Project: nodejs_14.17.0, Configuration: Release x64 ------
3>------ Build started: Project: nodejs_14.17.0_Releasevcbuild, Configuration: Release x64 ------
3>Creating directories for 'nodejs_14.17.0_Releasevcbuild'
3>Building Custom Rule C:/dev/src/externpro/CMakeLists.txt
3>No download step for 'nodejs_14.17.0_Releasevcbuild'
3>No update step for 'nodejs_14.17.0_Releasevcbuild'
3>No patch step for 'nodejs_14.17.0_Releasevcbuild'
3>Performing configure step for 'nodejs_14.17.0_Releasevcbuild'
3>Looking for Python
3>Python found in C:\Python27\\python.exe
3>Looking for NASM
3>externpro E:\smanders\bld\externpro\xpbase\Source\nodejs_14.17.0\tools\msvs\..\..\..\nasm
3>Looking for Visual Studio 2019
3>Looking for Visual Studio 2017
3>calling: "C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\VC\\Auxiliary\Build\vcvarsall.bat" amd64
3>**********************************************************************
3>** Visual Studio 2017 Developer Command Prompt v15.7.1
3>** Copyright (c) 2017 Microsoft Corporation
3>**********************************************************************
3>[vcvarsall.bat] Environment initialized for: 'x64'
3>Found MSVS version 15.0
3>Reusing solution generated with  --with-ltcg --dest-cpu=x64
3>  histogram.vcxproj -> ..\..\out\Release\lib\histogram.lib
3>  v8_libplatform.vcxproj -> ..\..\out\Release\lib\v8_libplatform.lib
3>  zlib.vcxproj -> ..\..\out\Release\lib\zlib.lib
3>  llhttp.vcxproj -> ..\..\out\Release\lib\llhttp.lib
3>  cares.vcxproj -> ..\..\out\Release\lib\cares.lib
3>  libuv.vcxproj -> ..\..\out\Release\lib\libuv.lib
3>  uvwasi.vcxproj -> ..\..\out\Release\lib\uvwasi.lib
3>  nghttp2.vcxproj -> ..\..\out\Release\lib\nghttp2.lib
3>  brotli.vcxproj -> ..\..\out\Release\lib\brotli.lib
3>  torque_base.vcxproj -> ..\..\out\Release\lib\torque_base.lib
3>  v8_libbase.vcxproj -> ..\..\out\Release\lib\v8_libbase.lib
3>  torque.vcxproj -> ..\..\out\Release\\torque.exe
3>  bytecode_builtins_list_generator.vcxproj -> ..\..\out\Release\\bytecode_builtins_list_generator.exe
3>  v8_libsampler.vcxproj -> ..\..\out\Release\lib\v8_libsampler.lib
3>  v8_zlib.vcxproj -> ..\..\out\Release\lib\v8_zlib.lib
3>  openssl.vcxproj -> ..\..\out\Release\lib\openssl.lib
3>  openssl-cli.vcxproj -> ..\..\out\Release\\openssl-cli.exe
3>  icutools.vcxproj -> ..\..\out\Release\lib\icutools.lib
3>  icui18n.vcxproj -> ..\..\out\Release\lib\icui18n.lib
3>  icuucx.vcxproj -> ..\..\out\Release\lib\icuucx.lib
3>  genccode.vcxproj -> ..\..\out\Release\\genccode.exe
3>  icudata.vcxproj -> ..\..\out\Release\lib\icudata.lib
3>  gen-regexp-special-case.vcxproj -> ..\..\out\Release\\gen-regexp-special-case.exe
3>  setup-isolate-full.cc
3>  add-type-assertions-reducer.cc
3>  builtins-array-gen.cc
3>e:\smanders\bld\externpro\xpbase\source\nodejs_14.17.0\deps\v8\src\base\template-utils.h(70): error C2131: expression did not evaluate to a constant [E:\smanders\bld\externpro\xpbase\Source\nodejs_14.17.0\tools\v8_gypfiles\v8_initializers.vcxproj]
3>  e:\smanders\bld\externpro\xpbase\source\nodejs_14.17.0\deps\v8\src\base\template-utils.h(70): note: failure was caused by a read of a variable outside its lifetime
3>  e:\smanders\bld\externpro\xpbase\source\nodejs_14.17.0\deps\v8\src\base\template-utils.h(70): note: see usage of 'first'
3>  e:\smanders\bld\externpro\xpbase\source\nodejs_14.17.0\deps\v8\src\base\template-utils.h(70): note: while evaluating 'v8::internal::detail::CombineRegListsHelper()'
3>e:\smanders\bld\externpro\xpbase\source\nodejs_14.17.0\deps\v8\src\base\template-utils.h(71): error C2131: expression did not evaluate to a constant [E:\smanders\bld\externpro\xpbase\Source\nodejs_14.17.0\tools\v8_gypfiles\v8_initializers.vcxproj]
3>  e:\smanders\bld\externpro\xpbase\source\nodejs_14.17.0\deps\v8\src\base\template-utils.h(71): note: failure was caused by control reaching the end of a constexpr function
3>  e:\smanders\bld\externpro\xpbase\source\nodejs_14.17.0\deps\v8\src\base\template-utils.h(71): note: while evaluating 'v8::base::fold(&v8::internal::detail::CombineRegListsHelper, &v8::internal::$S26, &<lists_1>, &<lists_2>, &<lists_3>, &<lists_4>)'
3>  e:\smanders\bld\externpro\xpbase\source\nodejs_14.17.0\deps\v8\src\codegen\reglist.h(39): note: while evaluating 'v8::base::fold(&v8::internal::detail::CombineRegListsHelper, &v8::internal::$S26, &<lists_1>, &<lists_2>, &<lists_3>, &<lists_4>)'
3>  e:\smanders\bld\externpro\xpbase\source\nodejs_14.17.0\deps\v8\src\codegen\register.h(44): note: while evaluating 'v8::internal::CombineRegLists(&v8::internal::detail::CombineRegListsHelper, &v8::internal::$S26, &<lists_1>, &<lists_2>, &<lists_3>, &<lists_4>)'
3>  e:\smanders\bld\externpro\xpbase\source\nodejs_14.17.0\deps\v8\src\codegen\x64\register-x64.h(81): note: while evaluating 'v8::internal::RegisterBase<v8::internal::Register,16>::ListOf(&v8::internal::detail::CombineRegListsHelper, &v8::internal::$S26, &<lists_1>, &<lists_2>, &<lists_3>, &<lists_4>)'
3>e:\smanders\bld\externpro\xpbase\source\nodejs_14.17.0\deps\v8\src\codegen\reglist.h(39): error C2131: expression did not evaluate to a constant [E:\smanders\bld\externpro\xpbase\Source\nodejs_14.17.0\tools\v8_gypfiles\v8_initializers.vcxproj]
3>  e:\smanders\bld\externpro\xpbase\source\nodejs_14.17.0\deps\v8\src\base\template-utils.h(71): note: failure was caused by control reaching the end of a constexpr function
3>  e:\smanders\bld\externpro\xpbase\source\nodejs_14.17.0\deps\v8\src\codegen\reglist.h(39): note: while evaluating 'v8::base::fold(&v8::internal::detail::CombineRegListsHelper, &0, &<lists_0>, &<lists_1>, &<lists_2>, &<lists_3>, &<lists_4>)'
3>  e:\smanders\bld\externpro\xpbase\source\nodejs_14.17.0\deps\v8\src\codegen\register.h(44): note: while evaluating 'v8::internal::CombineRegLists(&v8::internal::detail::CombineRegListsHelper, &0, &<lists_0>, &<lists_1>, &<lists_2>, &<lists_3>, &<lists_4>)'
3>  e:\smanders\bld\externpro\xpbase\source\nodejs_14.17.0\deps\v8\src\codegen\x64\register-x64.h(81): note: while evaluating 'v8::internal::RegisterBase<v8::internal::Register,16>::ListOf(&v8::internal::detail::CombineRegListsHelper, &0, &<lists_0>, &<lists_1>, &<lists_2>, &<lists_3>, &<lists_4>)'
3>e:\smanders\bld\externpro\xpbase\source\nodejs_14.17.0\deps\v8\src\codegen\register.h(44): error C2131: expression did not evaluate to a constant [E:\smanders\bld\externpro\xpbase\Source\nodejs_14.17.0\tools\v8_gypfiles\v8_initializers.vcxproj]
3>  e:\smanders\bld\externpro\xpbase\source\nodejs_14.17.0\deps\v8\src\codegen\reglist.h(39): note: failure was caused by control reaching the end of a constexpr function
3>  e:\smanders\bld\externpro\xpbase\source\nodejs_14.17.0\deps\v8\src\codegen\register.h(44): note: while evaluating 'v8::internal::CombineRegLists(1, 2, 4, 8, 128)'
3>  e:\smanders\bld\externpro\xpbase\source\nodejs_14.17.0\deps\v8\src\codegen\x64\register-x64.h(81): note: while evaluating 'v8::internal::RegisterBase<v8::internal::Register,16>::ListOf(1, 2, 4, 8, 128)'
3>e:\smanders\bld\externpro\xpbase\source\nodejs_14.17.0\deps\v8\src\codegen\x64\register-x64.h(81): error C2131: expression did not evaluate to a constant [E:\smanders\bld\externpro\xpbase\Source\nodejs_14.17.0\tools\v8_gypfiles\v8_initializers.vcxproj]
3>  e:\smanders\bld\externpro\xpbase\source\nodejs_14.17.0\deps\v8\src\codegen\register.h(44): note: failure was caused by control reaching the end of a constexpr function
3>  e:\smanders\bld\externpro\xpbase\source\nodejs_14.17.0\deps\v8\src\codegen\x64\register-x64.h(81): note: while evaluating 'v8::internal::RegisterBase<v8::internal::Register,16>::ListOf(v8::internal::Register{v8::internal::RegisterBase<class v8::internal::Register,16>{v8::internal::RegisterBase<class v8::internal::Register,16>::reg_code_=0}}, v8::internal::Register{v8::internal::RegisterBase<class v8::internal::Register,16>{v8::internal::RegisterBase<class v8::internal::Register,16>::reg_code_=1}}, v8::internal::Register{v8::internal::RegisterBase<class v8::internal::Register,16>{v8::internal::RegisterBase<class v8::internal::Register,16>::reg_code_=2}}, v8::internal::Register{v8::internal::RegisterBase<class v8::internal::Register,16>{v8::internal::RegisterBase<class v8::internal::Register,16>::reg_code_=3}}, v8::internal::Register{v8::internal::RegisterBase<class v8::internal::Register,16>{v8::internal::RegisterBase<class v8::internal::Register,16>::reg_code_=7}})'
3>e:\smanders\bld\externpro\xpbase\source\nodejs_14.17.0\deps\v8\src\compiler\add-type-assertions-reducer.cc(34): error C2660: 'v8::internal::compiler::Graph::NewNode': function does not take 2 arguments [E:\smanders\bld\externpro\xpbase\Source\nodejs_14.17.0\tools\v8_gypfiles\v8_compiler.vcxproj]
3>  e:\smanders\bld\externpro\xpbase\source\nodejs_14.17.0\deps\v8\src\compiler\graph.h(63): note: see declaration of 'v8::internal::compiler::Graph::NewNode'
3>e:\smanders\bld\externpro\xpbase\source\nodejs_14.17.0\deps\v8\src\base\template-utils.h(70): error C2131: expression did not evaluate to a constant [E:\smanders\bld\externpro\xpbase\Source\nodejs_14.17.0\tools\v8_gypfiles\v8_init.vcxproj]
3>  e:\smanders\bld\externpro\xpbase\source\nodejs_14.17.0\deps\v8\src\base\template-utils.h(70): note: failure was caused by a read of a variable outside its lifetime
3>  e:\smanders\bld\externpro\xpbase\source\nodejs_14.17.0\deps\v8\src\base\template-utils.h(70): note: see usage of 'first'
3>  e:\smanders\bld\externpro\xpbase\source\nodejs_14.17.0\deps\v8\src\base\template-utils.h(70): note: while evaluating 'v8::internal::detail::CombineRegListsHelper()'
3>e:\smanders\bld\externpro\xpbase\source\nodejs_14.17.0\deps\v8\src\base\template-utils.h(71): error C2131: expression did not evaluate to a constant [E:\smanders\bld\externpro\xpbase\Source\nodejs_14.17.0\tools\v8_gypfiles\v8_init.vcxproj]
3>  e:\smanders\bld\externpro\xpbase\source\nodejs_14.17.0\deps\v8\src\base\template-utils.h(71): note: failure was caused by control reaching the end of a constexpr function
3>  e:\smanders\bld\externpro\xpbase\source\nodejs_14.17.0\deps\v8\src\base\template-utils.h(71): note: while evaluating 'v8::base::fold(&v8::internal::detail::CombineRegListsHelper, &v8::internal::$S6, &<lists_1>, &<lists_2>, &<lists_3>, &<lists_4>)'
3>  e:\smanders\bld\externpro\xpbase\source\nodejs_14.17.0\deps\v8\src\codegen\reglist.h(39): note: while evaluating 'v8::base::fold(&v8::internal::detail::CombineRegListsHelper, &v8::internal::$S6, &<lists_1>, &<lists_2>, &<lists_3>, &<lists_4>)'
3>  e:\smanders\bld\externpro\xpbase\source\nodejs_14.17.0\deps\v8\src\codegen\register.h(44): note: while evaluating 'v8::internal::CombineRegLists(&v8::internal::detail::CombineRegListsHelper, &v8::internal::$S6, &<lists_1>, &<lists_2>, &<lists_3>, &<lists_4>)'
3>  e:\smanders\bld\externpro\xpbase\source\nodejs_14.17.0\deps\v8\src\codegen\x64\register-x64.h(81): note: while evaluating 'v8::internal::RegisterBase<v8::internal::Register,16>::ListOf(&v8::internal::detail::CombineRegListsHelper, &v8::internal::$S6, &<lists_1>, &<lists_2>, &<lists_3>, &<lists_4>)'
3>e:\smanders\bld\externpro\xpbase\source\nodejs_14.17.0\deps\v8\src\codegen\reglist.h(39): error C2131: expression did not evaluate to a constant [E:\smanders\bld\externpro\xpbase\Source\nodejs_14.17.0\tools\v8_gypfiles\v8_init.vcxproj]
3>  e:\smanders\bld\externpro\xpbase\source\nodejs_14.17.0\deps\v8\src\base\template-utils.h(71): note: failure was caused by control reaching the end of a constexpr function
3>  e:\smanders\bld\externpro\xpbase\source\nodejs_14.17.0\deps\v8\src\codegen\reglist.h(39): note: while evaluating 'v8::base::fold(&v8::internal::detail::CombineRegListsHelper, &0, &<lists_0>, &<lists_1>, &<lists_2>, &<lists_3>, &<lists_4>)'
3>  e:\smanders\bld\externpro\xpbase\source\nodejs_14.17.0\deps\v8\src\codegen\register.h(44): note: while evaluating 'v8::internal::CombineRegLists(&v8::internal::detail::CombineRegListsHelper, &0, &<lists_0>, &<lists_1>, &<lists_2>, &<lists_3>, &<lists_4>)'
3>  e:\smanders\bld\externpro\xpbase\source\nodejs_14.17.0\deps\v8\src\codegen\x64\register-x64.h(81): note: while evaluating 'v8::internal::RegisterBase<v8::internal::Register,16>::ListOf(&v8::internal::detail::CombineRegListsHelper, &0, &<lists_0>, &<lists_1>, &<lists_2>, &<lists_3>, &<lists_4>)'
3>e:\smanders\bld\externpro\xpbase\source\nodejs_14.17.0\deps\v8\src\codegen\register.h(44): error C2131: expression did not evaluate to a constant [E:\smanders\bld\externpro\xpbase\Source\nodejs_14.17.0\tools\v8_gypfiles\v8_init.vcxproj]
3>  e:\smanders\bld\externpro\xpbase\source\nodejs_14.17.0\deps\v8\src\codegen\reglist.h(39): note: failure was caused by control reaching the end of a constexpr function
3>  e:\smanders\bld\externpro\xpbase\source\nodejs_14.17.0\deps\v8\src\codegen\register.h(44): note: while evaluating 'v8::internal::CombineRegLists(1, 2, 4, 8, 128)'
3>  e:\smanders\bld\externpro\xpbase\source\nodejs_14.17.0\deps\v8\src\codegen\x64\register-x64.h(81): note: while evaluating 'v8::internal::RegisterBase<v8::internal::Register,16>::ListOf(1, 2, 4, 8, 128)'
3>e:\smanders\bld\externpro\xpbase\source\nodejs_14.17.0\deps\v8\src\codegen\x64\register-x64.h(81): error C2131: expression did not evaluate to a constant [E:\smanders\bld\externpro\xpbase\Source\nodejs_14.17.0\tools\v8_gypfiles\v8_init.vcxproj]
3>  e:\smanders\bld\externpro\xpbase\source\nodejs_14.17.0\deps\v8\src\codegen\register.h(44): note: failure was caused by control reaching the end of a constexpr function
3>  e:\smanders\bld\externpro\xpbase\source\nodejs_14.17.0\deps\v8\src\codegen\x64\register-x64.h(81): note: while evaluating 'v8::internal::RegisterBase<v8::internal::Register,16>::ListOf(v8::internal::Register{v8::internal::RegisterBase<class v8::internal::Register,16>{v8::internal::RegisterBase<class v8::internal::Register,16>::reg_code_=0}}, v8::internal::Register{v8::internal::RegisterBase<class v8::internal::Register,16>{v8::internal::RegisterBase<class v8::internal::Register,16>::reg_code_=1}}, v8::internal::Register{v8::internal::RegisterBase<class v8::internal::Register,16>{v8::internal::RegisterBase<class v8::internal::Register,16>::reg_code_=2}}, v8::internal::Register{v8::internal::RegisterBase<class v8::internal::Register,16>{v8::internal::RegisterBase<class v8::internal::Register,16>::reg_code_=3}}, v8::internal::Register{v8::internal::RegisterBase<class v8::internal::Register,16>{v8::internal::RegisterBase<class v8::internal::Register,16>::reg_code_=7}})'
3>  libnode.vcxproj -> out\Release\lib\libnode.lib
3>  api.cc
3>e:\smanders\bld\externpro\xpbase\source\nodejs_14.17.0\deps\v8\src\base\template-utils.h(70): error C2131: expression did not evaluate to a constant [E:\smanders\bld\externpro\xpbase\Source\nodejs_14.17.0\tools\v8_gypfiles\v8_base_without_compiler.vcxproj]
3>  e:\smanders\bld\externpro\xpbase\source\nodejs_14.17.0\deps\v8\src\base\template-utils.h(70): note: failure was caused by a read of a variable outside its lifetime
3>  e:\smanders\bld\externpro\xpbase\source\nodejs_14.17.0\deps\v8\src\base\template-utils.h(70): note: see usage of 'first'
3>  e:\smanders\bld\externpro\xpbase\source\nodejs_14.17.0\deps\v8\src\base\template-utils.h(70): note: while evaluating 'v8::internal::detail::CombineRegListsHelper()'
3>e:\smanders\bld\externpro\xpbase\source\nodejs_14.17.0\deps\v8\src\base\template-utils.h(71): error C2131: expression did not evaluate to a constant [E:\smanders\bld\externpro\xpbase\Source\nodejs_14.17.0\tools\v8_gypfiles\v8_base_without_compiler.vcxproj]
3>  e:\smanders\bld\externpro\xpbase\source\nodejs_14.17.0\deps\v8\src\base\template-utils.h(71): note: failure was caused by control reaching the end of a constexpr function
3>  e:\smanders\bld\externpro\xpbase\source\nodejs_14.17.0\deps\v8\src\base\template-utils.h(71): note: while evaluating 'v8::base::fold(&v8::internal::detail::CombineRegListsHelper, &v8::internal::$S27, &<lists_1>, &<lists_2>, &<lists_3>, &<lists_4>)'
3>  e:\smanders\bld\externpro\xpbase\source\nodejs_14.17.0\deps\v8\src\codegen\reglist.h(39): note: while evaluating 'v8::base::fold(&v8::internal::detail::CombineRegListsHelper, &v8::internal::$S27, &<lists_1>, &<lists_2>, &<lists_3>, &<lists_4>)'
3>  e:\smanders\bld\externpro\xpbase\source\nodejs_14.17.0\deps\v8\src\codegen\register.h(44): note: while evaluating 'v8::internal::CombineRegLists(&v8::internal::detail::CombineRegListsHelper, &v8::internal::$S27, &<lists_1>, &<lists_2>, &<lists_3>, &<lists_4>)'
3>  e:\smanders\bld\externpro\xpbase\source\nodejs_14.17.0\deps\v8\src\codegen\x64\register-x64.h(81): note: while evaluating 'v8::internal::RegisterBase<v8::internal::Register,16>::ListOf(&v8::internal::detail::CombineRegListsHelper, &v8::internal::$S27, &<lists_1>, &<lists_2>, &<lists_3>, &<lists_4>)'
3>e:\smanders\bld\externpro\xpbase\source\nodejs_14.17.0\deps\v8\src\codegen\reglist.h(39): error C2131: expression did not evaluate to a constant [E:\smanders\bld\externpro\xpbase\Source\nodejs_14.17.0\tools\v8_gypfiles\v8_base_without_compiler.vcxproj]
3>  e:\smanders\bld\externpro\xpbase\source\nodejs_14.17.0\deps\v8\src\base\template-utils.h(71): note: failure was caused by control reaching the end of a constexpr function
3>  e:\smanders\bld\externpro\xpbase\source\nodejs_14.17.0\deps\v8\src\codegen\reglist.h(39): note: while evaluating 'v8::base::fold(&v8::internal::detail::CombineRegListsHelper, &0, &<lists_0>, &<lists_1>, &<lists_2>, &<lists_3>, &<lists_4>)'
3>  e:\smanders\bld\externpro\xpbase\source\nodejs_14.17.0\deps\v8\src\codegen\register.h(44): note: while evaluating 'v8::internal::CombineRegLists(&v8::internal::detail::CombineRegListsHelper, &0, &<lists_0>, &<lists_1>, &<lists_2>, &<lists_3>, &<lists_4>)'
3>  e:\smanders\bld\externpro\xpbase\source\nodejs_14.17.0\deps\v8\src\codegen\x64\register-x64.h(81): note: while evaluating 'v8::internal::RegisterBase<v8::internal::Register,16>::ListOf(&v8::internal::detail::CombineRegListsHelper, &0, &<lists_0>, &<lists_1>, &<lists_2>, &<lists_3>, &<lists_4>)'
3>e:\smanders\bld\externpro\xpbase\source\nodejs_14.17.0\deps\v8\src\codegen\register.h(44): error C2131: expression did not evaluate to a constant [E:\smanders\bld\externpro\xpbase\Source\nodejs_14.17.0\tools\v8_gypfiles\v8_base_without_compiler.vcxproj]
3>  e:\smanders\bld\externpro\xpbase\source\nodejs_14.17.0\deps\v8\src\codegen\reglist.h(39): note: failure was caused by control reaching the end of a constexpr function
3>  e:\smanders\bld\externpro\xpbase\source\nodejs_14.17.0\deps\v8\src\codegen\register.h(44): note: while evaluating 'v8::internal::CombineRegLists(1, 2, 4, 8, 128)'
3>  e:\smanders\bld\externpro\xpbase\source\nodejs_14.17.0\deps\v8\src\codegen\x64\register-x64.h(81): note: while evaluating 'v8::internal::RegisterBase<v8::internal::Register,16>::ListOf(1, 2, 4, 8, 128)'
3>e:\smanders\bld\externpro\xpbase\source\nodejs_14.17.0\deps\v8\src\codegen\x64\register-x64.h(81): error C2131: expression did not evaluate to a constant [E:\smanders\bld\externpro\xpbase\Source\nodejs_14.17.0\tools\v8_gypfiles\v8_base_without_compiler.vcxproj]
3>  e:\smanders\bld\externpro\xpbase\source\nodejs_14.17.0\deps\v8\src\codegen\register.h(44): note: failure was caused by control reaching the end of a constexpr function
3>  e:\smanders\bld\externpro\xpbase\source\nodejs_14.17.0\deps\v8\src\codegen\x64\register-x64.h(81): note: while evaluating 'v8::internal::RegisterBase<v8::internal::Register,16>::ListOf(v8::internal::Register{v8::internal::RegisterBase<class v8::internal::Register,16>{v8::internal::RegisterBase<class v8::internal::Register,16>::reg_code_=0}}, v8::internal::Register{v8::internal::RegisterBase<class v8::internal::Register,16>{v8::internal::RegisterBase<class v8::internal::Register,16>::reg_code_=1}}, v8::internal::Register{v8::internal::RegisterBase<class v8::internal::Register,16>{v8::internal::RegisterBase<class v8::internal::Register,16>::reg_code_=2}}, v8::internal::Register{v8::internal::RegisterBase<class v8::internal::Register,16>{v8::internal::RegisterBase<class v8::internal::Register,16>::reg_code_=3}}, v8::internal::Register{v8::internal::RegisterBase<class v8::internal::Register,16>{v8::internal::RegisterBase<class v8::internal::Register,16>::reg_code_=7}})'
3>Building Node with reused solution failed. To regenerate project files use "vcbuild projgen"
3>Done building project "nodejs_14.17.0_Releasevcbuild.vcxproj" -- FAILED.
========== Build: 2 succeeded, 1 failed, 1 up-to-date, 0 skipped ==========
smanders commented 3 years ago

as part of the build of nodejs, headers are copied https://github.com/smanders/externpro/blob/25b462ed70bcb78a2d29b4956f1a816312cc2dd3/projects/nodejs.cmake#L114-L131

it appears that additional header(s) need to be copied with updated nodejs

[ 19%] Building CXX object Shared/Sdv8LIB/Sdv8/CMakeFiles/Sdv8.dir/AddonDebugLogger.cpp.o
In file included from /bpvol/VantageSuper/Shared/Sdv8LIB/Sdv8/AddonDebugLogger.hpp:11:0,
                 from /bpvol/VantageSuper/Shared/Sdv8LIB/Sdv8/AddonDebugLogger.cpp:8:
/bpvol/workspace/externpro/_bld/externpro_21.03-24-g4491eb5-gcc731-64/include/node_14.17.0/node/v8.h:28:10: fatal error: cppgc/common.h: No such file or directory
 #include "cppgc/common.h"
          ^~~~~~~~~~~~~~~~
compilation terminated.
smanders commented 3 years ago

project using node 14.17.0

[ 19%] Building CXX object Shared/Sdv8LIB/Sdv8/CMakeFiles/Sdv8.dir/AddonDebugLogger.cpp.o
In file included from /bpvol/VantageSuper/Shared/Sdv8LIB/Sdv8/AddonDebugLogger.cpp:10:0:
/bpvol/VantageSuper/Shared/Sdv8LIB/Sdv8/fromV8.hpp: In static member function 'static T sdv8::detail::FromV8<T*, typename std::enable_if<sdv8::detail::IsIntOrFloat<T>::value, void>::type>::get(const v8::Local<v8::Value>&)':
/bpvol/VantageSuper/Shared/Sdv8LIB/Sdv8/fromV8.hpp:157:65: error: no matching function for call to 'v8::Value::NumberValue()'
         if (v->IsNumber()) return static_cast<T>(v->NumberValue());
                                                                 ^
In file included from /bpvol/VantageSuper/Shared/Sdv8LIB/Sdv8/AddonDebugLogger.hpp:11:0,
                 from /bpvol/VantageSuper/Shared/Sdv8LIB/Sdv8/AddonDebugLogger.cpp:8:
/bpvol/workspace/externpro/_bld/externpro_21.03-29-g037d43e-gcc731-64/include/node_14.17.0/node/v8.h:2861:39: note: candidate: v8::Maybe<double> v8::Value::NumberValue(v8::Local<v8::Context>) const
   V8_WARN_UNUSED_RESULT Maybe<double> NumberValue(Local<Context> context) const;
                                       ^~~~~~~~~~~
/bpvol/workspace/externpro/_bld/externpro_21.03-29-g037d43e-gcc731-64/include/node_14.17.0/node/v8.h:2861:39: note:   candidate expects 1 argument, 0 provided
In file included from /bpvol/VantageSuper/Shared/Sdv8LIB/Sdv8/AddonDebugLogger.cpp:10:0:
/bpvol/VantageSuper/Shared/Sdv8LIB/Sdv8/fromV8.hpp: In static member function 'static sdv8::detail::FromV8<std::basic_string<char>*>::Type sdv8::detail::FromV8<std::basic_string<char>*>::get(const v8::Local<v8::Value>&)':
/bpvol/VantageSuper/Shared/Sdv8LIB/Sdv8/fromV8.hpp:176:71: error: no matching function for call to 'v8::Value::ToString()'
         if (v->IsString()) return *(v8::String::Utf8Value(v->ToString()));
                                                                       ^
In file included from /bpvol/VantageSuper/Shared/Sdv8LIB/Sdv8/AddonDebugLogger.hpp:11:0,
                 from /bpvol/VantageSuper/Shared/Sdv8LIB/Sdv8/AddonDebugLogger.cpp:8:
/bpvol/workspace/externpro/_bld/externpro_21.03-29-g037d43e-gcc731-64/include/node_14.17.0/node/v8.h:2810:44: note: candidate: v8::MaybeLocal<v8::String> v8::Value::ToString(v8::Local<v8::Context>) const
   V8_WARN_UNUSED_RESULT MaybeLocal<String> ToString(
                                            ^~~~~~~~
/bpvol/workspace/externpro/_bld/externpro_21.03-29-g037d43e-gcc731-64/include/node_14.17.0/node/v8.h:2810:44: note:   candidate expects 1 argument, 0 provided
In file included from /bpvol/VantageSuper/Shared/Sdv8LIB/Sdv8/AddonDebugLogger.cpp:10:0:
/bpvol/VantageSuper/Shared/Sdv8LIB/Sdv8/fromV8.hpp: In static member function 'static sdv8::detail::FromV8<std::vector<T>*>::Type sdv8::detail::FromV8<std::vector<T>*>::get(const v8::Local<v8::Value>&)':
/bpvol/VantageSuper/Shared/Sdv8LIB/Sdv8/fromV8.hpp:199:51: error: no matching function for call to 'v8::Array::Get(uint32_t&)'
           vec.push_back(FromV8<T*>::get(arr->Get(i)));
                                                   ^
In file included from /bpvol/VantageSuper/Shared/Sdv8LIB/Sdv8/AddonDebugLogger.hpp:11:0,
                 from /bpvol/VantageSuper/Shared/Sdv8LIB/Sdv8/AddonDebugLogger.cpp:8:
/bpvol/workspace/externpro/_bld/externpro_21.03-29-g037d43e-gcc731-64/include/node_14.17.0/node/v8.h:3717:43: note: candidate: v8::MaybeLocal<v8::Value> v8::Object::Get(v8::Local<v8::Context>, v8::Local<v8::Value>)
   V8_WARN_UNUSED_RESULT MaybeLocal<Value> Get(Local<Context> context,
                                           ^~~
/bpvol/workspace/externpro/_bld/externpro_21.03-29-g037d43e-gcc731-64/include/node_14.17.0/node/v8.h:3717:43: note:   candidate expects 2 arguments, 1 provided
/bpvol/workspace/externpro/_bld/externpro_21.03-29-g037d43e-gcc731-64/include/node_14.17.0/node/v8.h:3720:43: note: candidate: v8::MaybeLocal<v8::Value> v8::Object::Get(v8::Local<v8::Context>, uint32_t)
   V8_WARN_UNUSED_RESULT MaybeLocal<Value> Get(Local<Context> context,
                                           ^~~
/bpvol/workspace/externpro/_bld/externpro_21.03-29-g037d43e-gcc731-64/include/node_14.17.0/node/v8.h:3720:43: note:   candidate expects 2 arguments, 1 provided
/bpvol/VantageSuper/Shared/Sdv8LIB/Sdv8/AddonDebugLogger.cpp: In function 'void {anonymous}::convertToStringBuffer(std::string&, const v8::Local<v8::ArrayBufferView>&, v8::Isolate*)':
/bpvol/VantageSuper/Shared/Sdv8LIB/Sdv8/AddonDebugLogger.cpp:66:47: error: no matching function for call to 'v8::ArrayBufferView::Get(uint32_t&)'
       output.append(std::to_string(args->Get(i)->ToInt32(pIsolate)->Value()));
                                               ^
In file included from /bpvol/VantageSuper/Shared/Sdv8LIB/Sdv8/AddonDebugLogger.hpp:11:0,
                 from /bpvol/VantageSuper/Shared/Sdv8LIB/Sdv8/AddonDebugLogger.cpp:8:
/bpvol/workspace/externpro/_bld/externpro_21.03-29-g037d43e-gcc731-64/include/node_14.17.0/node/v8.h:3717:43: note: candidate: v8::MaybeLocal<v8::Value> v8::Object::Get(v8::Local<v8::Context>, v8::Local<v8::Value>)
   V8_WARN_UNUSED_RESULT MaybeLocal<Value> Get(Local<Context> context,
                                           ^~~
/bpvol/workspace/externpro/_bld/externpro_21.03-29-g037d43e-gcc731-64/include/node_14.17.0/node/v8.h:3717:43: note:   candidate expects 2 arguments, 1 provided
/bpvol/workspace/externpro/_bld/externpro_21.03-29-g037d43e-gcc731-64/include/node_14.17.0/node/v8.h:3720:43: note: candidate: v8::MaybeLocal<v8::Value> v8::Object::Get(v8::Local<v8::Context>, uint32_t)
   V8_WARN_UNUSED_RESULT MaybeLocal<Value> Get(Local<Context> context,
                                           ^~~
/bpvol/workspace/externpro/_bld/externpro_21.03-29-g037d43e-gcc731-64/include/node_14.17.0/node/v8.h:3720:43: note:   candidate expects 2 arguments, 1 provided
/bpvol/VantageSuper/Shared/Sdv8LIB/Sdv8/AddonDebugLogger.cpp: In function 'void {anonymous}::convertToStringArray(std::string&, const v8::Local<v8::Array>&, v8::Isolate*)':
/bpvol/VantageSuper/Shared/Sdv8LIB/Sdv8/AddonDebugLogger.cpp:79:42: error: no matching function for call to 'v8::Array::Get(uint32_t&)'
       convertToString(output, args->Get(i), pIsolate);
                                          ^
In file included from /bpvol/VantageSuper/Shared/Sdv8LIB/Sdv8/AddonDebugLogger.hpp:11:0,
                 from /bpvol/VantageSuper/Shared/Sdv8LIB/Sdv8/AddonDebugLogger.cpp:8:
/bpvol/workspace/externpro/_bld/externpro_21.03-29-g037d43e-gcc731-64/include/node_14.17.0/node/v8.h:3717:43: note: candidate: v8::MaybeLocal<v8::Value> v8::Object::Get(v8::Local<v8::Context>, v8::Local<v8::Value>)
   V8_WARN_UNUSED_RESULT MaybeLocal<Value> Get(Local<Context> context,
                                           ^~~
/bpvol/workspace/externpro/_bld/externpro_21.03-29-g037d43e-gcc731-64/include/node_14.17.0/node/v8.h:3717:43: note:   candidate expects 2 arguments, 1 provided
/bpvol/workspace/externpro/_bld/externpro_21.03-29-g037d43e-gcc731-64/include/node_14.17.0/node/v8.h:3720:43: note: candidate: v8::MaybeLocal<v8::Value> v8::Object::Get(v8::Local<v8::Context>, uint32_t)
   V8_WARN_UNUSED_RESULT MaybeLocal<Value> Get(Local<Context> context,
                                           ^~~
/bpvol/workspace/externpro/_bld/externpro_21.03-29-g037d43e-gcc731-64/include/node_14.17.0/node/v8.h:3720:43: note:   candidate expects 2 arguments, 1 provided
/bpvol/VantageSuper/Shared/Sdv8LIB/Sdv8/AddonDebugLogger.cpp: In function 'void {anonymous}::convertToStringObj(std::string&, const v8::Local<v8::Object>&, v8::Isolate*)':
/bpvol/VantageSuper/Shared/Sdv8LIB/Sdv8/AddonDebugLogger.cpp:90:41: error: no matching function for call to 'v8::Object::GetPropertyNames()'
     auto names = args->GetPropertyNames();
                                         ^
In file included from /bpvol/VantageSuper/Shared/Sdv8LIB/Sdv8/AddonDebugLogger.hpp:11:0,
                 from /bpvol/VantageSuper/Shared/Sdv8LIB/Sdv8/AddonDebugLogger.cpp:8:
/bpvol/workspace/externpro/_bld/externpro_21.03-29-g037d43e-gcc731-64/include/node_14.17.0/node/v8.h:3825:43: note: candidate: v8::MaybeLocal<v8::Array> v8::Object::GetPropertyNames(v8::Local<v8::Context>)
   V8_WARN_UNUSED_RESULT MaybeLocal<Array> GetPropertyNames(
                                           ^~~~~~~~~~~~~~~~
/bpvol/workspace/externpro/_bld/externpro_21.03-29-g037d43e-gcc731-64/include/node_14.17.0/node/v8.h:3825:43: note:   candidate expects 1 argument, 0 provided
/bpvol/workspace/externpro/_bld/externpro_21.03-29-g037d43e-gcc731-64/include/node_14.17.0/node/v8.h:3827:43: note: candidate: v8::MaybeLocal<v8::Array> v8::Object::GetPropertyNames(v8::Local<v8::Context>, v8::KeyCollectionMode, v8::PropertyFilter, v8::IndexFilter, v8::KeyConversionMode)
   V8_WARN_UNUSED_RESULT MaybeLocal<Array> GetPropertyNames(
                                           ^~~~~~~~~~~~~~~~
/bpvol/workspace/externpro/_bld/externpro_21.03-29-g037d43e-gcc731-64/include/node_14.17.0/node/v8.h:3827:43: note:   candidate expects 5 arguments, 0 provided
/bpvol/VantageSuper/Shared/Sdv8LIB/Sdv8/AddonDebugLogger.cpp: In function 'void {anonymous}::convertToString(std::string&, const v8::Local<v8::Value>&, v8::Isolate*)':
/bpvol/VantageSuper/Shared/Sdv8LIB/Sdv8/AddonDebugLogger.cpp:134:49: error: no matching function for call to 'v8::Value::ToBoolean()'
       output.append(convertBool(args->ToBoolean()->Value()));
                                                 ^
In file included from /bpvol/VantageSuper/Shared/Sdv8LIB/Sdv8/AddonDebugLogger.hpp:11:0,
                 from /bpvol/VantageSuper/Shared/Sdv8LIB/Sdv8/AddonDebugLogger.cpp:8:
/bpvol/workspace/externpro/_bld/externpro_21.03-29-g037d43e-gcc731-64/include/node_14.17.0/node/v8.h:2848:18: note: candidate: v8::Local<v8::Boolean> v8::Value::ToBoolean(v8::Isolate*) const
   Local<Boolean> ToBoolean(Isolate* isolate) const;
                  ^~~~~~~~~
/bpvol/workspace/externpro/_bld/externpro_21.03-29-g037d43e-gcc731-64/include/node_14.17.0/node/v8.h:2848:18: note:   candidate expects 1 argument, 0 provided
/bpvol/VantageSuper/Shared/Sdv8LIB/Sdv8/AddonDebugLogger.cpp:138:49: error: no matching function for call to 'v8::Value::ToObject()'
       convertToStringObj(output, args->ToObject(), pIsolate);
                                                 ^
In file included from /bpvol/VantageSuper/Shared/Sdv8LIB/Sdv8/AddonDebugLogger.hpp:11:0,
                 from /bpvol/VantageSuper/Shared/Sdv8LIB/Sdv8/AddonDebugLogger.cpp:8:
/bpvol/workspace/externpro/_bld/externpro_21.03-29-g037d43e-gcc731-64/include/node_14.17.0/node/v8.h:2822:44: note: candidate: v8::MaybeLocal<v8::Object> v8::Value::ToObject(v8::Local<v8::Context>) const
   V8_WARN_UNUSED_RESULT MaybeLocal<Object> ToObject(
                                            ^~~~~~~~
/bpvol/workspace/externpro/_bld/externpro_21.03-29-g037d43e-gcc731-64/include/node_14.17.0/node/v8.h:2822:44: note:   candidate expects 1 argument, 0 provided
/bpvol/VantageSuper/Shared/Sdv8LIB/Sdv8/AddonDebugLogger.cpp: In function 'void sdv8::setLogger(const v8::FunctionCallbackInfo<v8::Value>&)':
/bpvol/VantageSuper/Shared/Sdv8LIB/Sdv8/AddonDebugLogger.cpp:169:41: error: no matching function for call to 'v8::Value::ToBoolean()'
     bool shouldLog = args[0]->ToBoolean()->Value();
                                         ^
In file included from /bpvol/VantageSuper/Shared/Sdv8LIB/Sdv8/AddonDebugLogger.hpp:11:0,
                 from /bpvol/VantageSuper/Shared/Sdv8LIB/Sdv8/AddonDebugLogger.cpp:8:
/bpvol/workspace/externpro/_bld/externpro_21.03-29-g037d43e-gcc731-64/include/node_14.17.0/node/v8.h:2848:18: note: candidate: v8::Local<v8::Boolean> v8::Value::ToBoolean(v8::Isolate*) const
   Local<Boolean> ToBoolean(Isolate* isolate) const;
                  ^~~~~~~~~
/bpvol/workspace/externpro/_bld/externpro_21.03-29-g037d43e-gcc731-64/include/node_14.17.0/node/v8.h:2848:18: note:   candidate expects 1 argument, 0 provided
/bpvol/VantageSuper/Shared/Sdv8LIB/Sdv8/AddonDebugLogger.cpp:177:71: error: no matching function for call to 'v8::Exception::Error(v8::MaybeLocal<v8::String>)'
       v8::Exception::Error(v8::String::NewFromUtf8(pIsolate, e.what())));
                                                                       ^
In file included from /bpvol/VantageSuper/Shared/Sdv8LIB/Sdv8/AddonDebugLogger.hpp:11:0,
                 from /bpvol/VantageSuper/Shared/Sdv8LIB/Sdv8/AddonDebugLogger.cpp:8:
/bpvol/workspace/externpro/_bld/externpro_21.03-29-g037d43e-gcc731-64/include/node_14.17.0/node/v8.h:7196:23: note: candidate: static v8::Local<v8::Value> v8::Exception::Error(v8::Local<v8::String>)
   static Local<Value> Error(Local<String> message);
                       ^~~~~
/bpvol/workspace/externpro/_bld/externpro_21.03-29-g037d43e-gcc731-64/include/node_14.17.0/node/v8.h:7196:23: note:   no known conversion for argument 1 from 'v8::MaybeLocal<v8::String>' to 'v8::Local<v8::String>'
/bpvol/VantageSuper/Shared/Sdv8LIB/Sdv8/AddonDebugLogger.cpp: At global scope:
/bpvol/VantageSuper/Shared/Sdv8LIB/Sdv8/AddonDebugLogger.cpp:101:15: error: 'std::string {anonymous}::convertBool(bool)' defined but not used [-Werror=unused-function]
   std::string convertBool(bool toConvert)
               ^~~~~~~~~~~
/bpvol/VantageSuper/Shared/Sdv8LIB/Sdv8/AddonDebugLogger.cpp:85:8: error: 'void {anonymous}::convertToStringObj(std::string&, const v8::Local<v8::Object>&, v8::Isolate*)' defined but not used [-Werror=unused-function]
   void convertToStringObj(std::string& output,
        ^~~~~~~~~~~~~~~~~~
cc1plus: all warnings being treated as errors
make[2]: *** [Shared/Sdv8LIB/Sdv8/CMakeFiles/Sdv8.dir/AddonDebugLogger.cpp.o] Error 1
[ 19%] Building CXX object Shared/Sdv8LIB/Sdv8/CMakeFiles/Sdv8.dir/manipulation.cpp.o
/bpvol/VantageSuper/Shared/Sdv8LIB/Sdv8/manipulation.cpp: In function 'void sdv8::callV8Function(v8::Isolate*, v8::Persistent<v8::Function>&, unsigned int, v8::Local<v8::Value>*)':
/bpvol/VantageSuper/Shared/Sdv8LIB/Sdv8/manipulation.cpp:25:67: error: no matching function for call to 'v8::Function::Call(v8::Local<v8::Object>, unsigned int&, std::nullptr_t)'
     f->Call(pIsolate->GetCurrentContext()->Global(), argc, nullptr);
                                                                   ^
In file included from /bpvol/VantageSuper/Shared/Sdv8LIB/Sdv8/manipulation_fwd.hpp:11:0,
                 from /bpvol/VantageSuper/Shared/Sdv8LIB/Sdv8/manipulation.hpp:11,
                 from /bpvol/VantageSuper/Shared/Sdv8LIB/Sdv8/manipulation.cpp:8:
/bpvol/workspace/externpro/_bld/externpro_21.03-29-g037d43e-gcc731-64/include/node_14.17.0/node/v8.h:4468:43: note: candidate: v8::MaybeLocal<v8::Value> v8::Function::Call(v8::Local<v8::Context>, v8::Local<v8::Value>, int, v8::Local<v8::Value>*)
   V8_WARN_UNUSED_RESULT MaybeLocal<Value> Call(Local<Context> context,
                                           ^~~~
/bpvol/workspace/externpro/_bld/externpro_21.03-29-g037d43e-gcc731-64/include/node_14.17.0/node/v8.h:4468:43: note:   candidate expects 4 arguments, 3 provided
/bpvol/VantageSuper/Shared/Sdv8LIB/Sdv8/manipulation.cpp:27:64: error: no matching function for call to 'v8::Function::Call(v8::Local<v8::Object>, unsigned int&, v8::Local<v8::Value>*&)'
     f->Call(pIsolate->GetCurrentContext()->Global(), argc, argv);
                                                                ^
In file included from /bpvol/VantageSuper/Shared/Sdv8LIB/Sdv8/manipulation_fwd.hpp:11:0,
                 from /bpvol/VantageSuper/Shared/Sdv8LIB/Sdv8/manipulation.hpp:11,
                 from /bpvol/VantageSuper/Shared/Sdv8LIB/Sdv8/manipulation.cpp:8:
/bpvol/workspace/externpro/_bld/externpro_21.03-29-g037d43e-gcc731-64/include/node_14.17.0/node/v8.h:4468:43: note: candidate: v8::MaybeLocal<v8::Value> v8::Function::Call(v8::Local<v8::Context>, v8::Local<v8::Value>, int, v8::Local<v8::Value>*)
   V8_WARN_UNUSED_RESULT MaybeLocal<Value> Call(Local<Context> context,
                                           ^~~~
/bpvol/workspace/externpro/_bld/externpro_21.03-29-g037d43e-gcc731-64/include/node_14.17.0/node/v8.h:4468:43: note:   candidate expects 4 arguments, 3 provided
/bpvol/VantageSuper/Shared/Sdv8LIB/Sdv8/manipulation.cpp: In function 'v8::Local<v8::Object> sdv8::toObject(const v8::Local<v8::Value>&)':
/bpvol/VantageSuper/Shared/Sdv8LIB/Sdv8/manipulation.cpp:49:24: error: no matching function for call to 'v8::Value::ToObject()'
   return val->ToObject();
                        ^
In file included from /bpvol/VantageSuper/Shared/Sdv8LIB/Sdv8/manipulation_fwd.hpp:11:0,
                 from /bpvol/VantageSuper/Shared/Sdv8LIB/Sdv8/manipulation.hpp:11,
                 from /bpvol/VantageSuper/Shared/Sdv8LIB/Sdv8/manipulation.cpp:8:
/bpvol/workspace/externpro/_bld/externpro_21.03-29-g037d43e-gcc731-64/include/node_14.17.0/node/v8.h:2822:44: note: candidate: v8::MaybeLocal<v8::Object> v8::Value::ToObject(v8::Local<v8::Context>) const
   V8_WARN_UNUSED_RESULT MaybeLocal<Object> ToObject(
                                            ^~~~~~~~
/bpvol/workspace/externpro/_bld/externpro_21.03-29-g037d43e-gcc731-64/include/node_14.17.0/node/v8.h:2822:44: note:   candidate expects 1 argument, 0 provided
/bpvol/VantageSuper/Shared/Sdv8LIB/Sdv8/manipulation.cpp: In function 'v8::Local<v8::Value> sdv8::getKey(v8::Isolate*, const v8::Local<v8::Object>&, const string&)':
/bpvol/VantageSuper/Shared/Sdv8LIB/Sdv8/manipulation.cpp:70:65: error: no matching function for call to 'v8::Object::Get(v8::MaybeLocal<v8::String>)'
   return obj->Get(v8::String::NewFromUtf8(pIsolate, key.c_str()));
                                                                 ^
In file included from /bpvol/VantageSuper/Shared/Sdv8LIB/Sdv8/manipulation_fwd.hpp:11:0,
                 from /bpvol/VantageSuper/Shared/Sdv8LIB/Sdv8/manipulation.hpp:11,
                 from /bpvol/VantageSuper/Shared/Sdv8LIB/Sdv8/manipulation.cpp:8:
/bpvol/workspace/externpro/_bld/externpro_21.03-29-g037d43e-gcc731-64/include/node_14.17.0/node/v8.h:3717:43: note: candidate: v8::MaybeLocal<v8::Value> v8::Object::Get(v8::Local<v8::Context>, v8::Local<v8::Value>)
   V8_WARN_UNUSED_RESULT MaybeLocal<Value> Get(Local<Context> context,
                                           ^~~
/bpvol/workspace/externpro/_bld/externpro_21.03-29-g037d43e-gcc731-64/include/node_14.17.0/node/v8.h:3717:43: note:   candidate expects 2 arguments, 1 provided
/bpvol/workspace/externpro/_bld/externpro_21.03-29-g037d43e-gcc731-64/include/node_14.17.0/node/v8.h:3720:43: note: candidate: v8::MaybeLocal<v8::Value> v8::Object::Get(v8::Local<v8::Context>, uint32_t)
   V8_WARN_UNUSED_RESULT MaybeLocal<Value> Get(Local<Context> context,
                                           ^~~
/bpvol/workspace/externpro/_bld/externpro_21.03-29-g037d43e-gcc731-64/include/node_14.17.0/node/v8.h:3720:43: note:   candidate expects 2 arguments, 1 provided
/bpvol/VantageSuper/Shared/Sdv8LIB/Sdv8/manipulation.cpp: In function 'bool sdv8::hasKey(v8::Isolate*, const v8::Local<v8::Object>&, const string&)':
/bpvol/VantageSuper/Shared/Sdv8LIB/Sdv8/manipulation.cpp:77:65: error: no matching function for call to 'v8::Object::Has(v8::MaybeLocal<v8::String>)'
   return obj->Has(v8::String::NewFromUtf8(pIsolate, key.c_str()));
                                                                 ^
In file included from /bpvol/VantageSuper/Shared/Sdv8LIB/Sdv8/manipulation_fwd.hpp:11:0,
                 from /bpvol/VantageSuper/Shared/Sdv8LIB/Sdv8/manipulation.hpp:11,
                 from /bpvol/VantageSuper/Shared/Sdv8LIB/Sdv8/manipulation.cpp:8:
/bpvol/workspace/externpro/_bld/externpro_21.03-29-g037d43e-gcc731-64/include/node_14.17.0/node/v8.h:3752:37: note: candidate: v8::Maybe<bool> v8::Object::Has(v8::Local<v8::Context>, v8::Local<v8::Value>)
   V8_WARN_UNUSED_RESULT Maybe<bool> Has(Local<Context> context,
                                     ^~~
/bpvol/workspace/externpro/_bld/externpro_21.03-29-g037d43e-gcc731-64/include/node_14.17.0/node/v8.h:3752:37: note:   candidate expects 2 arguments, 1 provided
/bpvol/workspace/externpro/_bld/externpro_21.03-29-g037d43e-gcc731-64/include/node_14.17.0/node/v8.h:3758:37: note: candidate: v8::Maybe<bool> v8::Object::Has(v8::Local<v8::Context>, uint32_t)
   V8_WARN_UNUSED_RESULT Maybe<bool> Has(Local<Context> context, uint32_t index);
                                     ^~~
/bpvol/workspace/externpro/_bld/externpro_21.03-29-g037d43e-gcc731-64/include/node_14.17.0/node/v8.h:3758:37: note:   candidate expects 2 arguments, 1 provided
make[2]: *** [Shared/Sdv8LIB/Sdv8/CMakeFiles/Sdv8.dir/manipulation.cpp.o] Error 1
[ 19%] Building CXX object Shared/Sdv8LIB/Sdv8/CMakeFiles/Sdv8.dir/tryCatch.cpp.o
/bpvol/VantageSuper/Shared/Sdv8LIB/Sdv8/tryCatch.cpp: In function 'void sdv8::tryCatch(const v8::FunctionCallbackInfo<v8::Value>&, std::function<void(v8::Isolate*)>)':
/bpvol/VantageSuper/Shared/Sdv8LIB/Sdv8/tryCatch.cpp:24:71: error: no matching function for call to 'v8::Exception::Error(v8::MaybeLocal<v8::String>)'
       v8::Exception::Error(v8::String::NewFromUtf8(pIsolate, e.what())));
                                                                       ^
In file included from /bpvol/VantageSuper/Shared/Sdv8LIB/Sdv8/tryCatch.hpp:11:0,
                 from /bpvol/VantageSuper/Shared/Sdv8LIB/Sdv8/tryCatch.cpp:8:
/bpvol/workspace/externpro/_bld/externpro_21.03-29-g037d43e-gcc731-64/include/node_14.17.0/node/v8.h:7196:23: note: candidate: static v8::Local<v8::Value> v8::Exception::Error(v8::Local<v8::String>)
   static Local<Value> Error(Local<String> message);
                       ^~~~~
/bpvol/workspace/externpro/_bld/externpro_21.03-29-g037d43e-gcc731-64/include/node_14.17.0/node/v8.h:7196:23: note:   no known conversion for argument 1 from 'v8::MaybeLocal<v8::String>' to 'v8::Local<v8::String>'
make[2]: *** [Shared/Sdv8LIB/Sdv8/CMakeFiles/Sdv8.dir/tryCatch.cpp.o] Error 1
[ 19%] Building CXX object Shared/Sdv8LIB/Sdv8/CMakeFiles/Sdv8.dir/validate.cpp.o
make[2]: Target `Shared/Sdv8LIB/Sdv8/CMakeFiles/Sdv8.dir/build' not remade because of errors.
make[1]: *** [Shared/Sdv8LIB/Sdv8/CMakeFiles/Sdv8.dir/all] Error 2

I found an issue in another project that details "v8/node deprecated APIs and how to handle them" https://github.com/bcoin-org/bcrypto/issues/7 -- their solution uses Nan https://github.com/nodejs/nan (Native Abstractions for Node.js) in this commit https://github.com/bcoin-org/bcrypto/commit/aba492d4c5339788e7b260a778e59d5396c00f17

grahamaj commented 3 years ago

We'd be better off using NAPI. We already have that one, but it would take a lot of effort to do that. I can probably just go through these and fix them on a case by case basis.

smanders commented 3 years ago

latest node v14.x is currently v14.17.6 (2021.08.31)

node v14.17.6 uses openssl 1.1.1l

smanders commented 3 years ago

completed with commits referenced above