mirror of
https://github.com/ceph/ceph
synced 2025-02-22 02:27:29 +00:00
cmake: do not assume ${CMAKE_GENERATOR} == make
* modules/BuildDPDK.cmake: always use "make" * modules/BuildSPDK.cmake: always use "make" DPDK only support "make". if user wants to use other generator than "make", we will fail to build DPDK support. so we should always use "make" here. and before using "make", we need to detect it. * cmake/modules/BuildRocksDB.cmake: use cmake for build * src/compressor/zstd/CMakeLists.txt: use cmake for build just use whatever generator use specifies, and use ${CMAKE_COMMAND} for building the specified target, no need to repeat ${CMAKE_GENERATOR} for building the target. Signed-off-by: Kefu Chai <kchai@redhat.com>
This commit is contained in:
parent
33d929373e
commit
a0c6fb9d40
@ -1,4 +1,5 @@
|
||||
function(do_build_dpdk dpdk_dir)
|
||||
find_program (MAKE_EXECUTABLE NAMES make gmake)
|
||||
# mk/machine/native/rte.vars.mk
|
||||
# rte_cflags are extracted from mk/machine/${machine}/rte.vars.mk
|
||||
# only 3 of them have -march=<arch> defined, so copying them here.
|
||||
@ -59,7 +60,7 @@ function(do_build_dpdk dpdk_dir)
|
||||
set(target "${arch}-${machine_tmpl}-${execenv}-${toolchain}")
|
||||
|
||||
execute_process(
|
||||
COMMAND ${CMAKE_MAKE_PROGRAM} showconfigs
|
||||
COMMAND ${MAKE_EXECUTABLE} showconfigs
|
||||
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/src/spdk/dpdk
|
||||
OUTPUT_VARIABLE supported_targets
|
||||
OUTPUT_STRIP_TRAILING_WHITESPACE)
|
||||
@ -71,11 +72,18 @@ function(do_build_dpdk dpdk_dir)
|
||||
"\"${target}\" not listed in ${supported_targets}")
|
||||
endif()
|
||||
|
||||
if(CMAKE_MAKE_PROGRAM MATCHES "make")
|
||||
# try to inherit command line arguments passed by parent "make" job
|
||||
set(make_cmd "$(MAKE)")
|
||||
else()
|
||||
set(make_cmd "${MAKE_EXECUTABLE}")
|
||||
endif()
|
||||
|
||||
include(ExternalProject)
|
||||
ExternalProject_Add(dpdk-ext
|
||||
SOURCE_DIR ${CMAKE_SOURCE_DIR}/src/spdk/dpdk
|
||||
CONFIGURE_COMMAND $(MAKE) config O=${dpdk_dir} T=${target}
|
||||
BUILD_COMMAND env CC=${CMAKE_C_COMPILER} $(MAKE) O=${dpdk_dir} EXTRA_CFLAGS=-fPIC
|
||||
CONFIGURE_COMMAND ${make_cmd} config O=${dpdk_dir} T=${target}
|
||||
BUILD_COMMAND env CC=${CMAKE_C_COMPILER} ${make_cmd} O=${dpdk_dir} EXTRA_CFLAGS=-fPIC
|
||||
BUILD_IN_SOURCE 1
|
||||
INSTALL_COMMAND "true")
|
||||
ExternalProject_Add_Step(dpdk-ext patch-config
|
||||
|
@ -39,6 +39,7 @@ function(build_rocksdb)
|
||||
list(APPEND rocksdb_CMAKE_ARGS -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE})
|
||||
list(APPEND rocksdb_CMAKE_ARGS -DFAIL_ON_WARNINGS=OFF)
|
||||
list(APPEND rocksdb_CMAKE_ARGS -DUSE_RTTI=1)
|
||||
list(APPEND rocksdb_CMAKE_ARGS -G${CMAKE_GENERATOR})
|
||||
CHECK_C_COMPILER_FLAG("-Wno-stringop-truncation" HAS_WARNING_STRINGOP_TRUNCATION)
|
||||
if(HAS_WARNING_STRINGOP_TRUNCATION)
|
||||
list(APPEND rocksdb_CMAKE_ARGS -DCMAKE_C_FLAGS="-Wno-stringop-truncation")
|
||||
@ -52,7 +53,7 @@ function(build_rocksdb)
|
||||
SOURCE_DIR "${rocksdb_SOURCE_DIR}"
|
||||
CMAKE_ARGS ${rocksdb_CMAKE_ARGS}
|
||||
BINARY_DIR "${rocksdb_BINARY_DIR}"
|
||||
BUILD_COMMAND $(MAKE) rocksdb
|
||||
BUILD_COMMAND ${CMAKE_COMMAND} --build <BINARY_DIR> --target rocksdb
|
||||
INSTALL_COMMAND "true")
|
||||
# force rocksdb make to be called on each time
|
||||
ExternalProject_Add_Step(rocksdb_ext forcebuild
|
||||
|
@ -9,6 +9,15 @@ macro(build_spdk)
|
||||
find_package(aio REQUIRED)
|
||||
find_package(uuid REQUIRED)
|
||||
endif()
|
||||
|
||||
find_program (MAKE_EXECUTABLE NAMES make gmake)
|
||||
if(CMAKE_MAKE_PROGRAM MATCHES "make")
|
||||
# try to inherit command line arguments passed by parent "make" job
|
||||
set(make_cmd "$(MAKE)")
|
||||
else()
|
||||
set(make_cmd "${MAKE_EXECUTABLE}")
|
||||
endif()
|
||||
|
||||
include(ExternalProject)
|
||||
ExternalProject_Add(spdk-ext
|
||||
DEPENDS dpdk-ext
|
||||
@ -17,9 +26,10 @@ macro(build_spdk)
|
||||
# unset $CFLAGS, otherwise it will interfere with how SPDK sets
|
||||
# its include directory.
|
||||
# unset $LDFLAGS, otherwise SPDK will fail to mock some functions.
|
||||
BUILD_COMMAND env -i PATH=$ENV{PATH} CC=${CMAKE_C_COMPILER} $(MAKE) EXTRA_CFLAGS="-fPIC"
|
||||
BUILD_COMMAND env -i PATH=$ENV{PATH} CC=${CMAKE_C_COMPILER} ${make_cmd} EXTRA_CFLAGS="-fPIC"
|
||||
BUILD_IN_SOURCE 1
|
||||
INSTALL_COMMAND "true")
|
||||
unset(make_cmd)
|
||||
ExternalProject_Get_Property(spdk-ext source_dir)
|
||||
foreach(c nvme log lvol env_dpdk util)
|
||||
add_library(spdk::${c} STATIC IMPORTED)
|
||||
|
@ -11,8 +11,9 @@ ExternalProject_Add(zstd_ext
|
||||
-DCMAKE_C_FLAGS=${ZSTD_C_FLAGS}
|
||||
-DCMAKE_AR=${CMAKE_AR}
|
||||
-DCMAKE_POSITION_INDEPENDENT_CODE=${ENABLE_SHARED}
|
||||
-G${CMAKE_GENERATOR}
|
||||
BINARY_DIR ${CMAKE_CURRENT_BINARY_DIR}/libzstd
|
||||
BUILD_COMMAND $(MAKE) libzstd_static
|
||||
BUILD_COMMAND ${CMAKE_COMMAND} --build <BINARY_DIR> --target libzstd_static
|
||||
INSTALL_COMMAND "true")
|
||||
|
||||
# force zstd make to be called on each time
|
||||
|
Loading…
Reference in New Issue
Block a user