]> git.tdb.fi Git - builder.git/blobdiff - source/component.cpp
Fix include and library search order
[builder.git] / source / component.cpp
index 07cd6ea5aee874df889e4c34c49c77ae12ae5356..e674b018aabf42c338585ef6072e76f70221f111 100644 (file)
@@ -5,7 +5,7 @@ Copyright © 2006-2007 Mikko Rasa, Mikkosoft Productions
 Distributed under the LGPL
 */
 
-#include <msp/core/error.h>
+#include <msp/core/except.h>
 #include <msp/path/utils.h>
 #include <msp/strings/lexicalcast.h>
 #include "builder.h"
@@ -41,6 +41,11 @@ void Component::create_build_info()
        for(PackageList::iterator i=requires.begin(); i!=requires.end(); ++i)
                build_info.add((*i)->get_exported_binfo());
 
+       for(StringList::iterator i=build_info.incpath.begin(); i!=build_info.incpath.end(); ++i)
+               *i=(pkg.get_source() / *i).str();
+       for(StringList::iterator i=build_info.libpath.begin(); i!=build_info.libpath.end(); ++i)
+               *i=(pkg.get_source() / *i).str();
+
        if(type==PROGRAM)
        {
                string strip=pkg.get_config().get_option("strip").value;
@@ -81,7 +86,7 @@ void Component::create_targets() const
        for(PathList::const_iterator i=files.begin(); i!=files.end(); ++i)
        {
                string basename=(*i)[-1];
-               string ext=Path::splitext(basename).ext;
+               string ext=splitext(basename).ext;
                if((ext==".cpp" || ext==".c") && build_exe)
                {
                        SourceFile *src=new SourceFile(builder, this, i->str());
@@ -146,8 +151,7 @@ PathList Component::collect_source_files() const
        PathList files;
        for(PathList::const_iterator i=sources.begin(); i!=sources.end(); ++i)
        {
-               struct stat st;
-               stat(*i, st);
+               struct stat st=stat(*i);
                if(S_ISDIR(st.st_mode))
                {
                        list<string> sfiles=list_files(*i);