Build: check necessary software is installed for make deps on macOS and Linux
authorBrecht Van Lommel <brechtvanlommel@gmail.com>
Thu, 29 Aug 2019 15:46:04 +0000 (17:46 +0200)
committerBrecht Van Lommel <brechtvanlommel@gmail.com>
Fri, 30 Aug 2019 09:21:23 +0000 (11:21 +0200)
To avoid errors deep into the build process. Fixes T69297.

build_files/build_environment/CMakeLists.txt
build_files/build_environment/cmake/check_software.cmake [new file with mode: 0644]

index 1b387cb86a2c414045ba19624c8cde4173cbc05b..d904ba27abc5588f614b45273c394d25bbf53de7 100644 (file)
@@ -43,6 +43,7 @@ project("BlenderDependencies")
 cmake_minimum_required(VERSION 3.5)
 
 include(ExternalProject)
+include(cmake/check_software.cmake)
 include(cmake/options.cmake)
 include(cmake/versions.cmake)
 
diff --git a/build_files/build_environment/cmake/check_software.cmake b/build_files/build_environment/cmake/check_software.cmake
new file mode 100644 (file)
index 0000000..30dea75
--- /dev/null
@@ -0,0 +1,53 @@
+# ***** BEGIN GPL LICENSE BLOCK *****
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software Foundation,
+# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+#
+# ***** END GPL LICENSE BLOCK *****
+
+if(UNIX)
+  set(_required_software
+    autoconf
+    automake
+    libtoolize
+    nasm
+    yasm
+    tclsh
+  )
+
+  foreach(_software ${_required_software})
+    find_program(_software_find NAMES ${_software})
+    if(NOT _software_find)
+      set(_software_missing "${_software_missing}${_software} ")
+    endif()
+    unset(_software_find CACHE)
+  endforeach()
+
+  if(_software_missing)
+    message(
+      "\n"
+      "Missing software for building Blender dependencies:\n"
+      "  ${_software_missing}\n"
+      "\n"
+      "On Debian and Ubuntu:\n"
+      "  apt install autoconf automake libtool yasm nasm tcl\n"
+      "\n"
+      "On macOS (with homebrew):\n"
+      "  brew install cmake autoconf automake libtool yasm nasm\n"
+      "\n"
+      "Other platforms:\n"
+      "  Install equivalent packages.\n")
+    message(FATAL_ERROR "Install missing software before continuing")
+  endif()
+endif()