# vi: syntax=python import glob sources = glob.glob("src/*.cpp") +\ glob.glob("src/widgets/*.cpp") +\ glob.glob("src/serialization/*.cpp") +\ glob.glob("src/sdl_ttf/*.c") sources.remove("src/loadscreen_empty.cpp") def parse_automake(filename, variable): """Crude helper function to parse an automake file.""" sources = [] am = file(filename).read() x = am.find(variable) while 1: done = False while am[x] != '\\': if am[x] == '\n': done = True break x += 1 if done: break x += 1 while am[x].isspace(): x += 1 name = "" while not am[x].isspace(): name += am[x] x += 1 sources.append("src/" + name) return sources # read editor sources from automake file editor_sources = parse_automake("src/Makefile.am", "libwesnoth_core_a_SOURCES") editor_sources += parse_automake("src/Makefile.am", "wesnoth_editor_SOURCES") # there shouldn't be doubles, but well, let's remove them :) editor_sources = list(set(editor_sources)) env = Environment() # The cross compiler to use env["CC"] = "i586-mingw32msvc-gcc" env["CXX"] = "i586-mingw32msvc-g++" # Dependencies: SDL, SDL_net, SDL_mixer, SDL_image, freetype, libintl, python # This is where I put the dependency headers env.Append(CPPPATH = ["../win-deps/include"]) # This is where I put the python headers. env.Append(CPPPATH = ["../win-deps/include/python24"]) # This is where I put the dependency libs env.Append(LIBPATH = ["../win-deps/lib"]) # Compilation settings env.Append(CCFLAGS = ["-O2", "-mthreads", "-DHAVE_PYTHON"]) env.Append(LINKFLAGS = ["-s", "-mwindows", "-lmingwthrd"]) env.Append(CPPPATH = ["src", "src/widgets"]) env.Append(LIBS = ["mingw32", "SDLmain", "SDL", "SDL_net", "SDL_mixer", "SDL_image", "intl", "wsock32", "freetype", "python24"]) # Scons stuff env.BuildDir("../build", "src") env.SConsignFile("sconsign") # Windows stuff env["PROGSUFFIX"] = ".exe" # Compile it! env.Program("wesnoth", ["../build/" + x[4:] for x in sources]) env.Program("wesnoth_editor", ["../build/" + x[4:] for x in editor_sources])