Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Can't install MPI.jl on Windows #140

Closed
tadeu opened this issue Apr 26, 2016 · 4 comments
Closed

Can't install MPI.jl on Windows #140

tadeu opened this issue Apr 26, 2016 · 4 comments

Comments

@tadeu
Copy link

tadeu commented Apr 26, 2016

I'm getting these errors:

julia> Pkg.add("MPI")
INFO: Cloning cache of BinDeps from git://github.com/JuliaLang/BinDeps.jl.git
INFO: Cloning cache of Compat from git://github.com/JuliaLang/Compat.jl.git
INFO: Cloning cache of MPI from git://github.com/JuliaParallel/MPI.jl.git
INFO: Cloning cache of SHA from git://github.com/staticfloat/SHA.jl.git
INFO: Cloning cache of URIParser from git://github.com/JuliaWeb/URIParser.jl.git
INFO: Installing BinDeps v0.3.21
INFO: Installing Compat v0.7.14
INFO: Installing MPI v0.4.0
INFO: Installing SHA v0.1.2
INFO: Installing URIParser v0.1.3
INFO: Building MPI
=================================[ ERROR: MPI ]=================================

LoadError: None of the selected providers can install dependency juliampi.
Use BinDeps.debug(package_name) to see available providers

while loading D:\9\.julia\v0.4\MPI\deps\build.jl, in expression starting on line 54

================================================================================

==========================================[ BUILD ERRORS ]==========================================


WARNING: MPI had build errors.

 - packages with build errors remain installed in D:\9\.julia\v0.4
 - build the package(s) and all dependencies with `Pkg.build("MPI")`
 - build a single package by running its `deps/build.jl` script

====================================================================================================

INFO: Package database updated

julia> import BinDeps

julia> BinDeps.debug("MPI")
INFO: Reading build script...
The package declares 1 dependencies.
 - Library "juliampi"
    - Providers:
      - Simple Build Process (can't provide)

What should I do?

@tadeu
Copy link
Author

tadeu commented Apr 26, 2016

Ok, I tried to add a Windows provider that uses cmake and ninja, but yet, it won't work:

provides(SimpleBuild,
    (@build_steps begin
        CreateDirectory(builddir)
        (@build_steps begin
            ChangeDirectory(builddir)
            (@build_steps begin
                configure
                `ninja`
                `ninja install`
            end)
        end)
    end), [mpi], os = :Windows)

it just says:

julia> Pkg.build("MPI")
INFO: Building MPI
===========================================[ ERROR: MPI ]===========================================


LoadError: None of the selected providers can install dependency juliampi.
Use BinDeps.debug(package_name) to see available providers

while loading D:\9\.julia\v0.5\MPI\deps\build.jl, in expression starting on line 67

====================================================================================================


==========================================[ BUILD ERRORS ]==========================================


WARNING: MPI had build errors.

 - packages with build errors remain installed in D:\9\.julia\v0.5
 - build the package(s) and all dependencies with `Pkg.build("MPI")`
 - build a single package by running its `deps/build.jl` script

====================================================================================================

Can I make it run verbosely, to see what error is happening?

@davidanthoff
Copy link
Contributor

master has support for MS MPI, should be enough to have MS MPI installed.

@blegat
Copy link

blegat commented Jun 30, 2016

This is because by default, if you are on Windows, BinDeps does not try BuildPropcess providers.
Since SimpleBuild is a BuildProcess, BinDeps does not find any providers.
You can check here, you see the lines

# Default installation method
if OS_NAME == :Darwin
    defaults = [Binaries,PackageManager,SystemPaths,BuildProcess]
elseif OS_NAME == :Linux
    defaults = [PackageManager,SystemPaths,BuildProcess]
elseif OS_NAME == :Windows
    defaults = [Binaries,PackageManager,SystemPaths]
else
    defaults = [SystemPaths,BuildProcess]
end

This is discussed in this issue.
You can add BuildProcess for Windows by changing the end of MPI/deps/build.jl into

@windows_only push!(BinDeps.defaults, BuildProcess)

@BinDeps.install Dict(:mpi => :mpi)

@windows_only pop!(BinDeps.defaults)

@simonbyrne
Copy link
Member

simonbyrne commented Jun 26, 2019

#271 got rid of BinDeps, so this should be fixed. If you have more problems, please open a new issue.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants