[PATCH] D14847: Support CMake's clang_rt.profile library naming scheme
Chris Bieneman via cfe-commits
cfe-commits at lists.llvm.org
Thu Nov 19 16:16:58 PST 2015
> On Nov 19, 2015, at 4:12 PM, Justin Bogner <mail at justinbogner.com> wrote:
>
> Chris Bieneman <beanz at apple.com <mailto:beanz at apple.com>> writes:
>> beanz created this revision.
>> beanz added a reviewer: bogner.
>> beanz added a subscriber: cfe-commits.
>>
>> This code is a bit undesirable, but it gets clang to work with the
>> autoconf and cmake-built libclang_rt.profile libraries.
>
> Yeah, this is a bit awkward, but it makes sense for the transition
> period. LGTM with a couple of nits.
>
>> http://reviews.llvm.org/D14847
>>
>> Files:
>> lib/Driver/ToolChains.cpp
>>
>> Index: lib/Driver/ToolChains.cpp
>> ===================================================================
>> --- lib/Driver/ToolChains.cpp
>> +++ lib/Driver/ToolChains.cpp
>> @@ -323,21 +323,35 @@
>> ArgStringList &CmdArgs) const {
>> if (!needsProfileRT(Args)) return;
>>
>> + // TODO: Clean this up once autoconf is gone
>> + SmallString<128> P(getDriver().ResourceDir);
>> + llvm::sys::path::append(P, "lib", "darwin");
>> + auto library = "libclang_rt.profile_osx.a";
>
> Did you just use auto for a 'const char *'? I don't think its worth the
> saved keystrokes. Also, the variable should be named "Library”.
I optimize for keystrokes, and that is more than 2x as many characters!
I’ll update and commit :-)
-Chris
>
>> +
>> // Select the appropriate runtime library for the target.
>> - if (isTargetWatchOSBased()) {
>> - AddLinkRuntimeLib(Args, CmdArgs, "libclang_rt.profile_watchos.a",
>> - /*AlwaysLink*/ true);
>> - } else if (isTargetTvOSBased()) {
>> - AddLinkRuntimeLib(Args, CmdArgs, "libclang_rt.profile_tvos.a",
>> - /*AlwaysLink*/ true);
>> - } else if (isTargetIOSBased()) {
>> - AddLinkRuntimeLib(Args, CmdArgs, "libclang_rt.profile_ios.a",
>> - /*AlwaysLink*/ true);
>> + if (isTargetWatchOS()) {
>> + library = "libclang_rt.profile_watchos.a";
>> + } else if (isTargetWatchOSSimulator()) {
>> + llvm::sys::path::append(P, "libclang_rt.profile_watchossim.a");
>> + library = getVFS().exists(P) ? "libclang_rt.profile_watchossim.a"
>> + : "libclang_rt.profile_watchos.a";
>> + } else if (isTargetTvOS()) {
>> + library = "libclang_rt.profile_tvos.a";
>> + } else if (isTargetTvOSSimulator()) {
>> + llvm::sys::path::append(P, "libclang_rt.profile_tvossim.a");
>> + library = getVFS().exists(P) ? "libclang_rt.profile_tvossim.a"
>> + : "libclang_rt.profile_tvos.a";
>> + } else if (isTargetIPhoneOS()) {
>> + library = "libclang_rt.profile_ios.a";
>> + } else if (isTargetIOSSimulator()) {
>> + llvm::sys::path::append(P, "libclang_rt.profile_iossim.a");
>> + library = getVFS().exists(P) ? "libclang_rt.profile_iossim.a"
>> + : "libclang_rt.profile_ios.a";
>> } else {
>> assert(isTargetMacOS() && "unexpected non MacOS platform");
>> - AddLinkRuntimeLib(Args, CmdArgs, "libclang_rt.profile_osx.a",
>> - /*AlwaysLink*/ true);
>> }
>> + AddLinkRuntimeLib(Args, CmdArgs, library,
>> + /*AlwaysLink*/ true);
>> return;
>> }
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20151119/339564b7/attachment-0001.html>
More information about the cfe-commits
mailing list