]> git.tdb.fi Git - builder.git/blobdiff - source/component.cpp
Split class Package into SourcePackage and BinaryPackage
[builder.git] / source / component.cpp
index 6a3796d197abb29f3090cbf9d7d8a89972b3cc60..6272321b56b702b3b730c9ccca53618efab08078 100644 (file)
@@ -7,20 +7,21 @@ Distributed under the LGPL
 
 #include <msp/core/error.h>
 #include <msp/path/utils.h>
+#include <msp/strings/lexicalcast.h>
 #include "builder.h"
 #include "component.h"
 #include "header.h"
 #include "install.h"
 #include "objectfile.h"
-#include "package.h"
 #include "sharedlibrary.h"
+#include "sourcepackage.h"
 #include "staticlibrary.h"
 #include "target.h"
 
 using namespace std;
 using namespace Msp;
 
-Component::Component(Package &p, Type t, const string &n):
+Component::Component(SourcePackage &p, Type t, const string &n):
        pkg(p),
        type(t),
        name(n),
@@ -54,6 +55,13 @@ void Component::create_build_info()
                build_info.add(i->get_package()->get_exported_binfo());
        }
 
+       if(type==PROGRAM)
+       {
+               string strip=pkg.get_config().get_option("strip").value;
+               if(lexical_cast<bool>(strip))
+                       build_info.ldflags.push_back("-s");
+       }
+
        if(modular)
        {
                build_info.ldflags.push_back("-rdynamic");
@@ -80,7 +88,7 @@ void Component::create_targets() const
 
        PathList files=collect_source_files();
 
-       bool build_exe=(type!=Component::HEADERS);
+       bool build_exe=(type!=HEADERS);
 
        list<ObjectFile *> objs;
        list<Target *> inst_tgts;
@@ -112,7 +120,7 @@ void Component::create_targets() const
        {
                Executable    *exe=0;
                StaticLibrary *slib=0;
-               if(type==Component::LIBRARY)
+               if(type==LIBRARY)
                {
                        exe=new SharedLibrary(builder, *this, objs);
                        slib=new StaticLibrary(builder, *this, objs);