C++ Library Manager for Windows, Linux, and MacOS

Overview

Vcpkg: Overview

中文总览 Español 한국어 Français

Vcpkg helps you manage C and C++ libraries on Windows, Linux and MacOS. This tool and ecosystem are constantly evolving, and we always appreciate contributions!

If you've never used vcpkg before, or if you're trying to figure out how to use vcpkg, check out our Getting Started section for how to start using vcpkg.

For short description of available commands, once you've installed vcpkg, you can run vcpkg help, or vcpkg help [command] for command-specific help.

Build Status

Table of Contents

Getting Started

First, follow the quick start guide for either Windows, or macOS and Linux, depending on what you're using.

For more information, see Installing and Using Packages. If a library you need is not present in the vcpkg catalog, you can open an issue on the GitHub repo where the vcpkg team and community can see it, and potentially add the port to vcpkg.

After you've gotten vcpkg installed and working, you may wish to add tab completion to your shell.

Finally, if you're interested in the future of vcpkg, check out the manifest guide! This is an experimental feature and will likely have bugs, so try it out and open all the issues!

Quick Start: Windows

Prerequisites:

  • Windows 7 or newer
  • Git
  • Visual Studio 2015 Update 3 or greater with the English language pack

First, download and bootstrap vcpkg itself; it can be installed anywhere, but generally we recommend using vcpkg as a submodule for CMake projects, and installing it globally for Visual Studio projects. We recommend somewhere like C:\src\vcpkg or C:\dev\vcpkg, since otherwise you may run into path issues for some port build systems.

> git clone https://github.com/microsoft/vcpkg
> .\vcpkg\bootstrap-vcpkg.bat

To install the libraries for your project, run:

> .\vcpkg\vcpkg install [packages to install]

You can also search for the libraries you need with the search subcommand:

> .\vcpkg\vcpkg search [search term]

In order to use vcpkg with Visual Studio, run the following command (may require administrator elevation):

> .\vcpkg\vcpkg integrate install

After this, you can now create a New non-CMake Project (or open an existing one). All installed libraries are immediately ready to be #include'd and used in your project without additional configuration.

If you're using CMake with Visual Studio, continue here.

In order to use vcpkg with CMake outside of an IDE, you can use the toolchain file:

> cmake -B [build directory] -S . -DCMAKE_TOOLCHAIN_FILE=[path to vcpkg]/scripts/buildsystems/vcpkg.cmake
> cmake --build [build directory]

With CMake, you will still need to find_package and the like to use the libraries. Check out the CMake section for more information, including on using CMake with an IDE.

For any other tools, including Visual Studio Code, check out the integration guide.

Quick Start: Unix

Prerequisites for Linux:

Prerequisites for macOS:

First, download and bootstrap vcpkg itself; it can be installed anywhere, but generally we recommend using vcpkg as a submodule for CMake projects.

$ git clone https://github.com/microsoft/vcpkg
$ ./vcpkg/bootstrap-vcpkg.sh

To install the libraries for your project, run:

$ ./vcpkg/vcpkg install [packages to install]

You can also search for the libraries you need with the search subcommand:

$ ./vcpkg/vcpkg search [search term]

In order to use vcpkg with CMake, you can use the toolchain file:

$ cmake -B [build directory] -S . -DCMAKE_TOOLCHAIN_FILE=[path to vcpkg]/scripts/buildsystems/vcpkg.cmake
$ cmake --build [build directory]

With CMake, you will still need to find_package and the like to use the libraries. Check out the CMake section for more information on how best to use vcpkg with CMake, and CMake Tools for VSCode.

For any other tools, check out the integration guide.

Installing Linux Developer Tools

Across the different distros of Linux, there are different packages you'll need to install:

  • Debian, Ubuntu, popOS, and other Debian-based distributions:
$ sudo apt-get update
$ sudo apt-get install build-essential tar curl zip unzip
  • CentOS
$ sudo yum install centos-release-scl
$ sudo yum install devtoolset-7
$ scl enable devtoolset-7 bash

For any other distributions, make sure you're installing g++ 6 or above. If you want to add instructions for your specific distro, please open a PR!

Installing macOS Developer Tools

On macOS 10.15, the only thing you should need to do is run the following in your terminal:

$ xcode-select --install

Then follow along with the prompts in the windows that comes up.

On macOS 10.14 and previous, you'll also need to install g++ from homebrew; follow the instructions in the following section.

Installing GCC for macOS before 10.15

This will only be necessary if you're using a macOS version from before 10.15. Installing homebrew should be very easy; check out <brew.sh> for more information, but at its simplest, run the following command:

$ /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"

Then, in order to grab an up-to-date version of gcc, run the following:

$ brew install gcc

You'll then be able to bootstrap vcpkg along with the quick start guide

Using vcpkg with CMake

If you're using vcpkg with CMake, the following may help!

Visual Studio Code with CMake Tools

Adding the following to your workspace settings.json will make CMake Tools automatically use vcpkg for libraries:

{
  "cmake.configureSettings": {
    "CMAKE_TOOLCHAIN_FILE": "[vcpkg root]/scripts/buildsystems/vcpkg.cmake"
  }
}

Vcpkg with Visual Studio CMake Projects

Open the CMake Settings Editor, and under CMake toolchain file, add the path to the vcpkg toolchain file:

[vcpkg root]/scripts/buildsystems/vcpkg.cmake

Vcpkg with CLion

Open the Toolchains settings (File > Settings on Windows and Linux, CLion > Preferences on macOS), and go to the CMake settings (Build, Execution, Deployment > CMake). Finally, in CMake options, add the following line:

-DCMAKE_TOOLCHAIN_FILE=[vcpkg root]/scripts/buildsystems/vcpkg.cmake

Unfortunately, you'll have to add this to each profile.

Vcpkg as a Submodule

When using vcpkg as a submodule of your project, you can add the following to your CMakeLists.txt before the first project() call, instead of passing CMAKE_TOOLCHAIN_FILE to the cmake invocation.

set(CMAKE_TOOLCHAIN_FILE ${CMAKE_CURRENT_SOURCE_DIR}/vcpkg/scripts/buildsystems/vcpkg.cmake
  CACHE STRING "Vcpkg toolchain file")

This will still allow people to not use vcpkg, by passing the CMAKE_TOOLCHAIN_FILE directly, but it will make the configure-build step slightly easier.

Tab-Completion/Auto-Completion

vcpkg supports auto-completion of commands, package names, and options in both powershell and bash. To enable tab-completion in the shell of your choice, run:

> .\vcpkg integrate powershell

or

$ ./vcpkg integrate bash

depending on the shell you use, then restart your console.

Examples

See the documentation for specific walkthroughs, including installing and using a package, adding a new package from a zipfile, and adding a new package from a GitHub repo.

Our docs are now also available online at ReadTheDocs: https://vcpkg.readthedocs.io/!

See a 4 minute video demo.

Contributing

Vcpkg is an open source project, and is thus built with your contributions. Here are some ways you can contribute:

Please refer to our Contributing Guide for more details.

This project has adopted the Microsoft Open Source Code of Conduct. For more information see the Code of Conduct FAQ or email [email protected] with any additional questions or comments.

License

The code in this repository is licensed under the MIT License.

Telemetry

vcpkg collects usage data in order to help us improve your experience. The data collected by Microsoft is anonymous. You can opt-out of telemetry by re-running the bootstrap-vcpkg script with -disableMetrics, passing --disable-metrics to vcpkg on the command line, or by setting the VCPKG_DISABLE_METRICS environment variable.

Read more about vcpkg telemetry at docs/about/privacy.md

Issues
  • [wxwidgets] Fix usage, add cmake options

    [wxwidgets] Fix usage, add cmake options

    This PR will:

    • Automatically call wx-config and parse out cxxflags in vcpkg-cmake-wrapper.
    • Export all targets.
    • Fix the ouput path by running wx-config --libs.

    Fixes #17072.

    Upstream PR: https://github.com/wxWidgets/wxWidgets/pull/2391

    category:port-bug info:internal depends:upstream-changes 
    opened by JackBoosY 128
  • [OpenCV] Update to v4.1.1

    [OpenCV] Update to v4.1.1

    Any feedback is welcome!

    fixes: #2065 fixes: #2749 fixes: #2799 fixes: #3095 fixes: #3418 fixes: #4160 fixes: #4601 fixes: #4725 fixes: #4758 fixes: #5101 fixes: #5557 fixes: #5876 fixes: #6728 fixes: #6994

    opened by cenit 121
  • [opencv4] update to v4.3

    [opencv4] update to v4.3

    It should be complete now

    Fixes: #11557 Closes: #8557 Fixes: #11138 Fixes: #10188 Closes: #8655 Closes: #8549 Closes: #3196 Fixes: #7981 Closes: #7913 Closes: #7856 Fixes: #4907 Closes: #9607 Fixes: #7572 Closes: #8175

    category:port-update info:reviewed 
    opened by cenit 111
  • More or less completely rewritten tensorflow-cc port

    More or less completely rewritten tensorflow-cc port

    • fixes static builds
    • upgrades tensorflow from v1.14 to recent v2.3, fixing #9141
    • upgrades bazel from v0.25.2 to v3.1, hopefully fixing #7995
    • requires PR #12926 (merged in this branch; need to resolve conflict once PR #12926 is merged into master)
    category:port-feature category:port-update category:tool-update 
    opened by jgehw 103
  • [OpenMVG/OpenMVS] fix tools

    [OpenMVG/OpenMVS] fix tools

    Upgrade SuiteSparse, add new vlfeat port, restore the custom FindLAPACK (for clapack) I wrote one year ago that went lost (and with it each and every port depending on clapack was broken again on linux), remove the unnecessary FindBLAS module, and finally

    • add openMVG tools
    • fix openMVG build error
    • enable cuda on openMVS
    • handle openMVS tools properly

    along the way, it fixes: #12387 (a working qt5 was necessary to build tools cited above) and fixes many problems encountered along the way towards a working solution

    category:port-feature category:port-bug info:reviewed 
    opened by cenit 92
  • [Qt6|6.1.0] Add new ports.

    [Qt6|6.1.0] Add new ports.

    closes #15029

    Current Status:

    • added all 6.1.0 ports which I know of (does it work? Who knows?)

    Current questions:

    • Port naming? qt6-qtbase? Only qtbase? (since qt wants to get rid of the version number anyway)
    • Features? Too many? Will never be all tested. (at least I will only be going for the default set.)

    Depends:

    • [x] #14308
    • [x] #14395 (ZSTD)
    • [x] #14530 (harfbuzz)
    • [x] another PR copying pdbs for vcpkg_copy_tools
    • [x] https://bugreports.qt.io/browse/QTBUG-88457 (qtdeclarative x64-windows-static; not in beta5; probably in beta6)
    • [x] open upstream issues
    • [x] https://bugreports.qt.io/browse/QTBUG-89204 (solved by own patch)
    • [x] https://bugreports.qt.io/browse/QTBUG-89203 (solved by own patch)
    • [x] https://bugreports.qt.io/browse/QTBUG-89280 (solved by own patch)
    • [x] https://bugreports.qt.io/browse/QTBUG-89374 (solved by own patch)
    • [x] fix import prefix correction in vcpkg_fixup_cmake_targets as mentioned in https://github.com/microsoft/vcpkg/pull/12215#discussion_r454579077. (Corrected it in another way for this PR)
    • [x] #15049
    • [x] #15144
    category:new-port info:reviewed 
    opened by Neumann-A 89
  • [openssl] update to 3.0.2

    [openssl] update to 3.0.2

    Describe the pull request This PR updates openssl to version 3.0.2. The consensus is to update openssl and to create a new port called openssl1 for future updates to openssl 1.1.1. No port depends or should ever depend on openssl1. All ports that were incompatible to OpenSSL 3 were updated or patched.

    • What does your PR fix?

      Fixes #20031

    • Which triplets are supported/not supported? Have you updated the CI baseline?

      Yes, skip openssl1 on all triplets

    • Does your PR follow the maintainer guide?

      Yes

    • If you have added/updated a port: Have you run ./vcpkg x-add-version --all and committed the result?

      Yes

    category:port-update info:reviewed 
    opened by Thomas1664 87
  • [eigen3] Update to 3.4.0

    [eigen3] Update to 3.4.0

    Describe the pull request

    • What does your PR fix?

      Updates Eigen to 3.4.0

    • Which triplets are supported/not supported? Have you updated the [CI baseline]

      all

    • Does your PR follow the [maintainer guide]

      Yes

    • If you have added/updated a port: Have you run ./vcpkg x-add-version --all and committed the result?

      Yes

    I think this is good to go but have opened it as a draft as it is my first time.

    category:port-update info:reviewed 
    opened by spinicist 83
  • [android] vcpkg_configure_make correct set flags for android build

    [android] vcpkg_configure_make correct set flags for android build

    vcpkg_configure_make properly set CFLAGS, CXXFLAGS, LDFLAG, CC and CXX env variables now for android cross compilation.

    • Which triplets are supported/not supported? Mostly android triplets,

    • Have you updated the CI baseline? - no

    • Does your PR follow the maintainer guide? yes

    category:tool-update 
    opened by xandox 79
  • [tomlplusplus] Add new port

    [tomlplusplus] Add new port

    Describe the pull request This PR adds a port for the tomlplusplus library. Furthermore, as tomlplusplus installs a CMake configuration file generated by meson, it also fixes the vcpkg_fixup_cmake_targets function to correctly deal with CMake configuration files generated by meson, see https://github.com/mesonbuild/meson/issues/6955 for more info.

    • What does your PR fix? Fix https://github.com/microsoft/vcpkg/issues/10667 .

    • Which triplets are supported/not supported? Have you updated the CI baseline? I would expect all the triplets to work fine, so I think it is not necessary to update the CI baseline.

    • Does your PR follow the maintainer guide? Yes

    category:new-port info:reviewed 
    opened by traversaro 77
  • [qtkeychain] switch to Qt6; add qtkeychain-qt5; update to 0.13.1

    [qtkeychain] switch to Qt6; add qtkeychain-qt5; update to 0.13.1

    and update to 0.13.1

    • What does your PR fix?

      Fixes qtkeychain unable to build with Qt6. Also add libsecret dependency on Linux.

    • Which triplets are supported/not supported? Have you updated the CI baseline?

      all

    • Does your PR follow the maintainer guide?

      yes

    • If you have added/updated a port: Have you run ./vcpkg x-add-version --all and committed the result?

      yes

    category:port-feature category:new-port requires:author-response 
    opened by Be-ing 76
  • [azmq] update to v1.0.3

    [azmq] update to v1.0.3

    Describe the pull request

    • What does your PR fix?

      Updates azmq to v1.0.3

    • Which triplets are supported/not supported? Have you updated the CI baseline?

      All, No

    • Does your PR follow the maintainer guide?

      Yes

    • If you have added/updated a port: Have you run ./vcpkg x-add-version --all and committed the result?

      Yes

    opened by cbrl 0
  • Link FLTK 1.4.x

    Link FLTK 1.4.x

    According to the FLTK docs, development and bugfix support for 1.3.8 has been closed and all active development is on 1.4.x, which is not available to pull with vcpkg at the moment

    opened by fpolli 0
  • update libfv version to v0.0.8

    update libfv version to v0.0.8

    Describe the pull request

    • What does your PR fix?

      add multithread support

    • Which triplets are supported/not supported? Have you updated the CI baseline?

      windows

    • Does your PR follow the maintainer guide?

      yes

    • If you have added/updated a port: Have you run ./vcpkg x-add-version --all and committed the result?

      Yes

    If you are still working on the PR, open it as a Draft: https://github.blog/2019-02-14-introducing-draft-pull-requests/

    opened by fawdlstty 0
  • [tree-sitter] fix typo in version number

    [tree-sitter] fix typo in version number

    Describe the pull request

    • What does your PR fix?

      Fixes a typo in the version-number, see https://github.com/microsoft/vcpkg/pull/26058#issuecomment-1207187285

    • Which triplets are supported/not supported? Have you updated the CI baseline?

      NA

    • Does your PR follow the maintainer guide?

      Yes

    • If you have added/updated a port: Have you run ./vcpkg x-add-version --all and committed the result?

      Yes

    opened by kylo252 0
  • [<port name>] build failure

    [] build failure

    Host Environment

    • OS: Windows10
    • Compiler: Visual Studio 2019

    To Reproduce Steps to reproduce the behavior: vcpkg install libvpx:x64-windows-static libyuv:x64-windows-static opus:x64-windows-static

    Failure logs Computing installation plan... The following packages will be built and installed: libvpx[core]:x64-windows-static -> 1.10.0#2 libyuv[core]:x64-windows-static -> 2021-04-15 opus[core]:x64-windows-static -> 1.3.1#6 Detecting compiler hash for triplet x64-windows-static... Restored 0 packages from C:\Users\Administrator\AppData\Local\vcpkg\archives in 732.7 us. Use --debug to see more details. Starting package 1/3: libvpx:x64-windows-static Building package libvpx[core]:x64-windows-static... -- Using cached webmproject-libvpx-v1.10.0.tar.gz. -- Cleaning sources at D:/Program Files/vcpkg/buildtrees/libvpx/src/v1.10.0-6771bc71c3.clean. Use --editable to skip cleaning for the packages you specify. -- Extracting source D:/Program Files/vcpkg/downloads/webmproject-libvpx-v1.10.0.tar.gz -- Applying patch 0002-Fix-nasm-debug-format-flag.patch -- Applying patch 0003-add-uwp-and-v142-support.patch -- Applying patch 0004-remove-library-suffixes.patch -- Using source at D:/Program Files/vcpkg/buildtrees/libvpx/src/v1.10.0-6771bc71c3.clean -- Using cached msys-gzip-1.10-1-x86_64.pkg.tar.xz. -- Using cached msys-bash-4.4.023-2-x86_64.pkg.tar.xz. -- Using cached msys-diffutils-3.7-1-x86_64.pkg.tar.xz. -- Using cached msys-coreutils-8.32-1-x86_64.pkg.tar.xz. -- Using cached msys-grep-3.0-2-x86_64.pkg.tar.xz. -- Using cached msys-sed-4.8-1-x86_64.pkg.tar.xz. -- Using cached msys-libpcre-8.44-1-x86_64.pkg.tar.xz. -- Using cached msys-gawk-5.1.0-1-x86_64.pkg.tar.xz. -- Using cached msys-mpfr-4.1.0-1-x86_64.pkg.tar.zst. -- Using cached msys-gmp-6.2.0-1-x86_64.pkg.tar.xz. -- Using cached msys-libreadline-8.0.004-1-x86_64.pkg.tar.xz. -- Using cached msys-ncurses-6.2-1-x86_64.pkg.tar.xz. -- Using cached msys-pkg-config-0.29.2-4-x86_64.pkg.tar.zst. -- Using cached msys-make-4.3-1-x86_64.pkg.tar.xz. -- Using cached msys-libintl-0.19.8.1-1-x86_64.pkg.tar.xz. -- Using cached msys-libiconv-1.16-2-x86_64.pkg.tar.zst. -- Using cached msys-gcc-libs-9.3.0-1-x86_64.pkg.tar.xz. -- Using cached msys-msys2-runtime-3.2.0-8-x86_64.pkg.tar.zst. -- Using msys root at D:/Program Files/vcpkg/downloads/tools/msys2/1dd5855cc99d59fc -- Generating makefile -- Generating MSBuild projects CMake Error at scripts/cmake/vcpkg_execute_required_process.cmake:127 (message): Command failed: "D:/Program Files/vcpkg/downloads/tools/msys2/1dd5855cc99d59fc/usr/bin/bash.exe" --noprofile --norc -c "make dist" Working Directory: D:/Program Files/vcpkg/buildtrees/libvpx/x64-windows-static Error code: 2 See logs for more information: D:\Program Files\vcpkg\buildtrees\libvpx\generate-x64-windows-static-err.log

    Call Stack (most recent call first): ports/libvpx/portfile.cmake:97 (vcpkg_execute_required_process) scripts/ports.cmake:142 (include)

    Error: Building package libvpx:x64-windows-static failed with: BUILD_FAILED Please ensure you're using the latest portfiles with git pull and .\vcpkg update. Then check for known issues at: https://github.com/microsoft/vcpkg/issues?q=is%3Aissue+is%3Aopen+in%3Atitle+libvpx You can submit a new issue at: https://github.com/microsoft/vcpkg/issues/new?template=report-package-build-failure.md&title=[libvpx]+Build+error including: package: libvpx[core]:x64-windows-static -> 1.10.0#2 vcpkg-tool version: 2021-11-24-48b94a6946b8a70abd21529218927fd478d02b6c vcpkg-scripts version: 5ddd7f026 2021-12-01 (8 months ago)

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

    generate-x64-windows-static-err.log

    opened by 915157600 0
  • [pdal] Prepare for nlohmann-json 3.11.x

    [pdal] Prepare for nlohmann-json 3.11.x

    In nlohmann-json 3.11.0, json_fwd.hpp changed. Replace PDAL's internal copy of the file as part of the de-vendoring process.

    This PR is a requirement for #26124 to move forward.

    • Which triplets are supported/not supported? Have you updated the CI baseline?

      No change, No

    • Does your PR follow the maintainer guide?

      Yes

    • If you have added/updated a port: Have you run ./vcpkg x-add-version --all and committed the result?

      Yes

    opened by falbrechtskirchinger 5
Releases(2022.07.25)
Owner
Microsoft
Open source projects and samples from Microsoft
Microsoft
The decentralized package manager for C++ and friends 🏝️

Buckaroo The decentralized package manager for C++ and friends. Why Buckaroo? Package managers like Yarn and Cargo have shown how productive developer

LoopPerfect 892 Jul 31, 2022
Spack is a package manager, and package managers should be trivial to install.

?? Spack with batteries included (linux/x86_64) Spack is a package manager, and package managers should be trivial to install. This repo offers a sing

Harmen Stoppels 14 Jun 6, 2022
📦 CMake's missing package manager. A small CMake script for setup-free, cross-platform, reproducible dependency management.

Setup-free CMake dependency management CPM.cmake is a CMake script that adds dependency management capabilities to CMake. It's built as a thin wrapper

CPM.cmake 1.3k Jul 28, 2022
CMake driven cross-platform package manager for C/C++.

Hunter CMake driven cross-platform package manager for C/C++. Linux, Windows, macOS, iOS, Android, Raspberry Pi, etc. Documentation: https://hunter.re

null 456 Jul 25, 2022
BakePKG is a package archive that can install itself without without a package manager.

BakePKG A bad way of packaging applications. Introduction BakePKG is a package archive that can install itself without without a package manager. The

bread 4 Aug 16, 2021
Conan - The open-source C/C++ package manager

Conan Decentralized, open-source (MIT), C/C++ package manager.

Conan.io 6.1k Aug 5, 2022
C++ Library Manager for Windows, Linux, and MacOS

Vcpkg: Overview 中文总览 Español 한국어 Français Vcpkg helps you manage C and C++ libraries on Windows, Linux and MacOS. This tool and ecosystem are constant

Microsoft 16.4k Aug 5, 2022
C++ Library Manager for Windows, Linux, and MacOS

Vcpkg: Overview 中文总览 Español 한국어 Français Vcpkg helps you manage C and C++ libraries on Windows, Linux and MacOS. This tool and ecosystem are constant

Microsoft 16.3k Jul 31, 2022
C++ Library Manager for Windows, Linux, and MacOS

Vcpkg: Overview 中文总览 Español 한국어 Français Vcpkg helps you manage C and C++ libraries on Windows, Linux and MacOS. This tool and ecosystem are constant

Microsoft 16.3k Jul 28, 2022
Minimal Linux Live (MLL) is a tiny educational Linux distribution, which is designed to be built from scratch by using a collection of automated shell scripts. Minimal Linux Live offers a core environment with just the Linux kernel, GNU C library, and Busybox userland utilities.

Minimal Linux Live (MLL) is a tiny educational Linux distribution, which is designed to be built from scratch by using a collection of automated shell scripts. Minimal Linux Live offers a core environment with just the Linux kernel, GNU C library, and Busybox userland utilities.

John Davidson 1.3k Aug 2, 2022
Header-only C++14 library for getting network addresses associated with network interface without name lookups on Windows, macOS, Linux, and FreeBSD

NetIF Get addresses associated with network interfaces on a system without using name lookups. Header-only, requires C++14. Usage Add the header file

GMLC-TDC 9 Feb 4, 2022
Netif - Header-only C++14 library for getting network addresses associated with network interface without name lookups on Windows, macOS, Linux, and FreeBSD

NetIF Get addresses associated with network interfaces on a system without using name lookups. Header-only, requires C++14. Usage Add the header file

GMLC-TDC 9 Feb 4, 2022
A library to create Windows, macOS, and Linux applications.

LAF: The Lost Application Framework A library to create Windows, macOS, and Linux applications. This library is under active development so we don't p

Aseprite 186 Jul 28, 2022
Dolphin is an emulator for running GameCube and Wii games on Windows, Linux, macOS, and recent Android devices.

Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.

Dolphin Emulator 8.9k Aug 3, 2022
Free open-source modern C++17 / C++20 framework to create console, forms (GUI like WinForms) and unit test applications on Microsoft Windows, Apple macOS and Linux.

xtd Modern C++17/20 framework to create console (CLI), forms (GUI like WinForms) and tunit (unit tests like Microsoft Unit Testing Framework) applicat

Gammasoft 337 Jul 27, 2022
Free open-source modern C++17 / C++20 framework to create console, forms (GUI like WinForms) and unit test applications on Microsoft Windows, Apple macOS and Linux.

xtd Modern C++17/20 framework to create console (CLI), forms (GUI like WinForms) and tunit (unit tests like Microsoft Unit Testing Framework) applicat

Gammasoft 341 Aug 4, 2022
Utility to install kexts, Frameworks and PrivateFrameworks in the System of macOS. For macOS Monterey 12 and Big Sur 11

Command-Line-SnapShot-Mounter Credit: chris1111 Apple This utility uses the macOS terminal Command Line SnapShot Mounter is an utility that allows you

chris1111 19 Jul 15, 2022
Olive is a free non-linear video editor for Windows, macOS, and Linux.

Olive is a free non-linear video editor for Windows, macOS, and Linux.

Olive Team 6.3k Jul 29, 2022
A beginner friendly desktop UI for Tasmota flashed devices for Windows, macOS and Linux.

TasmoManager A beginner friendly desktop UI for Tasmota flashed devices for Windows, macOS and Linux. Features Native Tasmota device discovery (via ta

Tom Butcher 46 Jul 16, 2022
Xournal++ is a handwriting notetaking software with PDF annotation support. Written in C++ with GTK3, supporting Linux (e.g. Ubuntu, Debian, Arch, SUSE), macOS and Windows 10. Supports pen input from devices such as Wacom Tablets.

Xournal++ is a hand note taking software written in C++ with the target of flexibility, functionality and speed. Stroke recognizer and other parts are based on Xournal Code

Xournalpp 6.9k Aug 3, 2022
Pencil2D is an animation/drawing software for Windows, macOS, Linux, and FreeBSD.

Pencil2D is an animation/drawing software for Windows, macOS, Linux, and FreeBSD. It lets you create traditional hand-drawn animation (cartoon) using both bitmap and vector graphics. Pencil2D is free and open source.

Pencil2D 1.1k Jul 28, 2022
An asynchronous directory file change watcher module for Windows, macOS and Linux wrapped for V

A V module for asynchronously watching for file changes in a directory. The module is essentially a wrapper for septag/dmon. It works for Windows, macOS and Linux.

null 16 Jul 29, 2022
An implementation of C++17 std::filesystem for C++11 /C++14/C++17/C++20 on Windows, macOS, Linux and FreeBSD.

Filesystem Motivation Why the namespace GHC? Platforms Tests Usage Downloads Using it as Single-File-Header Using it as Forwarding-/Implementation-Hea

null 924 Aug 4, 2022
Modern c++17 unit testing framework on Microsoft Windows, Apple macOS, Linux, iOS and android.

tunit Modern c++17 unit testing framework on Windows, macOS, Linux, iOS and android. Continuous Integration build status Operating system Status Windo

Gammasoft 8 Apr 5, 2022
Graphical small-internet client for windows, linux, MacOS X and BSDs. Supports gemini, http, https, gopher, finger.

Graphical small-internet client for windows, linux, MacOS X and BSDs. Supports gemini, http, https, gopher, finger.

Felix Queißner 540 Jul 30, 2022
Filament is a real-time physically based rendering engine for Android, iOS, Windows, Linux, macOS, and WebGL2

Filament Filament is a real-time physically based rendering engine for Android, iOS, Linux, macOS, Windows, and WebGL. It is designed to be as small a

Google 14.3k Aug 1, 2022
MTEngineSDL is a SDL2+ImGui engine for macOS, Linux and MS Windows.

Hello and welcome to the MTEngineSDL! This is an application host framework for starting custom apps created using SDL2, ImGui and OpenGL. How to comp

null 3 Jan 10, 2022
Sega Master System / Game Gear / SG-1000 emulator for iOS, macOS, Raspberry Pi, Windows, Linux, BSD and RetroArch.

Gearsystem is a very accurate, cross-platform Sega Master System / Game Gear / SG-1000 emulator written in C++ that runs on Windows, macOS, Linux, BSD, iOS, Raspberry Pi and RetroArch.

Ignacio Sanchez Gines 162 Jul 11, 2022
Using shared memory to communicate between two executables or processes, for Windows, Linux and MacOS (posix). Can also be useful for remote visualization/debugging.

shared-memory-example Using shared memory to communicate between two executables or processes, for Windows, Linux and MacOS (posix). Can also be usefu

null 8 Mar 18, 2022