From 4e0b4da1a28a0c60ed3c1ea6ae7bb2ea602c8910 Mon Sep 17 00:00:00 2001 From: Deepika Upadhyay Date: Tue, 6 Jul 2021 10:18:34 +0000 Subject: [PATCH] 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 --- cmake/modules/BuildJaeger.cmake | 10 ++++++---- cmake/modules/BuildOpenTracing.cmake | 5 +++-- cmake/modules/Buildthrift.cmake | 6 +++--- cmake/modules/Buildyaml-cpp.cmake | 4 ++-- 4 files changed, 14 insertions(+), 11 deletions(-) diff --git a/cmake/modules/BuildJaeger.cmake b/cmake/modules/BuildJaeger.cmake index 6a7d41208ad..55f9b31aeec 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 d9c716a23c4..405f53006b5 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 6601b943a16..6d9579a3521 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 f559c4d4dca..4f2d1367761 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 -- 2.39.5