dep_selector 1.0.0.alpha.0 → 1.0.0.alpha.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/ext/dep_gecode/extconf.rb +162 -39
- data/lib/dep_selector/dep_gecode.rb +83 -0
- data/lib/dep_selector/dep_selector_version.rb +1 -1
- data/lib/dep_selector/dependency_graph.rb +19 -3
- data/lib/dep_selector/gecode_wrapper.rb +2 -10
- metadata +23 -10
- data/ext/dep_gecode/dep_selector_swig_wrap.cxx +0 -2839
- data/ext/dep_gecode/lib/dep_selector_to_gecode.rb +0 -11
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: eedf57363ca865a2274f202af0d5c2744d107f0e
|
4
|
+
data.tar.gz: 8b0012e3789d25b4ebca6abdadf95937ab8a7f2f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: cd94581cafdd7dc198c84fe25cf21eb5de8112d4f24ed767ef326ddc996d1e61f1bc68eda06f11ed9a872855328c95822e890a0eb0208a55d08052d1fd9c76a6
|
7
|
+
data.tar.gz: a2e9623c53220191aedcbb01ba33a3efe27f1ee5cb7728634172fe7c60393ffa49fdd9905dbd00706e14cf4dd4adff248f9855314e0879ae3ce952528470d1e2
|
data/ext/dep_gecode/extconf.rb
CHANGED
@@ -17,43 +17,45 @@
|
|
17
17
|
# limitations under the License.
|
18
18
|
#
|
19
19
|
|
20
|
-
#
|
21
|
-
|
22
|
-
# ./configure --with-architectures=i386,x86_64
|
23
|
-
# to work properly here.
|
24
|
-
require 'mkmf'
|
25
|
-
|
26
|
-
# $CFLAGS << "-g"
|
27
|
-
|
28
|
-
gecode_installed =
|
29
|
-
# Gecode documentation notes:
|
30
|
-
# "Some linkers require the list of libraries to be sorted such that
|
31
|
-
# libraries appear before all libraries they depend on."
|
32
|
-
# http://www.gecode.org/doc-latest/MPG.pdf
|
33
|
-
#
|
34
|
-
# This appears to be true of the version of mingw that ships with Ruby 1.9.3.
|
35
|
-
# The correct order of `-l` flags according to the docs is:
|
36
|
-
#
|
37
|
-
# 1. -lgecodeflatzinc
|
38
|
-
# 2. -lgecodedriver
|
39
|
-
# 3. -lgecodegist
|
40
|
-
# 4. -lgecodesearch,
|
41
|
-
# 5. -lgecodeminimodel
|
42
|
-
# 6. -lgecodeset
|
43
|
-
# 7. -lgecodefloat
|
44
|
-
# 8. -lgecodeint
|
45
|
-
# 9. -lgecodekernel
|
46
|
-
# 10. -lgecodesupport
|
20
|
+
# Ruby that supports C extensions. Our library isn't an extension, but we piggyback on ruby's C extension build system
|
21
|
+
if !defined?(RUBY_ENGINE) || RUBY_ENGINE == 'ruby' || RUBY_ENGINE == 'rbx'
|
47
22
|
#
|
48
|
-
#
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
23
|
+
# GECODE needs to be built with
|
24
|
+
# ./configure --with-architectures=i386,x86_64
|
25
|
+
# to work properly here.
|
26
|
+
require 'mkmf'
|
27
|
+
|
28
|
+
# $CFLAGS << "-g"
|
29
|
+
|
30
|
+
gecode_installed =
|
31
|
+
# Gecode documentation notes:
|
32
|
+
# "Some linkers require the list of libraries to be sorted such that
|
33
|
+
# libraries appear before all libraries they depend on."
|
34
|
+
# http://www.gecode.org/doc-latest/MPG.pdf
|
35
|
+
#
|
36
|
+
# This appears to be true of the version of mingw that ships with Ruby 1.9.3.
|
37
|
+
# The correct order of `-l` flags according to the docs is:
|
38
|
+
#
|
39
|
+
# 1. -lgecodeflatzinc
|
40
|
+
# 2. -lgecodedriver
|
41
|
+
# 3. -lgecodegist
|
42
|
+
# 4. -lgecodesearch,
|
43
|
+
# 5. -lgecodeminimodel
|
44
|
+
# 6. -lgecodeset
|
45
|
+
# 7. -lgecodefloat
|
46
|
+
# 8. -lgecodeint
|
47
|
+
# 9. -lgecodekernel
|
48
|
+
# 10. -lgecodesupport
|
49
|
+
#
|
50
|
+
# Ruby `mkmf` will add `-l` flags in the _REVERSE_ order that they appear here.
|
51
|
+
have_library('gecodesupport') &&
|
52
|
+
have_library('gecodekernel') &&
|
53
|
+
have_library('gecodeint') &&
|
54
|
+
have_library('gecodeminimodel') &&
|
55
|
+
have_library('gecodesearch')
|
56
|
+
|
57
|
+
unless gecode_installed
|
58
|
+
STDERR.puts <<EOS
|
57
59
|
=========================================================================================
|
58
60
|
Gecode >3.5 must be installed (http://www.gecode.org/).
|
59
61
|
|
@@ -72,7 +74,128 @@ For convenience, we have built Gecode for Debian/Ubuntu (<release> is lucid or m
|
|
72
74
|
Other distributions can build from source.
|
73
75
|
=========================================================================================
|
74
76
|
EOS
|
75
|
-
|
76
|
-
end
|
77
|
+
raise "Gecode not installed"
|
78
|
+
end
|
79
|
+
|
80
|
+
create_makefile('dep_gecode')
|
81
|
+
else # JRUBY
|
82
|
+
|
83
|
+
require 'rbconfig'
|
84
|
+
require 'ffi/platform'
|
85
|
+
|
86
|
+
cflags = ENV['CFLAGS']
|
87
|
+
cppflags = ENV['CPPFLAGS']
|
88
|
+
cxxflags = ENV['CXXFLAGS']
|
89
|
+
ldflags = ENV['LDFLAGS']
|
90
|
+
cc = ENV['CC']
|
91
|
+
cxx = ENV['CXX']
|
92
|
+
|
93
|
+
ldsharedxx = RbConfig::MAKEFILE_CONFIG["LDSHAREDXX"]
|
94
|
+
|
95
|
+
# use the CC that ruby was compiled with by default
|
96
|
+
cc ||= RbConfig::MAKEFILE_CONFIG['CC']
|
97
|
+
cxx ||= RbConfig::MAKEFILE_CONFIG["CXX"]
|
98
|
+
cppflags ||= RbConfig::MAKEFILE_CONFIG["CPPFLAGS"]
|
99
|
+
cxxflags ||= RbConfig::MAKEFILE_CONFIG["CXXFLAGS"]
|
100
|
+
cflags ||= ""
|
101
|
+
ldflags ||= ""
|
102
|
+
|
103
|
+
# then ultimately default back to gcc
|
104
|
+
cc ||= "gcc"
|
105
|
+
cxx ||= "g++"
|
106
|
+
|
107
|
+
# JRuby reports that the compiler is "CC" no matter what, so we can't detect
|
108
|
+
# if we're using anything other than gcc/llvm. Therefore we just assume
|
109
|
+
# that's the compiler we're on.
|
110
|
+
cflags << "-Wno-error=shorten-64-to-32 -pipe"
|
111
|
+
cflags << " -O3" unless cflags =~ /-O\d/
|
112
|
+
cflags << " -Wall -fPIC"
|
113
|
+
cppflags << " -O3" unless cppflags =~ /-O\d/
|
114
|
+
cppflags << " -fno-common -fPIC"
|
115
|
+
cxxflags << " -O3" unless cppflags =~ /-O\d/
|
116
|
+
cxxflags << " -fno-common -fPIC"
|
117
|
+
|
118
|
+
ENV['CFLAGS'] = cflags
|
119
|
+
ENV['LDFLAGS'] = ldflags
|
120
|
+
ENV['CC'] = cc
|
121
|
+
ENV['CXX'] = cxx
|
122
|
+
ENV["CPPFLAGS"] = cppflags
|
123
|
+
ENV["CXXFLAGS"] = cxxflags
|
124
|
+
|
125
|
+
dlext = FFI::Platform::LIBSUFFIX
|
126
|
+
|
127
|
+
headers = "$(srcdir)/dep_selector_to_gecode.h $(srcdir)/dep_selector_to_gecode_interface.h"
|
128
|
+
|
129
|
+
install = RbConfig::MAKEFILE_CONFIG["INSTALL"]
|
77
130
|
|
78
|
-
|
131
|
+
File.open("Makefile", "w") do |mf|
|
132
|
+
mf.puts(<<-EOH)
|
133
|
+
# Makefile for building dep_gecode
|
134
|
+
|
135
|
+
# V=0 quiet, V=1 verbose. other values don't work.
|
136
|
+
V = 1
|
137
|
+
Q1 = $(V:1=)
|
138
|
+
Q = $(Q1:0=@)
|
139
|
+
ECHO1 = $(V:1=@:)
|
140
|
+
ECHO = $(ECHO1:0=@echo)
|
141
|
+
|
142
|
+
srcdir = .
|
143
|
+
|
144
|
+
CFLAGS = #{ENV['CFLAGS']}
|
145
|
+
LDFLAGS = #{ENV['LDFLAGS']}
|
146
|
+
CPPFLAGS = #{ENV['CPPFLAGS']}
|
147
|
+
CXXFLAGS = #{ENV['CXXFLAGS']}
|
148
|
+
INCFLAGS = -I.
|
149
|
+
LDSHAREDXX = #{ldsharedxx}
|
150
|
+
|
151
|
+
empty =
|
152
|
+
OUTFLAG = -o $(empty)
|
153
|
+
COUTFLAG = -o $(empty)
|
154
|
+
CC = #{ENV['CC']}
|
155
|
+
CXX = #{ENV["CXX"]}
|
156
|
+
TARGET = dep_gecode
|
157
|
+
TARGET_NAME = dep_gecode
|
158
|
+
DLLIB = $(TARGET).#{dlext}
|
159
|
+
LIBS = -lgecodesearch -lgecodeminimodel -lgecodeint -lgecodekernel -lgecodesupport
|
160
|
+
CLEANLIBS = $(DLLIB)
|
161
|
+
OBJS = dep_selector_to_gecode.o dep_selector_to_gecode_interface.o
|
162
|
+
CLEANOBJS = *.o *.bak
|
163
|
+
HDRS = #{headers}
|
164
|
+
|
165
|
+
INSTALL = #{install}
|
166
|
+
INSTALL_PROG = $(INSTALL) -m 0755
|
167
|
+
INSTALL_DATA = $(INSTALL) -m 644
|
168
|
+
|
169
|
+
all:\t$(DLLIB)
|
170
|
+
|
171
|
+
install:
|
172
|
+
|
173
|
+
clean:
|
174
|
+
\t$(Q)$(RM) $(CLEANLIBS) $(CLEANOBJS) $(CLEANFILES) .*.time
|
175
|
+
|
176
|
+
|
177
|
+
.SUFFIXES: .c .m .cc .mm .cxx .cpp .C .o
|
178
|
+
|
179
|
+
.cc.o:
|
180
|
+
$(ECHO) compiling $(<)
|
181
|
+
$(Q) $(CXX) $(INCFLAGS) $(CPPFLAGS) $(CXXFLAGS) $(COUTFLAG)$@ -c $<
|
182
|
+
|
183
|
+
.cxx.o:
|
184
|
+
$(ECHO) compiling $(<)
|
185
|
+
$(Q) $(CXX) $(INCFLAGS) $(CPPFLAGS) $(CXXFLAGS) $(COUTFLAG)$@ -c $<
|
186
|
+
|
187
|
+
.cpp.o:
|
188
|
+
$(ECHO) compiling $(<)
|
189
|
+
$(Q) $(CXX) $(INCFLAGS) $(CPPFLAGS) $(CXXFLAGS) $(COUTFLAG)$@ -c $<
|
190
|
+
|
191
|
+
$(DLLIB): $(OBJS) Makefile
|
192
|
+
$(ECHO) linking shared-object $(DLLIB)
|
193
|
+
-$(Q)$(RM) $(@)
|
194
|
+
$(Q) $(LDSHAREDXX) -o $@ $(OBJS) $(LIBPATH) $(DLDFLAGS) $(LOCAL_LIBS) $(LIBS)
|
195
|
+
$(Q) test -z '$(RUBY_CODESIGN)' || codesign -s '$(RUBY_CODESIGN)' -f $@
|
196
|
+
|
197
|
+
$(OBJS): $(HDRS)
|
198
|
+
|
199
|
+
EOH
|
200
|
+
end
|
201
|
+
end
|
@@ -0,0 +1,83 @@
|
|
1
|
+
#
|
2
|
+
# Author:: Daniel DeLeo (<dan@getchef.com>)
|
3
|
+
# Copyright:: Copyright (c) 2014 Chef Software, Inc.
|
4
|
+
# License:: Apache License, Version 2.0
|
5
|
+
#
|
6
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
7
|
+
# you may not use this file except in compliance with the License.
|
8
|
+
# You may obtain a copy of the License at
|
9
|
+
#
|
10
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
11
|
+
#
|
12
|
+
# Unless required by applicable law or agreed to in writing, software
|
13
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
14
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
15
|
+
# See the License for the specific language governing permissions and
|
16
|
+
# limitations under the License.
|
17
|
+
#
|
18
|
+
|
19
|
+
require 'ffi'
|
20
|
+
|
21
|
+
module Dep_gecode
|
22
|
+
|
23
|
+
extend FFI::Library
|
24
|
+
|
25
|
+
lib_dir = File.expand_path("../../", __FILE__)
|
26
|
+
lib_dir_path = Dir["#{lib_dir}/dep_gecode.*"].first
|
27
|
+
|
28
|
+
ext_dir = File.expand_path("../../../ext/dep_gecode/", __FILE__)
|
29
|
+
ext_dir_path = Dir["#{ext_dir}/dep_gecode.*"].first
|
30
|
+
|
31
|
+
path = lib_dir_path || ext_dir_path
|
32
|
+
|
33
|
+
ffi_lib path
|
34
|
+
|
35
|
+
# VersionProblem * VersionProblemCreate(int packageCount, bool dumpStats,
|
36
|
+
# bool debug, const char * log_id);
|
37
|
+
attach_function :VersionProblemCreate, [:int, :bool, :bool, :string], :pointer
|
38
|
+
|
39
|
+
# void VersionProblemDestroy(VersionProblem * vp);
|
40
|
+
attach_function :VersionProblemDestroy, [:pointer], :void
|
41
|
+
|
42
|
+
# int AddPackage(VersionProblem *problem, int min, int max, int currentVersion);
|
43
|
+
attach_function :AddPackage, [:pointer, :int, :int, :int], :int
|
44
|
+
|
45
|
+
# int VersionProblemSize(VersionProblem *p);
|
46
|
+
attach_function :VersionProblemSize, [:pointer], :int
|
47
|
+
|
48
|
+
# void MarkPackagePreferredToBeAtLatest(VersionProblem *problem, int packageId, int weight);
|
49
|
+
attach_function :MarkPackagePreferredToBeAtLatest, [:pointer, :int, :int], :void
|
50
|
+
|
51
|
+
# void MarkPackageRequired(VersionProblem *problem, int packageId);
|
52
|
+
attach_function :MarkPackageRequired, [:pointer, :int], :void
|
53
|
+
|
54
|
+
# void AddVersionConstraint(VersionProblem *problem, int packageId, int version,
|
55
|
+
# int dependentPackageId, int minDependentVersion, int maxDependentVersion);
|
56
|
+
attach_function :AddVersionConstraint, [:pointer, :int, :int, :int, :int, :int], :void
|
57
|
+
|
58
|
+
# VersionProblem * Solve(VersionProblem * problem);
|
59
|
+
attach_function :Solve, [:pointer], :pointer
|
60
|
+
|
61
|
+
# int GetDisabledVariableCount(VersionProblem *problem);
|
62
|
+
attach_function :GetDisabledVariableCount, [:pointer], :int
|
63
|
+
|
64
|
+
# int GetPackageVersion(VersionProblem *problem, int packageId);
|
65
|
+
attach_function :GetPackageVersion, [:pointer, :int], :int
|
66
|
+
|
67
|
+
# void MarkPackageSuspicious(VersionProblem *problem, int packageId);
|
68
|
+
attach_function :MarkPackageSuspicious, [:pointer, :int], :void
|
69
|
+
|
70
|
+
# bool GetPackageDisabledState(VersionProblem *problem, int packageId);
|
71
|
+
attach_function :GetPackageDisabledState, [:pointer, :int], :bool
|
72
|
+
|
73
|
+
# int VersionProblemPackageCount(VersionProblem *p);
|
74
|
+
attach_function :VersionProblemPackageCount, [:pointer], :int
|
75
|
+
|
76
|
+
# int GetPackageMax(VersionProblem *problem, int packageId);
|
77
|
+
attach_function :GetPackageMax, [:pointer, :int], :int
|
78
|
+
|
79
|
+
# int GetPackageMin(VersionProblem *problem, int packageId);
|
80
|
+
attach_function :GetPackageMin, [:pointer, :int], :int
|
81
|
+
end
|
82
|
+
|
83
|
+
|
@@ -77,10 +77,26 @@ module DepSelector
|
|
77
77
|
packages.keys.sort.map{|name| packages[name].to_s(incl_densely_packed_versions)}.join("\n")
|
78
78
|
end
|
79
79
|
|
80
|
-
#
|
81
|
-
#
|
80
|
+
# Does a mostly deep copy of this graph, creating new Package,
|
81
|
+
# PackageVersion, and Dependency objects in the copy graph. Version and
|
82
|
+
# VersionConstraint objects are re-used from the existing graph.
|
82
83
|
def clone
|
83
|
-
|
84
|
+
copy = self.class.new
|
85
|
+
@packages.each do |name, package|
|
86
|
+
copy_package = copy.package(name)
|
87
|
+
|
88
|
+
package.versions.each do |package_version|
|
89
|
+
copy_pkg_version = copy_package.add_version(package_version.version)
|
90
|
+
package_version.dependencies.each do |pkg_vers_dep|
|
91
|
+
dep_pkg_name = pkg_vers_dep.package.name
|
92
|
+
copy_dependency = DepSelector::Dependency.new(copy.package(dep_pkg_name), pkg_vers_dep.constraint)
|
93
|
+
copy_pkg_version.dependencies << copy_dependency
|
94
|
+
end
|
95
|
+
end
|
96
|
+
end
|
97
|
+
copy
|
84
98
|
end
|
99
|
+
|
100
|
+
|
85
101
|
end
|
86
102
|
end
|
@@ -18,18 +18,9 @@
|
|
18
18
|
#
|
19
19
|
|
20
20
|
require 'securerandom'
|
21
|
+
require 'dep_selector/dep_gecode'
|
21
22
|
require 'dep_selector/exceptions'
|
22
23
|
|
23
|
-
begin
|
24
|
-
require "dep_gecode"
|
25
|
-
rescue LoadError
|
26
|
-
warn("Unable to find shared object `dep_gecode' in load path")
|
27
|
-
path = File.expand_path("../../../ext/dep_gecode", __FILE__)
|
28
|
-
warn("Adding ext directory `#{path}' to load path to find development extensions.")
|
29
|
-
$:.unshift(path)
|
30
|
-
require "dep_gecode"
|
31
|
-
end
|
32
|
-
|
33
24
|
module DepSelector
|
34
25
|
|
35
26
|
@dump_statistics = false
|
@@ -43,6 +34,7 @@ module DepSelector
|
|
43
34
|
end
|
44
35
|
|
45
36
|
class GecodeWrapper
|
37
|
+
|
46
38
|
attr_reader :gecode_problem
|
47
39
|
attr_reader :debug_logs_on
|
48
40
|
DontCareConstraint = -1
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: dep_selector
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.0.alpha.
|
4
|
+
version: 1.0.0.alpha.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Christopher Walters
|
@@ -9,36 +9,50 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2014-04-
|
12
|
+
date: 2014-04-04 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
|
-
name:
|
15
|
+
name: ffi
|
16
16
|
requirement: !ruby/object:Gem::Requirement
|
17
17
|
requirements:
|
18
18
|
- - ~>
|
19
19
|
- !ruby/object:Gem::Version
|
20
|
-
version: '
|
20
|
+
version: '1.9'
|
21
|
+
type: :runtime
|
22
|
+
prerelease: false
|
23
|
+
version_requirements: !ruby/object:Gem::Requirement
|
24
|
+
requirements:
|
25
|
+
- - ~>
|
26
|
+
- !ruby/object:Gem::Version
|
27
|
+
version: '1.9'
|
28
|
+
- !ruby/object:Gem::Dependency
|
29
|
+
name: rake
|
30
|
+
requirement: !ruby/object:Gem::Requirement
|
31
|
+
requirements:
|
32
|
+
- - ~>
|
33
|
+
- !ruby/object:Gem::Version
|
34
|
+
version: '10.0'
|
21
35
|
type: :development
|
22
36
|
prerelease: false
|
23
37
|
version_requirements: !ruby/object:Gem::Requirement
|
24
38
|
requirements:
|
25
39
|
- - ~>
|
26
40
|
- !ruby/object:Gem::Version
|
27
|
-
version: '
|
41
|
+
version: '10.0'
|
28
42
|
- !ruby/object:Gem::Dependency
|
29
|
-
name:
|
43
|
+
name: rspec
|
30
44
|
requirement: !ruby/object:Gem::Requirement
|
31
45
|
requirements:
|
32
46
|
- - ~>
|
33
47
|
- !ruby/object:Gem::Version
|
34
|
-
version:
|
48
|
+
version: '2.14'
|
35
49
|
type: :development
|
36
50
|
prerelease: false
|
37
51
|
version_requirements: !ruby/object:Gem::Requirement
|
38
52
|
requirements:
|
39
53
|
- - ~>
|
40
54
|
- !ruby/object:Gem::Version
|
41
|
-
version:
|
55
|
+
version: '2.14'
|
42
56
|
- !ruby/object:Gem::Dependency
|
43
57
|
name: solve
|
44
58
|
requirement: !ruby/object:Gem::Requirement
|
@@ -63,6 +77,7 @@ extensions:
|
|
63
77
|
extra_rdoc_files: []
|
64
78
|
files:
|
65
79
|
- lib/dep_selector/densely_packed_set.rb
|
80
|
+
- lib/dep_selector/dep_gecode.rb
|
66
81
|
- lib/dep_selector/dep_selector_version.rb
|
67
82
|
- lib/dep_selector/dependency.rb
|
68
83
|
- lib/dep_selector/dependency_graph.rb
|
@@ -78,13 +93,11 @@ files:
|
|
78
93
|
- lib/dep_selector/version_constraint.rb
|
79
94
|
- lib/dep_selector.rb
|
80
95
|
- ext/dep_gecode/dep_selector_swig.i
|
81
|
-
- ext/dep_gecode/dep_selector_swig_wrap.cxx
|
82
96
|
- ext/dep_gecode/dep_selector_to_gecode.h
|
83
97
|
- ext/dep_gecode/dep_selector_to_gecode_interface.h
|
84
98
|
- ext/dep_gecode/dep_selector_to_gecode.cpp
|
85
99
|
- ext/dep_gecode/dep_selector_to_gecode_interface.cpp
|
86
100
|
- ext/dep_gecode/extconf.rb
|
87
|
-
- ext/dep_gecode/lib/dep_selector_to_gecode.rb
|
88
101
|
homepage: http://github.com/opscode/dep-selector
|
89
102
|
licenses:
|
90
103
|
- Apache v2
|