From 1d3335ab1df90058ff7219fdbda28464e79c50c4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lukas=20D=C3=BCrrenberger?= Date: Wed, 13 Nov 2024 11:28:15 +0100 Subject: [PATCH] Clarify requirement around GitHub --- README.md | 78 +++++++++++++++++++++++++++++++------------------------ 1 file changed, 44 insertions(+), 34 deletions(-) diff --git a/README.md b/README.md index 3920404..f0a175c 100644 --- a/README.md +++ b/README.md @@ -10,40 +10,42 @@ The template starts out very basic, but might receive additional features over t ## How to Use -1. Install Git and CMake. Use your system's package manager if available. -1. Follow [GitHub's instructions](https://docs.github.com/en/repositories/creating-and-managing-repositories/creating-a-repository-from-a-template) for how to use their project template feature to create your own project. -1. Clone your new GitHub repo and open the repo in your text editor of choice. -1. Open [CMakeLists.txt](CMakeLists.txt). Rename the project and the executable to whatever name you want. -1. If you want to add or remove any .cpp files, change the source files listed in the `add_executable` call in CMakeLists.txt to match the source files your project requires. If you plan on keeping the default main.cpp file then no changes are required. -1. If your code uses the Audio or Network modules then add `sfml-audio` or `sfml-network` to the `target_link_libraries` call alongside the existing `sfml-graphics` library that is being linked. -1. If you use Linux, install SFML's dependencies using your system package manager. On Ubuntu and other Debian-based distributions you can use the following commands: - ``` - sudo apt update - sudo apt install \ - libxrandr-dev \ - libxcursor-dev \ - libudev-dev \ - libfreetype-dev \ - libopenal-dev \ - libflac-dev \ - libvorbis-dev \ - libgl1-mesa-dev \ - libegl1-mesa-dev - ``` -1. Configure and build your project. Most popular IDEs support CMake projects with very little effort on your part. - - [VS Code](https://code.visualstudio.com) via the [CMake extension](https://code.visualstudio.com/docs/cpp/cmake-linux) - - [Visual Studio](https://docs.microsoft.com/en-us/cpp/build/cmake-projects-in-visual-studio?view=msvc-170) - - [CLion](https://www.jetbrains.com/clion/features/cmake-support.html) - - [Qt Creator](https://doc.qt.io/qtcreator/creator-project-cmake.html) - - Using CMake from the command line is straightforward as well. - Be sure to run these commands in the root directory of the project you just created. - - ``` - cmake -B build - cmake --build build - ``` -1. Enjoy! +1. Install [Git](https://git-scm.com/downloads) and [CMake](https://cmake.org/download/). Use your system's package manager if available. +2. Follow [GitHub's instructions](https://docs.github.com/en/repositories/creating-and-managing-repositories/creating-a-repository-from-a-template) for how to use their project template feature to create your own project. If you don't want to use GitHub, see the section below. +3. Clone your new GitHub repo and open the repo in your text editor of choice. +4. Open [CMakeLists.txt](CMakeLists.txt). Rename the project and the target name of the executable to whatever name you want. Make sure to change all occurrences. +5. If you want to add or remove any .cpp files, change the source files listed in the `add_executable` call in CMakeLists.txt to match the source files your project requires. If you plan on keeping the default main.cpp file then no changes are required. +6. If your code uses the Audio or Network modules then add `sfml-audio` or `sfml-network` to the `target_link_libraries` call alongside the existing `sfml-graphics` library that is being linked. +7. If you use Linux, install SFML's dependencies using your system package manager. On Ubuntu and other Debian-based distributions you can use the following commands: + ``` + sudo apt update + sudo apt install \ + libxrandr-dev \ + libxcursor-dev \ + libudev-dev \ + libfreetype-dev \ + libopenal-dev \ + libflac-dev \ + libvorbis-dev \ + libgl1-mesa-dev \ + libegl1-mesa-dev + ``` +8. Configure and build your project. Most popular IDEs support CMake projects with very little effort on your part. + + - [VS Code](https://code.visualstudio.com) via the [CMake extension](https://code.visualstudio.com/docs/cpp/cmake-linux) + - [Visual Studio](https://docs.microsoft.com/en-us/cpp/build/cmake-projects-in-visual-studio?view=msvc-170) + - [CLion](https://www.jetbrains.com/clion/features/cmake-support.html) + - [Qt Creator](https://doc.qt.io/qtcreator/creator-project-cmake.html) + + Using CMake from the command line is straightforward as well. + Be sure to run these commands in the root directory of the project you just created. + + ``` + cmake -B build + cmake --build build + ``` + +9. Enjoy! ## Upgrading SFML @@ -61,6 +63,13 @@ The nice folks in the [SFML community](https://github.com/SFML/SFML#community) c Modify CMake options by adding them as configuration parameters (with a `-D` flag) or by modifying the contents of CMakeCache.txt and rebuilding. +### Not use GitHub + +You aren't required to use a GitHub account or repository. +It is the simplest approach if you already have an account and want to make use of GitHub Actions. +You can also [download the contents](https://github.com/SFML/cmake-sfml-project/archive/refs/heads/master.zip) of this template repository and unpack it locally. +This doesn't require a GitHub account and you don't even need to use a Git repository. + ### Change Compilers See the variety of [`CMAKE__COMPILER`](https://cmake.org/cmake/help/latest/variable/CMAKE_LANG_COMPILER.html) options. @@ -86,6 +95,7 @@ Then you may rebuild your project with this new generator. Here are some useful resources if you want to learn more about CMake: +- [Official CMake Tutorial](https://cmake.org/cmake/help/latest/guide/tutorial/) - [How to Use CMake Without the Agonizing Pain - Part 1](https://alexreinking.com/blog/how-to-use-cmake-without-the-agonizing-pain-part-1.html) - [How to Use CMake Without the Agonizing Pain - Part 2](https://alexreinking.com/blog/how-to-use-cmake-without-the-agonizing-pain-part-2.html) - [Better CMake YouTube series by Jefferon Amstutz](https://www.youtube.com/playlist?list=PL8i3OhJb4FNV10aIZ8oF0AA46HgA2ed8g)