CMakeLists.txt 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. cmake_minimum_required(VERSION 3.27)
  2. project(Snake)
  3. set(CMAKE_CXX_STANDARD 23)
  4. set(CMAKE_CXX_STANDARD_REQUIRED ON)
  5. set(CMAKE_CXX_EXTENSIONS OFF)
  6. include(FetchContent)
  7. FetchContent_Declare(
  8. SDL2
  9. GIT_REPOSITORY https://github.com/libsdl-org/SDL.git
  10. GIT_TAG 15ead9a40d09a1eb9972215cceac2bf29c9b77f6 # release-2.28.5
  11. FIND_PACKAGE_ARGS NAMES SDL2
  12. )
  13. FetchContent_Declare(
  14. SDL2_image
  15. GIT_REPOSITORY https://github.com/libsdl-org/SDL_image.git
  16. GIT_TAG 28b9daa15a59aa2829cd29944ca9ffbf049d7667 # release-2.8.1
  17. FIND_PACKAGE_ARGS NAMES SDL2_image
  18. )
  19. FetchContent_Declare(
  20. SDL2_ttf
  21. GIT_REPOSITORY https://github.com/libsdl-org/SDL_ttf.git
  22. GIT_TAG 89d1692fd8fe91a679bb943d377bfbd709b52c23 # release-2.20.2
  23. FIND_PACKAGE_ARGS NAMES SDL2_ttf
  24. )
  25. FetchContent_MakeAvailable(SDL2 SDL2_image SDL2_ttf)
  26. add_executable(Snake WIN32
  27. main.cxx
  28. SDL.cxx SDL.hxx
  29. SDLWindow.cxx SDLWindow.hxx
  30. SDLRenderer.cxx SDLRenderer.hxx
  31. game/GameState.hxx
  32. game/GameStateManager.cxx game/GameStateManager.hxx
  33. game/LoadingState.cxx game/LoadingState.hxx
  34. game/SplashState.cxx game/SplashState.hxx
  35. game/DummyState.cxx game/DummyState.hxx
  36. game/AssetManager.cxx game/AssetManager.hxx
  37. game/ui/Button.cxx game/ui/Button.hxx
  38. )
  39. target_link_libraries(Snake PRIVATE
  40. SDL2::SDL2 SDL2::SDL2main
  41. SDL2_image::SDL2_image
  42. SDL2_ttf::SDL2_ttf
  43. )