skyfish4tb / VBLLVM

LLVM bindings for VB6

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

VBLLVM

LLVM 6.0.0 and lld 6.0.1 bindings for VB6

Description

This repo contains a stdcall port of LLVM-C API exports to be accessible from VB6 projects. This build uses /MT and /MTd (static) runtimes and Windows XP (v140_xp) platform toolset in Visual Studio 2015 for the produced DLLs to be portable and self-contained.

LLVM and lld preparation

LLVM sources are extracted in lib/llvm-6.0.0.src and stdcall patch is applied in commits cd1946d and e1e1356. LLVM's lld sources are extracted in lib/lld-6.0.1.src with no modifications applied.

LLVM build uses cmake, python3.x and Visual Studio 2015 so make sure you have these pre-installed.

Use lib/llvm-build-release/setup.bat to compile LLVM release build in lib/llvm-install-release.

Use lib/llvm-build-debug/setup.bat to compile LLVM debug build in lib/llvm-install-debug.

Use lib/lld-build-release/setup.bat to compile LLVM's lld release build in lib/lld-install-release.

Use lib/lld-build-debug/setup.bat to compile LLVM's lld debug build in lib/lld-install-debug.

Finally use lib/llvm-install-release/lib/dump-def.bat to collect exports for src/VBLLVM.def

Source usage

Use src/VBLLVM.sln to build bin/release/VBLLVM.dll and bin/debug/VBLLVM.dll from .lib files in lib/llvm-install-release;lib/lld-install-release and lib/llvm-install-debug;lib/lld-install-debug.

Finally use src/typelib/build.bat to build bin/typelib/VBLLVM.tlb from lib/llvm-6.0.0.src/include/llvm-c and src/VBLLVM.def

Samples

  • LLVM's Kaleidoscope toy language VB6 port is in test/kscope

About

LLVM bindings for VB6

License:MIT License


Languages

Language:C++ 49.1%Language:LLVM 33.5%Language:Assembly 15.2%Language:Python 0.6%Language:C 0.6%Language:CMake 0.3%Language:OCaml 0.3%Language:Visual Basic 0.2%Language:Go 0.1%Language:Shell 0.0%Language:Perl 0.0%Language:Batchfile 0.0%Language:CSS 0.0%Language:HTML 0.0%Language:Roff 0.0%Language:Vim Script 0.0%Language:Emacs Lisp 0.0%Language:Dockerfile 0.0%Language:Objective-C 0.0%Language:PHP 0.0%Language:Swift 0.0%Language:Logos 0.0%