Initial version

master
Alinson S. Xavier 6 years ago
commit 04f844d61a

4
.gitignore vendored

@ -0,0 +1,4 @@
deps/build.log
deps/deps.jl
gen
Manifest.toml

@ -0,0 +1,8 @@
name = "CPLEXW"
uuid = "cfecb002-79c2-11e9-35be-cb59aa640f85"
authors = ["Alinson Xavier <axavier@anl.gov>"]
version = "1.0.0"
[deps]
CEnum = "fa961155-64e5-5f13-b03f-caf6b980ea82"
Libdl = "8f399da3-3557-5675-b5ff-fb832c97cbdb"

61
deps/build.jl vendored

@ -0,0 +1,61 @@
using Libdl
depsfile = joinpath(dirname(@__FILE__),"deps.jl")
if isfile(depsfile)
rm(depsfile)
end
function write_depsfile(path)
open(depsfile,"w") do f
print(f,"const libcplex = ")
show(f, path) # print with backslashes excaped on windows
println(f)
end
end
base_env = "CPLEX_STUDIO_BINARIES"
const cpxvers = ["128", "1280", "129", "1290"]
libnames = String["cplex"]
for v in reverse(cpxvers)
if Sys.isapple()
push!(libnames, "libcplex$v.dylib")
elseif Sys.isunix()
push!(libnames, "libcplex$v.so")
if haskey(ENV, base_env)
push!(libnames, joinpath(ENV[base_env], "libcplex$v.so"))
end
end
end
const wincpxvers = ["128", "1280", "129", "1290"]
@static if Sys.iswindows()
for v in reverse(wincpxvers)
env = base_env * v
if haskey(ENV,env)
for d in split(ENV[env],';')
occursin("cplex", d) || continue
if length(v) == 3
push!(libnames,joinpath(d,"cplex$(v)0"))
else
push!(libnames,joinpath(d,"cplex$(v)"))
end
end
end
end
end
found = false
for l in libnames
d = Libdl.dlopen_e(l)
if d != C_NULL
global found = true
write_depsfile(Libdl.dlpath(d))
break
end
end
if !found
error("Unable to locate CPLEX installation")
end

@ -0,0 +1,18 @@
module CPLEXW
using CEnum, Libdl
if isfile(joinpath(dirname(@__FILE__),"..","deps","deps.jl"))
include("../deps/deps.jl")
else
error("CPLEXW not properly installed. Please run Pkg.build(\"CPLEXW\")")
end
include("commons.jl")
include("cplex.jl")
foreach(names(@__MODULE__, all=true)) do s
if startswith(string(s), "CPX")
@eval export $s
end
end
end

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff