freeaoe
freeaoe copied to clipboard
CMake does not find SFML
My system passed cmake's checks, but it did not compile so I had to get the latest versions of cmake, gcc, g++. Then even though I had installed SFML (sudo apt install libsfml-dev) I got this error message:
CMake Error at CMakeLists.txt:121 (find_package): By not providing "FindSFML.cmake" in CMAKE_MODULE_PATH this project has asked CMake to find a package configuration file provided by "SFML", but CMake did not find one.
So I had to download the latest version of SFML (https://www.sfml-dev.org/download/sfml/2.5.1/) and add this to CMakeLists.txt to make it work:
set(SFML_INCLUDE_DIR "~/sfml/include") set(SFML_LIBRARY_DIR "~/sfml/lib") set(SFML_DIR "~/sfml/lib/cmake/SFML") link_directories(SFML_LIBRARY_DIR) include_directories(SFML_INCLUDE_DIR)
Why didn't it find SFML automatically on the standard installation directories?
Create a file "FindSFML.cmake" in your Cmake Module directory, for example: "E:\Program Files\CMake\share\cmake-3.21\Modules" and then fill these, I think this will work in the future. Seems that Cmake removed the SFML.cmake in the newer version.
...
include_directories(${SFML_INCLUDE_DIR})
link_directories(${SFML_LIB_DIR})