Better build process

Issue #14 new
Graham Lee repo owner created an issue

It should be a single step to build the app after cloning the source.

Comments (9)

  1. Graham Lee reporter

    When I try to configure && make llvm from inside Xcode (either from a shell script build phase or a make-based external build target), make fails immediately with:

    /Users/leeg/Documents/Isambard/ClassBrowser/Makefile.config:68: *** Projects must define PROJ_SRC_ROOT. Stop.

    I haven't got past that, running the same invocations directly in the shell works correctly.

  2. Joe Booth

    Sorry if this is a noob question - but if we have xcode5 installed, do we need to pull and build clang? is there a way to link to the xcode5 bins?

  3. Jeremy W. Sherman

    @sohojoe I don't think so. It doesn't seem to provide the libraries ClassBrowser needs, and even if it did, relying on Xcode to provide them would be fragile and prone to breakage.

    ClassBrowser builds against a lot of LLVM libraries. The only libLLVM* installed with Xcode seem to be a couple copies of libLLVMContainer.dylib, so it doesn't look like Xcode provides what ClassBrowser needs.

    For extra fun, the clang C++ API is not stable across revisions, so ClassBrowser's code is coupled to a specific LLVM revision. Since Apple's tree isn't public, I'm not sure ClassBrowser could link against libraries provided by Xcode, even if Xcode did bundle the ones we need. It would also be vulnerable to breakage when Xcode updates, and possibly even if you xcode_select another version.

  4. Jeremy W. Sherman

    @iamleeg Could you push up your WIP as a branch? I'd like to see if I can cadge Xcode into doing what it should by debugging your WIP without having to recreate it from scratch first.

    Thanks!

  5. Graham Lee reporter

    @jeremy-w Sure, have a look at the build-llvm branch. This incorporates a git mirror of llvm as a submodule with compiler-rt and clang as submodules of that, so you'll need to git submodule update --init --recursive once you've switched branch.

  6. Log in to comment