11cmake_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
55cmake_policy (SET CMP0069 NEW )
@@ -54,6 +54,9 @@ if(CMAKE_SYSTEM_NAME MATCHES "Linux")
5454 endif ()
5555endif ()
5656
57+ set (FLB_EXTRA_CMAKE_CXX_FLAGS)
58+ set (FLB_EXTRA_CMAKE_CXX_LINK_FLAGS)
59+
5760# Update CFLAGS
5861if (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()
117118endif ()
118119
119120set (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
122126if (${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" )
125132endif ()
126133if (${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" )
131141endif ()
132142
133143# *BSD is not supported platform for wasm-micro-runtime except for FreeBSD.
@@ -469,7 +479,10 @@ endif()
469479if (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" )
475488endif ()
@@ -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 )
0 commit comments