-
Notifications
You must be signed in to change notification settings - Fork 68
GSoC 2021 Project ideas
Related issues: #69, #241, #268
WIP: #269
Potential related issues: #27, #68
Cross-platform solution for file system operations.
WIP implementation: stdlib_os
Cross-platform solution to abstract POSIX and Windows API for creating subprocesses.
Discourse discussion: https://fortran-lang.discourse.group/t/ideas-for-command-module/439
Aim of this project is to implement version constraint resolution in the dependency tree of an fpm project.
Libraries:
-
libsolv:
interface via
iso_c_binding
as separate fpm package
Different version matching syntax available:
Support for preprocessors which are not built-in to the compiler should be provided by fpm. A manifest syntax should be developed and implemented as additional (optional) step in the fpm build backend.
The package manifest preferably allows:
- to quickly select established preprocessors (fypp, fpp, ...)
- to define preprocessor variables in a preprocessor independent way
- to define a custom preprocessor
- to select the file suffixes to be preprocessed
Selection of preprocessing should happen on per project basis, i.e. multiple preprocessors might be required. The preprocessor is usually external to fpm and fpm must be able to report useful errors for missing preprocessors.
Related issues:
-
#78: support for third-party preprocessors (e.g. fypp)
-
#308: Fortran-based smart code generation in fpm
Aim of this project is it to create a manifest specification to provide defaults to executable targets in fpm projects. Information can be passed as environment variables, command line arguments or as runner.
- programs should have a way to find resources of which the relative position within the project source directory is known
- the current binary directory to access other targets within a project
- default runners like mpirun/cafrun or scripts from test frameworks should be usable to launch programs
- a general syntax to define environment variables and command line arguments should be defined
Some features should be implemented directly in fpm, while more elaborated functionality could be implemented in a separate fpm package as offical fortran-lang fpm package.
Mentors: Sebastian Ehlert (@awvwgk)
Related issues: #179
Related discussions: #328
Aim of this project is to enable fpm to create source code distributions of itself that can be bootstrapped without fpm.
- allow fpm to generate source code distributions with non-fpm build systems
- generated source code distribution should allow to build fpm project without fpm, git or internet access
- potential third-party build systems are CMake and meson
- allows easier distribution and packaging of fpm via various packaging ecosystems
Mentors: Sebastian Ehlert (@awvwgk)