Defold: "error: The program ['signtool'] could not be found" when building engine

Created on 22 May 2020  路  6Comments  路  Source: defold/defold

Running build.py build_engine quits after failing to find signtool.exe

On windows 10 I setup the environment and installed the external packages and SDK's to build the engine (version 1.2.169) for windows.

From the config.log at engine/dlib/build:

project dlib (0.1) configured on Thu May 21 14:44:45 2020 by

waf 1.5.9 (abi 7, python 20712f0 on win32)

using e:\defoldsource\defold\tmp\dynamo_home/ext/bin/waf --prefix=e:\defoldsource\defold\tmp\dynamo_home distclean configure build install --platform=x86_64-win32

#
Checking for program valgrind

find program=['valgrind'] paths=[] var='VALGRIND' -> ''

Checking for program ccache

find program=['ccache'] paths=[] var='CCACHE' -> ''

Checking for program nodejs

find program=['nodejs'] paths=[] var='NODEJS' -> ''

Checking for program node

find program=['node'] paths=[] var='NODEJS' -> 'e:\Program Files\nodejs\node.exe'

Checking for program signtool

find program=['signtool'] paths=['e:\defoldsource\defold\tmp\dynamo_home\ext\SDKs\Win32\WindowsKits\8.1\bin\x64'] var='SIGNTOOL' -> ''

This shows that signtool is expected to be found under a bin directory in WindowKits. However, scripts/package/package_win32_sdk.sh does not pack anything from the bin directories into WindowsKits-8.1.tar.gz or WindowsKits-10.0.tar.gz

bug good first issue

Most helpful comment

I think it's because you haven't installed any external SDK's

This is documented here: https://github.com/defold/defold/blob/dev/README_BUILD.md#install-packages-and-sdks

All 6 comments

Yes, it's a bit annoying message.
Thanks for the report.

One thing you can try as a workaround is to pass the --skip-codesign flag.

Reading this issue a bit more carefully, I think it's because you haven't installed any external SDK's.

This currently requires a little bit of a setup.
You need to have access to the Windows SDK and Visual Studio toolchain.

See package_win32_sdk.sh on how to package these .tar.gz files.

After that, put them in a folder, and serve them locally with python -m SimpleHTTPServer.
Then, you can run ./scripts/build.py install_ext --platformx86_64-win32 --package-path=http://localhost command to install the SDK and other external packages.

This is what should be output in the console later when you build:
Checking for program signtool : ok c:\repos\defold\tmp\dynamo_home\ext\SDKs\Win32\WindowsKits\8.1\bin\x64\signtool.exe

I think it's because you haven't installed any external SDK's

This is documented here: https://github.com/defold/defold/blob/dev/README_BUILD.md#install-packages-and-sdks

One quick fix would be to detect if the sdk's where installed before compiling, thus being able to produce a better error message.

I did eventually follow those steps, but the error popped up because signtool is expected to be found under a bin directory of WindowKits. However, scripts/package/package_win32_sdk.sh does not pack anything from the bin directories into WindowsKits-8.1.tar.gz or WindowsKits-10.0.tar.gz
I added the bin directory (ie "10/bin/${SDK_10_VERSION}") to the line that creates the gzip file in package_win32_sdk.sh. Then it worked.

Is only one of the WindowKits necessary?

--skip-codesign

This does not actually skip the error, the waf_dynamo.py#L1472 script has signtool as a required option.

https://github.com/defold/defold/blob/869a87718757bdb7bfd6ed078047fa7bfb451de9/build_tools/waf_dynamo.py#L1472

Was this page helpful?
0 / 5 - 0 ratings