--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -34,12 +34,12 @@
 
 ## Project name to use as command prefix.
 
+cmake_minimum_required(VERSION 3.1...4.0)
 project(SUPERTUX)
 
 
 ### CMake configuration
 
-cmake_minimum_required(VERSION 3.1)
 if(COMMAND cmake_policy)
   cmake_policy(SET CMP0003 NEW)
   cmake_policy(SET CMP0008 NEW)
--- a/external/SDL_ttf/CMakeLists.txt
+++ b/external/SDL_ttf/CMakeLists.txt
@@ -1,6 +1,6 @@
 # Taken from https://github.com/Microsoft/vcpkg/blob/2ad118a2532e99a78c41dffa1b9648e7eca20a95/ports/sdl2-ttf/CMakeLists.txt
 
-cmake_minimum_required(VERSION 3.0)
+cmake_minimum_required(VERSION 3.0...4.0)
 project(SDL2_TTF C)
 
 find_path(SDL_INCLUDE_DIR SDL2/SDL.h)
--- a/external/squirrel/CMakeLists.txt
+++ b/external/squirrel/CMakeLists.txt
@@ -1,7 +1,7 @@
 if(MSVC)
   cmake_minimum_required(VERSION 3.4)
 else()
-  cmake_minimum_required(VERSION 2.8)
+  cmake_minimum_required(VERSION 2.8...4.0)
 endif()
 
 set(CMAKE_INSTALL_PREFIX "${CMAKE_SOURCE_DIR}" CACHE PATH "")
--- a/external/tinygettext/CMakeLists.txt
+++ b/external/tinygettext/CMakeLists.txt
@@ -30,6 +30,7 @@
 #   make
 #
 
+cmake_minimum_required(VERSION 2.4...4.0)
 cmake_policy(SET CMP0005 NEW)
 
 ## Project name to use as command prefix
@@ -39,7 +40,6 @@
 
 ### CMake configuration
 
-cmake_minimum_required(VERSION 2.4)
 if(COMMAND cmake_policy)
 	CMAKE_POLICY(SET CMP0003 NEW)
 endif(COMMAND cmake_policy)
