{"action":"created","issue":{"url":"https://api.github.com/repos/Microsoft/vcpkg/issues/485","repository_url":"https://api.github.com/repos/Microsoft/vcpkg","labels_url":"https://api.github.com/repos/Microsoft/vcpkg/issues/485/labels{/name}","comments_url":"https://api.github.com/repos/Microsoft/vcpkg/issues/485/comments","events_url":"https://api.github.com/repos/Microsoft/vcpkg/issues/485/events","html_url":"https://github.com/Microsoft/vcpkg/issues/485","id":198484436,"number":485,"title":"Fortran support","user":{"login":"albertziegenhagel","id":6369416,"avatar_url":"https://avatars.githubusercontent.com/u/6369416?v=3","gravatar_id":"","url":"https://api.github.com/users/albertziegenhagel","html_url":"https://github.com/albertziegenhagel","followers_url":"https://api.github.com/users/albertziegenhagel/followers","following_url":"https://api.github.com/users/albertziegenhagel/following{/other_user}","gists_url":"https://api.github.com/users/albertziegenhagel/gists{/gist_id}","starred_url":"https://api.github.com/users/albertziegenhagel/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/albertziegenhagel/subscriptions","organizations_url":"https://api.github.com/users/albertziegenhagel/orgs","repos_url":"https://api.github.com/users/albertziegenhagel/repos","events_url":"https://api.github.com/users/albertziegenhagel/events{/privacy}","received_events_url":"https://api.github.com/users/albertziegenhagel/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":1,"created_at":"2017-01-03T14:23:08Z","updated_at":"2017-01-03T16:10:53Z","closed_at":null,"body":"There are some port requests on the tracker that require a Fortran compiler to compile the respective libraries (#23, #233). I want to create this issue to start a discussion on how Fortran support could be brought to vcpkg.\r\n\r\nSince Visual Studio does not come with a Fortran compiler, on Windows one usually uses one of the following\r\n\r\n- Intel Fortran (ifort)\r\n- gfortran through MinGW/MSYS\r\n\r\nIntel Fortran is proprietary and thus may not be available for everyone but it has a nice Visual Studio integration which makes it pretty straight forward to consume libraries compiled with ifort from within Visual Studio.\r\n\r\ngfortran on the other hand is free but does not have an integration into Visual Studio. In general one uses MinGW/MSYS to compile fortran libraries for windows when using gfortran. This comes with some implications:\r\n\r\n- one can not use the Visual Studio generator in CMake but instead has to use some makefile system that is supported by MSYS (GNU Makefiles in general). As far as I know there is a special branch of ninja with fortran support maintained by kitware (https://github.com/Kitware/ninja) but I have no experience in using it and do not know how far the implementation is.\r\n- The compiled libraries will be linked against the gcc and gfortran runtime libraries provided by MinGW.\r\n- When compiling projects that include both Fortran and C or C++ code gcc/g++ is used to compile the C/C++ code instead of Visual C++.\r\n\r\nSo the first question would be which version should implemented in vcpkg:\r\n\r\n1. Intel Fortran (in my opinion more easy to implement)\r\n2. gfortran (may be preferred since it is free)\r\n3. both (choice is always the best solution. Triplets could be used to determine which toolset to use)\r\n\r\nI do not have a lot of experience in using gfortran on windows but I do have a port for netlib blas+lapack (http://www.netlib.org/lapack/) which works with some minor additional modifications to vcpkg itself when using Intel Fortran.\r\n"},"comment":{"url":"https://api.github.com/repos/Microsoft/vcpkg/issues/comments/270150926","html_url":"https://github.com/Microsoft/vcpkg/issues/485#issuecomment-270150926","issue_url":"https://api.github.com/repos/Microsoft/vcpkg/issues/485","id":270150926,"user":{"login":"traversaro","id":1857049,"avatar_url":"https://avatars.githubusercontent.com/u/1857049?v=3","gravatar_id":"","url":"https://api.github.com/users/traversaro","html_url":"https://github.com/traversaro","followers_url":"https://api.github.com/users/traversaro/followers","following_url":"https://api.github.com/users/traversaro/following{/other_user}","gists_url":"https://api.github.com/users/traversaro/gists{/gist_id}","starred_url":"https://api.github.com/users/traversaro/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/traversaro/subscriptions","organizations_url":"https://api.github.com/users/traversaro/orgs","repos_url":"https://api.github.com/users/traversaro/repos","events_url":"https://api.github.com/users/traversaro/events{/privacy}","received_events_url":"https://api.github.com/users/traversaro/received_events","type":"User","site_admin":false},"created_at":"2017-01-03T16:10:53Z","updated_at":"2017-01-03T16:10:53Z","body":"As discussed in https://github.com/Microsoft/vcpkg/issues/233, at least initially I am for using Intel Fortran. However, I fear that requiring all the `vcpkg` users that want to install Fortran-dependent ports to buy the Intel Fortran compiler is a too much limiting. A possible workaround is to upload the binaries produced using Intel Fortran to a website and then let the port download them in binary form, as it is already done for ports such as `tbb`. \r\n\r\nPerhaps Microsoft could provide some support for hosting such binaries produced by the community? @ras0219-msft @alexkaratarakis "}}
{"actor":{"display_login":"traversaro"}}