Mike Tzou
5 years ago
committed by
GitHub
5 changed files with 42 additions and 104 deletions
@ -1,38 +1,36 @@
@@ -1,38 +1,36 @@
|
||||
macro(configure_msvc_runtime) |
||||
if(MSVC) |
||||
# Default to statically-linked runtime. |
||||
if("${MSVC_RUNTIME}" STREQUAL "") |
||||
set(MSVC_RUNTIME "static") |
||||
endif() |
||||
# Set compiler options. |
||||
set(variables |
||||
CMAKE_C_FLAGS_DEBUG |
||||
CMAKE_C_FLAGS_MINSIZEREL |
||||
CMAKE_C_FLAGS_RELEASE |
||||
CMAKE_C_FLAGS_RELWITHDEBINFO |
||||
CMAKE_CXX_FLAGS_DEBUG |
||||
CMAKE_CXX_FLAGS_MINSIZEREL |
||||
CMAKE_CXX_FLAGS_RELEASE |
||||
CMAKE_CXX_FLAGS_RELWITHDEBINFO |
||||
# Default to statically-linked runtime. |
||||
if("${MSVC_RUNTIME}" STREQUAL "") |
||||
set(MSVC_RUNTIME "static") |
||||
endif() |
||||
# Set compiler options. |
||||
set(variables |
||||
CMAKE_C_FLAGS_DEBUG |
||||
CMAKE_C_FLAGS_MINSIZEREL |
||||
CMAKE_C_FLAGS_RELEASE |
||||
CMAKE_C_FLAGS_RELWITHDEBINFO |
||||
CMAKE_CXX_FLAGS_DEBUG |
||||
CMAKE_CXX_FLAGS_MINSIZEREL |
||||
CMAKE_CXX_FLAGS_RELEASE |
||||
CMAKE_CXX_FLAGS_RELWITHDEBINFO |
||||
) |
||||
if(${MSVC_RUNTIME} STREQUAL "static") |
||||
message(STATUS |
||||
"MSVC -> forcing use of statically-linked runtime." |
||||
) |
||||
foreach(variable ${variables}) |
||||
if(${variable} MATCHES "/MD") |
||||
string(REGEX REPLACE "/MD" "/MT" ${variable} "${${variable}}") |
||||
endif() |
||||
endforeach() |
||||
else() |
||||
message(STATUS |
||||
"MSVC -> forcing use of dynamically-linked runtime." |
||||
) |
||||
if(${MSVC_RUNTIME} STREQUAL "static") |
||||
message(STATUS |
||||
"MSVC -> forcing use of statically-linked runtime." |
||||
) |
||||
foreach(variable ${variables}) |
||||
if(${variable} MATCHES "/MD") |
||||
string(REGEX REPLACE "/MD" "/MT" ${variable} "${${variable}}") |
||||
endif() |
||||
endforeach() |
||||
else() |
||||
message(STATUS |
||||
"MSVC -> forcing use of dynamically-linked runtime." |
||||
) |
||||
foreach(variable ${variables}) |
||||
if(${variable} MATCHES "/MT") |
||||
string(REGEX REPLACE "/MT" "/MD" ${variable} "${${variable}}") |
||||
endif() |
||||
endforeach() |
||||
endif() |
||||
foreach(variable ${variables}) |
||||
if(${variable} MATCHES "/MT") |
||||
string(REGEX REPLACE "/MT" "/MD" ${variable} "${${variable}}") |
||||
endif() |
||||
endforeach() |
||||
endif() |
||||
endmacro() |
||||
|
@ -1,49 +0,0 @@
@@ -1,49 +0,0 @@
|
||||
############################################################### |
||||
# |
||||
# Copyright 2011 Red Hat, Inc. |
||||
# |
||||
# Licensed under the Apache License, Version 2.0 (the "License"); you |
||||
# may not use this file except in compliance with the License. You may |
||||
# obtain a copy of the License at |
||||
# |
||||
# http://www.apache.org/licenses/LICENSE-2.0 |
||||
# |
||||
# Unless required by applicable law or agreed to in writing, software |
||||
# distributed under the License is distributed on an "AS IS" BASIS, |
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
||||
# See the License for the specific language governing permissions and |
||||
# limitations under the License. |
||||
# |
||||
############################################################### |
||||
|
||||
MACRO (GLIBC_DETECT _VERSION) |
||||
|
||||
# there are multiple ways to detect glibc, but given nmi's |
||||
# cons'd up paths I will trust only gcc. I guess I could also use |
||||
# ldd --version to detect. |
||||
|
||||
set(_GLIB_SOURCE_DETECT " |
||||
#include <limits.h> |
||||
#include <stdio.h> |
||||
int main() |
||||
{ |
||||
printf(\"%d%d\",__GLIBC__, __GLIBC_MINOR__); |
||||
return 0; |
||||
} |
||||
") |
||||
|
||||
file (WRITE ${CMAKE_CURRENT_BINARY_DIR}/build/cmake/glibc.cpp "${_GLIB_SOURCE_DETECT}\n") |
||||
|
||||
try_run(POST26_GLIBC_DETECTED |
||||
POST26_GLIBC_COMPILE |
||||
${CMAKE_CURRENT_BINARY_DIR}/build/cmake |
||||
${CMAKE_CURRENT_BINARY_DIR}/build/cmake/glibc.cpp |
||||
RUN_OUTPUT_VARIABLE GLIBC_VERSION ) |
||||
|
||||
if (GLIBC_VERSION AND POST26_GLIBC_COMPILE ) |
||||
set(${_VERSION} ${GLIBC_VERSION}) |
||||
else() |
||||
message(STATUS "NOTE: Could not detect GLIBC_VERSION from compiler") |
||||
endif() |
||||
|
||||
ENDMACRO (GLIBC_DETECT) |
Loading…
Reference in new issue