X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Farchitecture.cpp;h=5c88354634695e1689b186cb8b65a9648b724da3;hb=f0c501af5d99233efd3a45076ffbe69a71294863;hp=3a9f5549df5f7a2add49547dbf05c22d122117e3;hpb=43bd25ffcb0b4f7882773f4676b209a99cb73c04;p=builder.git diff --git a/source/architecture.cpp b/source/architecture.cpp index 3a9f554..5c88354 100644 --- a/source/architecture.cpp +++ b/source/architecture.cpp @@ -84,8 +84,6 @@ Architecture::Architecture(Builder &b, const string &spec): const Architecture &native_arch = builder.get_native_arch(); if(type.empty()) type = native_arch.type; - if(cpu.empty()) - cpu = native_arch.cpu; if(system.empty()) system = native_arch.system; if(!bits) @@ -98,26 +96,28 @@ Architecture::Architecture(Builder &b, const string &spec): if(type!=native_arch.type || system!=native_arch.system) cross_prefix = format("%s-%s", type, system); - else if(bits!=native_arch.bits) - { - build_info.cflags.push_back(format("-m%d", bits)); - build_info.ldflags.push_back(format("-m%d", bits)); - } - else + else if(bits==native_arch.bits) native = true; - - if(!cpu.empty()) - build_info.cflags.push_back(format("-march=%s", cpu)); } name = type; if(!cpu.empty()) name += format("-%s", cpu); name += format("-%d-%s", bits, system); -} -void Architecture::set_tool(const string &t, const string &p) -{ - tools[t] = p; + if(system=="windows") + { + sharedlib_patterns.push_back(Pattern("%.dll")); + sharedlib_patterns.push_back(Pattern("lib%.dll")); + staticlib_patterns.push_back(Pattern("lib%.a")); + staticlib_patterns.push_back(Pattern("lib%.dll.a")); + executable_patterns.push_back(Pattern("%.exe")); + } + else + { + sharedlib_patterns.push_back(Pattern("lib%.so")); + staticlib_patterns.push_back(Pattern("lib%.a")); + executable_patterns.push_back(Pattern("%")); + } } void Architecture::set_cross_prefix(const string &p) @@ -125,29 +125,6 @@ void Architecture::set_cross_prefix(const string &p) cross_prefix = p; } -std::string Architecture::get_tool(const string &t) const -{ - StringMap::const_iterator i = tools.find(t); - if(i!=tools.end()) - { - if(i->second[0]=='-') - return cross_prefix+i->second; - else - return i->second; - } - - const Architecture &native_arch = builder.get_native_arch(); - if(this!=&native_arch) - { - if(!cross_prefix.empty()) - return cross_prefix+"-"+native_arch.get_tool(t); - else - return native_arch.get_tool(t); - } - else - throw invalid_argument("Unknown tool"); -} - bool Architecture::match_name(const string &pattern) const { vector parts = split(pattern, "-"); @@ -223,10 +200,4 @@ Architecture::Loader::Loader(Architecture &a): arch(a) { add("prefix", &Architecture::cross_prefix); - add("tool", &Loader::tool); -} - -void Architecture::Loader::tool(const string &t, const string &p) -{ - arch.tools[t] = p; }