Starting with electron 42.0.1 I get build errors (41.5.2 works)..
Electron 44.0.0-alpha.1 fails too.
Log...
> electron-builder install-app-deps
• electron-builder version=26.8.1
• loaded configuration file=package.json ("build" field)
• packageManager not detected by file, falling back to environment detection resolvedPackageManager=npm detected=/home/mayfield/project/sauce4zwift
• executing @electron/rebuild electronVersion=42.0.1 arch=x64 buildFromSource=true workspaceRoot=undefined projectDir=./ appDir=./
• installing native dependencies arch=x64
• preparing moduleName=better-sqlite3 arch=x64
⨯ gyp verb clean removing "build" directory
gyp verb download using dist-url https://www.electronjs.org/headers
gyp verb find Python --python=/usr/bin/python3 was set on the command line
gyp verb find Python - executing "/usr/bin/python3" to get executable path
gyp verb find Python - executable path is "/usr/bin/python3"
gyp verb find Python - executing "/usr/bin/python3" to get version
gyp verb find Python - version is "3.13.12"
gyp info find Python using Python version 3.13.12 found at "/usr/bin/python3"
gyp verb get node dir compiling against --target node version: 42.0.1
gyp verb download using dist-url https://www.electronjs.org/headers
gyp verb install input version string "42.0.1"
gyp verb install installing version: 42.0.1
gyp verb install --ensure was passed, so won't reinstall if already installed
gyp verb install version is already installed, need to check "installVersion"
gyp verb got "installVersion" 11
gyp verb needs "installVersion" 11
gyp verb install version is good
gyp verb get node dir target node version installed: 42.0.1
gyp verb build dir attempting to create "build" dir: /home/mayfield/project/sauce4zwift/node_modules/better-sqlite3/build
gyp verb build dir "build" dir needed to be created? Yes
gyp verb build/config.gypi creating config file
gyp verb build/config.gypi writing out config file: /home/mayfield/project/sauce4zwift/node_modules/better-sqlite3/build/config.gypi
gyp verb config.gypi checking for gypi file: /home/mayfield/project/sauce4zwift/node_modules/better-sqlite3/config.gypi
gyp verb common.gypi checking for gypi file: /home/mayfield/project/sauce4zwift/node_modules/better-sqlite3/common.gypi
gyp verb gyp gyp format was not specified; forcing "make"
gyp info spawn /usr/bin/python3
gyp info spawn args [
gyp info spawn args '/home/mayfield/project/sauce4zwift/node_modules/node-gyp/gyp/gyp_main.py',
gyp info spawn args 'binding.gyp',
gyp info spawn args '-f',
gyp info spawn args 'make',
gyp info spawn args '-I',
gyp info spawn args '/home/mayfield/project/sauce4zwift/node_modules/better-sqlite3/build/config.gypi',
gyp info spawn args '-I',
gyp info spawn args '/home/mayfield/project/sauce4zwift/node_modules/node-gyp/addon.gypi',
gyp info spawn args '-I',
gyp info spawn args '/home/mayfield/.electron-gyp/42.0.1/include/node/common.gypi',
gyp info spawn args '-Dlibrary=shared_library',
gyp info spawn args '-Dvisibility=default',
gyp info spawn args '-Dnode_root_dir=/home/mayfield/.electron-gyp/42.0.1',
gyp info spawn args '-Dnode_gyp_dir=/home/mayfield/project/sauce4zwift/node_modules/node-gyp',
gyp info spawn args '-Dnode_lib_file=/home/mayfield/.electron-gyp/42.0.1/<(target_arch)/node.lib',
gyp info spawn args '-Dmodule_root_dir=/home/mayfield/project/sauce4zwift/node_modules/better-sqlite3',
gyp info spawn args '-Dnode_engine=v8',
gyp info spawn args '--depth=.',
gyp info spawn args '--no-parallel',
gyp info spawn args '--generator-output',
gyp info spawn args 'build',
gyp info spawn args '-Goutput_dir=.'
gyp info spawn args ]
gyp verb build type Release
gyp verb architecture x64
gyp verb node dev dir /home/mayfield/.electron-gyp/42.0.1
gyp verb python /usr/bin/python3
gyp verb `which` succeeded for `make` /usr/bin/make
gyp verb bin symlinks created symlink to "/usr/bin/python3" in "/home/mayfield/project/sauce4zwift/node_modules/better-sqlite3/build/node_gyp_bins" and added to PATH
gyp info spawn make
gyp info spawn args [ 'V=1', 'BUILDTYPE=Release', '-C', 'build' ]
make[1]: Entering directory '/home/mayfield/project/sauce4zwift/node_modules/better-sqlite3/build'
touch 4292fa9a667d77b27488aa109b010a85bce8e4e7a1c7aa0370cea902395c3866.intermediate
LD_LIBRARY_PATH=/home/mayfield/project/sauce4zwift/node_modules/better-sqlite3/build/Release/lib.host:/home/mayfield/project/sauce4zwift/node_modules/better-sqlite3/build/Release/lib.target:$LD_LIBRARY_PATH; export LD_LIBRARY_PATH; cd ../deps; mkdir -p /home/mayfield/project/sauce4zwift/node_modules/better-sqlite3/build/Release/obj/gen/sqlite3; node copy.js "/home/mayfield/project/sauce4zwift/node_modules/better-sqlite3/build/Release/obj/gen/sqlite3" ""
touch Release/obj.target/deps/locate_sqlite3.stamp
cc -o Release/obj.target/sqlite3/gen/sqlite3/sqlite3.o Release/obj/gen/sqlite3/sqlite3.c '-DNODE_GYP_MODULE_NAME=sqlite3' '-DUSING_UV_SHARED=1' '-DUSING_V8_SHARED=1' '-DV8_DEPRECATION_WARNINGS=1' '-D_GLIBCXX_USE_CXX11_ABI=1' '-D_FILE_OFFSET_BITS=64' '-DELECTRON_ENSURE_CONFIG_GYPI' '-D_LARGEFILE_SOURCE' '-DUSING_ELECTRON_CONFIG_GYPI' '-DV8_COMPRESS_POINTERS' '-DV8_COMPRESS_POINTERS_IN_MULTIPLE_CAGES' '-DV8_31BIT_SMIS_ON_64BIT_ARCH' '-DV8_ENABLE_SANDBOX' '-DV8_EXTERNAL_CODE_SPACE' '-D__STDC_FORMAT_MACROS' '-DOPENSSL_NO_PINSHARED' '-DOPENSSL_THREADS' '-DOPENSSL_NO_ASM' '-DHAVE_INT16_T=1' '-DHAVE_INT32_T=1' '-DHAVE_INT8_T=1' '-DHAVE_STDINT_H=1' '-DHAVE_UINT16_T=1' '-DHAVE_UINT32_T=1' '-DHAVE_UINT8_T=1' '-DHAVE_USLEEP=1' '-DSQLITE_DEFAULT_CACHE_SIZE=-16000' '-DSQLITE_DEFAULT_FOREIGN_KEYS=1' '-DSQLITE_DEFAULT_MEMSTATUS=0' '-DSQLITE_DEFAULT_WAL_SYNCHRONOUS=1' '-DSQLITE_DQS=0' '-DSQLITE_ENABLE_COLUMN_METADATA' '-DSQLITE_ENABLE_DBSTAT_VTAB' '-DSQLITE_ENABLE_DESERIALIZE' '-DSQLITE_ENABLE_FTS3' '-DSQLITE_ENABLE_FTS3_PARENTHESIS' '-DSQLITE_ENABLE_FTS4' '-DSQLITE_ENABLE_FTS5' '-DSQLITE_ENABLE_GEOPOLY' '-DSQLITE_ENABLE_JSON1' '-DSQLITE_ENABLE_MATH_FUNCTIONS' '-DSQLITE_ENABLE_PERCENTILE' '-DSQLITE_ENABLE_RTREE' '-DSQLITE_ENABLE_STAT4' '-DSQLITE_ENABLE_UPDATE_DELETE_LIMIT' '-DSQLITE_LIKE_DOESNT_MATCH_BLOBS' '-DSQLITE_OMIT_DEPRECATED' '-DSQLITE_OMIT_PROGRESS_CALLBACK' '-DSQLITE_OMIT_SHARED_CACHE' '-DSQLITE_OMIT_TCL_VARIABLE' '-DSQLITE_SOUNDEX' '-DSQLITE_THREADSAFE=2' '-DSQLITE_TRACE_SIZE_LIMIT=32' '-DSQLITE_USE_URI=0' '-DNDEBUG' -I/home/mayfield/.electron-gyp/42.0.1/include/node -I/home/mayfield/.electron-gyp/42.0.1/src -I/home/mayfield/.electron-gyp/42.0.1/deps/openssl/config -I/home/mayfield/.electron-gyp/42.0.1/deps/openssl/openssl/include -I/home/mayfield/.electron-gyp/42.0.1/deps/uv/include -I/home/mayfield/.electron-gyp/42.0.1/deps/zlib -I/home/mayfield/.electron-gyp/42.0.1/deps/v8/include -I./Release/obj/gen/sqlite3 -fPIC -pthread -Wall -Wextra -Wno-unused-parameter -std=c99 -w -m64 -O3 -O3 -fno-omit-frame-pointer -MMD -MF ./Release/.deps/Release/obj.target/sqlite3/gen/sqlite3/sqlite3.o.d.raw -c
rm -f Release/obj.target/deps/sqlite3.a Release/obj.target/deps/sqlite3.a.ar-file-list; mkdir -p `dirname Release/obj.target/deps/sqlite3.a`
ar crs Release/obj.target/deps/sqlite3.a @Release/obj.target/deps/sqlite3.a.ar-file-list
ln -f "Release/obj.target/deps/sqlite3.a" "Release/sqlite3.a" 2>/dev/null || (rm -rf "Release/sqlite3.a" && cp -af "Release/obj.target/deps/sqlite3.a" "Release/sqlite3.a")
g++ -o Release/obj.target/better_sqlite3/src/better_sqlite3.o ../src/better_sqlite3.cpp '-DNODE_GYP_MODULE_NAME=better_sqlite3' '-DUSING_UV_SHARED=1' '-DUSING_V8_SHARED=1' '-DV8_DEPRECATION_WARNINGS=1' '-D_GLIBCXX_USE_CXX11_ABI=1' '-D_FILE_OFFSET_BITS=64' '-DELECTRON_ENSURE_CONFIG_GYPI' '-D_LARGEFILE_SOURCE' '-DUSING_ELECTRON_CONFIG_GYPI' '-DV8_COMPRESS_POINTERS' '-DV8_COMPRESS_POINTERS_IN_MULTIPLE_CAGES' '-DV8_31BIT_SMIS_ON_64BIT_ARCH' '-DV8_ENABLE_SANDBOX' '-DV8_EXTERNAL_CODE_SPACE' '-D__STDC_FORMAT_MACROS' '-DOPENSSL_NO_PINSHARED' '-DOPENSSL_THREADS' '-DOPENSSL_NO_ASM' '-DBUILDING_NODE_EXTENSION' '-DNDEBUG' -I/home/mayfield/.electron-gyp/42.0.1/include/node -I/home/mayfield/.electron-gyp/42.0.1/src -I/home/mayfield/.electron-gyp/42.0.1/deps/openssl/config -I/home/mayfield/.electron-gyp/42.0.1/deps/openssl/openssl/include -I/home/mayfield/.electron-gyp/42.0.1/deps/uv/include -I/home/mayfield/.electron-gyp/42.0.1/deps/zlib -I/home/mayfield/.electron-gyp/42.0.1/deps/v8/include -I./Release/obj/gen/sqlite3 -fPIC -pthread -Wall -Wextra -Wno-unused-parameter -m64 -O3 -O3 -fno-omit-frame-pointer -fno-rtti -fno-exceptions -fno-strict-aliasing -std=gnu++20 -std=c++20 -MMD -MF ./Release/.deps/Release/obj.target/better_sqlite3/src/better_sqlite3.o.d.raw -c
In file included from /home/mayfield/.electron-gyp/42.0.1/include/node/v8-handle-base.h:8,
from /home/mayfield/.electron-gyp/42.0.1/include/node/v8-local-handle.h:13,
from /home/mayfield/.electron-gyp/42.0.1/include/node/v8-array-buffer.h:12,
from /home/mayfield/.electron-gyp/42.0.1/include/node/v8.h:24,
from /home/mayfield/.electron-gyp/42.0.1/include/node/node.h:80,
from ../src/better_sqlite3.cpp:11:
/home/mayfield/.electron-gyp/42.0.1/include/node/v8-internal.h:440:1: warning: multi-line comment [-Wcomment]
440 | // / \
| ^
/home/mayfield/.electron-gyp/42.0.1/include/node/v8-internal.h:442:1: warning: multi-line comment [-Wcomment]
442 | // / \
| ^
In file included from /home/mayfield/.electron-gyp/42.0.1/include/node/v8-function.h:15,
from /home/mayfield/.electron-gyp/42.0.1/include/node/v8.h:33:
/home/mayfield/.electron-gyp/42.0.1/include/node/v8-template.h: In static member function ‘static v8::Intercepted (* v8::NamedPropertyHandlerConfiguration::ConvertSetter(v8::NamedPropertySetterCallback))(v8::Local<v8::Name>, v8::Local<v8::Value>, const v8::PropertyCallbackInfo<v8::Boolean>&)’:
/home/mayfield/.electron-gyp/42.0.1/include/node/v8-template.h:760:12: warning: cast between incompatible function types from ‘v8::NamedPropertySetterCallback’ {aka ‘v8::Intercepted (*)(v8::Local<v8::Name>, v8::Local<v8::Value>, const v8::PropertyCallbackInfo<void>&)’} to ‘v8::NamedPropertySetterCallbackV2’ {aka ‘v8::Intercepted (*)(v8::Local<v8::Name>, v8::Local<v8::Value>, const v8::PropertyCallbackInfo<v8::Boolean>&)’} [-Wcast-function-type]
760 | return NamedPropertySetterCallbackV2(value);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/mayfield/.electron-gyp/42.0.1/include/node/v8-template.h: In static member function ‘static v8::Intercepted (* v8::NamedPropertyHandlerConfiguration::ConvertDefiner(v8::NamedPropertyDefinerCallback))(v8::Local<v8::Name>, const v8::PropertyDescriptor&, const v8::PropertyCallbackInfo<v8::Boolean>&)’:
/home/mayfield/.electron-gyp/42.0.1/include/node/v8-template.h:772:12: warning: cast between incompatible function types from ‘v8::NamedPropertyDefinerCallback’ {aka ‘v8::Intercepted (*)(v8::Local<v8::Name>, const v8::PropertyDescriptor&, const v8::PropertyCallbackInfo<void>&)’} to ‘v8::NamedPropertyDefinerCallbackV2’ {aka ‘v8::Intercepted (*)(v8::Local<v8::Name>, const v8::PropertyDescriptor&, const v8::PropertyCallbackInfo<v8::Boolean>&)’} [-Wcast-function-type]
772 | return NamedPropertyDefinerCallbackV2(value);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/mayfield/.electron-gyp/42.0.1/include/node/v8-template.h: In static member function ‘static v8::Intercepted (* v8::IndexedPropertyHandlerConfiguration::ConvertSetter(v8::IndexedPropertySetterCallbackV2))(uint32_t, v8::Local<v8::Value>, const v8::PropertyCallbackInfo<v8::Boolean>&)’:
/home/mayfield/.electron-gyp/42.0.1/include/node/v8-template.h:887:12: warning: cast between incompatible function types from ‘v8::IndexedPropertySetterCallbackV2’ {aka ‘v8::Intercepted (*)(unsigned int, v8::Local<v8::Value>, const v8::PropertyCallbackInfo<void>&)’} to ‘v8::IndexedPropertySetterCallback’ {aka ‘v8::Intercepted (*)(unsigned int, v8::Local<v8::Value>, const v8::PropertyCallbackInfo<v8::Boolean>&)’} [-Wcast-function-type]
887 | return IndexedPropertySetterCallback(value);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/mayfield/.electron-gyp/42.0.1/include/node/v8-template.h: In static member function ‘static v8::Intercepted (* v8::IndexedPropertyHandlerConfiguration::ConvertDefiner(v8::IndexedPropertyDefinerCallbackV2))(uint32_t, const v8::PropertyDescriptor&, const v8::PropertyCallbackInfo<v8::Boolean>&)’:
/home/mayfield/.electron-gyp/42.0.1/include/node/v8-template.h:899:12: warning: cast between incompatible function types from ‘v8::IndexedPropertyDefinerCallbackV2’ {aka ‘v8::Intercepted (*)(unsigned int, const v8::PropertyDescriptor&, const v8::PropertyCallbackInfo<void>&)’} to ‘v8::IndexedPropertyDefinerCallback’ {aka ‘v8::Intercepted (*)(unsigned int, const v8::PropertyDescriptor&, const v8::PropertyCallbackInfo<v8::Boolean>&)’} [-Wcast-function-type]
899 | return IndexedPropertyDefinerCallback(value);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from ../src/better_sqlite3.cpp:22:
../src/util/helpers.cpp: In function ‘void SetPrototypeGetter(v8::Isolate*, v8::Local<v8::External>, v8::Local<v8::FunctionTemplate>, const char*, v8::AccessorNameGetterCallback)’:
../src/util/helpers.cpp:89:56: error: call of overloaded ‘SetNativeDataProperty(v8::Local<v8::String>, void (*&)(v8::Local<v8::Name>, const v8::PropertyCallbackInfo<v8::Value>&), int, v8::Local<v8::External>&)’ is ambiguous
89 | recv->InstanceTemplate()->SetNativeDataProperty(
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
90 | InternalizedFromLatin1(isolate, name),
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
91 | func,
| ~~~~~
92 | 0,
| ~~
93 | data
| ~~~~
94 | );
| ~
../src/util/helpers.cpp:89:56: note: there are 3 candidates
/home/mayfield/.electron-gyp/42.0.1/include/node/v8-template.h:104:8: note: candidate 1: ‘void v8::Template::SetNativeDataProperty(v8::Local<v8::Name>, v8::AccessorNameGetterCallback, v8::AccessorNameSetterCallbackV2, v8::Local<v8::Value>, v8::PropertyAttribute, v8::SideEffectType, v8::SideEffectType)’
104 | void SetNativeDataProperty(
| ^~~~~~~~~~~~~~~~~~~~~
/home/mayfield/.electron-gyp/42.0.1/include/node/v8-template.h:110:8: note: candidate 2: ‘void v8::Template::SetNativeDataProperty(v8::Local<v8::Name>, v8::AccessorNameGetterCallback, v8::AccessorNameSetterCallback, v8::Local<v8::Value>, v8::PropertyAttribute, v8::SideEffectType, v8::SideEffectType)’
110 | void SetNativeDataProperty(
| ^~~~~~~~~~~~~~~~~~~~~
/home/mayfield/.electron-gyp/42.0.1/include/node/v8-template.h:118:8: note: candidate 3: ‘void v8::Template::SetNativeDataProperty(v8::Local<v8::Name>, v8::AccessorNameGetterCallback, nullptr_t, v8::Local<v8::Value>, v8::PropertyAttribute, v8::SideEffectType, v8::SideEffectType)’
118 | void SetNativeDataProperty(
| ^~~~~~~~~~~~~~~~~~~~~
In file included from ../src/better_sqlite3.cpp:21:
../src/addon.cpp: In static member function ‘static void Addon::JS_setErrorConstructor(const v8::FunctionCallbackInfo<v8::Value>&)’:
../src/util/macros.cpp:30:76: error: no matching function for call to ‘v8::External::Value()’
30 | #define OnlyAddon static_cast<Addon*>(info.Data().As<v8::External>()->Value())
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
../src/addon.cpp:36:17: note: in expansion of macro ‘OnlyAddon’
36 | OnlyAddon->SqliteError.Reset(OnlyIsolate, SqliteError);
| ^~~~~~~~~
../src/util/macros.cpp:30:76: note: there is 1 candidate
30 | #define OnlyAddon static_cast<Addon*>(info.Data().As<v8::External>()->Value())
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
../src/addon.cpp:36:17: note: in expansion of macro ‘OnlyAddon’
36 | OnlyAddon->SqliteError.Reset(OnlyIsolate, SqliteError);
| ^~~~~~~~~
In file included from /home/mayfield/.electron-gyp/42.0.1/include/node/v8.h:32:
/home/mayfield/.electron-gyp/42.0.1/include/node/v8-external.h:58:9: note: candidate 1: ‘void* v8::External::Value(v8::ExternalPointerTypeTag) const’
58 | void* Value(ExternalPointerTypeTag tag) const;
| ^~~~~
/home/mayfield/.electron-gyp/42.0.1/include/node/v8-external.h:58:9: note: candidate expects 1 argument, 0 provided
../src/objects/backup.cpp: In static member function ‘static void Backup::JS_new(const v8::FunctionCallbackInfo<v8::Value>&)’:
../src/util/macros.cpp:30:76: error: no matching function for call to ‘v8::External::Value()’
30 | #define OnlyAddon static_cast<Addon*>(info.Data().As<v8::External>()->Value())
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
../src/util/macros.cpp:33:33: note: in expansion of macro ‘OnlyAddon’
33 | #define UseAddon Addon* addon = OnlyAddon
| ^~~~~~~~~
../src/objects/backup.cpp:46:9: note: in expansion of macro ‘UseAddon’
46 | UseAddon;
| ^~~~~~~~
../src/util/macros.cpp:30:76: note: there is 1 candidate
30 | #define OnlyAddon static_cast<Addon*>(info.Data().As<v8::External>()->Value())
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
../src/util/macros.cpp:33:33: note: in expansion of macro ‘OnlyAddon’
33 | #define UseAddon Addon* addon = OnlyAddon
| ^~~~~~~~~
../src/objects/backup.cpp:46:9: note: in expansion of macro ‘UseAddon’
46 | UseAddon;
| ^~~~~~~~
/home/mayfield/.electron-gyp/42.0.1/include/node/v8-external.h:58:9: note: candidate 1: ‘void* v8::External::Value(v8::ExternalPointerTypeTag) const’
58 | void* Value(ExternalPointerTypeTag tag) const;
| ^~~~~
/home/mayfield/.electron-gyp/42.0.1/include/node/v8-external.h:58:9: note: candidate expects 1 argument, 0 provided
../src/objects/statement.cpp: In static member function ‘static void Statement::JS_new(const v8::FunctionCallbackInfo<v8::Value>&)’:
../src/util/macros.cpp:30:76: error: no matching function for call to ‘v8::External::Value()’
30 | #define OnlyAddon static_cast<Addon*>(info.Data().As<v8::External>()->Value())
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
../src/util/macros.cpp:33:33: note: in expansion of macro ‘OnlyAddon’
33 | #define UseAddon Addon* addon = OnlyAddon
| ^~~~~~~~~
../src/objects/statement.cpp:72:9: note: in expansion of macro ‘UseAddon’
72 | UseAddon;
| ^~~~~~~~
../src/util/macros.cpp:30:76: note: there is 1 candidate
30 | #define OnlyAddon static_cast<Addon*>(info.Data().As<v8::External>()->Value())
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
../src/util/macros.cpp:33:33: note: in expansion of macro ‘OnlyAddon’
33 | #define UseAddon Addon* addon = OnlyAddon
| ^~~~~~~~~
../src/objects/statement.cpp:72:9: note: in expansion of macro ‘UseAddon’
72 | UseAddon;
| ^~~~~~~~
/home/mayfield/.electron-gyp/42.0.1/include/node/v8-external.h:58:9: note: candidate 1: ‘void* v8::External::Value(v8::ExternalPointerTypeTag) const’
58 | void* Value(ExternalPointerTypeTag tag) const;
| ^~~~~
/home/mayfield/.electron-gyp/42.0.1/include/node/v8-external.h:58:9: note: candidate expects 1 argument, 0 provided
../src/objects/statement.cpp: In static member function ‘static void Statement::JS_iterate(const v8::FunctionCallbackInfo<v8::Value>&)’:
../src/util/macros.cpp:30:76: error: no matching function for call to ‘v8::External::Value()’
30 | #define OnlyAddon static_cast<Addon*>(info.Data().As<v8::External>()->Value())
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
../src/util/macros.cpp:33:33: note: in expansion of macro ‘OnlyAddon’
33 | #define UseAddon Addon* addon = OnlyAddon
| ^~~~~~~~~
../src/objects/statement.cpp:229:9: note: in expansion of macro ‘UseAddon’
229 | UseAddon;
| ^~~~~~~~
../src/util/macros.cpp:30:76: note: there is 1 candidate
30 | #define OnlyAddon static_cast<Addon*>(info.Data().As<v8::External>()->Value())
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
../src/util/macros.cpp:33:33: note: in expansion of macro ‘OnlyAddon’
33 | #define UseAddon Addon* addon = OnlyAddon
| ^~~~~~~~~
../src/objects/statement.cpp:229:9: note: in expansion of macro ‘UseAddon’
229 | UseAddon;
| ^~~~~~~~
/home/mayfield/.electron-gyp/42.0.1/include/node/v8-external.h:58:9: note: candidate 1: ‘void* v8::External::Value(v8::ExternalPointerTypeTag) const’
58 | void* Value(ExternalPointerTypeTag tag) const;
| ^~~~~
/home/mayfield/.electron-gyp/42.0.1/include/node/v8-external.h:58:9: note: candidate expects 1 argument, 0 provided
../src/objects/database.cpp: In static member function ‘static void Database::JS_new(const v8::FunctionCallbackInfo<v8::Value>&)’:
../src/util/macros.cpp:30:76: error: no matching function for call to ‘v8::External::Value()’
30 | #define OnlyAddon static_cast<Addon*>(info.Data().As<v8::External>()->Value())
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
../src/util/macros.cpp:33:33: note: in expansion of macro ‘OnlyAddon’
33 | #define UseAddon Addon* addon = OnlyAddon
| ^~~~~~~~~
../src/objects/database.cpp:155:9: note: in expansion of macro ‘UseAddon’
155 | UseAddon;
| ^~~~~~~~
../src/util/macros.cpp:30:76: note: there is 1 candidate
30 | #define OnlyAddon static_cast<Addon*>(info.Data().As<v8::External>()->Value())
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
../src/util/macros.cpp:33:33: note: in expansion of macro ‘OnlyAddon’
33 | #define UseAddon Addon* addon = OnlyAddon
| ^~~~~~~~~
../src/objects/database.cpp:155:9: note: in expansion of macro ‘UseAddon’
155 | UseAddon;
| ^~~~~~~~
/home/mayfield/.electron-gyp/42.0.1/include/node/v8-external.h:58:9: note: candidate 1: ‘void* v8::External::Value(v8::ExternalPointerTypeTag) const’
58 | void* Value(ExternalPointerTypeTag tag) const;
| ^~~~~
/home/mayfield/.electron-gyp/42.0.1/include/node/v8-external.h:58:9: note: candidate expects 1 argument, 0 provided
../src/objects/database.cpp: In static member function ‘static void Database::JS_prepare(const v8::FunctionCallbackInfo<v8::Value>&)’:
../src/util/macros.cpp:30:76: error: no matching function for call to ‘v8::External::Value()’
30 | #define OnlyAddon static_cast<Addon*>(info.Data().As<v8::External>()->Value())
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
../src/util/macros.cpp:33:33: note: in expansion of macro ‘OnlyAddon’
33 | #define UseAddon Addon* addon = OnlyAddon
| ^~~~~~~~~
../src/objects/database.cpp:203:9: note: in expansion of macro ‘UseAddon’
203 | UseAddon;
| ^~~~~~~~
../src/util/macros.cpp:30:76: note: there is 1 candidate
30 | #define OnlyAddon static_cast<Addon*>(info.Data().As<v8::External>()->Value())
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
../src/util/macros.cpp:33:33: note: in expansion of macro ‘OnlyAddon’
33 | #define UseAddon Addon* addon = OnlyAddon
| ^~~~~~~~~
../src/objects/database.cpp:203:9: note: in expansion of macro ‘UseAddon’
203 | UseAddon;
| ^~~~~~~~
/home/mayfield/.electron-gyp/42.0.1/include/node/v8-external.h:58:9: note: candidate 1: ‘void* v8::External::Value(v8::ExternalPointerTypeTag) const’
58 | void* Value(ExternalPointerTypeTag tag) const;
| ^~~~~
/home/mayfield/.electron-gyp/42.0.1/include/node/v8-external.h:58:9: note: candidate expects 1 argument, 0 provided
../src/objects/database.cpp: In static member function ‘static void Database::JS_backup(const v8::FunctionCallbackInfo<v8::Value>&)’:
../src/util/macros.cpp:30:76: error: no matching function for call to ‘v8::External::Value()’
30 | #define OnlyAddon static_cast<Addon*>(info.Data().As<v8::External>()->Value())
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
../src/util/macros.cpp:33:33: note: in expansion of macro ‘OnlyAddon’
33 | #define UseAddon Addon* addon = OnlyAddon
| ^~~~~~~~~
../src/objects/database.cpp:261:9: note: in expansion of macro ‘UseAddon’
261 | UseAddon;
| ^~~~~~~~
../src/util/macros.cpp:30:76: note: there is 1 candidate
30 | #define OnlyAddon static_cast<Addon*>(info.Data().As<v8::External>()->Value())
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
../src/util/macros.cpp:33:33: note: in expansion of macro ‘OnlyAddon’
33 | #define UseAddon Addon* addon = OnlyAddon
| ^~~~~~~~~
../src/objects/database.cpp:261:9: note: in expansion of macro ‘UseAddon’
261 | UseAddon;
| ^~~~~~~~
/home/mayfield/.electron-gyp/42.0.1/include/node/v8-external.h:58:9: note: candidate 1: ‘void* v8::External::Value(v8::ExternalPointerTypeTag) const’
58 | void* Value(ExternalPointerTypeTag tag) const;
| ^~~~~
/home/mayfield/.electron-gyp/42.0.1/include/node/v8-external.h:58:9: note: candidate expects 1 argument, 0 provided
../src/objects/statement-iterator.cpp: In static member function ‘static void StatementIterator::JS_new(const v8::FunctionCallbackInfo<v8::Value>&)’:
../src/util/macros.cpp:30:76: error: no matching function for call to ‘v8::External::Value()’
30 | #define OnlyAddon static_cast<Addon*>(info.Data().As<v8::External>()->Value())
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
../src/util/macros.cpp:33:33: note: in expansion of macro ‘OnlyAddon’
33 | #define UseAddon Addon* addon = OnlyAddon
| ^~~~~~~~~
../src/objects/statement-iterator.cpp:79:9: note: in expansion of macro ‘UseAddon’
79 | UseAddon;
| ^~~~~~~~
../src/util/macros.cpp:30:76: note: there is 1 candidate
30 | #define OnlyAddon static_cast<Addon*>(info.Data().As<v8::External>()->Value())
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
../src/util/macros.cpp:33:33: note: in expansion of macro ‘OnlyAddon’
33 | #define UseAddon Addon* addon = OnlyAddon
| ^~~~~~~~~
../src/objects/statement-iterator.cpp:79:9: note: in expansion of macro ‘UseAddon’
79 | UseAddon;
| ^~~~~~~~
/home/mayfield/.electron-gyp/42.0.1/include/node/v8-external.h:58:9: note: candidate 1: ‘void* v8::External::Value(v8::ExternalPointerTypeTag) const’
58 | void* Value(ExternalPointerTypeTag tag) const;
| ^~~~~
/home/mayfield/.electron-gyp/42.0.1/include/node/v8-external.h:58:9: note: candidate expects 1 argument, 0 provided
../src/better_sqlite3.cpp: At global scope:
/home/mayfield/.electron-gyp/42.0.1/include/node/node.h:1386:7: warning: cast between incompatible function types from ‘void (*)(v8::Local<v8::Object>, v8::Local<v8::Value>, v8::Local<v8::Context>)’ to ‘node::addon_context_register_func’ {aka ‘void (*)(v8::Local<v8::Object>, v8::Local<v8::Value>, v8::Local<v8::Context>, void*)’} [-Wcast-function-type]
1386 | (node::addon_context_register_func) (regfunc), \
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/mayfield/.electron-gyp/42.0.1/include/node/node.h:1404:3: note: in expansion of macro ‘NODE_MODULE_CONTEXT_AWARE_X’
1404 | NODE_MODULE_CONTEXT_AWARE_X(modname, regfunc, NULL, 0)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/mayfield/.electron-gyp/42.0.1/include/node/node.h:1435:3: note: in expansion of macro ‘NODE_MODULE_CONTEXT_AWARE’
1435 | NODE_MODULE_CONTEXT_AWARE(NODE_GYP_MODULE_NAME, \
| ^~~~~~~~~~~~~~~~~~~~~~~~~
../src/better_sqlite3.cpp:48:1: note: in expansion of macro ‘NODE_MODULE_INIT’
48 | NODE_MODULE_INIT(/* exports, context */) {
| ^~~~~~~~~~~~~~~~
../src/better_sqlite3.cpp: In function ‘void node_register_module_v146(v8::Local<v8::Object>, v8::Local<v8::Value>, v8::Local<v8::Context>)’:
../src/better_sqlite3.cpp:60:57: error: no matching function for call to ‘v8::External::New(v8::Isolate*&, Addon*&)’
60 | v8::Local<v8::External> data = v8::External::New(isolate, addon);
| ~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~
../src/better_sqlite3.cpp:60:57: note: there is 1 candidate
/home/mayfield/.electron-gyp/42.0.1/include/node/v8-external.h:41:26: note: candidate 1: ‘static v8::Local<v8::External> v8::External::New(v8::Isolate*, void*, v8::ExternalPointerTypeTag)’
41 | static Local<External> New(Isolate* isolate, void* value,
| ^~~
/home/mayfield/.electron-gyp/42.0.1/include/node/v8-external.h:41:26: note: candidate expects 3 arguments, 2 provided
In file included from ../src/better_sqlite3.cpp:26:
../src/util/data.cpp: In function ‘v8::Local<v8::Value> Data::GetValueJS(v8::Isolate*, sqlite3_stmt*, int, bool)’:
../src/util/data.cpp:36:17: warning: this statement may fall through [-Wimplicit-fallthrough=]
36 | if (safe_ints) { \
| ^~
../src/util/data.cpp:73:17: note: in expansion of macro ‘SQLITE_VALUE_TO_JS’
73 | SQLITE_VALUE_TO_JS(column, isolate, safe_ints, handle, column);
| ^~~~~~~~~~~~~~~~~~
../src/util/data.cpp:42:9: note: here
42 | case SQLITE_FLOAT: \
| ^~~~
../src/util/data.cpp:73:17: note: in expansion of macro ‘SQLITE_VALUE_TO_JS’
73 | SQLITE_VALUE_TO_JS(column, isolate, safe_ints, handle, column);
| ^~~~~~~~~~~~~~~~~~
../src/util/data.cpp: In function ‘v8::Local<v8::Value> Data::GetValueJS(v8::Isolate*, sqlite3_value*, bool)’:
../src/util/data.cpp:36:17: warning: this statement may fall through [-Wimplicit-fallthrough=]
36 | if (safe_ints) { \
| ^~
../src/util/data.cpp:77:17: note: in expansion of macro ‘SQLITE_VALUE_TO_JS’
77 | SQLITE_VALUE_TO_JS(value, isolate, safe_ints, value);
| ^~~~~~~~~~~~~~~~~~
../src/util/data.cpp:42:9: note: here
42 | case SQLITE_FLOAT: \
| ^~~~
../src/util/data.cpp:77:17: note: in expansion of macro ‘SQLITE_VALUE_TO_JS’
77 | SQLITE_VALUE_TO_JS(value, isolate, safe_ints, value);
| ^~~~~~~~~~~~~~~~~~
make[1]: *** [better_sqlite3.target.mk:138: Release/obj.target/better_sqlite3/src/better_sqlite3.o] Error 1
Starting with electron 42.0.1 I get build errors (41.5.2 works)..
Platform: x64 linux (fedora 42)
better-sqlite3 version: 12.10.0 (tried 12.9.0 as well)
Electron 44.0.0-alpha.1 fails too.
Probably related to #1470
Error:
Log...