Mike Tzou
5 years ago
committed by
GitHub
5 changed files with 42 additions and 104 deletions
@ -1,38 +1,36 @@ |
|||||||
macro(configure_msvc_runtime) |
macro(configure_msvc_runtime) |
||||||
if(MSVC) |
# Default to statically-linked runtime. |
||||||
# Default to statically-linked runtime. |
if("${MSVC_RUNTIME}" STREQUAL "") |
||||||
if("${MSVC_RUNTIME}" STREQUAL "") |
set(MSVC_RUNTIME "static") |
||||||
set(MSVC_RUNTIME "static") |
endif() |
||||||
endif() |
# Set compiler options. |
||||||
# Set compiler options. |
set(variables |
||||||
set(variables |
CMAKE_C_FLAGS_DEBUG |
||||||
CMAKE_C_FLAGS_DEBUG |
CMAKE_C_FLAGS_MINSIZEREL |
||||||
CMAKE_C_FLAGS_MINSIZEREL |
CMAKE_C_FLAGS_RELEASE |
||||||
CMAKE_C_FLAGS_RELEASE |
CMAKE_C_FLAGS_RELWITHDEBINFO |
||||||
CMAKE_C_FLAGS_RELWITHDEBINFO |
CMAKE_CXX_FLAGS_DEBUG |
||||||
CMAKE_CXX_FLAGS_DEBUG |
CMAKE_CXX_FLAGS_MINSIZEREL |
||||||
CMAKE_CXX_FLAGS_MINSIZEREL |
CMAKE_CXX_FLAGS_RELEASE |
||||||
CMAKE_CXX_FLAGS_RELEASE |
CMAKE_CXX_FLAGS_RELWITHDEBINFO |
||||||
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") |
foreach(variable ${variables}) |
||||||
message(STATUS |
if(${variable} MATCHES "/MT") |
||||||
"MSVC -> forcing use of statically-linked runtime." |
string(REGEX REPLACE "/MT" "/MD" ${variable} "${${variable}}") |
||||||
) |
endif() |
||||||
foreach(variable ${variables}) |
endforeach() |
||||||
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() |
|
||||||
endif() |
endif() |
||||||
endmacro() |
endmacro() |
||||||
|
@ -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