[PATCH] [CMake] Allow parent projects to use in-source builds

Hi

Would the maintainers please consider merging the attached patch? Detailed description of my problem is on the commit log.

I tracked down this build-time check back to a commit by Oscar Fuentes in 2008 (https://github.com/llvm-mirror/llvm/commit/6326a0d5090110c334a3a554bfb10b37a6fe4709) and hasn’t been changed since. It seems to be unnecessary to prevent a parent project from doing in-source builds.

I ran my project with make and it seems to have solved my problem. LLVM now builds out-of-tree while my project can be built in-tree.

I ran ‘make check-llvm’ to test it, which gave me this result.

Testing Time: 121.05s
Expected Passes : 21278
Expected Failures : 220
Unsupported Tests : 788
[100%] Built target check-llvm

However I couldn’t build make check-llvm using in-tree builds, I had to fall back to out-of-tree builds. So to summarize: now LLVM can be part of a parent project that uses in-source builds, but the tests must still be built out-of-tree. If the maintainers are OK with this limitation, the patch is ready. Otherwise I’d have to track down what changes are necessary on the test targets.

Best regards
Henrique Jung

0001-CMake-Allow-parent-projects-to-use-in-source-builds.patch (1.63 KB)

This patch looks reasonable to me. Thank you for submitting it.

Is it correct to assume you don’t have commit access? If you don’t I can commit it for you later today.

-Chris

Hi Chris

Thanks for reviewing. I do not have commit access, this is my first contribution to LLVM. So I ask you to commit for me.

Thanks

Note, I guess it may work for “Unix Makefiles”, since we discarded autoconf support.

Hi all. Is there anything else to be done for the patch to be merged?

Best regards
Henrique Jung

Hi Henrique,

I’m really sorry, I lost track of this. I just committed your patch as r316142.

Thank you for your contribution!

-Chris

Nice! Thank you.