J'ai cherché dans Rake pour le script de construction dans notre système CI (Projets construits avec C++). J'ai joué avec une simple application 'hello world' pour voir ce que rake est capable de faire. Tout allait bien jusqu'à ce que je décide de mettre les fichiers .h dans un dossier d'inclusion et les fichiers. Cpp dans le dossier src. Rake a réussi à trouver les fichiers .cpp mais pas les fichiers d'en-tête inclus. Structure du fichier comme ceci:en utilisant rake avec la structure du répertoire du projet
src/main.cpp
src/greet.cpp
include/greet.h
rake script was as follows:
require 'rake/clean'
require 'rake/loaders/makefile'
APPLICATION = 'hello.exe'
C_FILES = FileList['src/*.cpp']
HDR_FILES = FileList['include/*.h']
ALL_FILES = [C_FILES] + HDR_FILES
O_FILES = C_FILES.sub(/\.cpp$/, '.o')
file '.depend.mf' do
sh "makedepend -f- -- -- #{ALL_FILES} > .depend.mf"
end
import ".depend.mf"
file APPLICATION => O_FILES do |t|
sh "gcC#{O_FILES} -o #{t.name}"
end
rule ".o" => [".cpp"] do |t|
sh "gcc -c -o #{t.name} #{t.source}"
end
C_FILES.each do |src|
file src.ext(".o") => src
end
CLEAN.include("**/*.o")
CLEAN.include(APPLICATION)
CLEAN.include(".depend.mf")
task :default => APPLICATION
Toute aide serait grandement appréciée.