https://github.com/Kitware/CMake
Revision 3a7d1e9592af743a6bb538111e603d7f10666e0c authored by Gregor Jasny on 21 April 2020, 14:34:57 UTC, committed by Brad King on 21 April 2020, 15:18:12 UTC
Since commit a9b41195d2 (Handle multi-arch sysroots on Apple platforms,
2019-07-26, v3.17.0-rc1~287^2), CMake supports "fat" builds with
different sysroots. Those are passed to the compiler with the
`-Xarch_<xyz>` parameter.

Unfortunately this breaks the Compiler Cache (ccache) because
it does not support those compiler flags:

    https://github.com/ccache/ccache/blob/v3.7.9/src/ccache.c#L2700-L2705

Restore the caching ability for certain "fat" build configurations (e.g.
`arm64` and `armv7`) where the sysroot is the same for all selected
architectures and thus a plain `-isysroot` parameter could be used.
1 parent be88264
Raw File
Tip revision: 3a7d1e9592af743a6bb538111e603d7f10666e0c authored by Gregor Jasny on 21 April 2020, 14:34:57 UTC
Apple: Merge per-arch sysroot parameters if all are the same
Tip revision: 3a7d1e9
cmFSPermissions.cxx
/* Distributed under the OSI-approved BSD 3-Clause License.  See accompanying
   file Copyright.txt or https://cmake.org/licensing for details.  */
#include "cmFSPermissions.h"

bool cmFSPermissions::stringToModeT(std::string const& arg,
                                    mode_t& permissions)
{
  if (arg == "OWNER_READ") {
    permissions |= mode_owner_read;
  } else if (arg == "OWNER_WRITE") {
    permissions |= mode_owner_write;
  } else if (arg == "OWNER_EXECUTE") {
    permissions |= mode_owner_execute;
  } else if (arg == "GROUP_READ") {
    permissions |= mode_group_read;
  } else if (arg == "GROUP_WRITE") {
    permissions |= mode_group_write;
  } else if (arg == "GROUP_EXECUTE") {
    permissions |= mode_group_execute;
  } else if (arg == "WORLD_READ") {
    permissions |= mode_world_read;
  } else if (arg == "WORLD_WRITE") {
    permissions |= mode_world_write;
  } else if (arg == "WORLD_EXECUTE") {
    permissions |= mode_world_execute;
  } else if (arg == "SETUID") {
    permissions |= mode_setuid;
  } else if (arg == "SETGID") {
    permissions |= mode_setgid;
  } else {
    return false;
  }
  return true;
}
back to top