xref: /aosp_15_r20/external/grpc-grpc/cmake/msvc_static_runtime.cmake (revision cc02d7e222339f7a4f6ba5f422e6413f4bd931f2)
1*cc02d7e2SAndroid Build Coastguard Worker# Copyright 2017 gRPC authors.
2*cc02d7e2SAndroid Build Coastguard Worker#
3*cc02d7e2SAndroid Build Coastguard Worker# Licensed under the Apache License, Version 2.0 (the "License");
4*cc02d7e2SAndroid Build Coastguard Worker# you may not use this file except in compliance with the License.
5*cc02d7e2SAndroid Build Coastguard Worker# You may obtain a copy of the License at
6*cc02d7e2SAndroid Build Coastguard Worker#
7*cc02d7e2SAndroid Build Coastguard Worker#     http://www.apache.org/licenses/LICENSE-2.0
8*cc02d7e2SAndroid Build Coastguard Worker#
9*cc02d7e2SAndroid Build Coastguard Worker# Unless required by applicable law or agreed to in writing, software
10*cc02d7e2SAndroid Build Coastguard Worker# distributed under the License is distributed on an "AS IS" BASIS,
11*cc02d7e2SAndroid Build Coastguard Worker# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12*cc02d7e2SAndroid Build Coastguard Worker# See the License for the specific language governing permissions and
13*cc02d7e2SAndroid Build Coastguard Worker# limitations under the License.
14*cc02d7e2SAndroid Build Coastguard Worker
15*cc02d7e2SAndroid Build Coastguard Workeroption(gRPC_MSVC_STATIC_RUNTIME "Link with static msvc runtime libraries" OFF)
16*cc02d7e2SAndroid Build Coastguard Worker
17*cc02d7e2SAndroid Build Coastguard Workerif(gRPC_MSVC_STATIC_RUNTIME)
18*cc02d7e2SAndroid Build Coastguard Worker  # switch from dynamic to static linking of msvcrt
19*cc02d7e2SAndroid Build Coastguard Worker  foreach(flag_var
20*cc02d7e2SAndroid Build Coastguard Worker    CMAKE_C_FLAGS CMAKE_C_FLAGS_DEBUG CMAKE_C_FLAGS_RELEASE
21*cc02d7e2SAndroid Build Coastguard Worker    CMAKE_C_FLAGS_MINSIZEREL CMAKE_C_FLAGS_RELWITHDEBINFO
22*cc02d7e2SAndroid Build Coastguard Worker    CMAKE_CXX_FLAGS CMAKE_CXX_FLAGS_DEBUG CMAKE_CXX_FLAGS_RELEASE
23*cc02d7e2SAndroid Build Coastguard Worker    CMAKE_CXX_FLAGS_MINSIZEREL CMAKE_CXX_FLAGS_RELWITHDEBINFO)
24*cc02d7e2SAndroid Build Coastguard Worker
25*cc02d7e2SAndroid Build Coastguard Worker    if(${flag_var} MATCHES "/MD")
26*cc02d7e2SAndroid Build Coastguard Worker      string(REGEX REPLACE "/MD" "/MT" ${flag_var} "${${flag_var}}")
27*cc02d7e2SAndroid Build Coastguard Worker    endif()
28*cc02d7e2SAndroid Build Coastguard Worker  endforeach()
29*cc02d7e2SAndroid Build Coastguard Workerendif()
30*cc02d7e2SAndroid Build Coastguard Worker
31