32 lines
1,012 B
Ruby
32 lines
1,012 B
Ruby
#! /usr/bin/env ruby
|
|
# This script is used to update auto-generated
|
|
# files named 'checkall' and 'unittest.pro'.
|
|
|
|
# get list of path names
|
|
tests = File.new('tests.txt').readlines.find_all { |i| i =~ /^[^#]/ }.collect { |i| i.chomp }
|
|
|
|
# this string is used to indicate the file is auto-generated
|
|
WARNING = "WARNING! All changes made in this file will be lost!"
|
|
|
|
# generate 'checkall' script
|
|
File::open('checkall', 'w') do |f|
|
|
f << "#!/bin/bash\n"
|
|
f << "# #{WARNING}\n"
|
|
f << "basedir=`pwd`\n"
|
|
f << "do_make() {\n"
|
|
f << " if test ! -e Makefile; then qmake; fi\n"
|
|
f << " make check\n"
|
|
f << "}\n"
|
|
f << tests.collect { |dir| "cd #{dir} && do_make && cd $basedir" }.join(" && \\\n") + "\n"
|
|
end
|
|
|
|
# generate project file
|
|
File::open('unittest.pro', 'w') do |f|
|
|
f << "# #{WARNING}\n"
|
|
f << "TEMPLATE = subdirs\n\n"
|
|
f << "SUBDIRS += \\\n"
|
|
f << tests.collect { |dir| "\t#{dir}" }.join(" \\\n") + "\n"
|
|
f << "\n"
|
|
f << "QMAKE_EXTRA_TARGETS += check\n"
|
|
f << "check.commands = sh ./checkall\n"
|
|
end
|