cmake_minimum_required(VERSION 3.5) project(sliding-puzzle LANGUAGES CXX) set(CMAKE_CXX_STANDARD 17) set(CMAKE_CXX_STANDARD_REQUIRED ON) set(SOURCES application.cpp board.cpp main.cpp) set(HEADER_FILES application.h board.h filepath_util.h output_util.h) set(SFML_STATIC_LIBRARIES TRUE) #set to FALSE if you have sfml installed from package manager and you don't want to link it statically # STATIC # # You need to build SFML from sources with cmake if (SFML_STATIC_LIBRARIES) set(SFML_LIB_DIR ${CMAKE_SOURCE_DIR}/SFML-2.5.1/lib/libsfml-graphics.so ${CMAKE_SOURCE_DIR}/SFML-2.5.1/lib/libsfml-system.so ${CMAKE_SOURCE_DIR}/SFML-2.5.1/lib/libsfml-window.so) set(SFML_INCL_DIR ${CMAKE_SOURCE_DIR}/SFML-2.5.1/include) include_directories(${SFML_INCL_DIR}) add_executable(sliding-puzzle ${SOURCES} ${HEADER_FILES} ) target_link_libraries(sliding-puzzle ${SFML_LIB_DIR}) endif() # DYNAMIC # # You only need to install SFML from your package manager if (NOT SFML_STATIC_LIBRARIES) find_package(SFML REQUIRED graphics window system) include_directories(${SFML_INCLUDE_DIR}) add_executable(sliding-puzzle ${SOURCES} ${HEADER_FILES} ) target_link_libraries(sliding-puzzle ${SFML_LIBRARIES} ${SFML_DEPENDENCIES}) endif()