module multiple_outputs.reggaefile_sep;

version(Windows) {
    enum protoObjCmd = `cl.exe /Fo$out -c $in`;
    version(DigitalMars)
        enum appCmd = `dmd -m32mscoff -of$out $in`;
    else
        enum appCmd = `dmd -of$out $in`;
} else {
    enum protoObjCmd = `gcc -o $out -c $in`;
    enum appCmd = `dmd -of$out $in`;
}

import reggae;
import reggae.path: buildPath;

enum protoC = Target(`$builddir/protocol.c`,
                     buildPath(`./compiler`) ~ ` $in`,
                     [Target(`protocol.proto`)]);
enum protoH = Target(`$builddir/protocol.h`,
                     buildPath(`./compiler`) ~ ` $in`,
                     [Target(`protocol.proto`)]);
enum protoObj = Target(`$builddir/protocol` ~ objExt,
                       protoObjCmd,
                       [protoC]);
enum protoD = Target(`$builddir/protocol.d`,
                     buildPath(`./translator`) ~ ` $in $out`,
                     [protoH]);
enum app = Target(`app`,
                  appCmd,
                  [Target(`main.d`), protoObj, protoD]);
mixin build!(app);