[swift-dev] libdispatch switched to CMake

Saleem Abdulrasool compnerd at compnerd.org
Fri Sep 22 19:59:16 CDT 2017

On Fri, Sep 22, 2017 at 2:31 PM, Jordan Rose <jordan_rose at apple.com> wrote:

> Hey, Saleem. I don't build libdispatch that often, but it seems to be
> broken for me. If I delete the libdispatch-specific build directory and
> then use build-script with --reconfigure, it doesn't actually attempt to
> reconfigure.
> [4/50] Performing build step for 'libdispatch'
> FAILED: cd /home/jrose/public/build/Ninja-RelWithDebInfoAssert/libdispatch-linux-x86_64
> && /usr/bin/cmake --build . && /usr/bin/cmake -E touch
> /home/jrose/public/build/Ninja-RelWithDebInfoAssert/
> swift-linux-x86_64/tools/SourceKit/libdispatch-prefix/
> src/libdispatch-stamp/libdispatch-build
> When I deleted my entire build directory and built from scratch,
> libdispatch built, but Foundation couldn't see it.
> Foundation/URLSession/http/HTTPURLProtocol.swift:325:19: error: use of
> undeclared type 'DispatchData'
>         case data(DispatchData)
>                   ^~~~~~~~~~~~
> Any ideas what's going wrong?

So, definitely have an idea for the first case.  When building for Linux,
the libdispatch build is shared across the swift build and the libdispatch
build.  libdispatch is built as part of swift to be linked into SourceKit.
If you disable SourceKit, this dependency will be broken.  The Jenkins
builds had this exact issue (which we were able to identify between myself,
mgottesmann, JoeS. and mishal_shah).  With the switch to CMake, the
dependency should be tracked and you do not need to blow away libdispatch
inbetween the builds (which is the better option -- just treat the
incremental builds as incremental, no need to do any clean up).

As to the Foundation issue, Im not sure ... possibly that the swift module
is not built?  Ill try to take a look at that (though, honestly, that would
probably be tomorrow).  Sorry about the trouble there (it built for me and
on the build bots).

> Jordan
> On Sep 18, 2017, at 15:28, Saleem Abdulrasool via swift-dev <
> swift-dev at swift.org> wrote:
> Hello swift-dev,
> This change should be transparent to everyone, but, it still is a pretty
> big milestone.
> As of this afternoon, the non-Darwin builds use CMake to build
> libdispatch.  This work has been underway for quite some time, and we have
> finally switched to that as the default on most targets.  This should be
> more or less transparent to everyone developing with build-script or even
> invoking CMake for swift directly.
> This simplifies some of the logic for integrating the projects and avoid
> unnecessary commands from being run.
> Thanks particularly to Michael Gottesman, Chris Bieneman, Daniel Steffen,
> David Grove, and Pierre Habouzit.  Sorry if I accidentally left someone off
> the list!
> Saleem
> --
> Saleem Abdulrasool
> compnerd (at) compnerd (dot) org
> _______________________________________________
> swift-dev mailing list
> swift-dev at swift.org
> https://lists.swift.org/mailman/listinfo/swift-dev

Saleem Abdulrasool
compnerd (at) compnerd (dot) org
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.swift.org/pipermail/swift-dev/attachments/20170922/e3bd9095/attachment.html>

More information about the swift-dev mailing list