BUG: Reverting fundamental type info change until it is fixed on more platforms. It was tested on Linux, SGI, HP, Sun, OSX, Windows with nmake and VS 6, 7, 7.1, 8, Borland Make, and cygwin by hand with spaces in the path and cmake 2.0 and 2.2 before committing but still seems to be failing on some dashboards...strange.

This commit is contained in:
Brad King 2005-10-05 13:11:34 -04:00
parent ab62098356
commit 01ac3906da
1 changed files with 34 additions and 50 deletions

View File

@ -254,56 +254,20 @@ IF(UNIX)
ENDIF(UNIX) ENDIF(UNIX)
IF(KWSYS_USE_FundamentalType) IF(KWSYS_USE_FundamentalType)
# Load fundamental type information generated by the below try-run. # Determine type sizes.
IF(EXISTS ${CMAKE_CURRENT_BINARY_DIR}/FundamentalTypeInfo.cmake) INCLUDE(CheckTypeSize)
# The file already exists. Load it now. CHECK_TYPE_SIZE("char" KWSYS_SIZEOF_CHAR)
INCLUDE(${CMAKE_CURRENT_BINARY_DIR}/FundamentalTypeInfo.cmake) CHECK_TYPE_SIZE("short" KWSYS_SIZEOF_SHORT)
ELSE(EXISTS ${CMAKE_CURRENT_BINARY_DIR}/FundamentalTypeInfo.cmake) CHECK_TYPE_SIZE("int" KWSYS_SIZEOF_INT)
# The file does not exist. Try to generate it. All the type CHECK_TYPE_SIZE("long" KWSYS_SIZEOF_LONG)
# information can be detected by a single try-run because the CHECK_TYPE_SIZE("long long" KWSYS_SIZEOF_LONG_LONG)
# available types can be determined at compile time. This CHECK_TYPE_SIZE("__int64" KWSYS_SIZEOF___INT64)
# significantly reduces the number of try-compiles and try-runs needed IF(NOT KWSYS_SIZEOF_LONG_LONG)
# to collect this information. SET(KWSYS_SIZEOF_LONG_LONG 0)
MESSAGE(STATUS "Checking C++ fundamental types") ENDIF(NOT KWSYS_SIZEOF_LONG_LONG)
IF(NOT KWSYS_SIZEOF___INT64)
# Pass the output directory in KWSYS_CXX_TYPE_INFO_DIR as a cache SET(KWSYS_SIZEOF___INT64 0)
# entry to work-around some CMake parsing problems when there are ENDIF(NOT KWSYS_SIZEOF___INT64)
# spaces in the path (for CMake 2.2.1 and lower). Do not quote
# the definition for VS 7 or 8 to work-around a CMake 2.2.1 and
# lower generator bug.
SET(DOLLAR "$")
IF(CMAKE_GENERATOR MATCHES "Visual Studio [78]")
SET(QUOTE "")
ELSE(CMAKE_GENERATOR MATCHES "Visual Studio [78]")
SET(QUOTE "\"")
ENDIF(CMAKE_GENERATOR MATCHES "Visual Studio [78]")
TRY_RUN(KWSYS_CXX_TYPE_INFO KWSYS_CXX_TYPE_INFO_COMPILED
${CMAKE_CURRENT_BINARY_DIR}
${CMAKE_CURRENT_SOURCE_DIR}/kwsysPlatformCxxTests.cxx
CMAKE_FLAGS
"-DKWSYS_CXX_TYPE_INFO_DIR:STRING=${CMAKE_CURRENT_BINARY_DIR}"
COMPILE_DEFINITIONS
-DTEST_KWSYS_CXX_TYPE_INFO
"-DKWSYS_CXX_TYPE_INFO_FILE=${QUOTE}${DOLLAR}{KWSYS_CXX_TYPE_INFO_DIR}/FundamentalTypeInfo.cmake${QUOTE}"
OUTPUT_VARIABLE OUTPUT
)
# Check if the file now exists.
IF(EXISTS ${CMAKE_CURRENT_BINARY_DIR}/FundamentalTypeInfo.cmake)
# The file exists. Report success and load it.
MESSAGE(STATUS "Checking C++ fundamental types -- success")
FILE(APPEND ${CMAKE_CURRENT_BINARY_DIR}/CMakeFiles/CMakeOutput.log
"Checking C++ fundamental types compiled with the following output:\n${OUTPUT}\n\n")
INCLUDE(${CMAKE_CURRENT_BINARY_DIR}/FundamentalTypeInfo.cmake)
ELSE(EXISTS ${CMAKE_CURRENT_BINARY_DIR}/FundamentalTypeInfo.cmake)
# The file does not exist. Report failure.
MESSAGE(STATUS "Checking C++ fundamental types -- failure")
FILE(APPEND ${CMAKE_CURRENT_BINARY_DIR}/CMakeFiles/CMakeError.log
"Checking C++ fundamental types failed to compile with the following output:\n${OUTPUT}\n\n")
MESSAGE(FATAL_ERROR "Checking C++ fundamental type information failed. "
"Check \"${CMAKE_CURRENT_BINARY_DIR}/CMakeFiles/CMakeError.log\" for more information.")
ENDIF(EXISTS ${CMAKE_CURRENT_BINARY_DIR}/FundamentalTypeInfo.cmake)
ENDIF(EXISTS ${CMAKE_CURRENT_BINARY_DIR}/FundamentalTypeInfo.cmake)
# Check uniqueness of types. # Check uniqueness of types.
IF(KWSYS_SIZEOF___INT64) IF(KWSYS_SIZEOF___INT64)
@ -339,6 +303,26 @@ IF(KWSYS_USE_FundamentalType)
ELSE(KWSYS_USE___INT64) ELSE(KWSYS_USE___INT64)
SET(KWSYS_CAN_CONVERT_UI64_TO_DOUBLE 1) SET(KWSYS_CAN_CONVERT_UI64_TO_DOUBLE 1)
ENDIF(KWSYS_USE___INT64) ENDIF(KWSYS_USE___INT64)
# Check signedness of "char" type.
IF("KWSYS_CHAR_IS_SIGNED" MATCHES "^KWSYS_CHAR_IS_SIGNED$")
MESSAGE(STATUS "Checking signedness of char")
TRY_RUN(KWSYS_CHAR_IS_SIGNED KWSYS_CHAR_IS_SIGNED_COMPILED
${CMAKE_CURRENT_BINARY_DIR}
${CMAKE_CURRENT_SOURCE_DIR}/kwsysPlatformCxxTests.cxx
COMPILE_DEFINITIONS -DTEST_KWSYS_CHAR_IS_SIGNED)
IF(KWSYS_CHAR_IS_SIGNED_COMPILED)
IF(KWSYS_CHAR_IS_SIGNED)
MESSAGE(STATUS "Checking signedness of char -- signed")
SET(KWSYS_CHAR_IS_SIGNED 1 CACHE INTERNAL "Whether char is signed.")
ELSE(KWSYS_CHAR_IS_SIGNED)
MESSAGE(STATUS "Checking signedness of char -- unsigned")
SET(KWSYS_CHAR_IS_SIGNED 0 CACHE INTERNAL "Whether char is signed.")
ENDIF(KWSYS_CHAR_IS_SIGNED)
ELSE(KWSYS_CHAR_IS_SIGNED_COMPILED)
MESSAGE(FATAL_ERROR "Checking signedness of char -- failed")
ENDIF(KWSYS_CHAR_IS_SIGNED_COMPILED)
ENDIF("KWSYS_CHAR_IS_SIGNED" MATCHES "^KWSYS_CHAR_IS_SIGNED$")
ENDIF(KWSYS_USE_FundamentalType) ENDIF(KWSYS_USE_FundamentalType)
IF(KWSYS_NAMESPACE MATCHES "^kwsys$") IF(KWSYS_NAMESPACE MATCHES "^kwsys$")