<div dir="ltr"><div>Yes that is the reason. But in a way it is more than that, because if those variables aren't available to lit.cfg, then test suite won't work. lit *must* be able to find a site config.</div><div><br></div><div>There are three ways to get around this:</div><div><br></div><div>1) When you run lit.py, pass it a directory to your build tree. Then it points right to the site config, and everything works. The disadvantage to this method is that you might want to just run test, i.e. point lit to a single file in your source tree. You can't do that with this method.</div><div><br></div><div>2) pass param=libcxx_site_config=<path-to-site-config> to lit. This is cumbersome and a lot of typing. It might also not work 100% like you expect when used in conjunction with pointing to a single file in source tree. I don't know, I haven't really tested it.</div><div><br></div><div>3) use the generated llvm-lit script. This embeds the mapping from source tree site config -> build tree site config in the script, so that instead of `lit <path-to-test>` you run `llvm-lit <path-to-test>`. This way, we can detect that that you are pointing into the source tree, translate that to the build tree, and then load the proper site config automatically.</div></div><br><div class="gmail_quote"><div dir="ltr">On Thu, Nov 2, 2017 at 3:44 PM Volodymyr Sapsai <<a href="mailto:vsapsai@apple.com">vsapsai@apple.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div style="word-wrap:break-word;line-break:after-white-space">On Nov 1, 2017, at 17:22, Zachary Turner <<a href="mailto:zturner@google.com" target="_blank">zturner@google.com</a>> wrote:<br><div><blockquote type="cite"><br class="m_8193430181557633582Apple-interchange-newline"><div><div dir="ltr"><br><br><div class="gmail_quote"><div dir="ltr">On Wed, Nov 1, 2017 at 5:13 PM Volodymyr Sapsai <<a href="mailto:vsapsai@apple.com" target="_blank">vsapsai@apple.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div style="word-wrap:break-word;line-break:after-white-space">On Nov 1, 2017, at 16:47, Zachary Turner <<a href="mailto:zturner@google.com" target="_blank">zturner@google.com</a>> wrote:<br></div><div style="word-wrap:break-word;line-break:after-white-space"><div><blockquote type="cite"><br class="m_8193430181557633582m_-2225885694232795999Apple-interchange-newline"><div>This will remove the ability to use llvm-lit script even if source tree is available.<br></div></blockquote></div></div><div style="word-wrap:break-word;line-break:after-white-space"><div><div>Can you please point me to the place where llvm-lit is enabled in configure_lit_site_cfg? Asking for my education, to understand lit configuration better and to avoid breaking it. And how do you test llvm-lit script if source tree is available? I tried to check out libcxx to llvm/projects/, `ninja check-libcxx` worked fine. Though I didn’t use extra options, so this case might not reflect real-world usage.</div></div></div></blockquote><div><br></div><div>configure_lit_site_cfg doesn't actually enable llvm-lit generation, but if llvm-lit generation is already enabled, then using configure_lit_site_cfg will cause additional information to be written to the generated llvm-lit script so that you can use bin/llvm-lit <path-to-source-tree>.</div><div><br></div><div>I think all you need to do is say:</div><div><br></div><div>if (LIBCXX_STANDALONE_BUILD)</div><div> configure_file(...</div><div>else()</div><div> configure_lit_site_cfg(...</div><div>endif()</div><div><br></div><div>If this doesn't work for some reason though, or is too much effort, I'm not opposed to your original patch, since I think llvm-lit script generation is unconditionally disabled for libcxx right now anyway.</div><div> </div></div></div>
</div></blockquote></div><br></div><div style="word-wrap:break-word;line-break:after-white-space"><div>Thanks, now I see that with my change in llvm-lit there is no mapping in config_map for libcxx/test/lit.cfg What is the purpose of this mapping? Is it only to make variables from <a href="http://lit.site" target="_blank">lit.site</a>.<a href="http://cfg.in" target="_blank">cfg.in</a> expanded during configuration available to lit.cfg? Or are there some other use cases?</div></div></blockquote></div>