Add override for mzn-fzn flags
This commit is contained in:
parent
dfae91a383
commit
452b19faf2
@ -58,7 +58,11 @@ func RunInstance(solver *settings.Solver, instance *settings.Instance) {
|
|||||||
if instance.Data != "" {
|
if instance.Data != "" {
|
||||||
args = append(args, "--data", instance.Data)
|
args = append(args, "--data", instance.Data)
|
||||||
}
|
}
|
||||||
args = append(args, strings.Split(viper.GetString("flags"), " ")...)
|
if solver.OverrideFlags != "" {
|
||||||
|
args = append(args, strings.Split(solver.OverrideFlags, " ")...)
|
||||||
|
} else {
|
||||||
|
args = append(args, strings.Split(viper.GetString("flags"), " ")...)
|
||||||
|
}
|
||||||
proc := exec.Command(viper.GetString("mznfzn"), args...)
|
proc := exec.Command(viper.GetString("mznfzn"), args...)
|
||||||
|
|
||||||
if out, err := proc.CombinedOutput(); err != nil {
|
if out, err := proc.CombinedOutput(); err != nil {
|
||||||
|
@ -4,10 +4,11 @@ import "github.com/spf13/viper"
|
|||||||
|
|
||||||
// Solver contains all information regarding a FlatZinc solver and its output
|
// Solver contains all information regarding a FlatZinc solver and its output
|
||||||
type Solver struct {
|
type Solver struct {
|
||||||
Name string // Solver name
|
Name string // Solver name
|
||||||
Binary string // Binary location
|
Binary string // Binary location
|
||||||
Globals string // Globals directory
|
Globals string // Globals directory
|
||||||
Flags string // FZN solver flags
|
Flags string // FZN solver flags
|
||||||
|
OverrideFlags string // Override to global mzn-fzn flags
|
||||||
|
|
||||||
Extractors *ExtractionCluster
|
Extractors *ExtractionCluster
|
||||||
}
|
}
|
||||||
@ -20,9 +21,10 @@ func SolversFromViper() []Solver {
|
|||||||
options := viper.GetStringMapString("solvers." + key)
|
options := viper.GetStringMapString("solvers." + key)
|
||||||
|
|
||||||
solver := Solver{
|
solver := Solver{
|
||||||
Name: key,
|
Name: key,
|
||||||
Flags: options["flags"],
|
Flags: options["flags"],
|
||||||
Globals: options["globals"],
|
Globals: options["globals"],
|
||||||
|
OverrideFlags: options["override_flags"],
|
||||||
}
|
}
|
||||||
if bin, exists := options["binary"]; exists {
|
if bin, exists := options["binary"]; exists {
|
||||||
solver.Binary = bin
|
solver.Binary = bin
|
||||||
|
Reference in New Issue
Block a user