GithubHelp home page GithubHelp logo

gillesvink / nukeplugintemplate Goto Github PK

View Code? Open in Web Editor NEW
3.0 1.0 1.0 18 KB

Example configuration for setting up your development environment for Nuke plugins to both develop and compile.

License: MIT License

CMake 21.03% C++ 52.14% Dockerfile 26.84%

nukeplugintemplate's Introduction

๐ŸŽจ NukePluginTemplate

This repository serves as a starting point for Nuke plugin development. It has everything set-up so you can start right away with developing (using dev containers).

Additionally, it includes a CI/CD pipeline for building Nuke plugins for Linux, MacOS and Windows.

Just fork, clone or download and start :)

Requirements

Install:

Then get the Dev Containers extension from Microsoft.

If you prefer IntelliJ, that should also be possible: IntelliJ Docs

Getting started

For an extended guide on how to use this and getting started, visit my blog:

drawing

Includes

CMakeLists.txt has been setup to build the Multiply node. It will build to the build folder (or what you've specified) and write inside there to the lib folder. (/build/lib/Multiply.(dll | .so))

Development Containers

It includes a setup for Development Containers.

The images used are from my other repository NukeDockerBuild and include all necessary dependencies and installations. For more info, check out that repository. These images will be automatically generated based on all available Nuke versions.

These images are built for the purpose so that you don't have to install anything yourself. (GCC, Nuke, OpenGL lib's etc.)

Configuration

Within the devcontainer.json you can specify which Nuke version you would like to use for developing.

This can be done by altering the NUKE_VERSION argument. By default it is 15.0, but it can be anything that is currently available starting from 13.0+.

"build": {
    "dockerfile": "Dockerfile",
    "args": {
      "NUKE_VERSION": "15.0"
    }
}

Also here is where you can specify additional extensions needed for your development environment. By default everything is included for C++ based development.

If you need anything to be set-up additionally, you can alter the Dockerfiles that are in the same folder with instructions you do need. By default it installs git.

When you open the devcontainer in VSCode, you will be prompted with the environment you'd like to create. The options are: linux, macos-x86 and macos-arm. This will be the environment where you'd build your plugins locally to.

If you use the MacOS options, make sure youโ€™ve read and understood the Xcode license agreement.

And by using the containers, you will also agree to the Foundry EULA.

CI/CD

It includes an automatic build pipeline for both Linux and Windows using Github Actions. This serves as a starting point and could be optimized by for example only building Windows on a tag change. The config for this file can be found at .github/workflows/build.yaml

And...

Have fun developing! ๐Ÿ› ๏ธ

nukeplugintemplate's People

Contributors

gillesvink avatar

Stargazers

 avatar Frank avatar Lukas Schwabe avatar

Watchers

 avatar

Forkers

cedrickode

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.