142 lines
8.0 KiB
Markdown
142 lines
8.0 KiB
Markdown
# fortrun
|
||
|
||
"Fortran" + "run" = fortrun
|
||
|
||
Утилита для альтернативного способа запуска устаревших Fortran проектов в любимых редакторах. Разработано специально для студентов МАИ, чтобы избавить их от необходимости разрабатывать в устаревших программах без прикольных фич.
|
||
|
||
**Attention!** Данная программа не решит за вас нужные работы, но избавит от лишней головной боли в войне с устаревшим Fortran.
|
||
|
||
## Требования
|
||
|
||
- **Windows 10 и выше** (программа может работать и с ранними версиями, но не проверялась)
|
||
- **Microsoft PowerStation 4.0** - Без него программа не заработает, т.к. в нем содержится нужный компилятор и линкер. В ином случае, программа предупредит вас об отсутствии нужных файлов и откажется сотрудничать.
|
||
- **[Visual Studio Code](https://code.visualstudio.com/)** (или любой другой редактор с терминалом, либо ручками)
|
||
- Хотя бы небольшое количество прямых лапок и терпение
|
||
|
||
## Установка
|
||
|
||
### Способ для ленивых
|
||
Вы можете пропустить нюансы, установив ПО используя [последнюю версию установщика (fortrun-setup.exe)](https://git.dj-haski.ru/Dj_Haski/fortrun/releases).
|
||
|
||
После установки можете переходить сразу к **Использованию**.
|
||
|
||
### Способ для умных и прекрасных
|
||
|
||
Вам будет необходим **Poetry** ([установка](https://python-poetry.org/docs/)) и **Python 3.10+** ([установка](https://www.python.org/downloads/)).
|
||
|
||
Склонируйте репозиторий и перейдите в его папку:
|
||
|
||
```bash
|
||
$ git clone https://git.dj-haski.ru/Dj_Haski/fortrun
|
||
Cloning into 'fortrun'...
|
||
...
|
||
$ cd fortrun/
|
||
```
|
||
|
||
Установите пакеты **Poetry**:
|
||
|
||
```bash
|
||
$ poetry install
|
||
```
|
||
|
||
Запустите файл **main.py** с нужными параметрами:
|
||
|
||
```bash
|
||
$ poetry run main.py --help
|
||
# либо сразу
|
||
$ poetry run main.py build FA.F90 VAP4.F90 bm_nlp-msdev.lib --run --friendly
|
||
```
|
||
|
||
Для сборки установщика необходим [**Inno Setup**](https://jrsoftware.org/isinfo.php):
|
||
|
||
```bash
|
||
$ /путь/до/innosetup/ISCC.exe .\setup.iss /Ffortrun-setup /Odist
|
||
```
|
||
|
||
Бинго, вы прекрасны! Дальше по накатанной.
|
||
|
||
## Использование
|
||
|
||
### Подготовка для Visual Studio Code
|
||
|
||
Эта часть подразумевает, что вы установили ПО используя установщик.
|
||
|
||
1) Запустите **Visual Studio Code**
|
||
2) Откройте папку, где будут тусоваться ваши исходные файлы: *Файл -> Открыть папку...*
|
||
3) Создайте терминал, если его нет внизу: *Терминал -> Новый терминал*
|
||
4) Используйте перечисленные команды ниже, чтобы достичь нужного результата.
|
||
|
||
### Подготовка для умных и прекрасных
|
||
|
||
Если вы пошли сложным путем, то вам необходимо самостоятельно добавить `main.py` в PATH и настроить Windows для работы с `.py` файлами.
|
||
|
||
Либо же вызывать программу таким образом:
|
||
|
||
```bash
|
||
$ python c:/путь/до/файла/main.py ...
|
||
```
|
||
|
||
### Примеры команд (для лабораторных)
|
||
|
||
Сразу оговорюсь, если у вас ничего не происходит после запуска, то вам необходимо нажать `ENTER`, так как скорее всего у вас стоит `PAUSE` в конце программы.
|
||
|
||
#### Запуск в дружелюбном режиме
|
||
|
||
Данная команда соберет два нужных файла + библиотеку, запустит её в "дружелюбном" режиме и превратит сложные отображения цифр (.19375D+01 или -.22352D-07) в простые (0.3959 или -0.00008).
|
||
|
||
Учтите, что в собранной программе не будет дружелюбного отображения, так как этим занимается `fortrun`.
|
||
|
||
```bash
|
||
$ fortrun build FA.F90 VAP4.F90 bm_nlp-msdev.lib --run --friendly
|
||
```
|
||
|
||
#### Запуск в обычном режиме
|
||
|
||
Данная команда соберет два нужных файла + библиотеку и запустит её в обычном режиме.
|
||
|
||
```bash
|
||
$ fortrun build FA.F90 VAP4.F90 bm_nlp-msdev.lib --run
|
||
```
|
||
|
||
#### Сборка файла
|
||
|
||
Данная команда соберет два нужных файла + библиотеку в файл под названием "lab2.exe".
|
||
|
||
```bash
|
||
$ fortrun build FA.F90 VAP4.F90 bm_nlp-msdev.lib --friendly --output lab2.exe
|
||
```
|
||
|
||
### Документация по параметрам
|
||
|
||
Помощь доступна через команду `fortrun --help`.
|
||
|
||
- **fortrun version** - Просто выводит версию. И всё.
|
||
- **fortrun build** - Основная команда для компиляции и линковки файлов + библиотек, флаги представлены ниже (использовать так: `fortrun --флаг --флаг2 что-то --флаг`).
|
||
- **--output [ФАЙЛ]** - Собрать всё в указанный файл.
|
||
- **--run** - Запустить программу сразу после сборки.
|
||
- **--friendly** - Работает только с `--run`. Заменять представления чисел Fortran на человекочитаемые.
|
||
- **--clean** - Очистить папку сборки после компиляции.
|
||
- **--pause** - Поставить программу на паузу после выполнения. Полезно в некоторых сценариях.
|
||
|
||
## FAQ (Часто задаваемые вопросы)
|
||
|
||
| **У меня пишутся какие-то "warning: ", это нормально?**
|
||
|
||
Да. Скорее всего, на это не стоит обращать внимания, так как в лабораторных встречались такие сценарии, которые никак не влияют на работу.
|
||
|
||
| **Что значит ошибка "Looks like compilation or linking failed. Perhaps you forgot to add some libraries or some source files? Check your source code and try again."**
|
||
|
||
Вероятно, вы просто напросто забыли подключить нужную библиотеку (например: `bm_nlp-msdev.lib`), поэтому линкер не смог закончить свою работу. Гляньте на примеры.
|
||
|
||
| **fortrun вылетает со странной ошибкой**
|
||
|
||
Свяжитесь со мной по почте, указанной ниже. Не забудьте приложить скриншот проблемы.
|
||
|
||
## Контакты
|
||
|
||
В случае обнаружения бага или при наличии интересного предложения, свяжитесь со мной по почте:
|
||
```
|
||
me@dj-haski.ru
|
||
```
|
||
|
||
Вопросы не касающиеся работы `fortrun` (этой проги), в 90% случаев остануться без ответа, ищите решение ошибок Fortran и лабораторных самостоятельно :) |