SFML Desktop: Setup with find_package (MinGW 13.1) SFML для Desktop: Настройка через find_package (MinGW 13.1)
A guide to configuring SFML with CMake and MinGW on Windows. Руководство по настройке SFML с использованием CMake и MinGW на Windows.
Prerequisite: Ensure you have followed my Environment Setup Guide (MinGW 13.1 & CMake).
Предварительное условие: Убедитесь, что вы выполнили инструкции из руководства по настройке среды (MinGW 13.1 и CMake).
1. Obtain SFML 2.6.2 1. Получение SFML 2.6.2
- You can download the pre-built version for MinGW 13.1 (64-bit) from the official SFML download page. Вы можете скачать готовую сборку для MinGW 13.1 (64-bit) на официальной странице загрузки SFML.
- Alternatively, you can build it yourself following my guide: Building SFML 2.6.2 from Source. Или же вы можете собрать её самостоятельно по моей инструкции: Сборка SFML 2.6.2 из исходников.
-
Extract it to
C:/libs/SFML-2.6.2-mingw. Распакуйте библиотеку вC:/libs/SFML-2.6.2-mingw.
2. Project Configuration (CMakeLists.txt) 2. Конфигурация проекта (CMakeLists.txt)
cmake_minimum_required(VERSION 3.21)
project(setting-up-sfml-with-find-package)
set(SFML_DIR "C:/libs/SFML-2.6.2-mingw/lib/cmake/SFML")
find_package(SFML 2.6 COMPONENTS system window graphics REQUIRED)
# Define the executable
add_executable(app)
target_sources(app
PRIVATE
src/main.cpp
)
target_link_libraries(app sfml-system sfml-window sfml-graphics)
# This code copies the SFML DLLs to the build directory
add_custom_command(TARGET app POST_BUILD
COMMAND ${CMAKE_COMMAND} -E copy_if_different
$<TARGET_RUNTIME_DLLS:app> $<TARGET_FILE_DIR:app>
COMMAND_EXPAND_LISTS
)
# Copy Assets (ONLY if the folder exists!)
if(EXISTS "${CMAKE_SOURCE_DIR}/assets")
add_custom_command(TARGET app POST_BUILD
COMMAND ${CMAKE_COMMAND} -E copy_directory
"${CMAKE_SOURCE_DIR}/assets" "$<TARGET_FILE_DIR:app>/assets"
)
endif()
target_link_options(app PRIVATE -mconsole)
3. Source Code (main.cpp) 3. Исходный код (main.cpp)
#include <SFML/Graphics.hpp>
int main()
{
sf::RenderWindow window(sf::VideoMode(400, 300), "SFML2 Rotated Rectangle");
sf::RectangleShape rectangle(sf::Vector2f(150.f, 50.f));
rectangle.setFillColor(sf::Color::Green);
// Set the origin to the center of the rectangle
rectangle.setOrigin(75.f, 25.f);
rectangle.setPosition(200.f, 150.f);
rectangle.setRotation(20.f);
while (window.isOpen())
{
sf::Event event;
while (window.pollEvent(event))
{
if (event.type == sf::Event::Closed)
window.close();
}
window.clear();
window.draw(rectangle);
window.display();
}
return 0;
}
4. Automation Scripts 4. Скрипты автоматизации
Create these .bat files in your project root to speed up development: Создайте эти .bat файлы в корне проекта для ускорения разработки:
config-exe.bat
cmake -G "MinGW Makefiles" -S . -B dist/win ^
-DCMAKE_BUILD_TYPE=Debug
build-exe.bat
cd dist\win
cmake --build .
cd ..\..
run-exe.bat
dist\win\app
5. How to Build and Run 5. Как собрать и запустить
- You can open this project in Sublime Text 4. Вы можете открыть этот проект в Sublime Text 4.
-
To build and run from the command line (CMD), use these commands in order:
Чтобы собрать и запустить проект через командную строку (CMD), используйте эти команды по порядку:
config-exe
build-exe
run-exe -
Alternatively, you can open the
CMakeLists.txtdirectly in Qt Creator or CLion. Кроме того, вы можете открытьCMakeLists.txtнапрямую в Qt Creator или CLion.
Support My Work Поддержать проект
If these tutorials helped you, consider buying me a coffee! Если эти туториалы вам помогли, вы можете поддержать автора.
Sberbank
Direct transfer via phone number Перевод по номеру телефона
+7 (917) 212-29-59
Bybit (USDT TRC20)
Support via Cryptocurrency Поддержка криптовалютой
TMtY1YifNf6FKvgeFmqKGQR4NStKr3csGp