ZDCode [2.13.0] - The high-level DECORATE wrapper

Any utility that assists in the creation of mods, assets, etc, go here.
Forum rules
The Projects forums are ONLY for YOUR PROJECTS! If you are asking questions about a project, either find that project's thread, or start a thread in the General section instead.

Got a cool project idea but nothing else? Put it in the project ideas thread instead!

Projects for any Doom-based engine (especially 3DGE) are perfectly acceptable here too.

Please read the full rules for more details.

Re: ZDCode II - The pretty language that compiles to DECORAT

Postby CBM » Mon Oct 26, 2020 1:34 am

ah ok.
is it still being updated? whats the latest on zcode?
User avatar
CBM
Imp Slayer
 
Joined: 09 Oct 2019
Location: The Shores of Hell
Operating System: Windows 10/8.1/8/201x 64-bit
OS Test Version: Yes (Using Development/Testing Version)
Graphics Processor: nVidia with Vulkan support

Re: ZDCode II - The pretty language that compiles to DECORAT

Postby Gustavo6046 » Mon Dec 21, 2020 7:08 pm

I think there are some new features planned for the near future? Then again maybe not. I am somewhat satisfied with the current status quo of ZDCode. Apart from mixins I'm not entirely sure what else to add yet.
User avatar
Gustavo6046
A faceful of C, and a tailful of wallaby.
 
Joined: 13 May 2017
Location: Brazil
Discord: Gustavo6046#9009
Twitch ID: gustavo6046
Github ID: Gustavo6046
Operating System: Other Linux 64-bit
OS Test Version: No (Using Stable Public Version)

Re: ZDCode [2.13.0] - The high-level DECORATE wrapper

Postby Gustavo6046 » Tue May 11, 2021 1:15 pm

The new Zake build system and project configuration format, as well as the many new features ZDCode has received over time, mean that ZDCode is now even closer than ever to being a proper release.

Here's an example of a Zake file. For more info, please see the Zake template project where this Zake.ini example comes from.
Code: Select allExpand view
# General project configuration.
[General]

    # Your project's name
    Name = my-project

    # Your project's version
    Version = 0.1.0 

    # The build targets of your project. Debug and Release are fine
    Targets = dbg rel

    # The partitions of your project. Each build target will build
    # one of each partition below.
    #
    # Partitions are helpful, because they allow distributing changes
    # separately; changes in the code will not require updating a
    # possibly quite large list of sprites, sounds, and other whathaveya,
    # from the net.

    #Partitions = asset code


# Partition configuration.
[Partition]

    # What kind of files should be in the Code partition.
    #
    # "DECORATE" includes the DECORATE generated from
    # ZDCode lumps.
    #
    # Do note that more "matchers" can be defined for
    # other partitions (Matchers.my_targert)
    Matchers.Code = *.o DECORATE DECORATE*

    # What files should be excluded from every partition.
    #
    # Use the dot syntax (akin to Matchers.Code above)
    # to specify a partition.
    Excluders = .gitignore

    # Excludes patterns only for the Asset partition.
    #
    # Note that this is not restricted to the debug build
    # (in a Partition.dbg section), as there is already an
    # Injects entry for it.
    Excluders.Asset = DEBUG

# Important project file locations.
[Paths]

    # The path of the output Asset partition package.
    Output.Asset = pkg/${name}-${version}-${target}-asset.pk3

    # Same as above, but for the Code partition.
    Output.Code = pkg/${name}-${version}-${target}-code.pk3

    # Where to walk for inputs to be included.
    #
    # More inputs can be added separated by spaces.
    # Also see Matchers and Excluders in [Partition] above.
    Inputs = content


# Sections of configuration can be defined for specific
# targets. For instance below, Paths.dbg.
[Paths.dbg]

    # Inputs to be inserted in specific locations.
    # In this case, it places the "contents/DEBUG"
    # file tree within the root of the package.
    #
    # Other use cases include adding ACS objects
    # in "bin/${target}/" into "acs/", to differentiate
    # between debug and release ACS modules.
    #
    # Note that injected inputs do not need to be
    # listed by an Inputs entry.
    Injects = "content/DEBUG":"."


# Preprocessor definitions, used in ZDCode.
[Definitions]

    TARGET = ${target}
    VERSION = ${version}


# Preprocessor definitions. In this case, for the debug build.
[Definitions.dbg]

    # No need to specify a value for the DEBUG definition.
    # Empty definitions are allowed, and "#ifdef" will merely
    # check for a definition's existence, even if it is, in
    # fact, empty.
    DEBUG =
User avatar
Gustavo6046
A faceful of C, and a tailful of wallaby.
 
Joined: 13 May 2017
Location: Brazil
Discord: Gustavo6046#9009
Twitch ID: gustavo6046
Github ID: Gustavo6046
Operating System: Other Linux 64-bit
OS Test Version: No (Using Stable Public Version)

Previous

Return to Editors / Asset Manipulation

Who is online

Users browsing this forum: No registered users and 0 guests