2010-11-25 16 views
1

Je convertis Makefile en Rakefile pour un petit projet C++. J'ai src dir avec les fichiers * .h et * .cpp et obj dir où tout * .o va (je ne les veux pas dans src). Comment faire avec les règles de Rake?Règles Rakefile dans le projet C++

Cela fonctionne très bien, mais je veux avoir une règle générique.

rule("#{OBJ_DIR}hello.o" => "#{SRC_DIR}hello.cpp") do |target| 

Ce retourne "Je ne sais pas comment gérer la règle dépendante: /src\/(\w+).cpp/"

rule(/obj\/(\w+).o/ => /src\/(\w+).cpp/) do |target| 
    sh "#{COMPILER} #{FLAGS} -c -o #{target.name} #{target.source}" 
end 

Répondre

2

Copié sans vergogne de here

rule '.o' => '.cpp' do |target| 
    sh "#{COMPILER} #{FLAGS} -c -o #{target.name} #{target.source}" 
end 

Peut-être que le problème réside dans le fait que votre exemple essaie de mélanger l'emplacement de certains fichiers, avec la règle nécessaire pour gérer n'importe quel fichier avec une extension quel que soit son emplacement.

+0

yup, c'est le problème, j'ai une règle comme vous présenté et cela fonctionne bien mais j'aimerais avoir des choses dans un dirs différents sans coping fichiers – Nazgob

+0

lien que vous avez joint a répondu à ma question, thx! – Nazgob