1 # -*- coding: utf-8 -*-
5 cflags = "@CFLAGS@ -fno-default-inline"
7 TOPDIR = "@top_srcdir@"
10 ldflags += "-L@top_srcdir@/test/gtest/gtest-all"
13 includes += "-I. -I@top_srcdir@"
15 # lists of compile dependency objects
16 SRCS = FileList["*.cpp"]
18 OBJECTS = FileList["@top_srcdir@/src/**/*.o"]
20 TARGET_OBJECTS = FileList[]
21 TARGET_OBJECTS.include(OBJS)
22 TARGET_OBJECTS.include(OBJECTS)
24 # lists of running test program
25 TEST_PROGRAMS = FileList["*_test.cpp"]
26 TEST_PROGRAMS_EXE = TEST_PROGRAMS.ext("")
29 # lists of clean objects
31 CLOBBER.include(TEST_PROGRAMS)
35 task "default" => [DEPDIR, "compile"]
36 task "test" => ["compile", "execute"]
43 desc "Compile all sources "
44 task "compile" => OBJS do |t|
46 sh "rake -f ../src/Rakefile --trace"
50 rule "_test#{EXEEXT}" => TARGET_OBJECTS do |t|
51 sh "#{CC} -o #{t.name} #{ldflags} #{cflags} #{includes} #{OBJECTS.join(' ')} ../test/gtest/gtest-all.o #{t.source} "
54 rule '.o' => '.cpp' do |t|
55 depname = File.basename(t.name, ".o") + ".po"
56 sh "#{CC} -MD -MF #{DEPDIR}/#{depname} #{ldflags} #{cflags} #{includes} -c #{t.source}"
59 desc "run all test program in `TEST_PROGRAMS`"
60 task :execute => TEST_PROGRAMS_EXE do |t|
61 t.prerequisites.each { |f|
62 sh "./#{f}#{EXEEXT} --gtest_color=yes"