#include "architecture.h"
#include "builder.h"
#include "executable.h"
+#include "importlibrary.h"
#include "objectfile.h"
#include "sharedlibrary.h"
#include "staticlibrary.h"
{
"gnu",
"clang",
+ "msvc",
0
};
{
if((system=="darwin" || system=="freebsd") && builder.get_vfs().find_binary("clang"))
toolchain = "clang";
+ else if(system=="windows" && native)
+ toolchain = "msvc";
else
toolchain = "gnu";
}
name += format("-%s", fpu);
name += format("-%d-%s-%s", bits, system, toolchain);
- add_pattern<ObjectFile>("%.o");
if(system=="windows")
{
add_pattern<SharedLibrary>("%.dll");
- add_pattern<SharedLibrary>("lib%.dll");
- /* XXX Hack: Consider import libraries (*.dll.a) as dynamic libraries,
- even though technically they are linked statically. */
- add_pattern<SharedLibrary>("lib%.dll.a");
- add_pattern<StaticLibrary>("lib%.a");
- add_pattern<StaticLibrary>("%.lib");
+ if(toolchain=="msvc")
+ {
+ add_pattern<ObjectFile>("%.obj");
+ add_pattern<ImportLibrary>("%.lib");
+ add_pattern<StaticLibrary>("%_static.lib");
+ }
+ else
+ {
+ add_pattern<ObjectFile>("%.o");
+ add_pattern<SharedLibrary>("lib%.dll");
+ add_pattern<ImportLibrary>("lib%.dll.a");
+ add_pattern<StaticLibrary>("lib%.a");
+ }
add_pattern<Executable>("%.exe");
}
else
{
+ add_pattern<ObjectFile>("%.o");
if(system=="darwin")
add_pattern<SharedLibrary>("lib%.dylib");
else