diff options
author | Remko Tronçon <git@el-tramo.be> | 2013-12-28 16:13:08 (GMT) |
---|---|---|
committer | Remko Tronçon <git@el-tramo.be> | 2014-01-03 11:09:06 (GMT) |
commit | 0b19dc7292b7672c9fbb711a411c392bc5b2bb34 (patch) | |
tree | d5af147193d52a3e63d348dd794ca92cdd934974 /Sluift/SConscript.variant | |
parent | 5a89265623214164fa7ce36721de05183d53058d (diff) | |
download | swift-0b19dc7292b7672c9fbb711a411c392bc5b2bb34.zip swift-0b19dc7292b7672c9fbb711a411c392bc5b2bb34.tar.bz2 |
Sluift: Custom console/interpreter
- Prints results of each command (if it can be interpreted as an
expression)
- Stores results of last command in _1, _2, ...
- Supports tab completion
- Compatible with Lua 5.2
Other changes:
- Add support for specifying custom editline library
- Don't load sluift into global namespace. Tab completion should be
convenient enough.
Change-Id: I2a26346469d67c281d09d47cacaa0b267f5ea9f9
Diffstat (limited to 'Sluift/SConscript.variant')
-rw-r--r-- | Sluift/SConscript.variant | 29 |
1 files changed, 23 insertions, 6 deletions
diff --git a/Sluift/SConscript.variant b/Sluift/SConscript.variant index 92ee493..d0e2b18 100644 --- a/Sluift/SConscript.variant +++ b/Sluift/SConscript.variant @@ -6,12 +6,29 @@ Import('sluift_variant') Import('sluift_sources') if sluift_variant == 'exe' : - env["SLUIFT"] = sluift_env.Program("sluift", sluift_sources + [ - "#/Sluift/lua.c", - "#/Sluift/linit.c", - ]) - if sluift_env.get("SLUIFT_INSTALLDIR", "") : - sluift_env.Install(os.path.join(sluift_env["SLUIFT_INSTALLDIR"], "bin"), env["SLUIFT"]) + common_objects = sluift_env.StaticObject(sluift_sources) + + sluift_exe_env = sluift_env.Clone() + tokenize = sluift_exe_env.StaticObject("#/Sluift/tokenize.cpp") + exe_sources = tokenize + [ + "#/Sluift/Console.cpp", + "#/Sluift/Terminal.cpp", + "#/Sluift/StandardTerminal.cpp", + "#/Sluift/Completer.cpp", + "#/Sluift/main.cpp", + ] + + if sluift_exe_env.get("HAVE_EDITLINE", False) : + sluift_exe_env.Append(CPPDEFINES = ["HAVE_EDITLINE"]) + sluift_exe_env.MergeFlags(sluift_exe_env["EDITLINE_FLAGS"]) + exe_sources += ["#/Sluift/EditlineTerminal.cpp"] + + env["SLUIFT"] = sluift_exe_env.Program("sluift", common_objects + exe_sources) + if sluift_exe_env.get("SLUIFT_INSTALLDIR", "") : + sluift_exe_env.Install(os.path.join(sluift_exe_env["SLUIFT_INSTALLDIR"], "bin"), env["SLUIFT"]) + + # Unit tests + env.Append(UNITTEST_OBJECTS = tokenize + ["#/Sluift/UnitTest/TokenizeTest.cpp"]) else : sluift_env["SLUIFT_DLL_SUFFIX"] = "${SHLIBSUFFIX}" if sluift_env["PLATFORM"] == "darwin" : |