Git Product home page Git Product logo

vcpkg-liblava's Introduction

Vcpkg registry and port for liblava

liblava is a modern C++ and easy-to-use library for the Vulkan® API


Install

Option A: Registry

In manifest mode, this repository can be used as a custom registry with versioning support.

Add registry

Add this repository to vcpkg-configuration.json as a git registry:

{
  "registries": [
    {
      "kind": "git",
      "repository": "https://github.com/liblava/vcpkg-liblava",
      "baseline": "!!!SEE BELOW!!!",
      "packages": [ "liblava" ]
    }
  ]
}

The baseline must be a git commit ID from this repository. To use the latest version, run:

git ls-remote https://github.com/liblava/vcpkg-liblava main

and copy the 40-character hash as the baseline string.

Add dependency

Add liblava to vcpkg.json as a dependency:

{
  "name": "my-application",
  "version": "1.0.0",
  "dependencies": [
    "liblava"
  ]
}

Option B: Overlay

If you're using vcpkg in classic mode without manifests, clone this repo and pass a port overlay to vcpkg:

vcpkg install liblava --overlay-ports=/path/to/vcpkg-liblava/ports/liblava

Note: Installing lava this way is discouraged. This port builds dependencies as submodules rather than using existing vcpkg ports. These submodule libraries may conflict with existing ports installed globally.


Usage

Vcpkg integration

When you run CMake for your project, pass -DCMAKE_TOOLCHAIN_FILE=/path/to/vcpkg/scripts/buildsystems/vcpkg.cmake. This will make all installed libraries available to CMake.

If you're not using CMake or need advanced configuration, refer to Buildsystem Integration.

Linking

In your CMakeLists.txt, find and link to lava:

find_package(lava CONFIG REQUIRED)
target_link_libraries(main PRIVATE lava::engine)

Features

The following optional features can be configured:

Option Description
test Build and install lava test binaries
demo Build and install lava demo binaries

For information on how to set them, refer to Selecting library features.


New version

To add a new tagged lava version:

  1. Modify ports/liblava/vcpkg.json
    • update version field
  2. Modify ports/liblava/portfile.cmake
    • update REF variable
    • update SHA512 field - the easiest way is to try to install (see Option B above) and then copy the correct hash from the vcpkg error message (yes, really 👀)
    • if necessary, adapt to any changes to lava's build system
  3. Commit changes
    • this is necessary to get an up-to-date git-tree ID in the next step
  4. Modify versions/l-/liblava.json
    • add a new version
      • update version field
      • set git-tree field to the output of git rev-parse HEAD:ports/liblava
  5. Modify versions/baseline.json
    • update baseline field
  6. Commit changes with --amend


vcpkg-liblava's People

Contributors

pezcode avatar thelavablock avatar

Stargazers

 avatar  avatar

Watchers

 avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.