Skip to content

Commit b9360a0

Browse files
CMakeLists.txt: fix build with ninja
$ cmake -GNinja -B build/ && cmake --build build/ Results in this error: ninja: error: build.ninja:158: bad $-escape (literal $ must be written as $$) Replacing the $(MAKE) command with make gives us this new error: ninja: error: 'backtrace-prefix/lib/libbacktrace.a', needed by 'bin/fluent-bit', missing and no known rule to make it So fix that by properly defining the BUILD_BYPRODUCTS. (Also see https://cmake.org/cmake/help/latest/module/ExternalProject.html#build-step-options) Signed-off-by: Thomas Devoogdt <thomas@devoogdt.com>
1 parent 7de2c45 commit b9360a0

File tree

1 file changed

+10
-6
lines changed

1 file changed

+10
-6
lines changed

CMakeLists.txt

+10-6
Original file line numberDiff line numberDiff line change
@@ -953,15 +953,17 @@ if(FLB_JEMALLOC AND ${CMAKE_SYSTEM_NAME} MATCHES "Linux")
953953
message(STATUS "jemalloc configure: ${FLB_JEMALLOC_OPTIONS_LIST}")
954954

955955
# Link to Jemalloc as an external dependency
956+
set(FLB_LIBJEMALLOC_PATH "${CMAKE_CURRENT_BINARY_DIR}/lib/libjemalloc_pic.a")
956957
ExternalProject_Add(jemalloc
957958
SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/lib/jemalloc-5.3.0
958959
CONFIGURE_COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/lib/jemalloc-5.3.0/configure ${AUTOCONF_HOST_OPT} "${FLB_JEMALLOC_OPTIONS_LIST}" --prefix=<INSTALL_DIR>
959960
CFLAGS=-std=gnu99\ -Wall\ -pipe\ -g3\ -O3\ -funroll-loops
960-
BUILD_COMMAND $(MAKE)
961+
BUILD_COMMAND make
962+
BUILD_BYPRODUCTS ${FLB_LIBJEMALLOC_PATH}
961963
INSTALL_DIR ${CMAKE_CURRENT_BINARY_DIR}/
962-
INSTALL_COMMAND $(MAKE) install_lib_static install_include)
964+
INSTALL_COMMAND make install_lib_static install_include)
963965
add_library(libjemalloc STATIC IMPORTED GLOBAL)
964-
set_target_properties(libjemalloc PROPERTIES IMPORTED_LOCATION "${CMAKE_CURRENT_BINARY_DIR}/lib/libjemalloc_pic.a")
966+
set_target_properties(libjemalloc PROPERTIES IMPORTED_LOCATION ${FLB_LIBJEMALLOC_PATH})
965967
add_dependencies(libjemalloc jemalloc)
966968
include_directories("${CMAKE_BINARY_DIR}/include/")
967969
else()
@@ -979,14 +981,16 @@ if(FLB_BACKTRACE)
979981
else()
980982
set(DEPS_C_COMPILER "${CMAKE_C_COMPILER}")
981983
endif()
984+
set(FLB_LIBBACKTRACE_PATH "${CMAKE_CURRENT_BINARY_DIR}/backtrace-prefix/lib/libbacktrace.a")
982985
ExternalProject_Add(backtrace
983986
SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/lib/libbacktrace-8602fda/
984987
CONFIGURE_COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/lib/libbacktrace-8602fda/configure ${AUTOCONF_HOST_OPT} --prefix=<INSTALL_DIR> --enable-shared=no --enable-static=yes
985-
BUILD_COMMAND $(MAKE)
986-
INSTALL_COMMAND $(MAKE) DESTDIR= install
988+
BUILD_COMMAND make
989+
BUILD_BYPRODUCTS ${FLB_LIBBACKTRACE_PATH}
990+
INSTALL_COMMAND make DESTDIR= install
987991
)
988992
add_library(libbacktrace STATIC IMPORTED GLOBAL)
989-
set_target_properties(libbacktrace PROPERTIES IMPORTED_LOCATION "${CMAKE_CURRENT_BINARY_DIR}/backtrace-prefix/lib/libbacktrace.a")
993+
set_target_properties(libbacktrace PROPERTIES IMPORTED_LOCATION ${FLB_LIBBACKTRACE_PATH})
990994
add_dependencies(libbacktrace backtrace)
991995
include_directories("${CMAKE_CURRENT_BINARY_DIR}/backtrace-prefix/include/")
992996
endif()

0 commit comments

Comments
 (0)