Skip to content

Commit 67ca550

Browse files
authored
Merge pull request grpc#15502 from jtattermusch/cmake_clean_standards
Clean way to enable C and C++ standards in cmake
2 parents abe0547 + f4eba1e commit 67ca550

File tree

2 files changed

+16
-10
lines changed

2 files changed

+16
-10
lines changed

CMakeLists.txt

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -152,6 +152,14 @@ if(WIN32)
152152
set(_gRPC_PLATFORM_WINDOWS ON)
153153
endif()
154154

155+
# Use C99 standard
156+
set(CMAKE_C_STANDARD 99)
157+
158+
# Add c++11 flags
159+
set(CMAKE_CXX_STANDARD 11)
160+
set(CMAKE_CXX_STANDARD_REQUIRED ON)
161+
set(CMAKE_CXX_EXTENSIONS OFF)
162+
155163
set(CMAKE_POSITION_INDEPENDENT_CODE TRUE)
156164
set(CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake/modules")
157165

@@ -201,11 +209,6 @@ include(cmake/ssl.cmake)
201209
include(cmake/upb.cmake)
202210
include(cmake/zlib.cmake)
203211

204-
if(NOT MSVC)
205-
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -std=c99")
206-
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
207-
endif()
208-
209212
if(_gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_IOS)
210213
set(_gRPC_ALLTARGETS_LIBRARIES ${CMAKE_DL_LIBS} m pthread)
211214
elseif(_gRPC_PLATFORM_ANDROID)

templates/CMakeLists.txt.template

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -242,6 +242,14 @@
242242
set(_gRPC_PLATFORM_WINDOWS ON)
243243
endif()
244244

245+
# Use C99 standard
246+
set(CMAKE_C_STANDARD 99)
247+
248+
# Add c++11 flags
249+
set(CMAKE_CXX_STANDARD 11)
250+
set(CMAKE_CXX_STANDARD_REQUIRED ON)
251+
set(CMAKE_CXX_EXTENSIONS OFF)
252+
245253
## Some libraries are shared even with BUILD_SHARED_LIBRARIES=OFF
246254
set(CMAKE_POSITION_INDEPENDENT_CODE TRUE)
247255
set(CMAKE_MODULE_PATH "<%text>${CMAKE_CURRENT_SOURCE_DIR}</%text>/cmake/modules")
@@ -292,11 +300,6 @@
292300
include(cmake/upb.cmake)
293301
include(cmake/zlib.cmake)
294302

295-
if(NOT MSVC)
296-
set(CMAKE_C_FLAGS "<%text>${CMAKE_C_FLAGS}</%text> -std=c99")
297-
set(CMAKE_CXX_FLAGS "<%text>${CMAKE_CXX_FLAGS}</%text> -std=c++11")
298-
endif()
299-
300303
if(_gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_IOS)
301304
set(_gRPC_ALLTARGETS_LIBRARIES <%text>${CMAKE_DL_LIBS}</%text> m pthread)
302305
elseif(_gRPC_PLATFORM_ANDROID)

0 commit comments

Comments
 (0)