1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-27 01:07:36 +00:00

Meta: Error out on find_program errors with CMake less than 3.18

We have seen some cases where the build fails for folks, and they are
missing unzip/tar/gzip etc. We can catch some of these in CMake itself,
so lets make sure to handle that uniformly across the build system.

The REQUIRED flag to `find_program` was only added on in CMake 3.18 and
above, so we can't rely on that to actually halt the program execution.
This commit is contained in:
Brian Gianforcaro 2022-03-18 04:31:36 -07:00 committed by Brian Gianforcaro
parent 6b5f0d11ce
commit 66e7ac1954
6 changed files with 31 additions and 10 deletions

View file

@ -0,0 +1,23 @@
#
# Check for the dependencies that the Serenity (target) and Lagom (host) builds require.
#
# FIXME: With cmake 3.18, we can change unzip/untar/gzip steps to use
# file( ARCHIVE_EXTRACT) instead
#
# Additionally we have to emit an error message for each tool,
# as REQUIRED only works with cmake 3.18 and above.
find_program(UNZIP_TOOL unzip REQUIRED)
if (NOT UNZIP_TOOL)
message(FATAL_ERROR "Failed to locate unzip on your machine, please install it and re-read the SerenityOS build documentation.")
endif()
find_program(TAR_TOOL tar REQUIRED)
if (NOT TAR_TOOL)
message(FATAL_ERROR "Failed to locate tar on your machine, please install it and re-read the SerenityOS build documentation.")
endif()
find_program(GZIP_TOOL gzip REQUIRED)
if (NOT GZIP_TOOL)
message(FATAL_ERROR "Failed to locate gzip on your machine, please install it and re-read the SerenityOS build documentation.")
endif()