View Issue Details Jump to Notes ] Print ]
IDProjectCategoryView StatusDate SubmittedLast Update
0012392CMakeCCMakepublic2011-08-08 03:552011-12-16 17:16
ReporterAxel Sander 
Assigned ToAlex Neundorf 
PrioritynormalSeverityminorReproducibilityalways
StatusclosedResolutionfixed 
PlatformOSOS Version
Product VersionCMake 2.8.5 
Target VersionCMake 2.8.7Fixed in VersionCMake 2.8.7 
Summary0012392: CMakeFindEclipseCDT4.cmake ignores CMAKE_CXX_COMPILER_ARG1 in compiler invocation
DescriptionWhile trying to find system include dirs, in the script CMakeFindEclipseCDT4.cmake the compile is called with:
 ... COMMAND ${_compilerExecutable} -v -E -P -x ${_lang} -dD dummy ...
When using something like ccache or distcc these commands are called directly with the parameter above and complain about unknown options -v.
In the lines:
  SET(_compilerExecutable "${CMAKE_CXX_COMPILER}");
and
  SET(_compilerExecutable "${CMAKE_C_COMPILER}");
the compiler arguments like ${CMAKE_CXX_COMPILER_ARG1}, ${CMAKE_C_COMPILER_ARG1}... are not used.
Steps To Reproducewith:
  CC="ccache gcc" CXX="ccache g++" cmake -G "Eclipse CDT4 - Unix Makefiles" .
the .cproject does not contain system includes.

To view the problem use:
  MESSAGE(STATUS "gccOutput: ${_gccOutput}")
  MESSAGE(STATUS "gccStdout: ${_gccStdout}")
after invocation of
  EXECUTE_PROCESS(COMMAND ${_compilerExecutable}...)
TagsNo tags attached.
Attached Files

 Relationships
related to 0012223closedAlex Neundorf Support of linked resources in Eclipse/CDT (single files, not folders) 

  Notes
(0027177)
Axel Sander (reporter)
2011-08-08 04:41
edited on: 2011-08-08 04:41

Probably not a good solution (have not written so much cmake code before), but working for the test cases I've here:

Added the if block in the CXX part
    SET(_compilerExecutable "${CMAKE_CXX_COMPILER}")
    IF (NOT ("${CMAKE_CXX_COMPILER_ARG1}" STREQUAL ""))
      STRING(REGEX REPLACE "^ +" "" _compilerArg ${CMAKE_CXX_COMPILER_ARG1})
    ENDIF (NOT ("${CMAKE_CXX_COMPILER_ARG1}" STREQUAL ""))
and in the C part
    SET(_compilerExecutable "${CMAKE_C_COMPILER}")
    IF (NOT ("${CMAKE_CXX_COMPILER_ARG1}" STREQUAL ""))
      STRING(REGEX REPLACE "^ +" "" _compilerArg ${CMAKE_C_COMPILER_ARG1})
    ENDIF (NOT ("${CMAKE_CXX_COMPILER_ARG1}" STREQUAL ""))
and
  EXECUTE_PROCESS(COMMAND ${_compilerExecutable} ${_compilerArg} -v -E -P -x ${_lang} -dD dummy

I'm not sure if there should be quotes like:
  EXECUTE_PROCESS(COMMAND "${_compilerExecutable}" "${_compilerArg}" -v -E -P -x ${_lang} -dD dummy

(0027178)
Axel Sander (reporter)
2011-08-08 05:43

In the .cproject file the runAction for the scanner does not get the arguments, either:
 <scannerInfoProvider id="specsFile">
   <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="/usr/bin/ccache" useDefault="true"/>

I did not find the source, where .cproject is generated, to analyse the problem further.
(0027501)
Alex Neundorf (developer)
2011-10-01 13:21

The sources are in Sources/cmExtraEclipseCTD4Generator.cxx.

I committed a patch which should make this work for you (at least my tests were successful) to cmake stage (HandleCMAKE_CXX_COMPILER_ARG1InEclipse branch) and merged it into next.

Hopefully it will still make it into 2.8.6.

Alex

 Issue History
Date Modified Username Field Change
2011-08-08 03:55 Axel Sander New Issue
2011-08-08 03:59 Alex Neundorf Assigned To => Alex Neundorf
2011-08-08 03:59 Alex Neundorf Status new => assigned
2011-08-08 04:41 Axel Sander Note Added: 0027177
2011-08-08 04:41 Axel Sander Note Edited: 0027177
2011-08-08 05:43 Axel Sander Note Added: 0027178
2011-09-30 15:20 Alex Neundorf Relationship added related to 0012223
2011-10-01 13:21 Alex Neundorf Note Added: 0027501
2011-10-01 13:21 Alex Neundorf Status assigned => closed
2011-10-01 13:21 Alex Neundorf Resolution open => fixed
2011-12-16 17:16 David Cole Fixed in Version => CMake 2.8.7
2011-12-16 17:16 David Cole Target Version => CMake 2.8.7


Copyright © 2000 - 2018 MantisBT Team