LiveCode cross-platform development environment (engine)
C++ Objective-C++ Python C Java Objective-C Other
Latest commit 7d11a79 Feb 19, 2017 @montegoulding montegoulding committed on GitHub Merge pull request #5194 from asayd/patch-18
Changes to behavior.lcdoc
Permalink
Failed to load latest commit information.
Installer Merge pull request #4865 from livecodefraser/remove-revfont Feb 15, 2017
benchmarks [[ Benchmarks ]] Add benchmarks makefile Jul 8, 2016
builder Merge remote-tracking branch 'upstream/develop-8.1' into merge-develo… Feb 9, 2017
config [[ Bug 19166 ]] Update Mac builds to use libc++ Feb 9, 2017
contrib Remove the Emacs mode for LCB editing. Aug 14, 2016
docs Changes to behavior.lcdoc Feb 16, 2017
engine Merge branch 'develop-8.1' into develop Feb 16, 2017
extensions Merge branch 'develop-8.1' into develop Feb 16, 2017
gyp [[ Warnings ]] Silence unnecessary build noise Sep 15, 2016
ide @ 209c121 Auto-update submodule pointers Feb 13, 2017
ide-support Merge branch 'develop-8.1' into develop Feb 16, 2017
lcidlc Merge pull request #4724 from montegoulding/switch Nov 2, 2016
libbrowser Merge remote-tracking branch 'upstream/develop-8.1' into merge-develo… Feb 9, 2017
libcore Remove lots of unneeded definitions from core.h Oct 7, 2016
libcpptest Auto-update submodule pointers Feb 10, 2017
libexternal Ensure files using `new (nothrow)` include appropriate headers Oct 7, 2016
libexternalv1 Fix MC_EXTERNAL_HANDLERS_END custodian Sep 16, 2016
libfoundation Merge pull request #5166 from peter-b/coverity2 Feb 9, 2017
libgraphics [CID 16709] Add default constructor for MCGFont. Dec 19, 2016
libscript lc-compile: Generate/parse record type info in interface files Jan 24, 2017
prebuilt Merge remote-tracking branch 'upstream/develop-8.1' into merge-develo… Feb 9, 2017
revbrowser [CID 37678] revbrowser: Use correct deallocator in BrowserInstances::… Feb 8, 2017
revdb [CID 14893] revdb: Fix some incorrect deallocator usage Feb 8, 2017
revmobile Merge remote-tracking branch 'upstream/develop-8.1' into merge-develo… Nov 8, 2016
revpdfprinter Use `new (nothrow)` everywhere Oct 3, 2016
revspeech Ensure files using `new (nothrow)` include appropriate headers Oct 7, 2016
revtestexternal Merge remote-tracking branch 'upstream/develop-7.0' into develop Sep 9, 2015
revvideograbber revvideograbber: Remove from Mac OS X builds Dec 16, 2016
revxml [CID 15762] revxml: Prevent null dereference Jan 24, 2017
revzip Turn on -Werror=unused-variable Sep 19, 2016
tests Merge remote-tracking branch 'upstream/develop-8.1' into merge-develo… Feb 9, 2017
thirdparty @ 9fb5793 Auto-update submodule pointers Dec 16, 2016
toolchain Merge remote-tracking branch 'upstream/develop-8.1' into merge-develo… Feb 9, 2017
tools Merge remote-tracking branch 'upstream/develop-8.1' into merge-develo… Jan 9, 2017
util build: Output lc-compile cmdlines during verbose build Dec 2, 2016
.dir-locals.el Update Emacs dir locals for indentation with spaces Dec 16, 2016
.gitattributes [[ Win32Build ]] Fix compile errors due to trailing CRLF in prebuilt … Jun 16, 2016
.gitignore Ignore mac-bin Jul 4, 2016
.gitmodules Merge branch 'develop-8.1' into develop Sep 27, 2016
.travis.yml [[ Clang ]] Use clang on Travis Nov 28, 2016
CONTRIBUTING.md docs: Refer to C++ coding style from CONTRIBUTING file Dec 16, 2016
LICENSE [[ RemoveRunRev ]] Occurrences of RunRev removed from the top folder,… Aug 25, 2015
Makefile Merge remote-tracking branch 'upstream/develop-8.1' into merge-develo… Feb 9, 2017
Makefile.common [[ Benchmarks ]] Add benchmarks makefile Jul 8, 2016
README.md revvideograbber: Remove from Mac OS X builds Dec 16, 2016
buildbot.mk build: Re-implement some buildbot build steps in Python Feb 8, 2017
buildbot.py build: Use random UUID as mspdbsrv endpoint Feb 16, 2017
common.gypi Merge branch 'develop' of https://github.com/runrev/livecode into gyp… Sep 3, 2015
config.py Merge branch 'develop-8.1' into develop Feb 16, 2017
config.sh build: Replace config.sh script with Python script Feb 3, 2017
configure.bat build: Run normal config.py script from configure.bat Feb 6, 2017
livecode.gyp Remove the revFont external Nov 11, 2016
make.cmd build: Manage mspdbsrv instances during Win builds Feb 16, 2017
version Bump version number for 9.0.0-dp-5 Jan 17, 2017

README.md

LiveCode Community Edition

LiveCode Community Logo

Copyright © 2003-2016 LiveCode Ltd., Edinburgh, UK

Introduction

The LiveCode Community open source platform provides a way to build applications for mobile, desktop and server platforms.

The visual workflow allows the user to develop apps "live", using a powerful and uniquely-accessible language syntax.

LiveCode Ltd., based in Edinburgh, UK, coordinates development of LiveCode and has run the open source project since LiveCode Community was first released in April 2013.

You can download pre-compiled versions of the LiveCode Community development environment from the LiveCode download centre.

Overview

Subproject directories

This repository contains a number of subprojects, each of which has its own subdirectory. They can be divided into three main categories.

  1. Main system:

    • engine/ — The main LiveCode engine. This directory produces the IDE, "standalone", "installer" and "server" engines
  2. Non-third-party libraries:

    • libcore/ — A static library that provides various basic functions and types, and is used by many of the other subprojects

    • libexternal/ and libexternalv1 — Static libraries that support the LiveCode "external" interface, which allows the engine to load plugins

  3. Externals (libraries that can be dynamically loaded into the engine at runtime):

    • revdb/ — Database access external, and drivers for various backend database systems

    • revmobile/ — The iOS support external (which can only be built on Mac) and the Android support external (available on all desktop platforms)

    • revpdfprinter/ — Print-to-PDF functionality

    • revspeech/ — Text-to-speech support

    • revvideograbber/ — Video capture (Windows only)

    • revxml/ — XML parsing and generation

    • revzip/ - Zip archive management

Engine flavours

The engine — which loads, saves, manages and runs LiveCode stack files — can be built in several different specialized modes, which are adapted for various specific purposes. They are exposed as separate targets in the build system.

  1. IDE engine (development target)— Used to run the IDE. It contains extra support for things like syntax handling and building LiveCode "standalone" programs.

  2. Installer engine (installer target) — Used to create the LiveCode installer. It contains extra support for things like handling zip archives and comparing binary files.

  3. Server engine (server target) — This is the engine used in a server context, when no graphical user interface is needed. It contains server-specific functions such as CGI support. It also has a much fewer system library dependencies (and requires only non-desktop APIs where possible).

  4. Standalone engine (standalone target) — The engine that is embedded in "standalone apps" created with LiveCode.

Compiling LiveCode

LiveCode uses the gyp (Generate Your Projects) tool to generate platform-specific project files. It can generate xcodeproj files for Xcode on Mac, vcproj files for Microsoft Visual Studio, and makefiles for compiling on Linux.

Quick start

Note: You can only compile LiveCode from a clone of the LiveCode git repository on GitHub. See also the GitHub documentation on cloning a repository.

On Linux or Mac, you can quickly build LiveCode by installing basic development tools, and then running make all.

Detailed instructions

Please see the following table, which shows which target platforms are supported by which host platforms. The documentation for compiling for each target platform is linked.

Target platform Host platforms
mac, ios mac
win win, linux (Wine)
linux linux
android mac, linux
emscripten (html5) linux

Getting help

There are several ways to get help with installing and using LiveCode:

Contributing to LiveCode

For information on modifying LiveCode and submitting contributions to the LiveCode Community project, please see the CONTRIBUTING file.

License

LiveCode Community is freely distributable under the GNU Public License (GPL), with some special exceptions. For more information, please see the LICENSE file in this repository.

The LiveCode Community engine, libraries, and associated files are, unless otherwise noted:

Copyright © 2003-2015 LiveCode Ltd.