From 981a07d4c7eac26b18c7f3cc33f1e832e81037e6 Mon Sep 17 00:00:00 2001 From: Fabian Homborg Date: Sun, 25 Apr 2021 09:38:04 +0200 Subject: [PATCH] cmake: Error out with "-static" I'm not entirely sure this *has* to be given via CMAKE_EXE_LINKER_FLAGS, but this would have stopped at least one person from trying. Static linking 1. does not work at the moment, 2. is not *useful*. You don't get a single-file fish you can just copy somewhere because you're missing our functions. On glibc systems you also can't statically link glibc. Given all that, it does not appear to be worth putting in any effort to make it work (if it's possible at all). See #7947. --- CMakeLists.txt | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/CMakeLists.txt b/CMakeLists.txt index cbcb78652..9f3597ba3 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -30,6 +30,11 @@ if(NOT CMAKE_BUILD_TYPE AND NOT CMAKE_CONFIGURATION_TYPES) set(CMAKE_BUILD_TYPE "${DEFAULT_BUILD_TYPE}") endif() +# Error out when linking statically, it doesn't work. +if (CMAKE_EXE_LINKER_FLAGS MATCHES ".*-static.*") + message(FATAL_ERROR "Fish does not support static linking") +endif() + # Force colored warnings in Ninja's output, if the compiler has -fdiagnostics-color support. # Rationale in https://github.com/ninja-build/ninja/issues/814 if (CMAKE_GENERATOR STREQUAL "Ninja" AND