X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fsourcepackage.cpp;h=c4061a4afbeceae8a153cf45a1b05f0d82530cc3;hb=3a61505c629d51f52343e7dfaaa936143557c3bf;hp=9e1b68dd43d60b4b81d61f2c65051412d7286fa6;hpb=e3407687a61bce56912b89818a9d9f006e9da41f;p=builder.git diff --git a/source/sourcepackage.cpp b/source/sourcepackage.cpp index 9e1b68d..c4061a4 100644 --- a/source/sourcepackage.cpp +++ b/source/sourcepackage.cpp @@ -17,6 +17,7 @@ #include "sourcegenerator.h" #include "sourcepackage.h" #include "tool.h" +#include "vcxprojectfile.h" using namespace std; using namespace Msp; @@ -107,10 +108,17 @@ void SourcePackage::do_prepare() { string ident = "WITH_"+toupper(i->name); string value = config.get_option("with_"+i->name).value; - if(!i->choices.empty()) - build_info.defines[ident] = value; - else if(lexical_cast(value)) - build_info.defines[ident] = "1"; + + if(i->choices.empty()) + { + if(!lexical_cast(value)) + continue; + value = "1"; + } + + build_info.defines[ident] = value; + if(i->exported) + export_binfo.defines[ident] = value; } for(ComponentList::iterator i=components.begin(); i!=components.end(); ++i) @@ -126,14 +134,21 @@ void SourcePackage::do_prepare() for(ComponentList::iterator i=components.begin(); i!=components.end(); ++i) (*i)->create_targets(); + const Architecture &arch = builder.get_native_arch(); if(!export_binfo.libs.empty()) { export_binfo.incpath.push_back((builder.get_prefix()/"include").str()); export_binfo.libpath.push_back((builder.get_prefix()/"lib").str()); - PkgConfigFile *pc = new PkgConfigFile(builder, *this); - builder.get_build_graph().get_target("install")->add_dependency(*builder.get_toolchain().get_tool("CP").create_target(*pc)); + if(arch.get_system()=="linux") + { + PkgConfigFile *pc = new PkgConfigFile(builder, *this); + builder.get_build_graph().get_target("install")->add_dependency(*builder.get_toolchain().get_tool("CP").create_target(*pc)); + } } + + if(arch.get_system()=="windows") + new VcxProjectFile(builder, *this); } void SourcePackage::save_caches()