[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