Samond Classes Library 1.2.6-STABLE build 219
Сборка и использование библиотеки с использованием платформы GNUstep

Оглавление

Начиная с версии 1.2.1 библиотека может быть использована для разработки программ под операционные системы, поддерживающие язык программирования Objective C и платформу GNUstep. В данном разделе документации мы приводим руководство по установке и использованию библиотеки совместно с платформой GNUstep. Раздел завершается краткими инструкциями по установке платформы GNUstep на различные операционные системы.


Список поддерживаемых платформ

На сегодняшний день библиотека поддерживает следующие операционные системы:


Требования к операционной системе

Библиотека может быть собрана и использована в операционных системах, которые поддерживают:

Также Вам могут понадобиться следующие программы:

В зависимости от операционной системы и версии платформы GNUstep может потребоваться установка или сборка дополнительного программного обеспечения.

Также в системе должны быть заданы переменные среды окружения GNUSTEP_HEADERS_PATH, SCL_HEADERS_PATH и SCL_LIBRARY_PATH в соответствии с руководством по установке GNUstep для Вашей операционной системы.


Получение исходых текстов библиотеки

Загрузить исходные тексты библиотеки можно двумя способами:

Во втором случае Вы можете загрузить либо текущую версию библиотеки, либо последнюю стабильную версию библиотеки с помощью одной из следующих команд:

svn checkout https://svn.code.sf.net/p/sclmac/code/trunk sclmac
svn checkout https://svn.code.sf.net/p/sclmac/code/stable sclmac

Сборка и установка библиотеки

После загрузки перейдите в каталог с исходным кодом библиотеки и выполните команду:

gmake

Если в ходе компиляции появятся сообщения об ошибках или предупреждениях, это может означать следующее:

После завершения компиляции выполните установку библиотеки с помощью команды:

gmake install

Проверка совместимости данных

В состав библиотеки входит утилита тестирования libtest, которая выполняет проверку совместимости нашего кода с используемыми архитектурой и операционной системой. Данная утилита находится в каталоге tests/libtest. В связи с тем, что в промежуточных версиях данная утилита может отличаться от релизной версии, приводим исходный текст основного модуля:

#import <Foundation/Foundation.h>
#import <scl/scl.h>
#import "SCTestCases.h"
#import "SCTestDelegate.h"
#import "SCTestClass.h"
int main (int argc, const char * argv[]) {
NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
@try {
// Run all compatibility test cases
SCTestCases *testCases = [SCTestCases testCases];
[testCases runTestCases];
}
@catch (SCException *error) {
NSLog( @"%@", error.description);
NSLog( @"========================================================================");
NSLog( @"Error Code: %d", error.code);
NSLog( @"Error ID: %@", error.eid);
NSLog( @"========================================================================");
}
@catch (NSException *error) {
NSLog( @"%@", error.description);
NSLog( @"========================================================================");
NSLog( @"Error name: %@", error.name);
NSLog( @"Error reason: %@", error.reason);
NSLog( @"User info: %@", error.userInfo);
}
[pool drain];
return 0;
}

Для сборки и запуска утилиты выполните следующие команды:

cd tests/libtest
gmake
obj/libtest

Утилита выполняет последовательность тестов, результатом каждого из которых является OK или FAILED. Архитектура и операционная система считаются совместимыми с библиотекой, если результатами всех тестов является значение OK. Если какой-либо тест возвращает значение FAILED, мы рекомендуем данный результат отправить нам по адресу samon.nosp@m.d@ma.nosp@m.c.com.

Посмотреть результаты тестирования библиотеки с различными системами и архитектурами Вы можете по следующим ссылкам:


Использование библиотеки

Для использования библиотеки Вам необходимо выполнить следующие действия:

Внимание! Если Вы используете другие библиотеки, не забудьте включить их в директиву ADDITIONAL_OBJC_LIBS.

Приводим пример GNUmakefile для простой программы, состоящей из нескольких исходных файлов:

include $(GNUSTEP_MAKEFILES)/common.make
include $(SCL_HEADERS_PATH)/scl.make
TOOL_NAME = libtest
libtest_OBJCFLAGS += -Wno-objc-protocol-method-implementation
libtest_HEADERS = SCTestCases.h SCTestDelegate.h SCTestClass.h
libtest_OBJC_FILES = SCTestCases.m SCTestDelegate.m SCTestClass.m libtest.m
libtest_RESOURCE_FILES =
ADDITIONAL_OBJC_LIBS += -lscl
include $(GNUSTEP_MAKEFILES)/tool.make

Установка платформы GNUstep

В данном разделе мы приводим краткое руководство по установке и настроке платформы GNUstep и других необходимых компонентов под протестированные нами операционные системы. Полное руководство по установке платформы Вы можете найти на официальном сайте разработчика. Подробные инструкции по установке других компонентов Вы можете найти в руководстве по операционной системе или в документации на данные компоненты.


FreeBSD

Для установки платформы GNUstep и дополнительного программного обеспечения в операционной системе FreeBSD мы рекомендуем использовать встроенную систему управления пакетами, поскольку сборка из портов или исходников занимает очень много времени. Чтобы установить минимально необходимое программное обеспечение, выполните следующие команды:

pkg install gnustep
pkg install gmake
pkg install subversion

После завершения установки необходимо выполнить настройку GNUstep:


DragonFly BSD

Для установки GNUstep в операционной системе DragonFly BSD необходимо выполнить следующие команды:

pkg install clang38
pkg install gnustep
pkg install gmake
pkg install subversion

После завершения установки необходимо выполнить настройку GNUstep:


PCBSD/TrueOS

Операционная система TrueOS (ранее называвшаяся PCBSD) может быть установлена в двух вариантах:

Для установки GNUstep в системе с графическим интерфейсом необходимо выполнить следующий набор команд:

pkg install gnustep
pkg install gmake

Установка в серверном варианте системы требует исполнения следующих команд:

pkg install subversion
pkg install gnustep
pkg install gmake

После завершения установки необходимо выполнить настройку GNUstep:


OpenBSD

Перед установкой платформы GNUstep в операционной системе OpenBSD необходимо настроить переменную среды окружения PKG_PATH для задания доступа к репозиторию пакетов:

В данных примерах необходимо указывать следующие данные вместо параметров X.X и YYYY:

X.X - номер версии OpenBSD, например 6.1
YYYY - идентификатор архитектуры системы, например i386 или amd64

Установка платформы осуществляется через выполнение следующих команд:

pkg_add subversion
pkg_add gmake
pkg_add gnustep-make
pkg_add gnustep-base
pkg_add gnustep-gui
pkg_add gnustep-back
pkg_add llvm
mkdir -p /usr/local/Local/Library
ln -s /usr/local/include /usr/local/Local/Library/Headers
ln -s /usr/local/lib /usr/local/Local/Library/Libraries

После завершения установки необходимо выполнить настройку GNUstep:


NetBSD

Первоначально в операционной системе NetBSD мы планировали использовать GNUstep из пакетов в составе системы, однако в ходе тестирования выяснилось, что данная версия платформы сильно урезана - в ее состав не входит Objective C 2.0, поэтому не работает ряд необходимых функций. В связи с этим установку самой платформы необходимо производить из ее исходных текстов.

Перед установкой необходимо настроить переменную среды окружения PKG_PATH для задания доступа к репозиторию пакетов:

Параметры из вышеприведенных примеров определяют следующие настройки:

XXXX - идентификатор архитектуры системы, например i386 или amd64
Y.Y - номер версии NetBSD, например 7.1

Перед установкой платформы устанавливаем минимально необходимые пакеты:

pkg_add gmake
pkg_add subversion
pkg_add fetch
pkg_add libiconv
pkg_add libxslt
pkg_add gnutls
pkg_add icu
pkg_add jpeg
pkg_add tiff
pkg_add clang

Для установки самой платформы необходимо настроить переменные среды окружения CC и LD_LIBRARY_PATH:

Внимание! Если Вам необходимо указать несколько путей в переменной LD_LIBRARY_PATH, путь /usr/local/lib должен быть указан первым, в противном случае могут возникнуть проблемы с линковкой исполняемых файлов.

Из исходных текстов должны быть собраны следующие компоненты платформы GNUstep:

gnustep-make
libobjc2
gnustep-base
gnustep-gui
gnustep-back

Внимание! После сборки и установки библиотеки libobjc2 необходимо еще раз сконфигурировать и установить пакет gnustep-make.

Приводим пример загрузки и сборки данных компонентов:

fetch ftp://ftp.gnustep.org/pub/gnustep/core/gnustep-make-2.7.0.tar.gz
tar -xvzf gnustep-make-2.7.0.tar.gz
cd gnustep-make-2.7.0
./configure
gmake install
cd ..
fetch https://github.com/gnustep/libobjc2/archive/v1.8.1.tar.gz
tar -xvzf v1.8.1.tar.gz
cd libobjc2-1.8.1
gmake
gmake install
cd gnustep-make-2.7.0
./configure
gmake install
cd ..
fetch ftp://ftp.gnustep.org/pub/gnustep/core/gnustep-base-1.25.0.tar.gz
tar -xvzf gnustep-base-1.25.0.tar.gz
cd gnustep-base-1.25.0
./configure
gmake
gmake install
cd ..
fetch ftp://ftp.gnustep.org/pub/gnustep/core/gnustep-gui-0.25.1.tar.gz
tar -xvzf gnustep-gui-0.25.1.tar.gz
cd gnustep-gui-0.25.1
./configure
gmake
gmake install
cd ..
fetch ftp://ftp.gnustep.org/pub/gnustep/core/gnustep-back-0.25.1.tar.gz
tar -xvzf gnustep-back-0.25.1.tar.gz
cd gnustep-back-0.25.1
./configure
gmake
gmake install
cd ..

После завершения установки необходимо выполнить настройку GNUstep:


Debian Linux

Для установки GNUstep в операционной системе Debian Linux загрузите и запустите один из следующих скриптов:

Скрипт загрузит и установит все необходимые пакеты.

После завершения установки необходимо выполнить настройку GNUstep:


Fedora Linux

Для установки GNUstep в операционной системе Fedora Linux загрузите и запустите один из следующих скриптов:

Скрипт загрузит и установит все необходимые пакеты.

После завершения установки необходимо выполнить настройку GNUstep:


Arch Linux

Для установки GNUstep в операционной системе Arch Linux загрузите и запустите скрипт:

Скрипт загрузит и установит все необходимые пакеты.

После завершения установки необходимо выполнить настройку GNUstep:


Red Hat Enterprise Server

Для установки GNUstep в операционной системе Red Hat Enterprise Server загрузите и запустите скрипт:

Скрипт загрузит и установит все необходимые пакеты.

После завершения установки необходимо выполнить настройку GNUstep:


Oracle Linux

Для установки GNUstep в операционной системе Oracle Linux загрузите и запустите один из скриптов:

Скрипт загрузит и установит все необходимые пакеты.

После завершения установки необходимо выполнить настройку GNUstep:


Ubuntu Linux

Для установки GNUstep в операционной системе Ubuntu версии 17.04 загрузите и запустите один из следующих скриптов:

Скрипт загрузит и установит все необходимые пакеты.

После завершения установки необходимо выполнить настройку GNUstep: