[CMake] CMake 2.8.3-rc4 ready for testing!

Eric Noulard eric.noulard at gmail.com
Thu Nov 4 03:34:05 EDT 2010


2010/11/4 Bill Hoffman <bill.hoffman at kitware.com>:
>>>> But, for now, you should be able to work around it on your side by
>>>> removing the sha.1 from the list of files in your
>>>> set_source_files_properties call.
>>
>> True just tested that. It works.
>>
>>> I meant "...removing the sha1.h from ..."
>>
>> I inferred that too :-)
>>
>>
> If you don't want that file to be compiled, then setting the language to "C"
> is wrong, and is likely to produce unexpected behavior.  It is telling CMake
> that the file is a C file and it should be compiled. CMake should of course
> not create a VS project that fails to load because of this, but it might do
> other odd things when you try and treat a .h file like it is a .c file.

Ok I get it, but note that I had a "semantic" issue.

This project is a C++ project with "some" C files.
There are both headers AND source file.

In my mind  "source" file may either be a header or a body (i.e.) to
be compiled file.
So  I wazs trying to tell CMake that this header is a C one in order to be
"consistent".

The "set_source_files_properties" says :
"Set properties on a file."
and later on:

"LANGUAGE (string) CXX|C will change the default compiler used to
compile the source file."

now I get that a "source file" is-a to be compiled file.

So my mistake may be was an "english understanding"  issue of what is
a "source file".

I continue to think that it would be valuable to tell CMake that such "header"
is a C/Fortran/CXX woiuld be nice.

It may even become necessary if pre-compiled header are to be supported.

So I now understand my mistake but I'm not on your side when you say
"setting the language to "C" is wrong"

I think it should be just OK, setting the "LANGUAGE" of a file shouldn't imply
this file has to be compiled.

-- 
Erk
Membre de l'April - « promouvoir et défendre le logiciel libre » -
http://www.april.org


More information about the CMake mailing list