distinguish object files built from multiple sources with the same base name but different extensions - close #113
This commit is contained in:
1 parent
db49d86866
commit
8d05516c40
13 files changed
+121
-103
No files matched your search
@@ -6,7 +6,8 @@ build do
|
||||
"CMD_DESC" => "Generating")
|
||||
env["build_root"] = env.build_root
|
||||
env["inc_c"] = "inc.c"
|
||||
env.build_after("${build_root}/program.o", "${inc_c}")
|
||||
env.Program("program.exe", ["program.c", "inc.c"])
|
||||
env.Object("program.o", "program.c")
|
||||
env.build_after("program.o", "${inc_c}")
|
||||
env.Program("program.exe", ["program.o", "inc.c"])
|
||||
end
|
||||
end
|
||||
@@ -4,8 +4,9 @@ build do
|
||||
env["inc_h"] = "inc.h"
|
||||
|
||||
env.Copy("copy_inc.h", "${inc_h}")
|
||||
env.depends("${build_root}/program.o", "${inc_h}")
|
||||
env.Program("program.exe", ["program.c", "inc.c"])
|
||||
env.depends("program.o", "${inc_h}")
|
||||
env.Object("program.o", "program.c")
|
||||
env.Program("program.exe", ["program.o", "inc.c"])
|
||||
|
||||
inc_c = env.Command("inc.c",
|
||||
[],
|
||||
|
||||
@@ -4,8 +4,9 @@ build do
|
||||
env["inc_h"] = "inc.h"
|
||||
|
||||
env.Copy("copy_inc.h", "${inc_h}")
|
||||
env.depends("${build_root}/program.o", "${inc_h}")
|
||||
env.Program("program.exe", ["program.c", "inc.c"])
|
||||
env.depends("program.o", "${inc_h}")
|
||||
env.Object("program.o", "program.c")
|
||||
env.Program("program.exe", ["program.o", "inc.c"])
|
||||
|
||||
env.Command("inc.c",
|
||||
[],
|
||||
|
||||
@@ -0,0 +1,5 @@
|
||||
build do
|
||||
Environment.new do |env|
|
||||
env.Program("foo.exe", glob("*.cc", "*.c"))
|
||||
end
|
||||
end
|
||||
@@ -0,0 +1,6 @@
|
||||
#include <stdio.h>
|
||||
|
||||
void foo(void)
|
||||
{
|
||||
printf("foo\n");
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
#include <iostream>
|
||||
|
||||
extern "C" {
|
||||
void foo(void);
|
||||
}
|
||||
|
||||
int main(int argc, char * argv[])
|
||||
{
|
||||
foo();
|
||||
std::cout << "main" << std::endl;
|
||||
return 0;
|
||||
}
|
||||
@@ -2,9 +2,9 @@ build do
|
||||
Environment.new(echo: :command) do |env|
|
||||
env.append('CPPPATH' => glob('src/**/*/'))
|
||||
env.add_build_hook do |builder|
|
||||
if File.basename(builder.target) == "one.o"
|
||||
if File.basename(builder.sources.first) == "one.c"
|
||||
builder.vars["CFLAGS"] << "-O1"
|
||||
elsif File.basename(builder.target) == "two.o"
|
||||
elsif File.basename(builder.sources.first) == "two.c"
|
||||
builder.vars["CFLAGS"] << "-O2"
|
||||
end
|
||||
end
|
||||
|
||||
Reference in new issue
Block a user