microsoft / vcpkg

C++ Library Manager for Windows, Linux, and MacOS
MIT License
23.26k stars 6.41k forks source link

Installing qt5:x64-windows fails #1415

Closed MikeGitb closed 6 years ago

MikeGitb commented 7 years ago

Trying to install qt5:x64-windows results in the following error:

PS C:\vcpkg> .\vcpkg.exe install qt5:x64-windows
The following packages will be built and installed:
    qt5:x64-windows
Building package qt5:x64-windows...
-- CURRENT_INSTALLED_DIR=C:/vcpkg/installed/x64-windows
-- DOWNLOADS=C:/vcpkg/downloads
-- CURRENT_PACKAGES_DIR=C:/vcpkg/packages/qt5_x64-windows
-- CURRENT_BUILDTREES_DIR=C:/vcpkg/buildtrees/qt5
-- CURRENT_PORT_DIR=C:/vcpkg/ports/qt5/.
-- Using cached C:/vcpkg/downloads/qt-5.8.0.7z
-- Testing integrity of cached file...
-- Testing integrity of cached file... OK
-- Extracting done
-- Applying patch C:/vcpkg/ports/qt5/fix-qalgorithms-vs2017.patch
-- Applying patch failed. This is expected if this patch was previously applied.
-- Applying patch C:/vcpkg/ports/qt5/fix-qalgorithms-vs2017.patch done
-- Applying patch C:/vcpkg/ports/qt5/fix-commandline-overrides.patch
-- Applying patch failed. This is expected if this patch was previously applied.
-- Applying patch C:/vcpkg/ports/qt5/fix-commandline-overrides.patch done
-- Configuring x64-windows-rel
-- Configuring x64-windows-rel done
-- Configuring x64-windows-dbg
-- Configuring x64-windows-dbg done
-- Package x64-windows-rel
CMake Error at scripts/cmake/vcpkg_execute_required_process.cmake:43 (message):
    Command failed: C:/vcpkg/downloads/tools/jom/jom-1.1.2/jom.exe;/J;4
    Working Directory: C:/vcpkg/buildtrees/qt5/x64-windows-rel
    See logs for more information:
      C:\vcpkg\buildtrees\qt5\build-x64-windows-rel-out.log
      C:\vcpkg\buildtrees\qt5\build-x64-windows-rel-err.log

Call Stack (most recent call first):
  ports/qt5/install_qt.cmake:19 (vcpkg_execute_required_process)
  ports/qt5/portfile.cmake:67 (install_qt)
  scripts/ports.cmake:73 (include)

Error: Building package qt5:x64-windows failed with: BUILD_FAILED
Please ensure you're using the latest portfiles with `.\vcpkg update`, then
submit an issue at https://github.com/Microsoft/vcpkg/issues including:
  Package: qt5:x64-windows
  Vcpkg version: 0.0.81-8e50c86f0a100b1949982eb83349ed64647b2e14

Additionally, attach any relevant sections from the log files above.

For some reason github doesn't allow me to upload the log files. Here is the content of build-x64-windows-rel-err.log:


jom 1.1.2 - empower your cores

C:\vcpkg\buildtrees\qt5\src\qt-5.8.0\qtbase\src\corelib\kernel\qobjectdefs.h(0): Note: No relevant classes found. No output generated.
C:\vcpkg\buildtrees\qt5\src\qt-5.8.0\qtbase\src\network\access\qnetworkaccessdebugpipebackend_p.h(0): Note: No relevant classes found. No output generated.
Checking for jasper... no
Checking for libmng... no
Checking for libtiff... no
Checking for libwebp... no
Checking for ntddmodm... yes
Microsoft (R) 32b/64b MIDL Compiler Version 8.01.0620 
Copyright (c) Microsoft Corporation. All rights reserved.
testcon.idl
ocidl.idl
oleidl.idl
objidl.idl
unknwn.idl
wtypes.idl
wtypesbase.idl
basetsd.h
guiddef.h
oaidl.idl
servprov.idl
urlmon.idl
msxml.idl
oaidl.acf
ocidl.acf
C:\vcpkg\buildtrees\qt5\src\qt-5.8.0\qtscxml\src\scxml\qscxmlcompiler.cpp(0): Note: No relevant classes found. No output generated.
C:\vcpkg\buildtrees\qt5\src\qt-5.8.0\qtscxml\src\scxml\qscxmlerror.h(0): Note: No relevant classes found. No output generated.
Project MESSAGE: Unsupported Bluetooth platform, will not build a working QtBluetooth library.
Project MESSAGE: Either no Qt D-Bus found or no BlueZ headers available.
Project MESSAGE: Unsupported Bluetooth platform, will not build a working QtBluetooth library.
Project MESSAGE: Either no Qt D-Bus found or no BlueZ headers available.
Project MESSAGE: Unsupported Bluetooth platform, will not build a working QtBluetooth library.
Project MESSAGE: Either no Qt D-Bus found or no BlueZ headers available.
C:\vcpkg\buildtrees\qt5\src\qt-5.8.0\qtconnectivity\src\bluetooth\qbluetoothdevicediscoveryagent_p.h(0): Note: No relevant classes found. No output generated.
C:\vcpkg\buildtrees\qt5\src\qt-5.8.0\qtconnectivity\src\bluetooth\qbluetoothlocaldevice_p.h(0): Note: No relevant classes found. No output generated.
Project MESSAGE: Unsupported NFC platform, will not build a working QtNfc library.
Project MESSAGE: Unsupported NFC platform, will not build a working QtNfc library.
Project MESSAGE: Unsupported NFC platform, will not build a working QtNfc library.
C:\vcpkg\buildtrees\qt5\src\qt-5.8.0\qt3d\src\core\aspects\aspectcommanddebugger_p.h(0): Note: No relevant classes found. No output generated.
Checking for flite... no
Checking for flite_alsa... no
Checking for vocalizer... no
jom: C:\vcpkg\buildtrees\qt5\x64-windows-rel\qtspeech\src\plugins\tts\sapi\Makefile.Release [.obj\release\qtexttospeech_sapi.obj] Error 2
jom: C:\vcpkg\buildtrees\qt5\x64-windows-rel\qtspeech\src\plugins\tts\sapi\Makefile [release] Error 2
jom: C:\vcpkg\buildtrees\qt5\x64-windows-rel\qtspeech\src\plugins\tts\Makefile [sub-sapi-make_first] Error 2
jom: C:\vcpkg\buildtrees\qt5\x64-windows-rel\qtspeech\src\plugins\Makefile [sub-tts-make_first] Error 2
jom: C:\vcpkg\buildtrees\qt5\x64-windows-rel\qtspeech\src\Makefile [sub-plugins-make_first] Error 2
jom: C:\vcpkg\buildtrees\qt5\x64-windows-rel\qtspeech\Makefile [sub-src-make_first] Error 2
C:\vcpkg\buildtrees\qt5\src\qt-5.8.0\qttools\src\linguist\linguist\main.cpp(0): Note: No relevant classes found. No output generated.
jom: C:\vcpkg\buildtrees\qt5\x64-windows-rel\Makefile [module-qtspeech-make_first] Error 2

Here is the last line of build-x64-windows-rel-out.log:

moc_translationsettingsdialog.cpp
    link /NOLOGO /DYNAMICBASE /NXCOMPAT /INCREMENTAL:NO /SUBSYSTEM:WINDOWS "/MANIFESTDEPENDENCY:type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' publicKeyToken='6595b64144ccf1df' language='*' processorArchitecture='*'" /MANIFEST:embed /OUT:..\..\..\bin\linguist.exe @C:\Users\michael\AppData\Local\Temp\linguist.exe.13588.44515.jom
MikeGitb commented 7 years ago

Is there any additional information I can provide to help you?

bagong commented 7 years ago

Are these files empty?

C:\vcpkg\buildtrees\qt5\src\qt-5.8.0\qtscxml\src\scxml\qscxmlcompiler.cpp(0): Note: No relevant classes found. No output generated.
C:\vcpkg\buildtrees\qt5\src\qt-5.8.0\qtscxml\src\scxml\qscxmlerror.h(0): Note: No relevant classes found. No output generated.

Maybe something went wrong on the extractions of the source-files?

MikeGitb commented 7 years ago

Sorry for the delay. No, those files do exist, are not empty and contain actually a lot of classes.

shemanaev commented 7 years ago

Same problem with qt5:x64-windows using MSVC 2017.

Console output
  
C:\src\vcpkg>vcpkg install qt5
The following packages will be built and installed:
    qt5:x86-windows
Building package qt5:x86-windows...
-- CURRENT_INSTALLED_DIR=C:/src/vcpkg/installed/x86-windows
-- DOWNLOADS=C:/src/vcpkg/downloads
-- CURRENT_PACKAGES_DIR=C:/src/vcpkg/packages/qt5_x86-windows
-- CURRENT_BUILDTREES_DIR=C:/src/vcpkg/buildtrees/qt5
-- CURRENT_PORT_DIR=C:/src/vcpkg/ports/qt5/.
-- Using cached C:/src/vcpkg/downloads/qt-5.8.0.7z
-- Testing integrity of cached file...
-- Testing integrity of cached file... OK
-- Extracting done
-- Applying patch C:/src/vcpkg/ports/qt5/fix-qalgorithms-vs2017.patch
-- Applying patch failed. This is expected if this patch was previously applied.
-- Applying patch C:/src/vcpkg/ports/qt5/fix-qalgorithms-vs2017.patch done
-- Applying patch C:/src/vcpkg/ports/qt5/fix-commandline-overrides.patch
-- Applying patch failed. This is expected if this patch was previously applied.
-- Applying patch C:/src/vcpkg/ports/qt5/fix-commandline-overrides.patch done
-- Configuring x86-windows-rel
-- Configuring x86-windows-rel done
-- Configuring x86-windows-dbg
-- Configuring x86-windows-dbg done
-- Package x86-windows-rel
CMake Error at scripts/cmake/vcpkg_execute_required_process.cmake:43 (message):
    Command failed: C:/src/vcpkg/downloads/tools/jom/jom-1.1.2/jom.exe;/J;3
    Working Directory: C:/src/vcpkg/buildtrees/qt5/x86-windows-rel
    See logs for more information:
      C:\src\vcpkg\buildtrees\qt5\build-x86-windows-rel-out.log
      C:\src\vcpkg\buildtrees\qt5\build-x86-windows-rel-err.log

Call Stack (most recent call first):
  ports/qt5/install_qt.cmake:19 (vcpkg_execute_required_process)
  ports/qt5/portfile.cmake:67 (install_qt)
  scripts/ports.cmake:72 (include)

Error: Building package qt5:x86-windows failed with: BUILD_FAILED
Please ensure you're using the latest portfiles with `.\vcpkg update`, then
submit an issue at https://github.com/Microsoft/vcpkg/issues including:
  Package: qt5:x86-windows
  Vcpkg version: 0.0.81-285c28000ad0460f62a3e7895311b975042b4be5

Additionally, attach any relevant sections from the log files above.
  
  
C:\src\vcpkg\buildtrees\qt5\build-x86-windows-rel-err.log
  
jom 1.1.2 - empower your cores

C:\src\vcpkg\buildtrees\qt5\src\qt-5.8.0\qtbase\src\corelib\kernel\qobjectdefs.h(0): Note: No relevant classes found. No output generated.
Checking for jasper... no
Checking for libmng... no
Checking for libtiff... no
Checking for libwebp... no
Checking for ntddmodm... yes
Microsoft (R) 32b/64b MIDL Compiler Version 8.01.0622 
Copyright (c) Microsoft Corporation. All rights reserved.
testcon.idl
ocidl.idl
oleidl.idl
objidl.idl
unknwn.idl
wtypes.idl
wtypesbase.idl
basetsd.h
guiddef.h
oaidl.idl
servprov.idl
urlmon.idl
msxml.idl
oaidl.acf
ocidl.acf
C:\src\vcpkg\buildtrees\qt5\src\qt-5.8.0\qtscxml\src\scxml\qscxmlcompiler.cpp(0): Note: No relevant classes found. No output generated.
C:\src\vcpkg\buildtrees\qt5\src\qt-5.8.0\qtscxml\src\scxml\qscxmlerror.h(0): Note: No relevant classes found. No output generated.
Project MESSAGE: Unsupported Bluetooth platform, will not build a working QtBluetooth library.
Project MESSAGE: Either no Qt D-Bus found or no BlueZ headers available.
Project MESSAGE: Unsupported Bluetooth platform, will not build a working QtBluetooth library.
Project MESSAGE: Either no Qt D-Bus found or no BlueZ headers available.
Project MESSAGE: Unsupported Bluetooth platform, will not build a working QtBluetooth library.
Project MESSAGE: Either no Qt D-Bus found or no BlueZ headers available.
C:\src\vcpkg\buildtrees\qt5\src\qt-5.8.0\qtconnectivity\src\bluetooth\qbluetoothdevicediscoveryagent_p.h(0): Note: No relevant classes found. No output generated.
C:\src\vcpkg\buildtrees\qt5\src\qt-5.8.0\qtconnectivity\src\bluetooth\qbluetoothlocaldevice_p.h(0): Note: No relevant classes found. No output generated.
Project MESSAGE: Unsupported NFC platform, will not build a working QtNfc library.
Project MESSAGE: Unsupported NFC platform, will not build a working QtNfc library.
Project MESSAGE: Unsupported NFC platform, will not build a working QtNfc library.
C:\src\vcpkg\buildtrees\qt5\src\qt-5.8.0\qt3d\src\core\aspects\aspectcommanddebugger_p.h(0): Note: No relevant classes found. No output generated.
Checking for flite... no
Checking for flite_alsa... no
Checking for vocalizer... no
jom: C:\src\vcpkg\buildtrees\qt5\x86-windows-rel\qtspeech\src\plugins\tts\sapi\Makefile.Release [.obj\release\qtexttospeech_sapi.obj] Error 2
jom: C:\src\vcpkg\buildtrees\qt5\x86-windows-rel\qtspeech\src\plugins\tts\sapi\Makefile [release] Error 2
jom: C:\src\vcpkg\buildtrees\qt5\x86-windows-rel\qtspeech\src\plugins\tts\Makefile [sub-sapi-make_first] Error 2
jom: C:\src\vcpkg\buildtrees\qt5\x86-windows-rel\qtspeech\src\plugins\Makefile [sub-tts-make_first] Error 2
jom: C:\src\vcpkg\buildtrees\qt5\x86-windows-rel\qtspeech\src\Makefile [sub-plugins-make_first] Error 2
jom: C:\src\vcpkg\buildtrees\qt5\x86-windows-rel\qtspeech\Makefile [sub-src-make_first] Error 2
C:\src\vcpkg\buildtrees\qt5\src\qt-5.8.0\qttools\src\linguist\linguist\main.cpp(0): Note: No relevant classes found. No output generated.
jom: C:\src\vcpkg\buildtrees\qt5\x86-windows-rel\Makefile [module-qtspeech-make_first] Error 2
  
  

As a workaround i disabled speech module and a couple of unnecessary others:

diff --git a/ports/qt5/portfile.cmake b/ports/qt5/portfile.cmake
index a7618625..a3d39a79 100644
--- a/ports/qt5/portfile.cmake
+++ b/ports/qt5/portfile.cmake
@@ -51,6 +51,11 @@ configure_qt(
         -sql-psql
         -nomake examples -nomake tests
         -skip webengine
+        -skip speech
+        -skip scxml
+        -skip charts
+        -skip datavis3d
+        -skip virtualkeyboard
         -opengl desktop # other options are "-no-opengl" and "-opengl angle"
         -mp
         LIBJPEG_LIBS="-ljpeg"
NickGerleman commented 7 years ago

I have the same experience on a clean install of Windows after installing VS 2017, vcpkg, and nothing else.

sssnakesss commented 7 years ago

Just gonna stick my hand up with a 'me too' on this issue. Same errors and all.

Edit1: Should note that this issue is not present with qt5:x86-windows (i am only having it on qt5:x64-windows). Haven't tried it with UWP variants.

Edit2: Definately caused by speech, as @shemanaev stated. I didn't skip the other modules, only speech, and everything is fine.

Barath-Kannan commented 7 years ago

Confirming - this is a real issue. Managed to track down (part of) the cause by finding the specific makefile and running it manually. Qt's Speech Library uses native APIs on Windows and some of this code is dependent on ATL - these are not included by the default VS2017 install (the community version anyway).

To install the required library and headers;

  1. Open up the Visual Studio Installer
  2. Under VS Community 2017, Click More -> Modify
  3. On the right side, in the Summary Pane, expand the Desktop Development with C++ option
  4. Install the "Visual C++ ATL Support" (it's about 15mb)
  5. Run vcpkg install again

@ras0219-msft do you have some way of flagging that this optional package is necessary within vcpkg?

Continuing to test, there may still be some other issues with the TTS stuff.

MikeGitb commented 7 years ago

Imho, instead of requring the installation of ATL, I'd prefer to deactivate the speech library by default and rather have it as an optional module. Maybe could even make more parts of qt optional to reduce the default installation time and size. My guess would be that most people that need a full qt install use the qt installation package anyway instead of the vcpkg version.

Barath-Kannan commented 7 years ago

I agree 100%, I think that the port should move over to using the submodule version of qt instead of the single build. That'll make it much easier to isolate these issues and manage them

ras0219-msft commented 7 years ago

@Barath-Kannan we have a pseudo-package for atlmfc that checks for it in your VS install.

Barath-Kannan commented 7 years ago

Ok, that should be added as a dependency for qt. There also seems to be some issues with qttranslations because of the paths of binaries at build time, might need to add some additional things to the PATH according to this: http://doc.qt.io/qt-5/windows-building.html

bjornpiltz commented 7 years ago

I think it would be a good idea to add a pseudo package for ATL only. I've stayed off MFC for a decade and I don't want to let it anywhere near my computer 🤢 Besides it takes up 1.3 GB of installation storage.

Barath-Kannan commented 7 years ago

well, if we can get modular qt in, you'll just be able to opt out of the stuff that requires it (and which most people don't use anyway)

MikeGitb commented 6 years ago

I think modular qt solved that problem (at least I could install qt5-base).