All of lore.kernel.org
 help / color / mirror / Atom feed
From: John Spray <jspray@redhat.com>
To: Sage Weil <sweil@redhat.com>
Cc: Ceph Development <ceph-devel@vger.kernel.org>
Subject: Re: cmake
Date: Wed, 16 Dec 2015 18:28:09 +0000	[thread overview]
Message-ID: <CALe9h7e4iS9=mgM4oR0iQcNBPUoA1G==bn4BK1TLka122NO=eQ@mail.gmail.com> (raw)
In-Reply-To: <alpine.DEB.2.00.1512160839350.10312@cobra.newdream.net>

On Wed, Dec 16, 2015 at 5:33 PM, Sage Weil <sweil@redhat.com> wrote:
> The work to transition to cmake has stalled somewhat.  I've tried to use
> it a few times but keep running into issues that make it unusable for me.
> Not having make check is a big one, but I think the hackery required to
> get that going points to the underlying problem(s).
>
> I seems like the main problem is that automake puts all build targets in
> src/ and cmake spreads them all over build/*.  This makes that you can't
> just add ./ to anything that would normally be in your path (or,
> PATH=.:$PATH, and then run, say, ../qa/workunits/cephtool/test.sh).
> There's a bunch of kludges in vstart.sh to make it work that I think
> mostly point to this issue (and the .libs things).  Is there simply an
> option we can give cmake to make it put built binaries directly in build/?
>
> Stepping back a bit, it seems like the goals should be
>
> 1. Be able to completely replace autotools.  I don't fancy maintaining
> both in parallel.

Yes!

> 2. Be able to run vstart etc from the build dir.

I'm currently doing this (i.e. being in the build dir and running
../src/vstart.sh), along with the vstart_runner.py for cephfs tests.
I did indeed have to make sure that vstart_runner was aware of the
differing binary paths though.

Though I'm obviously using just MDS+OSD, so I might be overstating the
extent to which it currently works.

> 3. Be able to run ./ceph[-anything] from the build dir, or put the build
> dir in the path.  (I suppose we could rely in a make install step, but
> that seems like more hassle... hopefully it's not neceesary?)

Shall we just put all our libs and binaries in one place?  This works for me:
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib)
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib)
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin)

(to get a bin/ and a lib/ with absolutely everything in)

That way folks can either get used to typing bin/foo instead of ./foo,
or add bin/ to their path.

> 4. make check has to work
>
> 5. Use make-dist.sh to generate a release tarball (not make dist)
>
> 6. gitbuilders use make-dist.sh and cmake to build packages
>
> 7. release process uses make-dist.sh and cmake to build a relelase
>
> I'm probably missing something?
>
> Should we set a target of doing the 10.0.2 or .3 with cmake?
>
> sage
> --
> To unsubscribe from this list: send the line "unsubscribe ceph-devel" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html

  parent reply	other threads:[~2015-12-16 18:28 UTC|newest]

Thread overview: 35+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-12-16 17:33 cmake Sage Weil
2015-12-16 17:53 ` cmake Loic Dachary
2015-12-16 18:28 ` John Spray [this message]
2015-12-16 19:36   ` cmake Sage Weil
2015-12-16 18:45 ` cmake Yehuda Sadeh-Weinraub
2015-12-16 19:06   ` cmake Matt Benjamin
2015-12-16 19:38     ` cmake Sage Weil
2015-12-16 23:47       ` cmake Willem Jan Withagen
2015-12-16 23:36   ` cmake Willem Jan Withagen
  -- strict thread matches above, loose matches on Subject: below --
2016-06-27 17:50 cmake Sage Weil
2016-06-28  7:35 ` cmake Willem Jan Withagen
2016-06-28  8:41   ` cmake Willem Jan Withagen
2016-06-28  8:57     ` cmake Willem Jan Withagen
2016-06-28 13:42   ` cmake Sage Weil
2016-06-28 16:05     ` cmake Willem Jan Withagen
2016-06-29 16:51       ` cmake Willem Jan Withagen
2016-06-30 19:03         ` cmake Willem Jan Withagen
2016-07-05 19:09     ` cmake Willem Jan Withagen
2016-06-28 20:28 ` cmake Casey Bodley
2016-06-28 21:43   ` cmake Mark Nelson
2016-07-04  9:05 ` cmake Willem Jan Withagen
2016-07-04 10:37   ` cmake Brad Hubbard
2015-12-03 22:24 cmake Pete Zaitcev
2015-12-03 22:30 ` cmake Adam C. Emerson
2015-12-04  0:03   ` cmake Pete Zaitcev
2015-12-04  0:26     ` cmake Matt Benjamin
2015-12-04  8:59       ` cmake Pete Zaitcev
2015-12-04 14:15         ` cmake Daniel Gryniewicz
2015-12-03 22:30 ` cmake Matt Benjamin
2015-12-03 22:31   ` cmake Matt Benjamin
2009-04-01 17:35 cmake Shane Dixon
2009-04-02  5:30 ` cmake Jeremy Lainé
2009-04-02 16:44   ` cmake Otavio Salvador
2009-04-02 18:07     ` cmake Koen Kooi
2009-04-02 17:07 ` cmake Robert Schuster

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to='CALe9h7e4iS9=mgM4oR0iQcNBPUoA1G==bn4BK1TLka122NO=eQ@mail.gmail.com' \
    --to=jspray@redhat.com \
    --cc=ceph-devel@vger.kernel.org \
    --cc=sweil@redhat.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.