summaryrefslogtreecommitdiffstats
blob: d0e2b184f8fdf1aba05fac2bce90047ffdb4f824 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
import os

Import('env')
Import('sluift_env')
Import('sluift_variant')
Import('sluift_sources')

if sluift_variant == 'exe' :
	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" :
		sluift_env["SLUIFT_DLL_SUFFIX"] = ".so"
	sluift_dll = sluift_env.SharedLibrary(sluift_env.File("sluift${SLUIFT_DLL_SUFFIX}"), 
			sluift_sources + ["#/Sluift/dll.c"])
	if sluift_env.get("SLUIFT_INSTALLDIR", False) and sluift_env.get("LUA_VERSION", False) :
		sluift_env.Install(
				os.path.join(sluift_env["SLUIFT_INSTALLDIR"], "lib", "lua", sluift_env["LUA_VERSION"]), 
				sluift_dll)