diff --git a/CMakeLists.txt b/CMakeLists.txt index 01fe997d27a3d7e5f4274fb3cf627f30fb1e6aef..fa403dbe894592cb641d2ca2883baf1a51d6343f 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -437,24 +437,8 @@ IF(KWSYS_USE_FundamentalType) 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$") + KWSYS_PLATFORM_CXX_TEST_RUN(KWSYS_CHAR_IS_SIGNED + "Checking whether char is signed" DIRECT) ENDIF(KWSYS_USE_FundamentalType) IF(KWSYS_NAMESPACE MATCHES "^kwsys$") diff --git a/kwsysPlatformCxxTests.cxx b/kwsysPlatformCxxTests.cxx index e9216765c6ceef2b0893aa2da32885e5f9f10e98..8048acff8446690be8be6753f5852c94e156767f 100644 --- a/kwsysPlatformCxxTests.cxx +++ b/kwsysPlatformCxxTests.cxx @@ -267,11 +267,11 @@ int main() #endif #ifdef TEST_KWSYS_CHAR_IS_SIGNED -/* Return 1 for char signed and 0 for char unsigned. */ +/* Return 0 for char signed and 1 for char unsigned. */ int main() { unsigned char uc = 255; - return (*reinterpret_cast<char*>(&uc) < 0)?1:0; + return (*reinterpret_cast<char*>(&uc) < 0)?0:1; } #endif