Добавить Компиляция и запуск проекта.
@@ -0,0 +1,20 @@
|
||||
SAPFOR для фортрана использует внутреннее представление исходного кода на фортране, основанное на библиотеке SAGE++, которая написана на С++ (высокоуровневый интерфейс) и С (низкоуровневая реализация). Данная библиотека используется в компиляторе Fortran-DVMH. Поэтому, чтобы не копировать проект компилятора, я использовал относительные пути для того, чтобы использовать эту библиотеку в данном проекте. Для того, чтобы выгрузить и собрать SAPFOR, необходимо сделать git clone текущего репозитория, чтобы каталоги соответствовали следующей структуре:
|
||||
|
||||
- **dvmhrepo**\dvm\fdvm\trunk\
|
||||
- **dvmhrepo**\sapfor\experts\Sapfor_2017\
|
||||
|
||||
В случае использования Windows (7 или выше) необходимо, чтобы каталоги **dvm** и **sapfor** лежали в одной папке и, желательно, обладали такой же структурой, как приведена выше, потому что под эту структуру настроены относительные пути в CMakeList по умолчанию (для смены путей необходимо модифицировать paths.txt). Для простоты использования рекомендуется выгрузить полностью каталоги dvmhrepo\dvm и dvmhrepo\sapfor в одну папку. В дальнейшем будет проще обновлять репозиторий.
|
||||
|
||||
Для создания проекта необходимо использовать **CMAKE GUI** (загрузить по [ссылке](https://cmake.org/)) для Windows (7 и выше) или CMAKE в UNIX. Основной файл CMakeList.txt находится в каталоге **dvmhrepo**\sapfor\experts\Sapfor_2017. Если структура каталогов иначе, чем предложена выше, то необходимо скопировать **paths.default.txt** в **paths.txt** и изменить значения путей на соответствующие. Проект лучше создавать в отдельной папке, например, **_bin**. Для сборки под линукс необходимо из этого каталога выполнить команду **cmake** ../ и затем **make -j**.
|
||||
|
||||
Для Windows необходимо запустить установленный CMAKE GUI, далее настроить каталог, где находится CMakeList.txt и выходной каталог проекта, куда будет собран проект. Затем выбрать Configure и Generate. Проект можно создавать под ту IDE, которая нравится, но рекомендуется Visual Studio 2019 и выше.
|
||||
|
||||
В случае успешной сборки проекта, в каталоге проекта появится исполняемый файл: **Sapfor_F.exe**. Для запуска необходимо сделать следующее: запустить парсер (Sapfor_F.exe -parse) на исходном коде на фортране, добавив флаг -spf, который включает директивы SAPFOR !\$SPF в коде программы, а также можно добавить флаг **-lgstd**, который говорит о том, что надо игнорировать !DVM\$ директивы в коде программы. Тогда запуск парсера будет выглядеть, например, так:
|
||||
|
||||
`Sapfor_F -parse -spf jac.f (или Sapfor_F -parse -spf -lgstd jac.f) `
|
||||
|
||||
После этого создастся проект **dvm.proj** и **jac.dep** файлы. Файл **dvm.proj** является текстовым и содержит список *.dep файлов (бинарные файлы), из которых состоит проект программы. В данном случае в файле dvm.proj будет только один файл jac.dep. Чтобы добавить к проекту еще один файл, необходимо к флагам парсера добавить **-a dvm.proj**. Парсер работает с каждым файлом по отдельности, то есть для многофайлового проекта необходимо вызвать парсер для каждого файла отдельно. Последние версии Sapfor_F поддерживают обработку нескольких файлов, а также простых масок, например, *.f90.
|
||||
|
||||
Для запуска SAPFOR необходим файл проекта **dvm.proj** и ***.dep** файлы. По умолчанию SAPFOR берет dvm.proj файл и начинает работу, либо надо указать с помощью опции имя файла вместо dvm.proj, в котором будет список *.dep файлов. Получить список всех опций (фаз или проходов анализа SAPFOR) можно либо по **-help**, либо просто запустив SAPFOR без параметров. Например, запуск прохода, который выполняет распараллеливание программы от и до, будет выглядеть так:
|
||||
|
||||
`Sapfor -t 13 `
|
||||
Reference in New Issue
Block a user