Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Game Maker compiler
C++ Java C
branch: master

Import function definitions from runtime module

removed debug metadata from runtime.bc to work around an LLVM bug
latest commit 772bf8a91c
@rpjohnst authored
Failed to load latest commit information.
compiler Import function definitions from runtime module
include/dejavu Import function definitions from runtime module
linker Import function definitions from runtime module
plugin
runtime Added build support for non-system LLVM installs
system Added build support for non-system LLVM installs
test/system Brought tables and string interning into the runtime and compiler
.gitignore public-facing matter
LICENSE
Makefile Import function definitions from runtime module
README.md public-facing matter

README.md

DejaVu Game Maker Compiler

DejaVu is an in-progress LLVM-based GML and D&D compiler, mostly compatible with GameMaker. It currently exists as a C++ library, and as a plugin to LateralGM. It is capable of compiling a game's scripts and object events. Eventually it will be able to produce fullly compiled executables.

Build Dependencies

As a work in progress, DejaVu does not currently distribute compiled binaries. To build it from source requires several tools and libraries that should be available from your package manager or from their respective websites:

  • LLVM - the compiler uses LLVM to generate code
  • Clang - Clang is required to build the language runtime
  • GNU Make - the compiler's Makefiles are based on GNU Make
  • SWIG - SWIG is used to generate the bridge between the plugin and compiler
  • Java Developmen Kit - the LateralGM plugin is written in Java
  • Ant - Ant is used to compile the LateralGM plugin

Windows

Currently, DejaVu is not tested on Windows, but there is nothing inherently preventing it from being built or running on that platform. The MinGW toolchain should be able to support the required dependencies, although some modifications to the Makefiles and source code may be necessary. Contributions would be welcome.

Runtime Dependencies

DejaVu itself does not currently have any runtime dependencies. However, it currently reads game data through LateralGM:

Building and Installing

Once prerequisites are installed, DejaVu can be built by running make. This should produce three files: dejavu.jar, dejavu.so, and runtime.bc. The first two need to be in a directory next to LateralGM named plugins and the third needs to be in its working directory.

Running

Running LateralGM normally will load the DejaVu plugin, adding a menu and buttons that invoke DejaVu's compiler on the loaded game. The resulting file is an optimized LLVM bitcode module containing the generated code for the game's scripts and objects' events, including D&D actions.

Contact Information

DejaVu is available on GitHub, at github.com/rpjohnst/dejavu. Feel free to file bugs, submit pull requests, or fork the repository. It is available under the terms in LICENSE (University of Illinois/NCSA Open Source License); the runtime is available under the terms in runtime/LICENSE (MIT License).

Something went wrong with that request. Please try again.