[CMake] CXX incorrectly includes CMakeFortranInformation.cmake for MinGW/MSYS/Wine

Alan W. Irwin irwin at beluga.phys.uvic.ca
Mon Apr 5 17:00:37 EDT 2010


On 2010-04-05 13:04-0600 Clinton Stimpson wrote:

>
> On Apr 5, 2010, at 11:50 AM, Bill Hoffman wrote:
>
>> Alan W. Irwin wrote:
>>
>>>> Have you run cmake --trace yet to figure out what is including what and where?
>>> Yes, as alluded to above
>>> the complete result for cmake --trace --debug-output for
>>> a CMakeLists.txt file consisting of just
>>> project(test NONE)
>>> enable_language(CXX)
>>> was attached to my first post in this thread.  Part way through is starts
>>> accessing CMakeFortranInformation.cmake which is the source of the trouble.
>>> For your convenience I will attach that cmake output to this post as well.
>>
>> OK, you are going to have to look at the C++ code to figure this out.
>>
>> You will need to add some debug prints to this function:
>>
>> void
>> cmGlobalGenerator::EnableLanguage(std::vector<std::string>const& languages,
>>                                  cmMakefile *mf, bool)
>>
>> ...
>>
>>  for(std::vector<std::string>::const_iterator l = languages.begin();
>>      l != languages.end(); ++l)
>>    {
>>
>> Seems that Fortran is getting into the list of enabled languages.
>>
>> Might also want to put prints in cmEnableLanguageCommand
>> ::InitialPass  and void cmMakefile::EnableLanguage(std::vector<std::string> const &  lang,
>>                               bool optional)
>>
>>
>

> So interleaving wine tracing and cmake tracing along with some
debugging... the problem comes from within
SystemTools::GetActualCaseForPath() where it takes as input
<somepath>/CMakeTestCXXCompiler.cmake and returns
<somepath>/CMakeFortranInformation.cmake. I'm guessing its a bug in Wine's
GetShortPathName() or GetLongPathName().  There are more modern apis for
getting the actual case of a file, but they probably don't work on Windows
98.

Hi Clint:

Thanks for debugging it this far.  I (obviously) wasn't looking forward
to setting that up for myself.



More information about the CMake mailing list