Компиляция SFML, используя CMake
Самый удобный способ скомпилировать свой проект с использованием SFML, на мой взгляд, - это сделать это с помощью CMake, потому что из коробки мы получаем кроссплатформенность и хороший инструментарий. Что ж, без лишних слов - приступим!
Перед началом убедитесь, что SFML установлен. Об этом можно узнать тут.
Структура проекта
Создаём main.cpp
с тестовым кодом:
#include <SFML/Graphics.hpp>
int main()
{
sf::RenderWindow window(sf::VideoMode(400, 400), "SFML works!");
sf::CircleShape shape(100.f);
shape.setPosition(100,100);
shape.setFillColor(sf::Color(200,30,10));
while (window.isOpen())
{
sf::Event event;
while (window.pollEvent(event))
{
if (event.type == sf::Event::Closed)
window.close();
}
window.clear(sf::Color(20,5,5));
window.draw(shape);
window.display();
}
return 0;
}
и CMakeLists.txt
с кодом:
cmake_minimum_required(VERSION 3.0)
project(YourProjectName)
# Указание стандарта C++
set(CMAKE_CXX_STANDARD 11)
set(CMAKE_CXX_STANDARD_REQUIRED True)
# Поиск пакета SFML
# Укажите SFML_DIR, если SFML установлена в нестандартном месте
find_package(SFML 2.6 COMPONENTS graphics REQUIRED) # дополните нужными вам модулями
# Добавление исполняемого файла
add_executable(YourProjectName main.cpp)
# Связывание с библиотеками SFML
target_link_libraries(YourProjectName sfml-graphics) # дополните нужными вам модулями
# Если проект собирается на Windows, копируем DLL-файлы в выходную папку
if(WIN32)
# Предполагается, что DLL-файлы находятся в подпапке 'bin' в папке установки SFML
# Укажите правильный путь к DLL-файлам SFML
add_custom_command(TARGET YourProjectName POST_BUILD
COMMAND ${CMAKE_COMMAND} -E copy_directory
${SFML_DIR}/bin $<TARGET_FILE_DIR:YourProjectName>)
endif()
В случае с Windows вписываем в наш CMakeLists.txt
путь до установленной библиотеки, например:
set(SFML_DIR "C:/SFML/lib/cmake/SFML")
И если вы используете динамическое подключение библиотеки, то нужно будет таскать вместе с .exe
файлом вашей программы ещё и DLL файлы библиотеки.
Компиляция
Переходим в командную строку, переходим в папку с нашим проектом и создаём папку build
, после чего переходим в неё и инициализируем CMake, после чего компилируем и получаем свежий скомпилированный проект с использованием SFML:
mkdir build
cd build
cmake ..
make
Готово!