Replies: 14 comments 14 replies
-
|
Something occurred to me overnight... when in Manifest mode, does it only update libraries which already exist? The list of libraries above would've already been installed by vcpkg but glibmm wasn't installed yet. |
Beta Was this translation helpful? Give feedback.
-
No, that doesn't seem to be the case either. Yesterday I'd asked the Manifest mode to install glibmm ver 2.74.0 (when glibmm wasn't already installed) and it didn't build glibmm at all. So today I went back to Classic mode and asked it to install the current version (2.80.1). Strangely enough the built DLLs were called glibmm-2.68-1.dll - although interrogating the DLLs in Windows reports that they're as expected at ver 2.80.1. I then went back to Manifest mode and asked it to install glibmm ver 2.76.0. It uninstalled all the above packages and then re-installed the exact same packages! But the previous glibmm DLLs remained (i.e. glibmm itself didn't get built again) . I guess I could be doing something wrong but all the other packages got built so I'm not sure why glibmm doesn't. Is Manifest mode still a work-in-progress? Or have I just been unfortunate and picked a package that doesn't work properly? |
Beta Was this translation helpful? Give feedback.
-
|
Should I be reporting this as an issue, rather than a discussion? |
Beta Was this translation helpful? Give feedback.
-
You are running vcpkg in the port dir. This will build only dependencies listed in that vcpkg.json. |
Beta Was this translation helpful? Give feedback.
-
|
Thanks @Osyotr but is one of us misunderstanding something? I read the info from that link I pointed to (in my original post here) and it looked to me like I needed to navigate to the folder containing glibmm's vcpkg.json file:- i.e. D:\vcpkg-stuff\gnu-windows\src\vcpkg\ports\glibmm and then run vcpkg install but without any command line arguments. Surely glibmm's vcpkg.json file already know sit needs to build glibmm (unless I'm misunderstanding??) |
Beta Was this translation helpful? Give feedback.
-
|
Okay I'll try that at the weekend if I get some time but let me check something.... If glibmm's vcpkg.json file looks like this:- and in my version I change it to look like this:- am I right in assuming that should work now? (up to now I've been under the impression that vcpkg.json IS the manifest file!) |
Beta Was this translation helpful? Give feedback.
-
|
That's great - I'll give that a try at the weekend. Just one more question... That article says I need to create various files in an empty folder which I assume should be a subfolder of some other folder. But which should be the parent folder? |
Beta Was this translation helpful? Give feedback.
-
|
Sadly that tutorial doesn't work :-( I followed those instruction down to the point where I needed to run this command from a command line:- cmake -B build -S . -DCMAKE_TOOLCHAIN_FILE=%VCPKG_ROOT%/scripts/buildsystems/vcpkg.cmake And Cmake gave me the following error:- %VCPKG_ROOT%/scripts/buildsystems doesn't contain a subfolder called vcpkg but it does contain a file called vcpkg.cmake So I tried creating the relevant subfolder and copying vcpkg.cmake into it but it gives me exactly the same error :-( Do I maybe need to build a CMake toolchain using vcpkg? |
Beta Was this translation helpful? Give feedback.
-
|
Apologies - in the page that @Osyotr pointed to I'd missed a line saying that before running cmake -B build -S etc I'd need to change %VCPKG_ROOT% and enter the actual path on my system (which for my system is D:\vcpkg-stuff\gnu-windows\src\vcpkg) So I've now corrected that, tried the cmake -B build -S etc stuff again and I'm not seeing the error now! [Edit...] And woohoo! I've actually got a bit further now! It's building all the dependencies okay but when it come to building glibmm ver 2.76.0 it gives me this error:- @Osyotr - please let me know if you've any ideas. [Edit2...] Following the example in your link, my vcpkg.json file is quite simple and looks like this:- Should I have maybe specified a homepage ? |
Beta Was this translation helpful? Give feedback.
-
|
I managed to find a tutorial that suggests an alternative way to obtain hashes (baselines ?) for the various ports but that doesn't work either:- https://learn.microsoft.com/en-us/vcpkg/commands/hash It relies on the user being able to find an archive file for the port whose name ends in .bz2 but it doesn't say how or where they can be obtained. What's needed here is some kind of tool within vcpkg (maybe even just a batch file) which could print out this information simply and reliably. Is there anywhere where I could suggest that as a feature request? |
Beta Was this translation helpful? Give feedback.
-
|
Hi @Osyotr - I've discovered something this morning which might be significant:- I've realised that if I change that command to this:-
It does actually show me the contents of versions/g-/glibmm.json (but unfiltered of course). So I'd guess that either there's something wrong with those formatting options (in the original example) or maybe the layout of those .json files has changed since that article was originally written? |
Beta Was this translation helpful? Give feedback.
-
|
Thanks @Osyotr and you're exactly right - removing --left-only seems to work! What's been confusing me here (probably something I've misunderstood) is the reference to "4b77da7fed37817f124936239197833469f1b9a8". Up to now I'd assumed that it was the builtin-baseline corresponding to glibmm but I'm starting to think I've been wrong in assuming that?? If I examine the various numbers in glibmm.json, the most recent value shows up as:- "35696bca8e0a38820678c1571a7bdfca61ef2a2a" Hope that all makes sense... |
Beta Was this translation helpful? Give feedback.
-
|
Thanks @Osyotr and this raises something else that's been confusing me... if I display the available versions for glib I see this output (sorry for the length of this):- Glib Available versions: and sure enough if I visit the relevant page for glib it lists all the commits as far back as 2.50.3. But if I do the same thing for glibmm the entry list looks like this:- Glibmm Available versions: And yet when I visit the relevant page for glibmm it only shows me the commits as far as 2.74.0 (or are you seeing the full list at your end?) |
Beta Was this translation helpful? Give feedback.
-
This is not how to install glibmm in manifest mode. Manifest mode is for user projects, not for ports. In manifest mode, the top-level vcpkg.json (user project!) defines which dependencies to install, but it doesn't build the user project. So author a vcpkg.json in your project, listing glibmm if this is a dependency, and then invoke the manifest-mode installation via command line or (cmake, msbuild) project integration. |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
-
This morning I was reading a web page here about building a package in Manifest mode:-
https://learn.microsoft.com/en-gb/vcpkg/concepts/manifest-mode
From what I can tell, this allows me to build an earlier version of a port so I've been experimenting with glibmm and following the instructions for building in Manifest mode, which (initially) gave me this message:-
But although vcpkg did build all those packages, it didn't actually build glibmm (even though it told me it had finished successfully). Have I misunderstood something?
Beta Was this translation helpful? Give feedback.
All reactions