X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fcomponent.cpp;h=5c859f7eaf80e01d0734f0d3fc4de4891be736c1;hb=1d687970cc35e54c3335f4aa2fdef23424fe0a06;hp=bb1efe41df6f055184dff6d2147dbec3eba3067a;hpb=51d5a0f618faabfce9a0a5d5dd64b0b0d52b97cb;p=builder.git diff --git a/source/component.cpp b/source/component.cpp index bb1efe4..5c859f7 100644 --- a/source/component.cpp +++ b/source/component.cpp @@ -6,10 +6,10 @@ #include #include "builder.h" #include "component.h" +#include "csourcefile.h" #include "datafile.h" #include "executable.h" #include "file.h" -#include "header.h" #include "objectfile.h" #include "sharedlibrary.h" #include "sourcepackage.h" @@ -48,15 +48,10 @@ void Component::create_build_info() PackageList all_reqs = direct_reqs; for(PackageList::iterator i=all_reqs.begin(); i!=all_reqs.end(); ++i) { + BuildInfo::UpdateLevel level = BuildInfo::CHAINED; if(find(direct_reqs.begin(), direct_reqs.end(), *i)!=direct_reqs.end()) - build_info.update_from((*i)->get_exported_binfo()); - else - { - const BuildInfo &ebi = (*i)->get_exported_binfo(); - build_info.cflags.insert(build_info.cflags.end(), ebi.cflags.begin(), ebi.cflags.end()); - build_info.incpath.insert(build_info.incpath.end(), ebi.incpath.begin(), ebi.incpath.end()); - build_info.defines.insert(build_info.defines.end(), ebi.defines.begin(), ebi.defines.end()); - } + level = BuildInfo::DEPENDENCY; + build_info.update_from((*i)->get_exported_binfo(), level); const PackageList &reqs = (*i)->get_requires(); for(PackageList::const_iterator j=reqs.begin(); j!=reqs.end(); ++j) @@ -81,17 +76,7 @@ void Component::create_build_info() } if(type==PROGRAM) - { - string strip = pkg.get_config().get_option("strip").value; - if(lexical_cast(strip)) - build_info.ldflags.push_back("-s"); - } - else if(type==LIBRARY) - { - build_info.cflags.push_back("-fPIC"); - } - - build_info.unique(); + build_info.strip = lexical_cast(pkg.get_config().get_option("strip").value); } void Component::create_targets() const @@ -182,7 +167,7 @@ void Component::create_targets() const { FileTarget *hdr = builder.get_vfs().get_target(*i); if(!hdr) - hdr = new Header(builder, *this, i->str()); + hdr = new CSourceFile(builder, *this, *i); // Install headers if requested if(type==HEADERS && install) @@ -288,7 +273,7 @@ void Component::Loader::source(const string &s) void Component::Loader::require(const string &n) { - Package *req = comp.pkg.get_builder().get_package(n); + Package *req = comp.pkg.get_builder().get_package_manager().find_package(n); if(req) comp.requires.push_back(req); }