Главная  /  Правка версии 2  /  Правка версии 3  /   /  Область пользователей

Отличия "Как собрать CppCMS 1.x.x" вер. 2 сравн. вер. 3

Содержимое:

- [Требования](#req)
- [Получение библиотек](#get)
- [Процесс сборки](#bld)
- [Опции сборки](#opt)
- [Примеры](#examples)
- [Операционные системы POSIX](#posix)
- [Microsoft Windows](#win32)
- [Кросс-компиляция](#cross)
## <span id="req"></span>Требования
Для сборки CppCMS Вам потребуется:
_Обязательные требования_
- Современный C++ компилятор -- GCC, MSVC 9, Intel. См. [поддерживаемые компиляторы и платформы](/wikipp/en/page/cppcms_1x_platforms)
- CMake 2.6 и выше.
- ICU Library 3.6 и выше.
- Python 2.4
- Клиент Subversion для получения исходников.
_Рекомендуемые зависимости_
- библиотека gcrypt -- для поддержки зашифрованных cookies сессий.
_Предлагаемые_
- библиотека iconv (если libc не пркдусматривает интерфейс iconv)
- библиотека iconv (если libc не предусматривает интерфейс iconv)
## <span id="get"></span>Получение библиотек
Вам потребуется Subversion для получения исходников:
svn co http://cppcms.svn.sourceforge.net/svnroot/cppcms/framework/branches/refactoring cppcms
И затем распакуйте cppcms_boost.tar.bz
cd cppcms
tar -xjf cppcms_boost.tar.bz
_Примечание:_ Под Windows для распаковки этого файла Вы можете использовать 7zip.
## <span id="bld"></span>Процесс сборки
Перейдите в созданную директорию cppcms, создайте директорию build и перейдите в нее:
mkdir build
cd build
Теперь сконфигурируйте библиотеку с CMake
cmake ..
или
cmake various_build_options ..
Затем выполните
make
make test
make install
## <span id="opt"></span>Опции сборки
- `-DDISABLE_STATIC=ON` -- отключить сборку статической версии библиотеки cppcms
- `-DDISABLE_SHARED=ON` -- отключить сборку совместно используемой версии библиотеки cppcms
- `-DDISABLE_ICONV=ON` -- отключить использование iconv (вместо него будет использоваться ICU)
- `-DDISABLE_GCRYPT=ON` -- отключить использование библиотеки gcrypt. Поддержка зашифрованных cookies для сессий перестанет быть доступна (будут использоваться только подписанные)
- `-DDISABLE_FCGI=ON` -- сборка без FastCGI API сервера.
- `-DDISABLE_SCGI=ON` -- сборка без SCGI API сервера.
- `-DDISABLE_HTTP=ON` -- сборка без внутреннего HTTP сервера.
_Опции пользовательского релиза:_ Добавляют суффикс "-c" к названию библиотеки. API и ABI библиотеки потеряют совместимость со стандартными сборками и не будет поддерживаться обратная совместимость с ABI.
- `-DUSE_STD_LOCALES=ON` -- использовать не ICU длялокализацию, а локализацию основанную C++ `std::locale` -- множество новшеств локализации не будут доступны, но это может оказаться полезным для встроенных сборок.
- `-DUSE_EXTERNAL_BOOST=ON` -- компиляция и линковка с внешней библиотекой boost вместо внутренней (требуется Boost 1.36 и выше).
- `-DBOOST_SUFFIX=suffix` -- суффикс библиотеки Boost, к которой Вы собираетесь компоноваться (при использовании внешней Boost). Отмечу, что это важно для MSVC-сборок, где debug- и release-сборки несовместимы. Например: `-DBOOST_SUFFIX=msvc9-mt-d`
_Общие полезные опции CMake:_
- `-DCMAKE_BUILD_TYPE=(Debug|Release|RelWithDebInfo|MinSizeRel)` -- тип релиза. По-умолчанию - RelWithDebInfo, в отличие от использования MSVC, где по-умолчанию - Debug.
- `-DCMAKE_INCLUDE_PATH=/path/to/include` -- путь к расположению заголовочных файлов библиотек, определите его для нахождения заголовочных файлов библиотек, утановленных в нестандартном расположении. Вы почти всегда должны определять его под Windows.
- `-DCMAKE_LIBRARY_PATH=/path/to/lib` -- путь к расположению библиотек, определите его для нахождения библиотек, установленных в нестандартном расположении. Вы почти всегда должны определять его под Windows.
- `-DCMAKE_INSTALL_PREFIX=/usr/local` -- Префикс (путь) установки (аналогично autoconf --prefix). По-умолчанию - /usr/local
## <span id="examples"></span>Примеры
### <span id="posix"></span>Операционные системы POSIX
Предполагается, что вы в терминале и директории сборки, расположенной внутри исходников CppCMS.
Сборка в Linux, FreeBSD и Cygwin:
cmake ..
make
make test
make install
Сборка в OpenSolaris с SunStudio
CC=suncc CXX=sunCC cmake ..
make
make test
make install
Сборка в OpenSolaris с GCC и ICU, установленным в /opt/icu
cmake -DCMAKE_INCLUDE_PATH=/opt/icu/include -DCMAKE_LIBRARY_PATH=/opt/icu/lib ..
make
make test
make install
### <span id="win32"></span>Mircosoft Windows
Предполагается, что ICU установлен в `c:\\icu` и исходники расположены в `d:\\projects\\cppcms`
_Примечание:_ Требйется установка корректных значений перименной окружения PATH, чтобы система нашла все нужные ей DLL.
В cmd.exe:
set PATH=c:\icu\lib;%PATH%
set PATH=d:\projects\cppcms\build\cppcms_boost;%PATH%
В bash:
export PATH=/c/icu/lib:"$PATH"
export PATH=/d/projects/cppcms/build:"$PATH"
_Сборки MinGW:_
Откройте Shell-терминал MinGW
cmake -G "MSYS Makefiles" -DCMAKE_INCLUDE_PATH=c:/icu/include -DCMAKE_LIBRARY_PATH=c:/icu/lib -DCMAKE_INSTALL_PREFIX=c:/mingw ..
make
make test
make install
_Сборки MSVC:_
Откройте Shell-терминал MSVC (All Programs > Microsoft Visual Studio 2008 > Visual Studio Tools > Visual Studio 2008 Command Prompt)
cmake -G "NMake Makefiles" -DCMAKE_INCLUDE_PATH=c:/icu/include -DCMAKE_LIBRARY_PATH=c:/icu/lib -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=c:/cppcms ..
nmake
nmake test
nmake install
### <span id="cross"></span>Кросс-компиляция
Сборка - это обычная процедура кросс-компиляции CMake. Для дополнительной информации прочтите <http://www.cmake.org/Wiki/CMake_Cross_Compiling>
Предоставим пример для ARM под Linux, без ICU.
Создайте ToolChain.cmake
SET(CMAKE_SYSTEM_NAME Linux)
SET(CMAKE_C_COMPILER /usr/bin/arm-linux-gnueabi-gcc)
SET(CMAKE_CXX_COMPILER /usr/bin/arm-linux-gnueabi-g++)
SET(CMAKE_FIND_ROOT_PATH /usr/arm-linux-gnueabi)
SET(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
SET(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
SET(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
Сконфигурируйте
cmake -DCMAKE_TOOLCHAIN_FILE=ToolChain.cmake -DUSE_STD_LOCALES=ON -DCMAKE_ISTALL_PREFIX=/usr/arm-linux-eabi ..
make
make install

Проект

CppCMS является основой веб-разработки для выполнения ресурсоемких приложений.

Размещение

SourceForge.net Logo

Поддержать проект

CppCMS needs You


Навигация

Главная страница


Валидация CSS | Валидация XHTML 1.0