From 529d9b4d3a08dfafdd5a998bdfed4edb33424e6e Mon Sep 17 00:00:00 2001 From: Lorenz Meier Date: Mon, 26 Oct 2015 10:19:30 +0100 Subject: [PATCH] Check and enforce CMake version --- CMakeLists.txt | 1 + Makefile | 14 +++++++++++++- Tools/check_cmake.sh | 14 ++++++++++++++ 3 files changed, 28 insertions(+), 1 deletion(-) create mode 100755 Tools/check_cmake.sh diff --git a/CMakeLists.txt b/CMakeLists.txt index 23616c2db2..05a3cd59b3 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -186,6 +186,7 @@ project(px4 CXX C ASM) if (NOT ${CMAKE_VERSION} VERSION_LESS 3.0.0) cmake_policy(SET CMP0045 NEW) # error on non-existent target in get prop cmake_policy(SET CMP0046 NEW) # no non-existent targets as dependencies + cmake_policy(SET CMP0025 OLD) # still report AppleClang as Clang endif() if (NOT ${CMAKE_VERSION} VERSION_LESS 3.1.0) cmake_policy(SET CMP0054 NEW) # don't dereference quoted variables diff --git a/Makefile b/Makefile index 3a0155bd64..e67c21e1af 100644 --- a/Makefile +++ b/Makefile @@ -36,7 +36,19 @@ # We depend on our submodules, so we have to prevent attempts to # compile without it being present. ifeq ($(wildcard .git),) - $(error YOU HAVE TO USE GIT TO DOWNLOAD THIS REPOSITORY. ABORTING.) + $(error YOU HAVE TO USE GIT TO DOWNLOAD THIS REPOSITORY. ABORTING.) +endif + +CMAKE_VER := $(shell Tools/check_cmake.sh; echo $$?) +ifneq ($(CMAKE_VER),0) + $(warning Not a valid CMake version or CMake not installed.) + $(warning On Ubuntu, install or upgrade via:) + $(warning ) + $(warning sudo add-apt-repository ppa:george-edison55/cmake-3.x -y) + $(warning sudo apt-get update) + $(warning sudo apt-get install cmake) + $(warning ) + $(error Fatal) endif # Help diff --git a/Tools/check_cmake.sh b/Tools/check_cmake.sh new file mode 100755 index 0000000000..423b790dbd --- /dev/null +++ b/Tools/check_cmake.sh @@ -0,0 +1,14 @@ +#!/bin/bash +cmake_ver=`cmake --version` + +if [[ $cmake_ver == "" ]] +then + exit 1; +fi + +if [[ $cmake_ver == *"2.8"* ]] || [[ $cmake_ver == *"2.9"* ]] || [[ $cmake_ver == *"3.0"* ]] || [[ $cmake_ver == *"3.1"* ]] +then + exit 1; +fi + +exit 0;