Commit Graph

117 Commits

Author SHA1 Message Date
Yuri Weinstein
ef087a488d Merge pull request #11531 from yuyuyu101/wip-rdma
msg/async: ibverbs/rdma support

Reviewed-by: Sage Weil <sage@redhat.com>
Reviewed-by: Mellanox <adirl@mellanox.com>
Reviewed-by: Matt Benjamin <mbenjami@redhat.com>
Reviewed-by: Mark Nelson <mnelson@redhat.com>
2016-11-04 07:43:38 -07:00
Haomai Wang
cf23acef71 msg/async/rdma: add build ops
Signed-off-by: Haomai Wang <haomai@xsky.com>
2016-11-01 15:34:04 +08:00
Radoslaw Zarzynski
46a44646e8 rgw: make the ASIO front-end compilation optional.
This is because of versioning issues between Boost and Beast
on CentOS 7. It is intended that this patch will be reverted
after merging the in-tree Boost facility.

Signed-off-by: Radoslaw Zarzynski <rzarzynski@mirantis.com>
2016-10-21 22:57:23 +02:00
Sage Weil
d30ee64fc7 Merge pull request #11500 from liewegas/wip-lttng
CMakeLists.txt: enable LTTNG by default

Reviewed-by: Kefu Chai <kchai@redhat.com>
2016-10-18 21:38:40 -05:00
Kefu Chai
7661da65bf Merge pull request #11481 from ddiss/cmake_rgw_deps
cmake: check WITH_RADOSGW for fcgi and expat dependencies

Reviewed-by: Kefu Chai <kchai@redhat.com>
2016-10-18 20:40:59 +08:00
Sage Weil
9a8bcf8fbf Merge remote-tracking branch 'gh/kraken' 2016-10-17 13:35:45 -04:00
Jenkins Build Slave User
697fe64f9f 11.0.2 2016-10-17 11:16:50 +00:00
Sage Weil
09a2383673 CMakeLists.txt: enable LTTNG by default
This makes dev builds more closely match package builds.

Signed-off-by: Sage Weil <sage@redhat.com>
2016-10-14 13:54:38 -04:00
David Disseldorp
d5b41b7647 cmake: check WITH_RADOSGW for fcgi and expat dependencies
The fcgi and expat libraries are only used by rgw, so only make them
hard requirements if WITH_RADOSGW is set.

Signed-off-by: David Disseldorp <ddiss@suse.de>
2016-10-13 18:48:21 +02:00
Bassam Tabbara
ca9946d2b5 cmake: find gperftools package for tcmalloc_minimal too
Signed-off-by: Bassam Tabbara <bassam.tabbara@quantum.com>
2016-10-11 10:12:52 -07:00
Jenkins Build Slave User
676cd2976f 11.0.1 2016-10-11 16:27:57 +00:00
John Spray
b3189d6824 cmake: update for ceph-mgr
Signed-off-by: John Spray <john.spray@redhat.com>
2016-09-29 17:26:56 +01:00
Casey Bodley
1a76324981 fio: generalize for other ObjectStores
* renamed target to fio_ceph_objectstore
* moved into src/test/fio subdirectory
* added to cmake build
* added support for DDIR_READ
* added required fio option 'conf' to load a ceph configuration file
* added multiple collections per job to simulate parallelism from pgs
* creates objects of the appropriate size on setup
* added support for multiple jobs that share an ObjectStore instance

Signed-off-by: Casey Bodley <cbodley@redhat.com>
2016-09-13 11:02:17 -04:00
Ricardo Dias
a8f8598a73
cmake: Use WITH_TESTS flag to guard the build of ceph-test scripts/binaries
Signed-off-by: Ricardo Dias <rdias@suse.com>
2016-09-09 14:12:44 +01:00
Kefu Chai
2ed44f993f cmake: replace Findlttng-ust.cmake with FindLTTngUST.cmake
find_package(lttng-ust REQUIRED) fails to find the lttng library without
this change. because find_path(LTTNG_LIBRARY_DIR ...) does not search
in the default library paths. and the second mode of
FIND_PACKAGE_HANDLE_STANDARD_ARGS() does not stop the cmake with a fatal
message, even some of the required vars are missing. so use the
implemetantion from cmake upstream.

Signed-off-by: Kefu Chai <kchai@redhat.com>
2016-08-30 15:51:51 +08:00
Josh Durgin
aaac836380 Merge pull request #10208 from BlaXpirit/cmake-py3
Include Python 3 bindings into the cmake build and make packages for them

Reviewed-by: Nathan Cutler <ncutler@suse.com>
Reviewed-by: Kefu Chai <kchai@redhat.com>
Reviewed-by: Josh Durgin <jdurgin@redhat.com>
2016-08-12 16:30:35 -07:00
Oleh Prypin
5683a8259b cmake: Also build Python bindings for Python 3
Signed-off-by: Oleh Prypin <oleh@pryp.in>
2016-08-11 16:36:57 +03:00
Kefu Chai
96fdb6914a cmake: cleanup Findleveldb.cmake
* and reference leveldb library and include dir with fullpath

Signed-off-by: Kefu Chai <kchai@redhat.com>
2016-08-11 14:53:02 +08:00
Kefu Chai
6c12edbf9d cmake: cleanup Findgperftools.cmake
* remove Findtcmalloc.cmake, use Findgperftools.cmake instead.
* tcmalloc is packaged in gperftools-dev, so we can check them in a single
  place.
* fix the check of heap-profiler.h, we should enable the check as long
  as tcmalloc is enabled or profiler is enabled.
* only check gperftools headers in "include/gperftools", and do not
  "include/google" anymore. as we only support the distros which
  shipping recent gperftools-dev package with "include/gperftools".
  and "google/*.h" are deprecated.
* set ALLOC_LIBS with GPERFTOOLS_TCMALLOC_LIBRARY, so we can link
  against tcmalloc with full path.

Signed-off-by: Kefu Chai <kchai@redhat.com>
2016-08-11 14:06:39 +08:00
Kefu Chai
8bac1c1eeb cmake: do not reference undefined variables
* AIO_LIBS is now named AIO_LIBARIES, and there is not point to print
  out its path
* USE_NSS is not defined if NSS is not checked, so if(USE_NSS) is better
  here.

Signed-off-by: Kefu Chai <kchai@redhat.com>
2016-07-29 23:12:33 +08:00
Kefu Chai
221c47d349 cmake: set policies
this makes sure we are compatible with latest and future cmake

Signed-off-by: Kefu Chai <kchai@redhat.com>
2016-07-29 23:12:33 +08:00
Kefu Chai
8268d1ba6a cmake: do not link against profiler if gperftools is found
this behaviour matches the autotools. and we should not enable profiling
unless asked to do so.

Fixes: http://tracker.ceph.com/issues/16804
Signed-off-by: Kefu Chai <kchai@redhat.com>
2016-07-25 16:22:20 +08:00
Kefu Chai
f8553f3ab9 cmake: do not include undefind paths
for example
```
include_directories(${LEVELDB_PREFIX}/include)
```
does not make sense if `LEVELDB_PREFIX` is not defined.

Signed-off-by: Kefu Chai <kchai@redhat.com>
2016-07-25 15:40:30 +08:00
Kefu Chai
e21d98aed4 cmake: cleanup FindOpenLdap.cmake
* use find_package_handle_standard_args() and remove unused bits.
* rename OPENLDAP_LIBS to OPENLDAP_LIBRARIES, to be consistent with
  find_package() modules.

Signed-off-by: Kefu Chai <kchai@redhat.com>
2016-07-25 15:39:01 +08:00
Kefu Chai
3170f16e86 cmake: do not check libuuid anymore
libuuid dependency is not found in ceph.spec.in or debian/control.
and we are not using libuuid since 62bfc7a.

Signed-off-by: Kefu Chai <kchai@redhat.com>
2016-07-25 15:39:01 +08:00
Kefu Chai
af1598a3b3 Merge pull request #10352 from wjwithagen/wip-wjw-freebsd-cmake-2
cmake: work to get inital FreeBSD stuff

Reviewed-by: Kefu Chai <kchai@redhat.com>
2016-07-24 18:18:45 +08:00
Willem Jan Withagen
a38a7fa198 CMakeLists.txt: Add FreeBSD isms
Signed-off-by: Willem Jan Withagen <wjw@digiware.nl>
2016-07-20 15:57:41 +02:00
Kefu Chai
ec84d7169b cmake: CMAKE_MODULE_PATH is a list and empty by default
we should not reference it using ${CMAKE_MODULE_PATH} before assigning
to it.

Signed-off-by: Kefu Chai <kchai@redhat.com>
2016-07-20 15:10:48 +08:00
Kefu Chai
636522b669 cmake: use FindBacktrace instead of Findexecinfo
always better to use upstream cmake modules.

Signed-off-by: Kefu Chai <kchai@redhat.com>
2016-07-20 14:47:52 +08:00
Kefu Chai
ce5724effb cmake: add a "tests" target to build tests
please note "make test" is used by cmake to run tests, so we cannot just
repurpose it to *build* them.

* AddCephTest.cmake: depends on "tests"
* CMakeLists.txt: let "check" depend on "tests"
* src/CMakeLists.txt: update the run-tox tests
* run-make-check.sh: use "make tests" and "ctest" instead of "make check"
* ceph-detect-init/CMakeLists.txt: let "tests" depend on
    "ceph-detect-init"
* ceph-disk/CMakeLists.txt: let "tests" depend on "ceph-disk"

Signed-off-by: Kefu Chai <kchai@redhat.com>
2016-07-16 10:57:12 +08:00
Kefu Chai
2e7c72d8e8 cmake: do not check for availability of static_cast<> anymore
it's implied by C++11 compliance.

Signed-off-by: Kefu Chai <kchai@redhat.com>
2016-07-13 17:23:11 +08:00
Kefu Chai
1a86184260 cmake: use CHECK_STRUCT_HAS_MEMBER for checking member variables in struct
we were using CHECK_CXX_SOURCE_COMPILES() for this purpose, which was a
little bit clumsy.

Signed-off-by: Kefu Chai <kchai@redhat.com>
2016-07-13 17:13:20 +08:00
Kefu Chai
5e58249362 cmake: fix the detection of curl_multi_wait()
it was broken by b5bb77d5

Signed-off-by: Kefu Chai <kchai@redhat.com>
2016-07-11 21:29:11 +08:00
Kefu Chai
654d86fe2b Merge pull request #9763 from dx9/wip-pthread-np
compat: add abstractions for non portable pthread name funcs

Reviewed-by: Kefu Chai <kchai@redhat.com>
2016-07-11 11:46:47 +08:00
Kefu Chai
07387eb9af Merge pull request #10186 from ceph/wip-cmake-no-with-mds
cmake: remove WITH_MDS option

Reviewed-by: Sage Weil <sage@redhat.com>
Reviewed-by: Ken Dreyer <kdreyer@redhat.com>
Reviewed-by: Kefu Chai <kchai@redhat.com>
2016-07-08 11:37:04 +08:00
Ali Maredia
cfcf0706f2 cmake: remove option
Signed-off-by: Ali Maredia <amaredia@redhat.com>
2016-07-07 14:31:32 -04:00
Kefu Chai
b5bb77d566 cmake: use the stock FindCURL.cmake
Signed-off-by: Kefu Chai <kchai@redhat.com>
2016-07-07 23:26:02 +08:00
Kefu Chai
3646fa5c6b cmake: use the stock FindEXPAT.cmake
Signed-off-by: Kefu Chai <kchai@redhat.com>
2016-07-07 23:26:02 +08:00
John Coyle
3ba630636d compat: add abstractions for non portable pthread name funcs
Supports GNU, FreeBSD, OSX, and Alpine.

Signed-off-by: John Coyle <dx9err@gmail.com>
2016-07-04 11:19:51 -04:00
Kefu Chai
5850687875 cmake: use selinux/devel/Makefile for building selinux policy
was using selinux/devel/include/Makefile, which was wrong.

Signed-off-by: Kefu Chai <kchai@redhat.com>
2016-06-30 19:27:44 +08:00
Kefu Chai
41061ce769 cmake: install systemd files
add an option "WITH_SYSTEMD", off by default

Signed-off-by: Kefu Chai <kchai@redhat.com>
2016-06-30 19:27:43 +08:00
Matt Benjamin
83e66809e9 cmake: rework NSS and SSL
The cmake build should select NSS or CryptoPP consistently with
current autoconf logic, as used in our RHEL builds (-DWITH_NSS),
and the SSL linkage must match (for NSS, -lssl3).

With this change, there is no direct linkage with libssl when NSS
is selected (I still see indirect linkage via libcurl, in turn
via libssh2, looking into that).

With guidance from upstream and downstream, NSS builds are now
selected by default.

Signed-off-by: Matt Benjamin <mbenjamin@redhat.com>
2016-06-29 12:36:46 -04:00
Kefu Chai
6b12a395eb cmake: use CMAKE_POSITION_INDEPENDENT_CODE property instead of -fPIC
use the global setting of CMAKE_POSITION_INDEPENDENT_CODE instead of
hardwiring the CMAKE_C_FLAGS with -fPIC. this helps to reduce the
overhead of symbol resolution when user is using static libraries.
see
https://cmake.org/cmake/help/v2.8.11/cmake.html#variable:CMAKE_POSITION_INDEPENDENT_CODE

Signed-off-by: Kefu Chai <kchai@redhat.com>
2016-06-29 22:26:25 +08:00
Sage Weil
74ec4f94b1 CMakeLists: nss only, ignore cryptopp
Signed-off-by: Sage Weil <sage@redhat.com>
2016-06-29 22:26:24 +08:00
Matt Benjamin
1467637437 cmake: fix mis-matched arguments to if warning
Signed-off-by: Matt Benjamin <mbenjamin@redhat.com>
2016-06-10 15:09:45 -04:00
Kefu Chai
48a1f8eff5 cmake: always set ALLOCATOR at configure time
so it would be easier to figure out what allocator we are using later,
instead of poking around ${Foo}_FOUND variables.

Signed-off-by: Kefu Chai <kchai@redhat.com>
2016-06-08 12:06:31 +08:00
Kefu Chai
9e768393bf cmake: s/BUILD_SHARED_LIBS/ENABLE_SHARED/
Signed-off-by: Kefu Chai <kchai@redhat.com>
2016-06-06 12:42:02 +08:00
Kefu Chai
cf9a42c7cc cmake: use ENABLE_SHARED instead of BUILD_SHARED_LIBS
we decided to drop the static libraries from the *-dev debian packages.
so no more tricky changes for supporting creating both libraries.

* partially revert 1dbfb26: s/BUILD_SHARED_LIBS/ENABLE_SHARED/
 - add_library() command use BUILD_SHARED_LIBS as the default library
   type, and all intermediate libraries should static ones. it would
   cause unnecessary confusion if some developer uses add_library() without
   specifying the library type, and ends up with a .so. so we use our
   own setting variables for specifying the type of user facing libraries.
* revert ac47440
 - the BUILD_SHARED_LIBS setting is also populated to the gmock libraries,
   which should be compiled as static ones. otherwise the unit tests will
   crash on exit.

Signed-off-by: Kefu Chai <kchai@redhat.com>
2016-06-04 12:57:19 +08:00
Kefu Chai
c1a37101ea cmake: project name should be "ceph"
so it would be easier to figure out paths, also
CMAKE_INSTALL_DOCDIR is composed using the PROJECT_NAME also.

Signed-off-by: Kefu Chai <kchai@redhat.com>
2016-06-01 23:49:46 +08:00
Kefu Chai
1dbfb264ff cmake: s/ENABLE_SHARED/BUILD_SHARED_LIBS/
* BUILD_SHARED_LIB is a cmake variable respected by add_library().
  so we can simply expose it as an option instead of reinventing our own.
* and mark internal libraries as STATIC explicitly
* and add keyutil to librbd as secret.cc is using it. and secret.cc is
  linked into librbd.

Signed-off-by: Kefu Chai <kchai@redhat.com>
2016-05-28 00:34:52 +08:00