From: Deepika Upadhyay Date: Tue, 6 Jul 2021 10:18:34 +0000 (+0000) Subject: cmake: update build.cmake for supporting ninja X-Git-Tag: v17.1.0~1325^2~14 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=4e0b4da1a28a0c60ed3c1ea6ae7bb2ea602c8910;p=ceph.git cmake: update build.cmake for supporting ninja * affects cmake builds for: yaml-cpp, thrift, jaeger, opentracing external projects changes done: * artificat BUILD_BYPRODUCT which tells ninja which library will be generated after the build(needed for dependent build libs) * use cmake_command if `make` not found so that we use default generator, cmake will identify and use ninja directly in this case. * minor reorder of boost path in jaeger build external projet fixes: https://tracker.ceph.com/issues/51029 Signed-off-by: Deepika Upadhyay --- diff --git a/cmake/modules/BuildJaeger.cmake b/cmake/modules/BuildJaeger.cmake index 6a7d41208ad6..55f9b31aeec0 100644 --- a/cmake/modules/BuildJaeger.cmake +++ b/cmake/modules/BuildJaeger.cmake @@ -22,9 +22,10 @@ function(build_jaeger) -DCMAKE_INSTALL_RPATH_USE_LINK_PATH=TRUE -DOpenTracing_DIR=${CMAKE_SOURCE_DIR}/src/jaegertracing/opentracing-cpp -Dnlohmann_json_DIR=/usr/lib + -DCMAKE_FIND_ROOT_PATH=${CMAKE_BINARY_DIR}/external\;${CMAKE_BINARY_DIR}/boost\;${CMAKE_BINARY_DIR}/boost/include -DCMAKE_INSTALL_PREFIX=${CMAKE_BINARY_DIR}/boost\;${CMAKE_BINARY_DIR}/boost/include\;${CMAKE_BINARY_DIR}/external - -DCMAKE_FIND_ROOT_PATH=${CMAKE_BINARY_DIR}/boost\;${CMAKE_BINARY_DIR}/boost/include\;${CMAKE_BINARY_DIR}/external -DCMAKE_INSTALL_LIBDIR=${CMAKE_BINARY_DIR}/external/lib + -DBOOST_INCLUDEDIR=${CMAKE_BINARY_DIR}/boost/include -Dthrift_HOME=${CMAKE_BINARY_DIR}/external -DOpenTracing_HOME=${CMAKE_BINARY_DIR}/external) @@ -44,11 +45,11 @@ function(build_jaeger) if(CMAKE_MAKE_PROGRAM MATCHES "make") # try to inherit command line arguments passed by parent "make" job - set(make_cmd $(MAKE)) + set(make_cmd $(MAKE) Jaeger) else() - set(make_cmd ${CMAKE_COMMAND} --build --config $ --target Jaeger) + set(make_cmd ${CMAKE_COMMAND} --build --target Jaeger) endif() - set(install_cmd $(MAKE) install DESTDIR=) + set(install_cmd ${CMAKE_MAKE_PROGRAM} install) include(ExternalProject) ExternalProject_Add(Jaeger @@ -61,5 +62,6 @@ function(build_jaeger) BUILD_COMMAND ${make_cmd} INSTALL_COMMAND ${install_cmd} DEPENDS "${dependencies}" + BUILD_BYPRODUCTS ${CMAKE_BINARY_DIR}/external/lib/libjaegertracing.so ) endfunction() diff --git a/cmake/modules/BuildOpenTracing.cmake b/cmake/modules/BuildOpenTracing.cmake index d9c716a23c49..405f53006b53 100644 --- a/cmake/modules/BuildOpenTracing.cmake +++ b/cmake/modules/BuildOpenTracing.cmake @@ -15,11 +15,11 @@ function(build_opentracing) if(CMAKE_MAKE_PROGRAM MATCHES "make") # try to inherit command line arguments passed by parent "make" job - set(make_cmd $(MAKE) ) + set(make_cmd $(MAKE) opentracing) else() set(make_cmd ${CMAKE_COMMAND} --build --target opentracing) endif() - set(install_cmd $(MAKE) install DESTDIR=) + set(install_cmd ${CMAKE_MAKE_PROGRAM} install) include(ExternalProject) ExternalProject_Add(opentracing @@ -31,5 +31,6 @@ function(build_opentracing) BUILD_IN_SOURCE 1 BUILD_COMMAND ${make_cmd} INSTALL_COMMAND ${install_cmd} + BUILD_BYPRODUCTS ${CMAKE_BINARY_DIR}/external/lib/libopentracing.so ) endfunction() diff --git a/cmake/modules/Buildthrift.cmake b/cmake/modules/Buildthrift.cmake index 6601b943a16a..6d9579a35212 100644 --- a/cmake/modules/Buildthrift.cmake +++ b/cmake/modules/Buildthrift.cmake @@ -34,12 +34,11 @@ function(build_thrift) if(CMAKE_MAKE_PROGRAM MATCHES "make") # try to inherit command line arguments passed by parent "make" job - set(make_cmd $(MAKE)) + set(make_cmd $(MAKE) thrift) else() set(make_cmd ${CMAKE_COMMAND} --build --target thrift) endif() - - set(install_cmd $(MAKE) install DESTDIR=) + set(install_cmd ${CMAKE_MAKE_PROGRAM} install) include(ExternalProject) ExternalProject_Add(thrift @@ -50,5 +49,6 @@ function(build_thrift) BUILD_COMMAND ${make_cmd} INSTALL_COMMAND ${install_cmd} DEPENDS ${dependencies} + BUILD_BYPRODUCTS ${CMAKE_BINARY_DIR}/external/lib/libthrift.so ) endfunction() diff --git a/cmake/modules/Buildyaml-cpp.cmake b/cmake/modules/Buildyaml-cpp.cmake index f559c4d4dca9..4f2d13677615 100644 --- a/cmake/modules/Buildyaml-cpp.cmake +++ b/cmake/modules/Buildyaml-cpp.cmake @@ -14,11 +14,11 @@ function(build_yamlcpp) if(CMAKE_MAKE_PROGRAM MATCHES "make") # try to inherit command line arguments passed by parent "make" job - set(make_cmd "$(MAKE)") + set(make_cmd $(MAKE) yaml-cpp) else() set(make_cmd ${CMAKE_COMMAND} --build --target yaml-cpp) endif() -set(install_cmd $(MAKE) install DESTDIR=) + set(install_cmd ${CMAKE_MAKE_PROGRAM} install) include(ExternalProject) ExternalProject_Add(yaml-cpp