OSDN Git Service

[CMake] [Runtimes] Set *_STANDALONE_BUILD
authorChris Bieneman <chris.bieneman@me.com>
Wed, 29 May 2019 18:37:49 +0000 (18:37 +0000)
committerChris Bieneman <chris.bieneman@me.com>
Wed, 29 May 2019 18:37:49 +0000 (18:37 +0000)
Summary:
The runtimes use `*_STANDALONE_BUILD=OFF` to signify that clang is an in-tree target. This is not the case with the runtime builds, so we really need this set to `ON`.

In order to resolve the issues phosek was having with checks, we should use checks that don't link. We can use compiler-rt's `try_compile_only` as a basis for that.

This patch is *required* to be able to run the runtime libraries check-* targets.

Reviewers: smeenai, phosek, compnerd

Reviewed By: phosek

Subscribers: mgorny, llvm-commits

Tags: #llvm

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@362007 91177308-0d34-0410-b5e6-96231b3b80d8

runtimes/CMakeLists.txt

index acf4f3e..51ad237 100644 (file)
@@ -128,6 +128,12 @@ if(${CMAKE_SOURCE_DIR} STREQUAL ${CMAKE_CURRENT_SOURCE_DIR})
     string(REPLACE "-" "_" canon_name ${projName})
     string(TOUPPER ${canon_name} canon_name)
 
+    # The subdirectories need to treat this as standalone builds. D57992 tried
+    # to get rid of this, but the runtimes treat *_STANDALONE_BUILD=OFF as if
+    # llvm & clang are configured in the same CMake, and setup dependencies
+    # against their targets.
+    set(${canon_name}_STANDALONE_BUILD ON)
+
     if(LLVM_RUNTIMES_LIBDIR_SUBDIR)
       set(${canon_name}_LIBDIR_SUBDIR "${LLVM_RUNTIMES_LIBDIR_SUBDIR}" CACHE STRING "" FORCE)
     endif()