[Cmake-commits] [cmake-commits] king committed CMakeLists.txt 1.19 1.20

cmake-commits at cmake.org cmake-commits at cmake.org
Mon Jan 25 08:47:36 EST 2010


Update of /cvsroot/CMake/CMake/Tests/TryCompile
In directory public:/mounts/ram/cvs-serv30242/Tests/TryCompile

Modified Files:
	CMakeLists.txt 
Log Message:
Avoid PathScale cmd-line bug in TryCompile test

The PathScale compiler silently accepts unknown options that start in
more than one '-':

  $ touch foo.c
  $ pathcc -c foo.c --junk
  $ echo $?
  0
  $ pathcc -c foo.c ---junk
  $ echo $?
  0
  $ pathcc -c foo.c -junk
  pathcc ERROR parsing -junk: unknown flag
  $ echo $?
  2

We teach the TryCompile to pass a bogus flag with only one '-' instead
of three '-'s for this compiler.


Index: CMakeLists.txt
===================================================================
RCS file: /cvsroot/CMake/CMake/Tests/TryCompile/CMakeLists.txt,v
retrieving revision 1.19
retrieving revision 1.20
diff -C 2 -d -r1.19 -r1.20
*** CMakeLists.txt	29 Oct 2009 03:29:13 -0000	1.19
--- CMakeLists.txt	25 Jan 2010 13:47:32 -0000	1.20
***************
*** 212,222 ****
  TEST_ASSERT(CXX_RUN_SHOULD_WORK "CHECK_CXX_SOURCE_RUNS() failed")
  
  UNSET(C_BOGUS_FLAG CACHE)
  INCLUDE(CheckCCompilerFlag)
! CHECK_C_COMPILER_FLAG(---_this_is_not_a_flag_ C_BOGUS_FLAG)
  TEST_FAIL(C_BOGUS_FLAG "CHECK_C_COMPILER_FLAG() succeeded, but should have failed")
  
  UNSET(CXX_BOGUS_FLAG CACHE)
  INCLUDE(CheckCXXCompilerFlag)
! CHECK_CXX_COMPILER_FLAG(---_this_is_not_a_flag_ CXX_BOGUS_FLAG)
  TEST_FAIL(CXX_BOGUS_FLAG "CHECK_CXX_COMPILER_FLAG() succeeded, but should have failed")
--- 212,228 ----
  TEST_ASSERT(CXX_RUN_SHOULD_WORK "CHECK_CXX_SOURCE_RUNS() failed")
  
+ FOREACH(lang C CXX)
+   IF(NOT "${CMAKE_${lang}_COMPILER_ID}" MATCHES "^(PathScale)$")
+     SET(${lang}_DD --)
+   ENDIF()
+ ENDFOREACH()
+ 
  UNSET(C_BOGUS_FLAG CACHE)
  INCLUDE(CheckCCompilerFlag)
! CHECK_C_COMPILER_FLAG(${C_DD}-_this_is_not_a_flag_ C_BOGUS_FLAG)
  TEST_FAIL(C_BOGUS_FLAG "CHECK_C_COMPILER_FLAG() succeeded, but should have failed")
  
  UNSET(CXX_BOGUS_FLAG CACHE)
  INCLUDE(CheckCXXCompilerFlag)
! CHECK_CXX_COMPILER_FLAG(${CXX_DD}-_this_is_not_a_flag_ CXX_BOGUS_FLAG)
  TEST_FAIL(CXX_BOGUS_FLAG "CHECK_CXX_COMPILER_FLAG() succeeded, but should have failed")



More information about the Cmake-commits mailing list