diff options
author | Brian Gianforcaro <bgianf@serenityos.org> | 2022-03-18 04:31:36 -0700 |
---|---|---|
committer | Brian Gianforcaro <b.gianfo@gmail.com> | 2022-03-19 15:01:22 -0700 |
commit | 66e7ac19546b1158c7fd3ce8e088b0ad5f385a33 (patch) | |
tree | b53d29db7ed87a673f5b05c9f3d5b5517919e226 /Meta/CMake/check_for_dependencies.cmake | |
parent | 6b5f0d11ce4754264cf4a6615076fd3522b0e958 (diff) | |
download | serenity-66e7ac19546b1158c7fd3ce8e088b0ad5f385a33.zip |
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.
Diffstat (limited to 'Meta/CMake/check_for_dependencies.cmake')
-rw-r--r-- | Meta/CMake/check_for_dependencies.cmake | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/Meta/CMake/check_for_dependencies.cmake b/Meta/CMake/check_for_dependencies.cmake new file mode 100644 index 0000000000..6ab71c9c43 --- /dev/null +++ b/Meta/CMake/check_for_dependencies.cmake @@ -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() |