emmt / OptimPackNextGen.jl

An almost pure Julia version of OptimPack for numerical optimization with particular focus on large scale problems
Other
12 stars 6 forks source link

Build fails on Windows10 #4

Closed matdander closed 4 years ago

matdander commented 4 years ago

When trying to install and build on windows 10, a problem arises with installing libcobyla. I don't see this when building on Mac OS.

julia> Pkg.clone("https://github.com/emmt/OptimPackNextGen.jl.git") Updating git-repo https://github.com/emmt/OptimPackNextGen.jl.git [ Info: Path C:\Users\$$$$$\.julia\dev\OptimPackNextGen exists and looks like the correct package, using existing path Resolving package versions... Updating C:\Users\$$$$$\.julia\environments\v1.3\Project.toml [no changes] Updating C:\Users\$$$$$\.julia\environments\v1.3\Manifest.toml [no changes] Building OptimPackNextGen → C:\Users\$$$$$\.julia\dev\OptimPackNextGen\deps\build.log ┌ Error: Error building OptimPackNextGen: │ ERROR: LoadError: None of the selected providers can install dependency libcobyla. │ Use BinDeps.debug(package_name) to see available providers │ │ Stacktrace: │ [1] error(::String) at .\error.jl:33 │ [2] satisfy!(::BinDeps.LibraryDependency, ::Array{DataType,1}) at C:\Users\$$$$$.julia\packages\BinDeps\QvmEl\src\dependencies.jl:956 │ [3] satisfy!(::BinDeps.LibraryDependency) at C:\Users\$$$$$.julia\packages\BinDeps\QvmEl\src\dependencies.jl:929 │ [4] top-level scope at C:\Users\$$$$$.julia\packages\BinDeps\QvmEl\src\dependencies.jl:984 │ [5] include at .\boot.jl:328 [inlined] │ [6] include_relative(::Module, ::String) at .\loading.jl:1105 │ [7] include(::Module, ::String) at .\Base.jl:31 │ [8] include(::String) at .\client.jl:424 │ [9] top-level scope at none:5 │ in expression starting at C:\Users\$$$$$$$.julia\dev\OptimPackNextGen\deps\build.jl:55 └ @ Pkg.Operations D:\buildbot\worker\package_win64\build\usr\share\julia\stdlib\v1.3\Pkg\src\backwards_compatible_isolation.jl:649

Another issue is that the installation for LazyAlgebra fails on ArrayTools. Installing ArrayTools manually from the repo and then installing LazyAlgebra works just fine. I encountered this on both Windows 10 and Mac OS.

emmt commented 4 years ago

For the first issue, I have added a recipe in Yggdrasil for OptimPack to build the dynamic libraries for various architectures. Some of these libraries are used by OptimPackNextGen. I however had not yet found the time to modify the installation of OptimPackNextGen to use these libraries. I will have a look, it may solve your problem.

For the second point, it is expected that you have to install ArrayTools manually because it is not (yet) an official Julia package. This is explained here. Let me known if this not clear enough. I can also force installing related non-official packages in the build script but I do not like to do things that the user is not aware of.

emmt commented 4 years ago

I have modified OptimPackNextGen to use OptimPack_jll. This should fix the problem on Windows 10.

matdander commented 4 years ago

I have confirmed that it now builds and precompiles without error. Thank you!

emmt commented 4 years ago

Can you run the tests?

matdander commented 4 years ago

Yes, all tests passed!

emmt commented 4 years ago

Thanks!