llvm-project/llvm/cmake/modules
Shoaib Meenai 1295088fba [cmake] Use symlinks for Windows-hosted toolchains built on Unix
When cross-compiling for Windows on Unix, the built toolchain will need
to be transferred to Windows to actually run. My opinion is that the
Unix build should use symlinks, and the transfer to Windows should take
care of making those symlinks usable. E.g., I envision tarballs to be a
common form of transfer from Unix to Windows, in which case the tarball
can be created using --dereference to follow the symlinks.

The motivation here is that, when cross-compiling for Windows on Unix,
the installation will *already* create symlinks. The reason is that the
installation script will be invoked without knowing the host system, so
the `if(UNIX)` check in the installation symlink creation script will
reflect the build system rather than the host system. We could either
make the build and install trees both contain copies or both contain
symlinks, and using symlinks is a significant space saving without (in
my opinion) having any detrimental effect on the usage of the cross-
compiled toolchain on Windows.

A secondary motivation is that Windows 10 version 1703 and later finally
lift the administrator rights requirement for creating symbolic links
(if the system is in Developer Mode), which makes symlinks a lot more
practical even on Windows. Of course Unix and Windows symlinks aren't
interoperable, but symlinks for Windows toolchains is a reasonable
future direction to be going in anyway.

Differential Revision: https://reviews.llvm.org/D41314

llvm-svn: 322061
2018-01-09 07:50:18 +00:00
..
AddLLVM.cmake [cmake] Use symlinks for Windows-hosted toolchains built on Unix 2018-01-09 07:50:18 +00:00
AddLLVMDefinitions.cmake
AddOCaml.cmake Move the srpm, ocaml_make_directory, llvm_vcsrevision_h, and llvm-headers projects into the Misc folder on IDEs like Visual Studio rather than leave them in the root directory. NFC. 2017-11-04 19:59:14 +00:00
AddSphinxTarget.cmake [cmake] Include project name in Sphinx doctree dir to fix race conditions 2017-11-30 19:09:22 +00:00
CMakeLists.txt [llvm] Add stripped installation targets 2017-11-30 21:48:26 +00:00
CheckAtomic.cmake [cmake] Always respect existing CMAKE_REQUIRED_FLAGS when adding additional ones. 2017-12-25 01:23:09 +00:00
CheckCompilerVersion.cmake [cmake] Always respect existing CMAKE_REQUIRED_FLAGS when adding additional ones. 2017-12-25 01:23:09 +00:00
CheckLinkerFlag.cmake [cmake] Make check_linker_flags operate via linker flags 2017-10-31 01:30:46 +00:00
ChooseMSVCCRT.cmake
CrossCompile.cmake [CMake] Support for cross-compilation when build runtimes 2018-01-08 23:50:59 +00:00
DetermineGCCCompatible.cmake CMake is funky on detecting Intel 17 as GCC compatible. 2017-01-26 23:50:18 +00:00
FindOCaml.cmake
FindSphinx.cmake
GenerateVersionFromCVS.cmake Add SVN version to libLLVMLTO 2016-04-16 07:33:14 +00:00
GetHostTriple.cmake [cmake] Determine MSVC host triple correctly when cross-compiling 2017-12-13 21:11:14 +00:00
GetSVN.cmake [CMake] Update GetSVN.cmake to handle repo 2017-09-09 14:17:52 +00:00
HandleLLVMOptions.cmake [cmake] Replace -Wall with /W4 in clang-cl options now that -Wall aliases -Weverything 2017-11-29 18:05:32 +00:00
HandleLLVMStdlib.cmake Remove LLVM_ENABLE_LIBCXXABI 2016-08-04 10:24:48 +00:00
LLVM-Config.cmake [CMake] Use PRIVATE in target_link_libraries for executables 2017-12-05 21:49:56 +00:00
LLVMConfig.cmake.in [cmake] Expose opt-viewer availability 2017-12-01 01:44:26 +00:00
LLVMConfigVersion.cmake.in
LLVMExternalProjectUtils.cmake [CMake] Support for cross-compilation when build runtimes 2018-01-08 23:50:59 +00:00
LLVMInstallSymlink.cmake [cmake] Use symlinks for Windows-hosted toolchains built on Unix 2018-01-09 07:50:18 +00:00
LLVMProcessSources.cmake [cmake] Add SOURCE_DIR argument to llvm_check_source_file_list 2017-09-19 17:44:42 +00:00
TableGen.cmake [globalisel][tablegen] Generate rule coverage and use it to identify untested rules 2017-11-16 00:46:35 +00:00
VersionFromVCS.cmake CMake: Silence more stderr when running git. 2017-05-02 16:37:37 +00:00