Coder Social home page Coder Social logo

packages's Introduction

Skyrim Packages (xmake and vcpkg)

Note: packages are only available thru xmake at this time

xmake

To use these xmake packages, add the following to your xmake.lua file:

add_repositories("SkyrimScripting https://github.com/SkyrimScripting/Packages.git")

Packages

  • skyrim-commonlib
  • skyrim-commonlib-vr
  • skyrim-commonlib-ng
  • skyrim-commonlib-ae
  • skyrim-commonlib-se
  • Other packages in this repo are a work in progress and I wouldn't use them yet!

CommonLib

xmake packages available:

  • skyrim-commonlib ( Alias for skyrim-commonlib-ng )
  • skyrim-commonlib-vr ( Adds dependency on @alandtse's CommonLibVR )
  • skyrim-commonlib-ng ( Adds dependency on @CharmedBaryon's CommonLibSSE-NG )
  • skyrim-commonlib-ae ( Adds dependency on @powerof3's CommonLibSSE configured for Skyrim 1.6+ compatibility )
  • skyrim-commonlib-se ( Adds dependency on @powerof3's CommonLibSSE configured for Skyrim 1.5.97 compatibility )

Basic Usage

To use one of these CommonLib packages:

add_requires("skyrim-commonlib")

target("My-SKSE-Plugin")
    add_files("plugin.cpp")
    add_packages("skyrim-commonlib")

Or any of the other packages listed above:

add_requires("skyrim-commonlib-vr")

target("My-SKSE-Plugin")
    add_files("plugin.cpp")
    add_packages("skyrim-commonlib-vr")

Xbyak Support

To enable xbyak support, enable the xybak option (available for any version):

add_requires("skyrim-commonlib", { configs = { xbyak = true } })

This will provide the following function (which is otherwise unavailable):

SKSE::Trampoline::allocate(Xbyak::CodeGenerator& codeGenerator)

Mod Folder Deployment

Optionall, you can define one or more "mods" folders to deploy the plugin dll/pdb to:

add_requires("skyrim-commonlib")

target("My-SKSE-Plugin")
    add_files("plugin.cpp")
    add_packages("skyrim-commonlib")

    add_rules("@skyrim-commonlib/plugin", {
        -- This will output to the following generated folder location:
        --  C:/Path/to/my/mods/My-SKSE-Plugin/SKSE/Plugins/My-SKSE-Plugin.dll
        mods_folder = "C:/Path/to/my/mods"
    })

    -- Note: use the rule with a name matching the package that you are using:
    -- add_rules("@skyrim-commonlib/plugin", {...
    -- add_rules("@skyrim-commonlib-vr/plugin", {...
    -- add_rules("@skyrim-commonlib-ae/plugin", {...
    -- add_rules("@skyrim-commonlib-se/plugin", {...
    -- add_rules("@skyrim-commonlib-vr/plugin", {...

If you have multiple mods folders, you can specify them as a list:

add_requires("skyrim-commonlib")

target("My-SKSE-Plugin")
    add_files("plugin.cpp")
    add_packages("skyrim-commonlib")
    add_rules("@skyrim-commonlib/plugin", {
        mod_folders = { "C:/...", "C:/..." }
    })

Paths containing a ; are split, allowing for use of an environment varialbe to specify multiple output paths:

add_requires("skyrim-commonlib")

target("My-SKSE-Plugin")
    add_files("plugin.cpp")
    add_packages("skyrim-commonlib")
    add_rules("@skyrim-commonlib/plugin", {
        mod_folders = os.getenv("SKYRIM_MOD_FOLDERS")
    })

xmake configuration based on official CommonLibSSE-NG xmake package configuration:
https://github.com/xmake-io/xmake-repo
License: Apache 2.0

Configuration above was authored by by Qudix (https://github.com/Qudix)

Modifications were made to the original code

packages's People

Contributors

mrowrpurr avatar

Stargazers

Christopher Layne avatar

Forkers

clayne

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.