[Cmake-commits] [cmake-commits] king committed CMakeLists.txt 1.151 1.152 kwsysPlatformTestsCXX.cxx 1.6 1.7

cmake-commits at cmake.org cmake-commits at cmake.org
Fri Nov 20 08:37:35 EST 2009


Update of /cvsroot/CMake/CMake/Source/kwsys
In directory public:/mounts/ram/cvs-serv28219/Source/kwsys

Modified Files:
	CMakeLists.txt kwsysPlatformTestsCXX.cxx 
Log Message:
Check for 'long long' without computing size

In KWSys IOStream we need to detect whether 'long long' exists but we do
not need its size.  We avoid using CHECK_TYPE_SIZE because it does not
work for types whose size varies across architectuers in Mac OS X
universal binaries.  See issue #9913.


Index: CMakeLists.txt
===================================================================
RCS file: /cvsroot/CMake/CMake/Source/kwsys/CMakeLists.txt,v
retrieving revision 1.151
retrieving revision 1.152
diff -C 2 -d -r1.151 -r1.152
*** CMakeLists.txt	20 Nov 2009 13:37:10 -0000	1.151
--- CMakeLists.txt	20 Nov 2009 13:37:33 -0000	1.152
***************
*** 535,540 ****
  IF(KWSYS_USE_IOStream)
    # Determine whether iostreams support long long.
!   CHECK_TYPE_SIZE("long long" KWSYS_SIZEOF_LONG_LONG)
!   IF(KWSYS_SIZEOF_LONG_LONG)
      SET(KWSYS_PLATFORM_CXX_TEST_DEFINES
        -DKWSYS_IOS_USE_ANSI=${KWSYS_IOS_USE_ANSI}
--- 535,541 ----
  IF(KWSYS_USE_IOStream)
    # Determine whether iostreams support long long.
!   KWSYS_PLATFORM_CXX_TEST(KWSYS_CXX_HAS_LONG_LONG
!     "Checking whether C++ compiler has 'long long'" DIRECT)
!   IF(KWSYS_CXX_HAS_LONG_LONG)
      SET(KWSYS_PLATFORM_CXX_TEST_DEFINES
        -DKWSYS_IOS_USE_ANSI=${KWSYS_IOS_USE_ANSI}
***************
*** 545,552 ****
        "Checking if ostream supports long long" DIRECT)
      SET(KWSYS_PLATFORM_CXX_TEST_DEFINES)
!   ELSE(KWSYS_SIZEOF_LONG_LONG)
      SET(KWSYS_IOS_HAS_ISTREAM_LONG_LONG 0)
      SET(KWSYS_IOS_HAS_OSTREAM_LONG_LONG 0)
!   ENDIF(KWSYS_SIZEOF_LONG_LONG)
  ENDIF(KWSYS_USE_IOStream)
  
--- 546,553 ----
        "Checking if ostream supports long long" DIRECT)
      SET(KWSYS_PLATFORM_CXX_TEST_DEFINES)
!   ELSE()
      SET(KWSYS_IOS_HAS_ISTREAM_LONG_LONG 0)
      SET(KWSYS_IOS_HAS_OSTREAM_LONG_LONG 0)
!   ENDIF()
  ENDIF(KWSYS_USE_IOStream)
  

Index: kwsysPlatformTestsCXX.cxx
===================================================================
RCS file: /cvsroot/CMake/CMake/Source/kwsys/kwsysPlatformTestsCXX.cxx,v
retrieving revision 1.6
retrieving revision 1.7
diff -C 2 -d -r1.6 -r1.7
*** kwsysPlatformTestsCXX.cxx	28 Sep 2009 15:37:23 -0000	1.6
--- kwsysPlatformTestsCXX.cxx	20 Nov 2009 13:37:33 -0000	1.7
***************
*** 114,117 ****
--- 114,126 ----
  #endif
  
+ #ifdef TEST_KWSYS_CXX_HAS_LONG_LONG
+ long long f(long long n) { return n; }
+ int main()
+ {
+   long long n = 0;
+   return static_cast<int>(f(n));
+ }
+ #endif
+ 
  #ifdef TEST_KWSYS_CXX_HAS_NULL_TEMPLATE_ARGS
  template <class T> class A;



More information about the Cmake-commits mailing list