BACKUP DE DEBUG
This commit is contained in:
@@ -26,9 +26,10 @@ public class BakefileParser {
|
||||
/**
|
||||
* Regex pour détecter les targets et leurs dépendances.
|
||||
* Format : "nom1 nom2 nom3 : dépendance1 dépendance2"
|
||||
* La nouvelle regex gère plusieurs cibles séparées par des espaces
|
||||
* La nouvelle regex assure que la ligne ne commence pas par une tabulation
|
||||
* et vérifie que le premier caractère non-espace n'est pas un symbole de commentaire
|
||||
*/
|
||||
private static final Pattern TARGET_PATTERN = Pattern.compile("^([^:#]+?)\\s*:\\s*([^#]*?)\\s*(?:#.*)?$");
|
||||
private static final Pattern TARGET_PATTERN = Pattern.compile("^([^\\t:#][^:#]+?)\\s*:\\s*([^#]*?)\\s*(?:#.*)?$");
|
||||
|
||||
/**
|
||||
* Regex pour détecter les lignes de commande associées à une target.
|
||||
|
@@ -79,6 +79,14 @@ public class DependencyResolver {
|
||||
continue;
|
||||
}
|
||||
|
||||
// Ignorer les options de compilation qui pourraient avoir été mal interprétées comme des règles
|
||||
if (ruleName.startsWith("-") || ruleName.contains(":")) {
|
||||
if (debug) {
|
||||
System.out.println("Debug: Skipping compiler option: " + ruleName);
|
||||
}
|
||||
continue;
|
||||
}
|
||||
|
||||
Rule rule = ruleMap.get(ruleName);
|
||||
if (rule != null) {
|
||||
rulesToBuild.add(rule);
|
||||
@@ -108,6 +116,12 @@ public class DependencyResolver {
|
||||
if (dep.startsWith("~")) {
|
||||
continue;
|
||||
}
|
||||
|
||||
// Ignorer les options de compilation qui pourraient avoir un ':' dedans
|
||||
if (dep.startsWith("-") || dep.contains(":")) {
|
||||
continue;
|
||||
}
|
||||
|
||||
topologicalSort(dep, processed, buildOrder);
|
||||
}
|
||||
|
||||
@@ -148,6 +162,11 @@ public class DependencyResolver {
|
||||
continue;
|
||||
}
|
||||
|
||||
// Ignorer les options de compilation qui pourraient avoir un ':' dedans
|
||||
if (dependency.startsWith("-") || dependency.contains(":")) {
|
||||
continue;
|
||||
}
|
||||
|
||||
if (ruleMap.containsKey(dependency)) {
|
||||
detectCycle(dependency, visited, stack, ruleName);
|
||||
}
|
||||
|
@@ -103,6 +103,12 @@ public class Rule {
|
||||
|
||||
File depFile = new File(dependency);
|
||||
boolean hasRule = BakeEngine.hasRule(dependency);
|
||||
|
||||
// Ignorer les options de compilation qui pourraient avoir un ':' dedans
|
||||
if (dependency.startsWith("-") || dependency.contains(":")) {
|
||||
continue;
|
||||
}
|
||||
|
||||
if (!depFile.exists() && !dependency.isEmpty() && !hasRule) {
|
||||
System.out.println("bake: *** No rule to make target `" + dependency + "', needed by `" + name + "'. Stop.");
|
||||
System.exit(2);
|
||||
@@ -121,8 +127,8 @@ public class Rule {
|
||||
// Si la règle n'a pas de commandes, on vérifie seulement si une dépendance doit être mise à jour
|
||||
if (commands.isEmpty()) {
|
||||
for (String dependency : dependencies) {
|
||||
// Skip dependencies with tilde in path
|
||||
if (dependency.startsWith("~")) {
|
||||
// Skip dependencies with tilde in path or compiler options
|
||||
if (dependency.startsWith("~") || dependency.startsWith("-") || dependency.contains(":")) {
|
||||
continue;
|
||||
}
|
||||
|
||||
@@ -151,8 +157,8 @@ public class Rule {
|
||||
long currentTime = System.currentTimeMillis();
|
||||
|
||||
for (String dependency : dependencies) {
|
||||
// Skip dependencies with tilde in path
|
||||
if (dependency.startsWith("~")) {
|
||||
// Skip dependencies with tilde in path or compiler options
|
||||
if (dependency.startsWith("~") || dependency.startsWith("-") || dependency.contains(":")) {
|
||||
continue;
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user