OSDN Git Service

[cmake] With utils disabled, don't build tblgen in cross mode
authorKeno Fischer <keno@alumni.harvard.edu>
Mon, 1 Jul 2019 23:15:07 +0000 (23:15 +0000)
committerKeno Fischer <keno@alumni.harvard.edu>
Mon, 1 Jul 2019 23:15:07 +0000 (23:15 +0000)
commit371c5dc60ca70036ebeb9426ef39c3233199d8ff
tree23e4d484075a2a50df01d706ba5cb1a0853f81bb
parente3eea3c6bccb7f930030b0d1f07a9c79e53332ce
[cmake] With utils disabled, don't build tblgen in cross mode

Summary:
In cross mode, we build a separate NATIVE tblgen that runs on the
host and is used during the build. Separately, we have a flag that
disables building all executables in utils/. Of course generally,
this doesn't turn off tblgen, since we need that during the build.
In cross mode, however, that tblegen is useless since we never
actually use it. Furthermore, it can be actively problematic if the
cross toolchain doesn't like building executables for whatever reason.
And even if building executables works fine, we can at least save
compile time by omitting it from the target build. There's two changes
needed to make this happen:
- Stop creating a dependency from the native tool to the target tool.
  No such dependency is required for a correct build, so I'm not entirely
  sure why it was there in the first place.
- If utils were disabled on the CMake command line and we're in cross mode,
  respect that by excluding it from the install target (using EXCLUDE_FROM_ALL).

Reviewers: smeenai
Differential Revision: https://reviews.llvm.org/D64032

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