-
Notifications
You must be signed in to change notification settings - Fork 6.1k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[harfbuzz] Build error #28168
Comments
vcpkg install --triplet x64-windows qt5-base qt5-tools |
I ran the above command and it errored on Then it said subcommand failed |
Please update Visual Studio to 2017 or newer. harfbuzz/harfbuzz#3451 |
Thank you for assigning someone, I've been out of the Powertab loop for many years, but I'm back and hopefully will start writing some good code again. I will help improve it but I have NO idea why I can't get the QT stuff to run. |
The upstream cannot adapt to the VS2015 C++standard. Please use a version later than 2017. :) |
I have VS 2015 and 2017. My 2015 version is a nice piece due to features I added almost 10 years ago. It will never die! But I posted a thread to get help with why Qt and Qt tools aren't installing. Should I just download the binaries? Did you look at the error? |
iS IT A cmAKE VERSION ISSUE? |
AFAIU it is an upstream (harfbuzz) requirement with regard to the Visual Studio version. Not a vcpkg issue. |
The documentation says that having VS 2015 Update 3 or greater is the requirement. I guess I thought VS2017 would satisfy that. I just realized that the Visual Studio 2017 environment has to be set by a .bat file unlike VS 2015U3 but I still don't think that that is the problem, nevertheless I'll set up those variables and try again with the QT build. I assume I unzipped Ninja tools from it's zip file ok as it seems to know about it. VS 2015 Update 3 supports C++ 17, it's the first of the compilers to do that. Previously it was only like C+++ 14 or so. |
@PellTheTabber1 does the issue still occur? |
Yes, I need to look in detail at vcpkg and try to feed it something to make the build go more as planned, perhaps some vvariables need to be set. I don';t yet know which ones. Perhaps the entire set of tools has to be rebuilt and forced to use a certain compiler. |
Issue resolved. |
The make isn't going well, it seems to be using Microsoft's cmake which is version 3.12, while my own install is version 3.25. So I've tried to change that. Not sure if I can have Microsoft's CMake. ASnd it can't find the boost header files. 2 errors so far in the build process - it's set to run CMake automatically when I open the project in Team Explorer. I accidentally installed CMake under my Users directory, something I absolutely cannot stand about the install. It never asked me where I wanted to install it, thanks a lot. I set my environment variable for the BOOST_DIR but I'm not sure it's right. And one other thing, the install by vcpkg has 212, 553 files which takes up 31GB. That's too much when we only use a little of the boost libs. I need to pare that down. Perhaps I need to install the boost stuff separately to what is in vcpkg directory? I'll look into that. boost operators? |
The more you move towards a non-standard environment, and the more issues you start to mix, the less likely you will get quick and good support.
Fine. But vcpkg won't magically resolve the tool version requirements of the packages you want to use. It provides tested configurations, cross-platform.
For windows triplets, vcpkg will clean most environment variables, to avoid even more problems.
Too general to provide precise hints. |
I would guess that my CMake has not been set up at all yet - the CATCH_INCLUDES etc.. It's all unset as I've checked. I did not use any "external" tools in the previous builds I had done in Visual Studio 2015U3. I have to set up CMake to work properly. I also wonder why the vcpkg builds do NOT include header files, I don't see any .hpp files so I'm using my separate install of boost for that. Not much I can do without the headers. My old builds were with boost version 1.56 and I had an environment variable set for that. I notice the JSON file in the Github/powertabeditor/.vs doesn't seem set to use vcpkg. Perhaps I need to set this after doing a clone of a project? It needs to point the toolchain file to vcpkg. There's a lot different in the newer builds from what it was in 2016 which is when I last wrote code for Powertab. There's a lot that seems different - my CMake is still using the old settings for Boost, yet it find the new location if the newer boost - odd?. |
I can't help you much at that point but
... successful problem tracing in Cmake starts with a fresh build directory. Caching settings is a key feature of CMake, but it may miss changes to the environment. |
I need to stop in my tracks and simply configure Microsoft's CMake, not the one I installed as CMake is not easily changed to external (other than with hard to manage symbolic links). So I need to close the CMake GUI and simply work with Microsoft's CMake. There are just some settings that need to be set up correctly. It doesn't find the Boost libs date_time, iostreams, and it doesn't find some doctest file or something. I need to simply figure out why the internal CMake cannot find the perfectly built libraries for date_time and iostreams. I had thought that my download of the project via clone would set everything needed but it;s not quite that simple. The Cache might also be the problem. |
Just to help separate different cases:
|
I am going to change my environment settings to use the packages I've already buillt which I now realize DO have the headers - it's just the headers are not in the root directory. I'll try to find date_time and iostreams using the vcpkg stuff which kind of makes sense. I'll stick to the Microsoft CMake for now as it's the default. I can try the other CMake once the CMake finds the boost libs. I have no idea why it finds some boost stuff and not others. When I ran vcpkg to install all the boost dependencies and Qt5, it puts the libraries .lib files not all in the same directory like a regular non-vcpkg install would so I'm left wondering if I simply put in some root of it all to get it to find the .lib corresponding to the dlls. So I need to reset lib in my environment variables and hope it finds the boost libs. Does anyone know why vcpkg doesn't use a common output directory for the headers and the libs? Windows: It must know where Boost is, how else could it output the following line to the output/error log with the following warning: |
This is the problem: I am using a version of Boost 1.81 that is later than the files in the build and there are no lines to check the build even in the below snippet (I need to hand-code some lines in there to get it all started): if(NOT Boost_VERSION VERSION_LESS 106900) I also think I need to add a property sheet to Visual Studio after I build boost. All the build does is warn me that I have a newer version, I'm not sure about this. |
What's the verdict of this ticket ? |
This is an automated message. Per our repo policy, stale issues get closed if there has been no activity in the past 28 days. The issue will be automatically closed in 14 days. If you wish to keep this issue open, please add a new comment. |
bump Edit: https://github.com/harfbuzz/harfbuzz/releases/tag/8.1.1 is latest stable |
I think this issue can be closed, it just involves some configuration issues using
And about new version, I can submit a PR to close this issue. |
package-x64-windows-dbg-out.log
Host Environment
To Reproduce
Steps to reproduce the behavior:
./vcpkg install xxxx
Failure logs
Additional context
C:\VSEN15U3\VC\INCLUDE\xstddef(377): error C2338: The C++ Standard doesn't provide a hash for this type.
Add any other context about the problem here, such as what you have already tried to resolve the issue.
The text was updated successfully, but these errors were encountered: