Hi Everybody,
Things have been quiet on this list for a few weeks, but now it's time
to show our hand.
We can now build Boost's QuickBook tool (an executable) on Posix and
Windows. This is a pretty good test case because it depends on a
great many Boost libraries, both header-only and compiled, and it
builds an executable so you get to see something run.
How it works:
1. you invoke the "ryppl develop" command with the URLs of one or more
enhanced 0install "feed files" (in this case, the feed describing
quickbook) and a directory in which to create a project workspace.
2. Ryppl uses 0install to "solve" for compatible versions of all the
components involved, including all recursive dependencies (of
QuickBook in this case)
3. Ryppl creates a local git repository in the workspace's src/ subdirectory
4. Ryppl adds as git submodules each component for which it has a
source repository reference, checked out at a version determined in
step 2 (in parallel!)
5. Ryppl creates a build/ subdirectory in the workspace
6. Ryppl prompts the user for a build system (back-end) to use
7. Ryppl invokes CMake to generate the build system files
8. You go into the workspace's build/ subdirectory and fire up the
build system, e.g. make, or open the IDE project
Here's what it looks like on my Mac:
$ ryppl develop
https://raw.github.com/ryppl/feeds/gh-pages/boost/quickbook-src.xml
/tmp/qb
Fetching stale/missing 0install feeds
[latest.xm] [latest.xm] [latest.xm] [latest.xm] [latest.xm]
[latest.xm] [latest.xm] [latest.xm] [l
Creating src/ directory...
Fetching components:
Boost.Bind (source code)
Boost.Algorithm (source code)
Boost.MPL (source code)
Boost.SmartPtr (source code)
Boost.Format (source code)
Boost.TR1 (source code)
Boost.Optional (source code)
Boost.Tokenizer (source code)
Boost.Regex (source code)
Quickbook (source code)
Boost.Exception (source code)
Boost.Proto (source code)
Boost.Function (source code)
Boost.Container (source code)
Boost.Lambda (source code)
Boost.Unordered (source code)
Boost.Units (source code)
Boost.Tuple (source code)
Boost.Array (source code)
Boost.Fusion (source code)
Boost.Move (source code)
Boost.NumericConversion (source code)
Boost.Typeof (source code)
Boost.Range (source code)
Boost.Any (source code)
Boost.Math (source code)
Boost.Utility (source code)
Boost.Iterator (source code)
Boost.Spirit (source code)
Boost.SpiritClassic (source code)
Boost.FunctionalHash (source code)
Boost.Variant (source code)
ryppl
Boost.Conversion (source code)
Boost.FunctionTypes (source code)
Boost.ConceptCheck (source code)
Boost.TypeTraits (source code)
Boost.ProgramOptions (source code)
Boost.Preprocessor (source code)
Boost.System (source code)
Boost.Pool (source code)
Boost.IOStreams (source code)
Boost.Core (source code)
Boost.Integer (source code)
Boost.Intrusive (source code)
Boost.Filesystem (source code)
Boost.Parameter (source code)
Boost.StaticAssert (source code)
Boost.UBLAS (source code)
Boost.Config (source code)
Boost.Phoenix (source code)
Boost.IO (source code)
Boost.Foreach (source code)
Waiting for submodules...
config: done.
io: done.
foreach: done.
phoenix: done.
spirit: done.
ublas: done.
math: done.
done.
Please select a build system:
[0] Unix Makefiles
[1] Xcode
[2] CodeBlocks - Unix Makefiles
[3] Eclipse CDT4 - Unix Makefiles
[4] KDevelop3
[5] KDevelop3 - Unix Makefiles
Build system [0-5]:1
-- Found BZip2: /usr/lib/libbz2.dylib (found version "1.0.6")
-- Found ZLIB: /usr/lib/libz.dylib (found version "1.2.5")
-- Configuring done
-- Generating done
-- Build files have been written to: /tmp/qb/build
Now I fire up /tmp/qb/build/Project.xcodeproj and I have an IDE
project that builds Quickbook.
This process actually gets you everything you need to run tests, build
examples, and build documentation (i.e. "develop") for the feeds
you've requested on the command-line. However, we haven't ported QB's
tests to CMake yet, so you won't see that with this particular feed.
I'd appreciate it if people could try this out on their own machines.
I don't expect a 0.8 release to be slick and easy to use, but I'd like
to know just how rough the edges are before it goes out the door, and
I have enough already set up in my configuration that I'm sure to miss
some steps. Also, rather than dump all the things you *might* have to
do to get this working, I'd like to publish a set of minimal steps.
So, yes, I'm asking you to please be my patient guinea-pig and fail a
few times before we get it right. The instructions are here:
https://github.com/ryppl/ryppl/wiki/Setting-up-a-Ryppl-test
Thanks for your support!
--
Dave Abrahams
BoostPro Computing
http://www.boostpro.com