* 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>
* Findlttng-ust.cmake: detect lttng-gen-tp, and make it a required var
* Findlttng-ust.cmake: fix the detection of lttng
* src/tracing/CMakeLists.txt:
- do not put the generated header files into ${CMAKE_SOURCE_DIR}/src/tracing,
instead we should put the generated files into ${PROJECT_BINARY_DIR}/include.
- do not compile the tracing library using the .c files in the repo,
instead, we should generate them at compile time using lttng-gen-tp,
and compile the genererated .c files.
* CMakeLists.txt: make the lttng-use package REQUIRED if WITH_LTTNG=ON
* src/CMakeLists.txt: let librados depend on librados-tp if LTTNG is
enabled: librados includes tracing/librados.h. the same applies to
librbd, libos and libosd. cmake could deduce the dependencies if we
add the lttng header files under include/tracing into the
corresponding target, as the lttng header files are already listed
as OUTPUT and GENERATED files, but this requires us to put all the
involved targets in the same CMakeLists.txt. in this case, three
CMakeLists.txts are impacted. so we create a new target for each
lttng header, and let the impacted target depend on it.
Signed-off-by: Kefu Chai <kchai@redhat.com>
Moved all the libraries in CMAKE_BINARY_DIR/lib
and all the binaries in CMAKE_BINARY_DIR/bin. Set
various environment variables for test-ceph-helpers.
Put those variables throughout
qa/workunits/ceph-helpers.sh.
NOTE: This is a very rough draft of these fixes.
Signed-off-by: Ali Maredia <amaredia@redhat.com>
* pass the environment variables using `env` to pass environment
varibles with space(s) in them to the COMMAND in add_custom_target.
otherwise, cmake will try to quote the space with "\". this breaks the
generated command line.
* add a comment for ccache to note that we do not expect ccache to speed
up linking. we use it as the linker's launcher to workaround
https://bugs.python.org/issue8027. to be specific,
distutils.UnixCCompiler.link overwrites the first linker CLI's arg
using the the first C++ compiler's CLI arg, if "env" is not used to
launch the linker. this breaks the cythonization of our pybind APIs.
Signed-off-by: Kefu Chai <kchai@redhat.com>
Use cmake's FindOpenSSL. Actually use the library definitions that
come out of it. Also use the include path. If SSL is disabled,
then build without any of this. The result will be a version
of civetweb that includes openssl support using dlopen() - ie,
what we used to do. This is probably a bit silly, and I hope
nobody actually expects to use it that way, but it's mostly harmless.
Signed-off-by: Marcus Watts <mwatts@redhat.com>
Use find_package to enforce the dependency up front (we should be
using this pattern throughout top-level CMakeLists.txt).
Signed-off-by: Matt Benjamin <mbenjamin@redhat.com>
Implement a new external authenticator based on LDAP and the
new external token format.
External LDAP auth now works, at least with openldap/X.500 style
naming and ldaps:// (SSL).
The latter is AD-friendly, but since AD uses dnattr=cn (IIRC)
everywhere, AD will need testing.
Signed-off-by: Matt Benjamin <mbenjamin@redhat.com>
This is temporary, until a way to stop repetitive
unecessary generation of headerfiles is figured out.
Signed-off-by: Ali Maredia <amaredia@redhat.com>
* use ${FUSE_LIBRARIES} instead of "fuse" when referencing libfuse.
* do not compile FuseStore.cc if !HAVE_LIBFUSE.
* CMakeLists.txt: s/HAVE_FUSE/HAVE_LIBFUSE/, to match with the one
defined for config.h.in.cmake, otherwise we need two vars:
HAVE_LIBFUSE, and HAVE_FUSE
Signed-off-by: Kefu Chai <kchai@redhat.com>
* this change is the cmake port of 911e7a0.
the rocksdb's Makefile will detect the installed libbz2 and libz4 by
its own. if the building env happens to have these libraries installed,
a link time dependency is introduced. so we are forced to link against
them.
* do not REQUIRE BZip2 in cmake anymore
* only link against bzip2 if it is detected
Signed-off-by: Kefu Chai <kchai@redhat.com>
Option WITH_XIO now OFF but required by default,
Findxio.cmake now using
FIND_PACKAGE_HANDLE_STANDARD_ARGS.
Signed-off-by: Ali Maredia <amaredia@redhat.com>
Set LTTNG option to ON by default, added
Findlttng.cmake, added CMakeLists.txt in
src/tracing that generates .h files using
lttng-gen-tp, added WITH_LTTNG to
config-h.in.cmake.
Signed-off-by: Ali Maredia <amaredia@redhat.com>
Added a FindJeMalloc.cmake file, changed
allocator checking logic (tcmalloc is default),
replaced TCMALLOC_LIBS to ALLOC_LIBS, added
HAVE_LIB(ALLOCATOR) to config-h.in.cmake.
Signed-off-by: Ali Maredia <amaredia@redhat.com>
Added CMakeLists.txt in src/kv, replaced
os_mon_objs with kv_objs, linked libkv to os,
added HAVE_LIBROCKSDB to config-h.in.cmake,
tweaked rocksdb unittest, added bluestore
unittests, made rocksdb build with
add_custom_target instead of custom_command.
Signed-off-by: Ali Maredia <amaredia@redhat.com>
musl libc does not provide sys_siglist. It does provide a reentrant implementation of strsignal().
Added a cmake build option for using reentrant strsignal() impls instead of sys_siglist.
Signed-off-by: John Coyle <dx9err@gmail.com>
This is what autotools does with AC_FUNC_STRERROR_R bit. It takes us
from
$ monmaptool --print nonexistant
monmaptool: monmap file nonexistant
monmaptool: couldn't open nonexistant: (2)
to
$ monmaptool --print nonexistant
monmaptool: monmap file nonexistant
monmaptool: couldn't open nonexistant: (2) No such file or directory
on cmake - otherwise we end up using GNU-specific version as if it was
the POSIX version.
Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
res_query in musl libc is thread safe. Added a WITH_THREAD_SAFE_RES_QUERY cmake build option to disable default res_query lock.
Signed-off-by: John Coyle <dx9err@gmail.com>