Installing CMake on macOS using Homebrew
If you already have Homebrew installed skip to step 5
Homebrew is a command line package manager of macOS.
- Open the “Terminal” application
- Paste the following string from the brew.sh website into the window and press “Return” (⮐):
- You will be asked to confirm the installation and enter your administrator password for your computer
- After Homebrew is installed you should see the $ prompt again
- Install CMake by pasting the following into your command line:
- Homebrew will now install CMake
- After CMake is installed you should see the $ prompt again
Источник
Cmake для mac os
CMake is a cross-platform, open-source build system generator. For full documentation visit the CMake Home Page and the CMake Documentation Page. The CMake Community Wiki also references useful guides and recipes.
CMake is maintained and supported by Kitware and developed in collaboration with a productive community of contributors.
CMake is distributed under the OSI-approved BSD 3-clause License. See Copyright.txt for details.
- Microsoft Windows
- Apple macOS
- Linux
- FreeBSD
- OpenBSD
- Solaris
- AIX
Other UNIX-like operating systems may work too out of the box, if not it should not be a major problem to port CMake to this platform. Please post to the CMake Discourse Forum to ask if others have had experience with the platform.
Building CMake from Scratch
You need to have a C++ compiler (supporting C++11) and a make installed. Run the bootstrap script you find in the source directory of CMake. You can use the —help option to see the supported options. You may use the —prefix= option to specify a custom installation directory for CMake. Once this has finished successfully, run make and make install .
For example, if you simply want to build and install CMake from source, you can build directly in the source tree:
Or, if you plan to develop CMake or otherwise run the test suite, create a separate build tree:
There are two ways for building CMake under Windows:
Compile with MSVC from VS 2015 or later. You need to download and install a binary release of CMake. You can get these releases from the CMake Download Page. Then proceed with the instructions below for Building CMake with CMake.
Bootstrap with MinGW under MSYS2. Download and install MSYS2. Then install the required build tools:
and bootstrap as above.
Building CMake with CMake
You can build CMake as any other project with a CMake-based build system: run the installed CMake on the sources of this CMake with your preferred options and generators. Then build it and install it. For instructions how to do this, see documentation on Running CMake.
To build the documentation, install Sphinx and configure CMake with -DSPHINX_HTML=ON and/or -DSPHINX_MAN=ON to enable the «html» or «man» builder. Add -DSPHINX_EXECUTABLE=/path/to/sphinx-build if the tool is not found automatically.
Источник
Installing CMake
There are several ways to install CMake, depending on your platform.
Windows
There are pre-compiled binaries available on the Download page for Windows as MSI packages and ZIP files. The Windows installer has an option to modify the system PATH environment variable. If that is not selected during installation, one may manually add the install directory (e.g. C:\Program Files\CMake\bin) to the PATH in a command prompt.
One may alternatively download and build CMake from source. The Download page also provides source releases. In order to build CMake from a source tree on Windows, you must first install the latest binary version of CMake because it is used for building the source tree. Once the binary is installed, run it on CMake as you would any other project. Typically this means selecting CMake as the Source directory and then selecting a binary directory for the resulting executables.
macOS
There are pre-compiled binaries available on the Download page for macOS as disk images and tarballs. After copying CMake.app into /Applications (or a custom location), run it and follow the “How to Install For Command Line Use” menu item for instructions to make the command-line tools (e.g. cmake) available in the PATH. Or, one may manually add the install directory (e.g. /Applications/CMake.app/Contents/bin) to the PATH.
One may alternatively download and build CMake from source as in the following section.
Linux, UNIX
There are pre-compiled binaries available on the Download page for some UNIX platforms. One may alternatively download and build CMake from source. The Download page provides source releases. There are two possible approaches for building CMake from a source tree. If there is no existing CMake installation, a bootstrap script is provided:
(Note: the make install step is optional, cmake will run from the build directory.)
By default bootstrap will build CMake without any debug or optimization flags. To enable optimizations you will need to specify the CMAKE_BUILD_TYPE option to bootstrap like this: ./bootstrap — -DCMAKE_BUILD_TYPE:STRING=Release
For more options with bootstrap, run ./bootstrap —help .
Or, an existing CMake installation can be used to build a new version:
(Note: the make install step is optional, cmake will run from the build directory.) If you are not using the GNU C++ compiler, you need to tell the bootstrap script (or cmake) which compiler you want to use. This is done by setting the environment variables CC and CXX before running it. For example:
Download Verification
Each release on the Download page comes with a file named cmake-$version-SHA-256.txt, where $version is the release version number.
One may use this file to verify other downloads, such as the source tarball. For example:
The SHA-256 file itself can be verified by GPG signature:
The GPG key C6C265324BBEBDC350B513D02D2CEF1034921684 is a signing subkey whose expiry is updated yearly.
Источник
1.5 Компиляция SFML с помощью CMake
От переводчика: данная статья является пятой в цикле переводов официального руководства по библиотеке SFML. Прошлую статью можно найти тут. Данный цикл статей ставит своей целью предоставить людям, не знающим язык оригинала, возможность ознакомится с этой библиотекой. SFML — это простая и кроссплатформенная мультимедиа библиотека. SFML обеспечивает простой интерфейс для разработки игр и прочих мультимедийных приложений. Оригинальную статью можно найти тут. Начнем.
1. Приступая к работе
- Рисование 2D объектов
- Спрайты и текстуры
- Текст и шрифты
- Формы
- Проектирование ваших собственных объектов с помощью массивов вершин
- Позиция, вращение, масштаб: преобразование объектов
- Добавление специальных эффектов с шейдерами
- Контроль 2D камеры и вида
5. Модуль Audio
- Проигрывание звуков и музыки
- Запись аудио
- Пользовательские потоки аудио
- Спатиализация: звуки в 3D
6. Модуль Network
- Коммуникация с использованием сокетов
- Использование и расширение пакетов
- Веб-запросы с помощью HTTP
- Передача файлов с помощью FTP
Вступление
Название этой статьи может ввести в заблуждение. Вы не будете компилировать SFML с помощью CMake, потому что CMake не является компилятором. Итак, чем же является CMake?
CMake — это кроссплатформенная система автоматизации сборки программного обеспечения из исходного кода. Вместо сборки SFML, она собирает то, что собирает SFML: решение Visual Studio, проект Code::Blocks, make-файлы Linux, проект XCode и так далее. Фактически она может генерировать файлы сборки или проекта для любой операционной системы или компилятора на ваш выбор. CMake чем-то похожа на autoconf/automake или premake.
CMake используется многими проектами, включая Blender, Boost, KDE, и Ogre. Вы можете прочитать больше о CMake на официальном веб-сайте или на ее странице в википедии.
Как вы могли ожидать, эта статья разделена на две части:
- Генерация конфигурационного файла сборки с использованием CMake
- Сборка SFML и набора средств разработки с использованием данного конфигурационного файла
Установка зависимостей
SFML зависит от некоторых библиотек, так что, прежде чем приступать к конфигурированию, вы должны их удовлетворить.
На Windows и Mac OS X все зависимости SFML поставляются вместе с ней, так что вам не придется ничего скачивать/устанавливать. Сборка будет работать «из коробки».
Однако в Linux никакие зависимости не удовлетворены заранее, так что вам придется установить все зависимости. Вот список зависимостей, которые необходимо удовлетворить перед сборкой SFML:
- freetype
- jpeg
- x11
- xrandr
- xcb
- x11-xcb
- xcb-randr
- xcb-image
- opengl
- flac
- ogg
- vorbis
- vorbisenc
- vorbisfile
- openal
- pthread
Имена этих пакетов в различных дистрибутивах могут отличаться. После их установки не забудьте установить заголовочные файлы для разработчиков.
Конфигурация вашей сборки SFML
Этот шаг состоит из создания проекта/файла сборки, с помощью которого, в конечном счете, и будет скомпилирована SFML. Обычно, этот шаг заключается в выборе цели сборки, способа сборки и места сборки. Есть несколько других опций, которые позволят вам создавать файлы конфигурации сборки, соответствующие вашим потребностям. Мы рассмотрим эту тему более подробно ниже.
Первое, что вам необходимо выбрать — где будут созданы проект/файлы сборки и объектные файлы (файлы, получаемые во время процесса компиляции). Они могут генерироваться и в дереве исходного кода (т.е. в корневой директории SFML), однако это вызовет загрязнение корневого каталога объектными файлами и прочим мусором. Наилучшее решение — генерировать их в отдельную папку, что позволит вам сохранить корневую директорию SFML чистой. Использование отдельной директории также поможет в использовании нескольких сборок (static, dynamic, debug, release, . ).
Теперь, когда вы выбрали директорию сборки, есть еще одна вещь, которую необходимо сделать перед запуском CMake. Когда CMake конфигурирует ваш проект, она ищет доступный компилятор (и, если это необходимо, проверяет его версию). По этой причине исполняемый файл компилятора должен быть доступен, когда CMake запускается. Это не проблема на Mac OS X и Linux, потому что компилятор установлен по стандартному пути и всегда доступен, но на Windows вы должны добавить путь до директории вашего компилятора в переменную среды PATH, что бы CMake смог найти его автоматически. Это особенно важно, когда у вас установлено несколько компиляторов или несколько версий одного компилятора.
На Windows, в случае, если вы используете GCC (MinGW), вы можете временно добавить путь до директории MinGW\bin и затем запустить CMake из командной строки:
С Visual C++ вы можете просто запустить CMake из «командной строки Visual Studio», доступной из меню «Пуск», или запустить .bat-файл vcvars32.bat вашей установки Visual Studio в консоли, .bat-файл установит все переменные среды в консоли за вас.
Теперь вы можете запустить CMake. По факту есть три способа запустить ее:
- cmake-gui
Это графический интерфейс CMake, который позволяет вам сконфигурировать все с помощью кнопок и текстовых полей. Очень удобно просматривать и редактировать опции сборки, и, возможно, это наиболее легкое решение для новичков и людей, которые не хотят иметь дело с командной строкой. - cmake -i
Это интерактивная командная строка CMake, которая проведет вас через параметры сборки. Это хорошее решение, если вы хотите запустить CMake из командной строки, но не помните все параметры, которые доступны при использовании из командной строки, и какие из них важны. - cmake
Это прямой вызов к CMake. Если вы используете этот способ, вы должны указать все аргументы и их значения в качестве параметров командной строки. Что бы распечатать список аргументов, запустите cmake -L.
В этой статье мы будем использовать cmake-gui, так как этот вариант, скорее всего, будут использовать новичка. Мы предполагаем, что люди, использующие командную строку, обратятся к документации по CMake. За исключением снимков экрана и инструкций по нажатию кнопок, все, что объясняется ниже, применимо и для командной строки (опции, например).
Вот как выглядит CMake GUI:
Первые шаги, которые вы должны сделать, перечислены ниже:
- Укажите CMake, где располагается исходный код SFML (это должен быть корневой каталог SFML, в котором расположен файл CMakeLists.txt).
- Выберите директорию, в которой будет сгенерирован проект или файлы сборки (если директория не существует, CMake создаст ее).
- Нажмите на кнопку «Configure».
Если вы запускаете CMake в первый раз в данной директории (или если вы очистили кэш, оставшийся после прошлых запусков), CMake GUI предложит вам выбрать генератор. Другими словами, выбрать ваш компилятор/IDE.
Если вы используете Visual Studio 2010, вы должны выбрать «Visual Studio 10 2010» из выпадающего списка. Для генерации файла сборки для Visual Studio NMake, выберите «NMake Makefiles». Что бы сгенерировать файл сборки для MinGW (GCC), выберите «MinGW Makefiles». Как правило, легче собрать SFML с помощью файлов сборки: вы можете собрать всю библиотеку, используя одну команду, или даже сгрупировать несколько сборок в одном скрипте. В случае, если вы планируете собрать SFML и не хотите редактировать исходный код библиотеки, проект IDE вам не подходит.
Что еще более важно, процесс установки (он будет описан ниже) не работает для генератора «Xcode». По этой причине настоятельно рекомендуется использовать генератор «Makefile» при сборке на Mac OS X.
Всегда проверяйте, включена ли опция «Use default native compilers». Остальные три опции можно не трогать.
После выбора генератора, CMake запустит серию тестов, что бы собрать информацию о вашем наборе инструментов: компиляторе, стандартных заголовочных файлах, зависимости SFML и так далее. Если тесты завершатся успешно, будет выведено сообщение «Configuring done». Если что-то пойдет не так — внимательно прочитайте текст ошибки. Это может произойти, если ваш компилятор не доступен или настроен неправильно, либо не удовлетворена одна из зависимостей SFML.
После окончания конфигурирования, опции сборки появятся в центре окна. CMake имеет много опций, но многие из них установлены в правильное значение по умолчанию. Некоторые из них являются переменными кеша и лучше их не менять.
Это некоторые параметры, которые вы можете захотеть определить при конфигурировании вашей сборки SFML:
Параметр | Значение |
---|---|
CMAKE_BUILD_TYPE | Этот параметр устанавливает тип собираемой конфигурации. Принимает ключи «Debug» и «Release» (есть и другие принимаемые ключи, такие как «RelWithDebInfo» или «MinSizeRel», но они предназначены для более продвинутой сборки). Помните, что если вы используете генератор для IDE, которая поддерживает множество конфигураций (например, Visual Studio), этот параметр игнорируется по причине того, что сборка может содержать несколько конфигураций одновременно. |
CMAKE_INSTALL_PREFIX | Путь, по которому будет произведена установка. По умолчанию, он установлен в наиболее типичный путь установки для данной операционной системы («/usr/local» для Linux и Mac OS X, «C:\Program Files» для Windows и так далее). Установка SFML после сборки не является обязательной, вы можете использовать бинарные файлы напрямую из директории, в которой была произведена сборка. Однако установка SFML предпочтительнее. |
CMAKE_INSTALL_FRAMEWORK_PREFIX(только для Mac OS X) | Путь, по которому будет произведена установка фреймворка. По умолчанию это корневая папка библиотек, т.е. /Library/Frameworks. Как и в случае с CMAKE_INSTALL_PREFIX, этот параметр не является обязательным, но он рекомендована для охранения чистоты системы. Этот путь также используется для установки фреймворка sndfile (зависимость, не предоставляемая Apple) и фреймворка SFML, если был выбран параметр LD_FRAMEWORKS. |
BUILD_SHARED_LIBS | Этот логический параметр определяет, будет ли SFML собираться как динамическая (общая) библиотека, или как статические. Эта опция не должна быть включена одновременно с SFML_USE_STATIC_STD_LIBS, они являются взаимоисключающими. |
SFML_BUILD_FRAMEWORKS(только Mac OS X) | Этот логический параметр определяет, будете ли вы строить SFML как фреймворк или как бинарную динамическую библиотеку. Сборка фреймворка требует определения параметра BUILD_SHARED_LIBS. При публикации вашего продукта рекомендуется использовать SFML в качестве фреймворка. Заметим, что SFML не может быть собрана в конфигурации debug как фреймворк. В случае, если вам необходимо использовать SFML в конфигурации debug, используйте ее в качестве динамической библиотеки. |
SFML_BUILD_EXAMPLES | Этот логический параметр определяет, будут ли примеры использования SFML собраны с библиотекой или нет. |
SFML_BUILD_DOC | Этот логический параметр определяет, будет ли генерироваться документация по SFML. Обратите внимание, что программа Doxygen должна быть установлена и доступна, в противном случае включение этой опции приведет к ошибке. На Mac OS X вы можете установить классический Unix doxygen в /usr/bin или подобную директорию директорию, либо же установить Doxygen.app в директорию «Applications», т.е. в /Applications. |
SFML_USE_STATIC_STD_LIBS (только для Windows) | Этот логический параметр выбирает тип библиотеки времени выполнения C/C++, с которой будет скомпонована SFML. Если параметру присвоено значение TRUE, происходит статическая компоновка со стандартными библиотеками компилятора. В результате SFML становится самодостаточным и не зависит от динамических библиотек. Если параметру присвоено значение FALSE (стандартный вариант), происходит динамическая компоновка со стандартными библиотеками. В результате SFML будет зависеть от dll библиотек компилятора (msvcrxx.dll/msvcpxx.dll в случае Visual C++, libgcc_s_xxx-1.dll/libstdc++-6.dll в случае GCC). Будьте осторожны при установке данного параметра. Настройки должны соответствовать вашему собственному проекту. Данная опция не должна быть включена одновременно с BUILD_SHARED_LIBS. |
CMAKE_OSX_ARCHITECTURES(только для Mac OS X) | Этот параметр указывает, для какой архитектуры SFML должен быть собран. Рекомендуется значение «i386;x86_64», для генерации универсальных бинарных файлов для обеих архитектур. |
SFML_INSTALL_XCODE_TEMPLATES(только Mac OS X) | Этот логический параметр определяет, будет ли с CMake устанавливать шаблоны для Xcode на вашу систему. Пожалуйста, убедитесь, что директория /Library/Developer/Xcode/Templates/SFML существует и доступна для записи. Дополнительные сведения об этих шаблонах можно найти в статье, рассматривающей установку SFML на Mac OS X. |
SFML_INSTALL_PKGCONFIG_FILES(только для разделяемых библиотек Linux) | Этот логический параметр определяет, будет ли CMake устанавливать pkg-config файлы на вашей системе. pkg-config — это инструмент, который предоставляет унифицированный интерфейс для запросов к установленным библиотекам. |
После того, как все было сконфигурировано, нажмите на кнопку «Configure» еще раз. Опции не должны быть подсвечены красным цветом и кнопка «Generate» должна быть доступна. Нажмите на нее, что бы окончательно сгенерировать файлы сборки/проекта.
CMake создает кэш переменных для каждого проекта. Поэтому, если вы решите перенастроить что-либо позднее, вы обнаружите, что настройки прошлой конфигурации были сохранены. Внесите необходимые изменения, перенастройте и сгенерируйте новые файлы сборки/проекта.
C++11 и Mac OS X
Если вы хотите использовать функции C++11 в вашем приложении на Mac OS X, вы должны использовать clang (официальный компилятор от Apple) и libc++. Кроме того, вам будет необходимо собрать SFML с помощью этих инструментов, чтобы исключить любую несовместимость между библиотеками SFML и компилятором.
Настройки, которые вы должны использовать при сборке SFML с clang и libc++:
- Выберите «Specify native compilers», а не «Use default native compilers» при выборе генератора.
- Установите опцию CMAKE_CXX_COMPILER в /usr/bin/clang++ (смотрите снимок экрана).
- Установите опцию CMAKE_C_COMPILER в /usr/bin/clang (смотрите снимок экрана).
- Установите опцию CMAKE_CXX_FLAGS и CMAKE_C_FLAGS в «-stdlib=libc++».
Сборка SFML
Давайте начнем с хорошей новости: вам больше не придется пройти через этап настройки, даже если вы будете обновлять вашу рабочую копию SFML. CMake умна: она добавляет настраиваемый шаг генерации файлов сборки/проекта, что означает, что эти файлы регенерируются без внесения изменений.
Теперь вы можете собрать SFML. Конечно, как это сделать зависит от того, что именно вы сгенерировали (файлы сборки или проект). Если был сгенерирован проект/решение/рабочее пространство, откройте его в вашей IDE и соберите SFML, как если бы это был любой другой проект. Мы не будем вдаваться в подробности, так как существует слишком много разных сред разработки; мы предполагаем, что вы знаете, как использовать вашу IDE, и сможете выполнить эту несложную задачу самостоятельно.
Если вы сгенерировали makefile, откройте командную строку и выполнить команду make для вашей среды. Например, «nmake», если вы сгенерировали файл сборки NMake (Visual Studio), «mingw32-make», если был сгенерирован MinGW(GCC) makefile или просто «make», если вы сгенерировали Linux makefile.
Примечание: на Windows, программа make (nmake или mingw32-make) может быть недоступна. Если это так, не забудьте добавить ее расположение в переменную окружения PATH. Для уточнения см. раздел «Конфигурация вашей сборки SFML».
По умолчанию при сборке проекта будет собрано все (все библиотеки SFML, а также примеры использования SFML, если вы установили опцию SFML_BUILD_EXAMPLES). Если вы хотите собрать конкретную библиотеку SFML или конкретный пример использования библиотеки, вы можете выбрать различные цели сборки. Вы также можете выбрать в качестве цели очистку директории сборки, установку собранных фалов, используя соответствующие цели сборки (install и clean).
Ниже приведены все доступные цели сборки, зависящие от параметров, выбранных при конфигурации:
Цель | Значение |
---|---|
all | Цель по умолчанию. Используется, если не было указано цели сборки. Происходит сборка всех целей, в результате использования которых получаются бинарные файлы (библиотеки SFML и примеры). |
sfml-system sfml-window sfml-network sfml-graphics sfml-audio sfml-main | Строит соответствующие библиотеки SFML. Цель «sfml-main» доступна только при сборке для Windows. |
cocoa ftp opengl pong shader sockets sound sound-capture voip window win32 X11 | Сборка соответствующих примеров SFML. Эти цели доступны только если включен параметр SFML_BUILD_EXAMPLES . Помните, что некоторые цели доступны только на определенных операционных системах («cocoa» доступна только на Mac OS X, «win32» доступна только на Windows, «X11» доступна только на Linux и так далее). |
doc | Генерация документация по API. Эта цель доступна только если включен параметр SFML_BUILD_DOC . |
clean | Удаление всех объектных файлов, библиотек и примеров, созданных во время предыдущей сборки. В большинстве случаев вам не надо вызывать сборку с этой целью, за исключением тех ситуаций, когда вы хотите пересобрать SFML (при обновлении исходных кодов некоторые файлы могут быть не совместимы с существующими объектными фалйами и очистка является единственным решением этой проблемы). |
install | Установка SFML по стандартному пути, заданному параметром CMAKE_INSTALL_PREFIX или CMAKE_INSTALL_FRAMEWORK_PREFIX . Происходит копирование всех библиотек и заголовочных файлов SFML, а также примеров и документации, если были установлены параметры SFML_BUILD_EXAMPLES и SFML_BUILD_DOC . После установки вы получите читый дистрибутив SFML, как если бы вы загрузили SDK или установили SFML из пакетного репозитария вашего дистрибутива. |
Если вы используете IDE, то цель — это просто проект. Что бы собрать цель, выберите соответствующий проект и скомпилируйте его (даже «clean» и «install» должны быть собраны, что бы быть выполненными. Пусть вас не смущает тот факт, что исходные коды не будут компилироваться). Если вы используете файлы сборки, для сборки цели передайте имя цели команде make. Например, «nmake doc», «mingw32-make install», «make sfml-network».
Теперь вы успешно построили SFML. Поздравляем!
Источник