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:
#
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
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.
Most helpful comment
This is documented here: https://github.com/defold/defold/blob/dev/README_BUILD.md#install-packages-and-sdks