Alien::...::Vcpkg(3)

💅 Alien::Build::Plugin::Probe::Vcpkg — bestie edition

okay so this is the manual page for Alien::Build::Plugin::Probe::Vcpkg (that's the Alien::...::Vcpkg(3) situation, iykyk). Sit down, grab a strawberry drink 🍓, and let's get into it.


✨ VERSION ✨

version 2.88 — that's the one, periodt.


✨ SYNOPSIS ✨

use alienfile;

plugin 'Probe::Vcpkg' => 'libffi';

literally that's it. two lines and you're thriving 🦋


✨ DESCRIPTION ✨

So this plugin probe is the girl who goes out and finds "system" packages using Microsoft's Vcpkg package manager — specifically for Visual C++ builds of Perl. Vcpkg is a package manager for Visual C++ that ships a whole bunch of open source packages. And even though Vcpkg does also support Linux and macOS... this plugin does not support finding Vcpkg packages on those platforms. nope. not on those. 🙈

For more details on Vcpkg, go look at the project github page right here:

<https://github.com/microsoft/vcpkg>

Now here's the quick start guide for getting Alien::Build to work with Vpkg — and yes bestie, you're gonna want to follow it in order:

# install Vcpkg
C:\> git clone https://github.com/Microsoft/vcpkg.git
C:\> cd vcpkg
C:\vcpkg> .\bootstrap-vcpkg.bat
C:\vcpkg> .\vcpkg integrate install

# update PATH to include the bin directory
# so that .DLL files can be found by Perl
C:\vcpkg> path c:\vcpkg\installed\x64-windows\bin;%PATH%

# install the packages that you want
C:\vcpkg> .\vcpkg install libffi

# install the alien that uses it
C:\vcpkg> cpanm Alien::FFI

Now the important tea ☕: if you're using a 32 bit build of Perl, then substitute x86-windows for x64-windows. And if you don't want to add the bin directory to the PATH, then you can use x64-windows-static instead, which will give you static libraries. (As of this writing static libraries for 32 bit Windows are not available — rip to those, honestly.) The main downside to using x64-windows-static is that Aliens that require dynamic libraries for FFI will not be installable. like, at all. 💀

Also! If you don't want to install Vcpkg user wide (that's the integrate install command from up above), then you can use the PERL_WIN32_VCPKG_ROOT environment variable instead:

# install Vcpkg
C:\> git clone https://github.com/Microsoft/vcpkg.git
C:\> cd vcpkg
C:\vcpkg> .\bootstrap-vcpkg.bat
C:\vcpkg> set PERL_WIN32_VCPKG_ROOT=c:\vcpkg

main character energy, honestly. pick whichever path speaks to you 🎀


✨ PROPERTIES ✨

🌸 name

Specifies the name of the Vcpkg. Do not use this with the lib property down below — choose only one, bestie, we're not doing both. 🫶

This is the default property, so these two are literally equivalent:

plugin 'Probe::Vcpkg' => (name => 'foo');

and

plugin 'Probe::Vcpkg' => 'foo';

same vibe, same result. slay.

🌸 lib

Specifies the list of libraries that make up the Vcpkg. Do not use this with the name property above — again, choose only one, no cap.

Heads up though: using this detection method, the version number of the package will not be automatically determined (because multiple packages could potentially make up the list of libraries), so you need to determine the version number another way if you need it. lowkey annoying but that's the deal 😭

This must be an array reference. Do not include the .lib extension.

plugin 'Probe::Vcpkg' => (lib => ['foo','bar']);

🌸 ffi_name

Specifies an alternate ffi_name for finding dynamic libraries.


✨ SEE ALSO ✨

  • Alien::Build
  • alienfile
  • Alien::Build::MM
  • Alien

✨ AUTHOR ✨

Author: Graham Ollis <plicease@cpan.org>

Contributors — the whole squad, everybody say thank you 👑:

  • Diab Jerius (DJERIUS)
  • Roy Storey (KIWIROY)
  • Ilya Pavlov
  • David Mertens (run4flat)
  • Mark Nunberg (mordy, mnunberg)
  • Christian Walde (Mithaldu)
  • Brian Wightman (MidLifeXis)
  • Zaki Mughal (zmughal)
  • mohawk (mohawk2, ETJ)
  • Vikas N Kumar (vikasnkumar)
  • Flavio Poletti (polettix)
  • Salvador Fandiño (salva)
  • Gianni Ceccarelli (dakkar)
  • Pavel Shaydo (zwon, trinitum)
  • Kang-min Liu (劉康民, gugod)
  • Nicholas Shipp (nshp)
  • Juan Julián Merelo Guervós (JJ)
  • Joel Berger (JBERGER)
  • Petr Písař (ppisar)
  • Lance Wicks (LANCEW)
  • Ahmad Fatoum (a3f, ATHREEF)
  • José Joaquín Atria (JJATRIA)
  • Duke Leto (LETO)
  • Shoichi Kaji (SKAJI)
  • Shawn Laffan (SLAFFAN)
  • Paul Evans (leonerd, PEVANS)
  • Håkon Hægland (hakonhagland, HAKONH)
  • nick nauwelaerts (INPHOBIA)
  • Florian Weimer
  • Marcel Telka (mtelka)

This software is copyright (c) 2011-2022 by Graham Ollis.

This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.


okay that's the whole page bestie, you ate that 💖 this was perl v5.42.3, dated 2026-09-21, and yeah — it's Alien::...::Vcpkg(3) the whole time. byeee 🌈✨

📦 where this page comes from