ENH: only force the use of ansi flags in backwards mode
This commit is contained in:
parent
8b1d032b7b
commit
4d6dba4c37
@ -22,12 +22,14 @@ IF(NOT CMAKE_SKIP_COMPATIBILITY_TESTS)
|
|||||||
ENDIF(CMAKE_CXX_ACCEPTS_FLAGS)
|
ENDIF(CMAKE_CXX_ACCEPTS_FLAGS)
|
||||||
ENDIF( CMAKE_TRY_ANSI_CXX_FLAGS MATCHES ".+")
|
ENDIF( CMAKE_TRY_ANSI_CXX_FLAGS MATCHES ".+")
|
||||||
ENDIF(NOT CMAKE_COMPILER_IS_GNUCXX)
|
ENDIF(NOT CMAKE_COMPILER_IS_GNUCXX)
|
||||||
|
SET(CMAKE_CXX_FLAGS_SAVE ${CMAKE_CXX_FLAGS})
|
||||||
|
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${CMAKE_ANSI_CXXFLAGS}")
|
||||||
INCLUDE(${CMAKE_ROOT}/Modules/TestForANSIStreamHeaders.cmake)
|
INCLUDE(${CMAKE_ROOT}/Modules/TestForANSIStreamHeaders.cmake)
|
||||||
INCLUDE(${CMAKE_ROOT}/Modules/CheckIncludeFileCXX.cmake)
|
INCLUDE(${CMAKE_ROOT}/Modules/CheckIncludeFileCXX.cmake)
|
||||||
INCLUDE(${CMAKE_ROOT}/Modules/TestForSTDNamespace.cmake)
|
INCLUDE(${CMAKE_ROOT}/Modules/TestForSTDNamespace.cmake)
|
||||||
INCLUDE(${CMAKE_ROOT}/Modules/TestForANSIForScope.cmake)
|
INCLUDE(${CMAKE_ROOT}/Modules/TestForANSIForScope.cmake)
|
||||||
CHECK_INCLUDE_FILE_CXX("sstream" CMAKE_HAS_ANSI_STRING_STREAM)
|
CHECK_INCLUDE_FILE_CXX("sstream" CMAKE_HAS_ANSI_STRING_STREAM)
|
||||||
|
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS_SAVE}")
|
||||||
IF(NOT CMAKE_HAS_ANSI_STRING_STREAM)
|
IF(NOT CMAKE_HAS_ANSI_STRING_STREAM)
|
||||||
SET( CMAKE_NO_ANSI_STRING_STREAM 1 CACHE INTERNAL
|
SET( CMAKE_NO_ANSI_STRING_STREAM 1 CACHE INTERNAL
|
||||||
"Does the compiler support sstream or stringstream.")
|
"Does the compiler support sstream or stringstream.")
|
||||||
|
@ -15,7 +15,6 @@ MACRO(CHECK_INCLUDE_FILE_CXX INCLUDE VARIABLE)
|
|||||||
TRY_COMPILE(${VARIABLE}
|
TRY_COMPILE(${VARIABLE}
|
||||||
${CMAKE_BINARY_DIR}
|
${CMAKE_BINARY_DIR}
|
||||||
${CMAKE_BINARY_DIR}/CMakeTmp/CheckIncludeFile.cxx
|
${CMAKE_BINARY_DIR}/CMakeTmp/CheckIncludeFile.cxx
|
||||||
CMAKE_FLAGS -DCOMPILE_DEFINITIONS:STRING=${CMAKE_ANSI_CXXFLAGS}
|
|
||||||
OUTPUT_VARIABLE OUTPUT)
|
OUTPUT_VARIABLE OUTPUT)
|
||||||
IF(${VARIABLE})
|
IF(${VARIABLE})
|
||||||
MESSAGE(STATUS "Checking for CXX include file ${INCLUDE} -- found")
|
MESSAGE(STATUS "Checking for CXX include file ${INCLUDE} -- found")
|
||||||
|
@ -7,8 +7,7 @@
|
|||||||
IF(NOT CMAKE_ANSI_FOR_SCOPE)
|
IF(NOT CMAKE_ANSI_FOR_SCOPE)
|
||||||
MESSAGE(STATUS "Check for ANSI scope")
|
MESSAGE(STATUS "Check for ANSI scope")
|
||||||
TRY_COMPILE(CMAKE_ANSI_FOR_SCOPE ${CMAKE_BINARY_DIR}
|
TRY_COMPILE(CMAKE_ANSI_FOR_SCOPE ${CMAKE_BINARY_DIR}
|
||||||
${CMAKE_ROOT}/Modules/TestForAnsiForScope.cxx
|
${CMAKE_ROOT}/Modules/TestForAnsiForScope.cxx)
|
||||||
CMAKE_FLAGS -DCOMPILE_DEFINITIONS:STRING=${CMAKE_ANSI_CXXFLAGS})
|
|
||||||
IF (CMAKE_ANSI_FOR_SCOPE)
|
IF (CMAKE_ANSI_FOR_SCOPE)
|
||||||
MESSAGE(STATUS "Check for ANSI scope - found")
|
MESSAGE(STATUS "Check for ANSI scope - found")
|
||||||
SET (CMAKE_NO_ANSI_FOR_SCOPE 0 CACHE INTERNAL
|
SET (CMAKE_NO_ANSI_FOR_SCOPE 0 CACHE INTERNAL
|
||||||
|
@ -7,8 +7,7 @@
|
|||||||
IF(NOT CMAKE_STD_NAMESPACE)
|
IF(NOT CMAKE_STD_NAMESPACE)
|
||||||
MESSAGE(STATUS "Check for STD namespace")
|
MESSAGE(STATUS "Check for STD namespace")
|
||||||
TRY_COMPILE(CMAKE_STD_NAMESPACE ${CMAKE_BINARY_DIR}
|
TRY_COMPILE(CMAKE_STD_NAMESPACE ${CMAKE_BINARY_DIR}
|
||||||
${CMAKE_ROOT}/Modules/TestForSTDNamespace.cxx
|
${CMAKE_ROOT}/Modules/TestForSTDNamespace.cxx)
|
||||||
CMAKE_FLAGS -DCOMPILE_DEFINITIONS:STRING=${CMAKE_ANSI_CXXFLAGS})
|
|
||||||
IF (CMAKE_STD_NAMESPACE)
|
IF (CMAKE_STD_NAMESPACE)
|
||||||
MESSAGE(STATUS "Check for STD namespace - found")
|
MESSAGE(STATUS "Check for STD namespace - found")
|
||||||
SET (CMAKE_NO_STD_NAMESPACE 0 CACHE INTERNAL
|
SET (CMAKE_NO_STD_NAMESPACE 0 CACHE INTERNAL
|
||||||
|
@ -152,10 +152,25 @@ int cmTryCompileCommand::CoreTryCompileCode(
|
|||||||
"; TRY_COMPILE only works for C and CXX files");
|
"; TRY_COMPILE only works for C and CXX files");
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
const char* cflags = mf->GetDefinition("CMAKE_C_FLAGS");
|
||||||
fprintf(fout, "SET(CMAKE_VERBOSE_MAKEFILE 1)\n");
|
fprintf(fout, "SET(CMAKE_VERBOSE_MAKEFILE 1)\n");
|
||||||
fprintf(fout, "SET(CMAKE_C_FLAGS \"${CMAKE_C_FLAGS} ${COMPILE_DEFINITIONS}\")\n");
|
fprintf(fout, "SET(CMAKE_C_FLAGS \"${CMAKE_C_FLAGS}");
|
||||||
fprintf(fout, "SET(CMAKE_CXX_FLAGS \"${CMAKE_CXX_FLAGS} ${COMPILE_DEFINITIONS}\")\n");
|
if(cflags)
|
||||||
|
{
|
||||||
|
fprintf(fout, " %s ", cflags);
|
||||||
|
}
|
||||||
|
fprintf(fout, " ${COMPILE_DEFINITIONS}\")\n");
|
||||||
|
// CXX specific flags
|
||||||
|
if(format == cmSystemTools::CXX_FILE_FORMAT )
|
||||||
|
{
|
||||||
|
const char* cxxflags = mf->GetDefinition("CMAKE_CXX_FLAGS");
|
||||||
|
fprintf(fout, "SET(CMAKE_CXX_FLAGS \"${CMAKE_CXX_FLAGS} ");
|
||||||
|
if(cxxflags)
|
||||||
|
{
|
||||||
|
fprintf(fout, " %s ", cxxflags);
|
||||||
|
}
|
||||||
|
fprintf(fout, " ${COMPILE_DEFINITIONS}\")\n");
|
||||||
|
}
|
||||||
fprintf(fout, "INCLUDE_DIRECTORIES(${INCLUDE_DIRECTORIES})\n");
|
fprintf(fout, "INCLUDE_DIRECTORIES(${INCLUDE_DIRECTORIES})\n");
|
||||||
fprintf(fout, "LINK_DIRECTORIES(${LINK_DIRECTORIES})\n");
|
fprintf(fout, "LINK_DIRECTORIES(${LINK_DIRECTORIES})\n");
|
||||||
// handle any compile flags we need to pass on
|
// handle any compile flags we need to pass on
|
||||||
|
Loading…
x
Reference in New Issue
Block a user