There have been discussions about adding a Bazel generator before: https://cmake.org/pipermail/cmake-developers/2017-July/030144.html <https://cmake.org/pipermail/cmake-developers/2017-July/030144.html> There does seem to be interest in having that support in CMake, and I can't imagine any insurmountable reason why it couldn't be done. The real issue is that nobody has put in the time to do it. -Chris> On Aug 15, 2018, at 11:21 AM, David Blaikie via llvm-dev <llvm-dev at lists.llvm.org> wrote: > > > > On Wed, Aug 15, 2018 at 10:04 AM Chris Lattner <clattner at nondot.org <mailto:clattner at nondot.org>> wrote: > > > > On Aug 14, 2018, at 2:43 PM, David Blaikie via llvm-dev <llvm-dev at lists.llvm.org <mailto:llvm-dev at lists.llvm.org>> wrote: > > > > Yeah - not sure we're quite at the point where LLVM wants to start supporting two build systems again (used to be Configure+Make and the CMake system, now it's just the Cmake system), but if you want to make it work out-of-tree it shouldn't be too difficult (Google does this internally with the internal version of Bazel). Writing a short BUILD extension for running tblgen should be possible without too much complexity - not sure what Tensorflow is doing that makes its solution so complicated, it doesn't seem like it should be terribly hard, just a genrule to run tblgen and generate the appropriate files from the td files. > > Would it be technically possible for cmake to generate bazel files? If so, it seems that that could be a great bridge, and useful to other projects as well. > > /maybe/? It's an interesting thought - not sure I know enough about either build system to have a very informed opinion here, though. > > - Dave > > > -Chris > > _______________________________________________ > LLVM Developers mailing list > llvm-dev at lists.llvm.org > http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev-------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20180815/6f557040/attachment.html>
I believe it would be possible to run a cmake command to generate a BUILD file, though I don't know if that would be easier to maintain on the LLVM side. Would definitely be happy to see direct support, though I was just trying to figure out what's needed to hack this together on my end. I guess my real question is what underlying commands are necessary to build all the source files (without actually compiling the C/C++)? If I can understand how to do this manually with terminal/cmake/tblgen, then I could probably get it to work with Bazel. Looking at TensorFlow's setup <https://github.com/tensorflow/tensorflow/blob/efddd17519e43e956c3fa79981c408803521fe61/third_party/llvm/llvm.autogenerated.BUILD#L195>, it looks like tblgen has dependencies on support which goes down to zlib and gets a lot of complexity there. I get the impression that tblgen isn't so complicated as to require all that. What would be the minimum steps to build tblgen from source? Doug On Wed, Aug 15, 2018 at 1:28 PM Chris Bieneman <chris.bieneman at me.com> wrote:> There have been discussions about adding a Bazel generator before: > https://cmake.org/pipermail/cmake-developers/2017-July/030144.html > > There does seem to be interest in having that support in CMake, and I > can't imagine any insurmountable reason why it couldn't be done. The real > issue is that nobody has put in the time to do it. > > -Chris > > On Aug 15, 2018, at 11:21 AM, David Blaikie via llvm-dev < > llvm-dev at lists.llvm.org> wrote: > > > > On Wed, Aug 15, 2018 at 10:04 AM Chris Lattner <clattner at nondot.org> > wrote: > >> >> >> > On Aug 14, 2018, at 2:43 PM, David Blaikie via llvm-dev < >> llvm-dev at lists.llvm.org> wrote: >> > >> > Yeah - not sure we're quite at the point where LLVM wants to start >> supporting two build systems again (used to be Configure+Make and the CMake >> system, now it's just the Cmake system), but if you want to make it work >> out-of-tree it shouldn't be too difficult (Google does this internally with >> the internal version of Bazel). Writing a short BUILD extension for running >> tblgen should be possible without too much complexity - not sure what >> Tensorflow is doing that makes its solution so complicated, it doesn't seem >> like it should be terribly hard, just a genrule to run tblgen and generate >> the appropriate files from the td files. >> >> Would it be technically possible for cmake to generate bazel files? If >> so, it seems that that could be a great bridge, and useful to other >> projects as well. >> > > /maybe/? It's an interesting thought - not sure I know enough about either > build system to have a very informed opinion here, though. > > - Dave > > >> >> -Chris >> >> _______________________________________________ > LLVM Developers mailing list > llvm-dev at lists.llvm.org > http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev > > >-------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20180815/728d8eb2/attachment-0001.html>
On Wed, Aug 15, 2018 at 2:05 PM Douglas Parker <dgp1130422 at gmail.com> wrote:> I believe it would be possible to run a cmake command to generate a BUILD > file, though I don't know if that would be easier to maintain on the LLVM > side. Would definitely be happy to see direct support, though I was just > trying to figure out what's needed to hack this together on my end. > > I guess my real question is what underlying commands are necessary to > build all the source files (without actually compiling the C/C++)? If I can > understand how to do this manually with terminal/cmake/tblgen, then I could > probably get it to work with Bazel. > > Looking at TensorFlow's setup > <https://github.com/tensorflow/tensorflow/blob/efddd17519e43e956c3fa79981c408803521fe61/third_party/llvm/llvm.autogenerated.BUILD#L195>, > it looks like tblgen has dependencies on support which goes down to zlib > and gets a lot of complexity there. I get the impression that tblgen isn't > so complicated as to require all that. What would be the minimum steps to > build tblgen from source? >You could look at the cmake+ninja (or other build system) build and dump the commands it executes (I think ninja produces a log, or can do so) which should show you all the commands needed to build any part of LLVM. But yeah, I think you do have to build support to build tblgen, to run tblgen to generate the rest of the files to continue the build. - Dave> > Doug > > On Wed, Aug 15, 2018 at 1:28 PM Chris Bieneman <chris.bieneman at me.com> > wrote: > >> There have been discussions about adding a Bazel generator before: >> https://cmake.org/pipermail/cmake-developers/2017-July/030144.html >> >> There does seem to be interest in having that support in CMake, and I >> can't imagine any insurmountable reason why it couldn't be done. The real >> issue is that nobody has put in the time to do it. >> >> -Chris >> >> On Aug 15, 2018, at 11:21 AM, David Blaikie via llvm-dev < >> llvm-dev at lists.llvm.org> wrote: >> >> >> >> On Wed, Aug 15, 2018 at 10:04 AM Chris Lattner <clattner at nondot.org> >> wrote: >> >>> >>> >>> > On Aug 14, 2018, at 2:43 PM, David Blaikie via llvm-dev < >>> llvm-dev at lists.llvm.org> wrote: >>> > >>> > Yeah - not sure we're quite at the point where LLVM wants to start >>> supporting two build systems again (used to be Configure+Make and the CMake >>> system, now it's just the Cmake system), but if you want to make it work >>> out-of-tree it shouldn't be too difficult (Google does this internally with >>> the internal version of Bazel). Writing a short BUILD extension for running >>> tblgen should be possible without too much complexity - not sure what >>> Tensorflow is doing that makes its solution so complicated, it doesn't seem >>> like it should be terribly hard, just a genrule to run tblgen and generate >>> the appropriate files from the td files. >>> >>> Would it be technically possible for cmake to generate bazel files? If >>> so, it seems that that could be a great bridge, and useful to other >>> projects as well. >>> >> >> /maybe/? It's an interesting thought - not sure I know enough about >> either build system to have a very informed opinion here, though. >> >> - Dave >> >> >>> >>> -Chris >>> >>> _______________________________________________ >> LLVM Developers mailing list >> llvm-dev at lists.llvm.org >> http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev >> >> >>-------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20180815/6d817332/attachment.html>