+1 for this!
If it's of any help, the Microsoft Innovation Centre Rapperswil used to distribute PETSc for Windows:
http://www.msic.ch/Downloads/Software
This download provides the files and a Visual Studio project template for compiling PETSc:
http://www.msic.ch/Portals/0/downloads/PETScForWindows.zip
Unfortunately it doesn't work past VS2013. It would be fantastic to have PETSc available via vcpkg.
Building PETSc requires a Fortran compiler (in general). See #485 and #1098 for progress regarding Fortran support in vcpkg.
Whenever #1098 reaches a status where it can be merged I will provide port files for PETSc including BLAS/LAPACK, ScaLAPACK, METIS, ParMETIS, HYPRE, MUMPS and SuperLU_dist.
Sounds great - thanks.
Since the options for Fortran seem to be intel and pgi, neither of which are (in general) free, would it be worth (and possible) having a non-Fortran PETSc option in addition?
I think on that list you would only lose HYPRE and MUMPS.
PGI introduced a free version of it's Fortran compiler for windows a few months ago [1].
I have never build PETSc without Fortran support, so I am not 100% sure what you will lose, but you are right, HYPRE and MUMPS will definitely be missing.
When we get the feature packages (#1205) Fortran could be made an optional dependency.
Thanks for the update, and for all your work on this!
In my opinion, it's possible to compile PETS without Fortran support and it would be great too have both versions (with Fortran and C++ only).
add options in port for petsc, no fortran
I tried to build PETSc without Fortran once and I failed at some point because some important dependency was missing. Though this is a long time ago and I am not sure what exactly the reason was and whether things have changed in recent versions of PETSc.
Anyway I have a port of PETSc in a branch at https://github.com/albertziegenhagel/vcpkg/tree/fortran-ports. The port is already written to have Fortran as optional feature, though I have never tried to build it without Fortran.
Edit: in the portfile one would have to exchange the dependency to reference-lapack by just lapack to switch from the original Fortran implementation to the one that is available in the regular set of vcpkg ports.
Albert, add please port scotch, pastix
And the question is how real to use in your fork compiler from Intel ICL instead of CL from MSVC, or from pgi pgcc
I tried to build PETSc without Fortran once and I failed at some point because some important dependency was missing. Though this is a long time ago and I am not sure what exactly the reason was and whether things have changed in recent versions of PETSc.
I have built PETSc often without Fortan (on Linux), so I think it should be straightforward, at least for the basic functionality (would have to leave out things like hypre).
@albertziegenhagel I'm fairly unfamiliar with vcpkg; how easy would it be to get a non-fortran package of PETSc into the main vcpkg? Or, do you think fortran support might be added officially soon anyway? (Do you know what is holding that up?)
I don't thing it should be to difficult. Based on my port one would just need to remove everything related to fortran and the dependencies that require fortran. Additionally I had to update the MSYS2 version that is downloaded by vcpkg. The commit for that could just be cherry-picked from my branch.
I don't think Fortran support will be integrated in main vcpkg soon. Although my current implementation works, there are multiple issues with it (e.g. problems with the fortran runtime libraries).
@albertziegenhagel
configure, no fortran, norm
--with-fortran=0 --with-fc=0 --with-windows-graphics=0 --with-x11=0
Most helpful comment
Building PETSc requires a Fortran compiler (in general). See #485 and #1098 for progress regarding Fortran support in vcpkg.
Whenever #1098 reaches a status where it can be merged I will provide port files for PETSc including BLAS/LAPACK, ScaLAPACK, METIS, ParMETIS, HYPRE, MUMPS and SuperLU_dist.