Skip to content

Commit 36badb0

Browse files
committed
build: support of build without C++ compiler
Signed-off-by: Marat Abrarov <abrarov@gmail.com>
1 parent f323270 commit 36badb0

File tree

2 files changed

+36
-9
lines changed

2 files changed

+36
-9
lines changed

CMakeLists.txt

Lines changed: 36 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
cmake_minimum_required(VERSION 3.12)
2-
project(fluent-bit LANGUAGES C CXX)
2+
project(fluent-bit C)
33

44
# CMP0069 ensures that LTO is enabled for all compilers
55
cmake_policy(SET CMP0069 NEW)
@@ -54,6 +54,9 @@ if(CMAKE_SYSTEM_NAME MATCHES "Linux")
5454
endif()
5555
endif()
5656

57+
set(FLB_EXTRA_CMAKE_CXX_FLAGS)
58+
set(FLB_EXTRA_CMAKE_CXX_LINK_FLAGS)
59+
5760
# Update CFLAGS
5861
if (MSVC)
5962
# Use static C/C++ runtime
@@ -66,8 +69,6 @@ if (MSVC)
6669
string(TOUPPER ${config_type} upper_config_type)
6770
set(flag_var "CMAKE_C_FLAGS_${upper_config_type}")
6871
string(REGEX REPLACE "(^| |\\t|\\r|\\n)(-|/)(MD)(d?)($| |\\t|\\r|\\n)" "\\1\\2MT\\4\\5" ${flag_var} "${${flag_var}}")
69-
set(flag_var "CMAKE_CXX_FLAGS_${upper_config_type}")
70-
string(REGEX REPLACE "(^| |\\t|\\r|\\n)(-|/)(MD)(d?)($| |\\t|\\r|\\n)" "\\1\\2MT\\4\\5" ${flag_var} "${${flag_var}}")
7172
endforeach()
7273
set(flag_var)
7374
set(upper_config_type)
@@ -117,17 +118,26 @@ else()
117118
endif()
118119

119120
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -D__FLB_FILENAME__=__FILE__")
120-
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -D__FLB_FILENAME__=__FILE__")
121+
# CMAKE_CXX_FLAGS will extended with FLB_EXTRA_CMAKE_CXX_FLAGS,
122+
# when / if C++ language support is enabled.
123+
# Until C++ language support is enabled, CMAKE_CXX_FLAGS is empty / undefined.
124+
set(FLB_EXTRA_CMAKE_CXX_FLAGS "${FLB_EXTRA_CMAKE_CXX_FLAGS} -D__FLB_FILENAME__=__FILE__")
121125

122126
if(${CMAKE_SYSTEM_PROCESSOR} MATCHES "armv7l")
123127
set(CMAKE_C_LINK_FLAGS "${CMAKE_C_LINK_FLAGS} -latomic")
124-
set(CMAKE_CXX_LINK_FLAGS "${CMAKE_CXX_LINK_FLAGS} -latomic")
128+
# CMAKE_CXX_LINK_FLAGS will extended with FLB_EXTRA_CMAKE_CXX_LINK_FLAGS,
129+
# when / if C++ language support is enabled.
130+
# Until C++ language support is enabled, CMAKE_CXX_LINK_FLAGS is empty / undefined.
131+
set(FLB_EXTRA_CMAKE_CXX_LINK_FLAGS "${FLB_EXTRA_CMAKE_CXX_LINK_FLAGS} -latomic")
125132
endif()
126133
if(${CMAKE_SYSTEM_NAME} MATCHES "FreeBSD")
127134
set(FLB_SYSTEM_FREEBSD On)
128135
add_definitions(-DFLB_SYSTEM_FREEBSD)
129136
set(CMAKE_C_LINK_FLAGS "${CMAKE_C_LINK_FLAGS} -lutil")
130-
set(CMAKE_CXX_LINK_FLAGS "${CMAKE_CXX_LINK_FLAGS} -lutil")
137+
# CMAKE_CXX_LINK_FLAGS will extended with FLB_EXTRA_CMAKE_CXX_LINK_FLAGS,
138+
# when / if C++ language support is enabled.
139+
# Until C++ language support is enabled, CMAKE_CXX_LINK_FLAGS is empty / undefined.
140+
set(FLB_EXTRA_CMAKE_CXX_LINK_FLAGS "${FLB_EXTRA_CMAKE_CXX_LINK_FLAGS} -lutil")
131141
endif()
132142

133143
# *BSD is not supported platform for wasm-micro-runtime except for FreeBSD.
@@ -469,7 +479,10 @@ endif()
469479
if(FLB_COVERAGE)
470480
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -g -O0 --coverage -fprofile-arcs -ftest-coverage")
471481
if (FLB_UNICODE_ENCODER)
472-
set(CMAKE_CXX_FLAGS "${CMAKE_C_FLAGS} -g -O0 --coverage -fprofile-arcs -ftest-coverage")
482+
# CMAKE_CXX_FLAGS will extended with FLB_EXTRA_CMAKE_CXX_FLAGS,
483+
# when / if C++ language support is enabled.
484+
# Until C++ language support is enabled, CMAKE_CXX_FLAGS is empty / undefined.
485+
set(FLB_EXTRA_CMAKE_CXX_FLAGS "${FLB_EXTRA_CMAKE_CXX_FLAGS} -g -O0 --coverage -fprofile-arcs -ftest-coverage")
473486
endif()
474487
set(CMAKE_BUILD_TYPE "Debug")
475488
endif()
@@ -690,6 +703,22 @@ if(FLB_UNICODE_ENCODER AND FLB_USE_SIMDUTF)
690703
message(FATAL_ERROR "FLB_UNICODE_ENCODER requires FLB_USE_SIMDUTF")
691704
endif()
692705
enable_language(CXX)
706+
707+
# Perform delayed modification / extension of CMAKE_CXX_* variables.
708+
if (MSVC)
709+
# Replace (/|-)MD(d?) with (/|-)MT(d?) to avoid D9025 warning
710+
foreach(config_type ${CMAKE_CONFIGURATION_TYPES} ${CMAKE_BUILD_TYPE} Debug Release RelWithDebInfo MinSizeRel)
711+
string(TOUPPER ${config_type} upper_config_type)
712+
set(flag_var "CMAKE_CXX_FLAGS_${upper_config_type}")
713+
string(REGEX REPLACE "(^| |\\t|\\r|\\n)(-|/)(MD)(d?)($| |\\t|\\r|\\n)" "\\1\\2MT\\4\\5" ${flag_var} "${${flag_var}}")
714+
endforeach()
715+
set(flag_var)
716+
set(upper_config_type)
717+
set(config_type)
718+
endif()
719+
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${FLB_EXTRA_CMAKE_CXX_FLAGS}")
720+
set(CMAKE_CXX_LINK_FLAGS "${CMAKE_CXX_LINK_FLAGS} ${FLB_EXTRA_CMAKE_CXX_LINK_FLAGS}")
721+
693722
set (CMAKE_CXX_STANDARD 11)
694723
add_subdirectory(${FLB_PATH_LIB_SIMDUTF} EXCLUDE_FROM_ALL)
695724
FLB_DEFINITION(FLB_HAVE_UNICODE_ENCODER)

lib/onigmo/CMakeLists.txt

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -40,8 +40,6 @@ if (MSVC)
4040
string(TOUPPER ${config_type} upper_config_type)
4141
set(flag_var "CMAKE_C_FLAGS_${upper_config_type}")
4242
string(REGEX REPLACE "(^| |\\t|\\r|\\n)(-|/)(MD)(d?)($| |\\t|\\r|\\n)" "\\1\\2MT\\4\\5" ${flag_var} "${${flag_var}}")
43-
set(flag_var "CMAKE_CXX_FLAGS_${upper_config_type}")
44-
string(REGEX REPLACE "(^| |\\t|\\r|\\n)(-|/)(MD)(d?)($| |\\t|\\r|\\n)" "\\1\\2MT\\4\\5" ${flag_var} "${${flag_var}}")
4543
endforeach()
4644
set(flag_var)
4745
set(upper_config_type)

0 commit comments

Comments
 (0)