diff --git a/CMakeLists.txt b/CMakeLists.txt
index 195a10463e708556a12f9c9cdca26da134d06ea5..b690dcc9a377f8a7e3bbd411c53c13324a135705 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -52,8 +52,16 @@ APPLY_DEFAULT_APPLE_CONFIGURATION()
 OPTION(BUILD_PYTHON_INTERFACE "Build the python bindings" OFF)
 
 # Tell CMake that we compute the PROJECT_VERSION manually.
-CMAKE_POLICY(SET CMP0048 OLD)
-project(${PROJECT_NAME} CXX)
+IF(CMAKE_VERSION VERSION_GREATER "3.0.0")
+  CMAKE_POLICY(SET CMP0048 NEW)
+  IF(CMAKE_VERSION VERSION_GREATER "3.9.0")
+    PROJECT(${PROJECT_NAME} VERSION ${PROJECT_VERSION_FULL} LANGUAGES CXX DESCRIPTION ${PROJECT_DESCRIPTION})
+  ELSE(CMAKE_VERSION VERSION_GREATER "3.9.0")
+    PROJECT(${PROJECT_NAME} VERSION ${PROJECT_VERSION_FULL} LANGUAGES CXX)
+  ENDIF(CMAKE_VERSION VERSION_GREATER "3.9.0")
+ELSE(CMAKE_VERSION VERSION_GREATER "3.0.0")
+  PROJECT(${PROJECT_NAME} CXX)
+ENDIF(CMAKE_VERSION VERSION_GREATER "3.0.0")
 
 add_required_dependency("eigen3 >= 3.0.0")
 include_directories(SYSTEM ${EIGEN3_INCLUDE_DIRS})