Brad King wrote:
The SOURCE_GROUP command just maps source files to folders for projects
in which they are already used. You have to list all the sources
(headers, template files, etc.) in the target. Then use SOURCE_GROUP to
map specific file patterns to specific groups. The generated project
for each target using a source file will put the source file under the
group specified by SOURCE_GROUP.
>> 3.) [minor] I tried to use the SOURCE_GROUP() command to try to force
>> the header and template files into the "Header Files" group although I
>> discovered from a previous post on this list that this nifty looking
>> command only seems to work if you're making an executable (after trying
>> to get it to work but not having any luck). It would be nice for this
>> command to support ADD_LIBRARY() as well although I don't know the
>> details of how feasible this is.
>
> I'm not familiar with this constraint. Please post a small example
> CMakeLists.txt file that reproduces the problem. The following works
> for me:
Well it's working now for me. All I can figure is I was doing it wrong
by trying to use it on files that weren't part of the target. Then when
I couldn't figure out why it wasn't working I read this thread and
mistakenly thought that it might only be implemented for ADD_EXECUTABLE.
http://public.kitware.com/pipermail/cmake/2006-September/010952.html
Sorry for the confusion.
2.) [major] It seems that Visual Studio is trying to compile about half
of the template files that I add to my ADD_LIBRARY() directive (it's
treating them as source files). Is there any reason why anyone would
ever want to compile a ".t" file (C++ template)? Also I'm curious why
there is a difference in behavior with half of the template files
treated as headers and the other half treated as sources.
If they have the same name as a .h or .cc file there is a bug in CMake
2.4.3 that causes this. The work around is to add the HEADER_FILE_ONLY
property with SET_SOURCE_FILES_PROPERTIES. It is fixed in CVS CMake and
will be fixed in 2.4.4.
So in future releases of CMake is there a list of file extensions that
CMake will attempt to compile (.c, .cc, .C, etc.) and it treats
everything else as a header file if you add it to the sources list?
I was under the impression that our ".t" convention for C++ templates
included from within header files was some standard convention and that
CMake should automatically treat ".t" files as "header" files. Sorry
for any confusion on this point as well. :)
Good job on CMake by the way. We love it so far.
--
Philip Lowman
Simulation Development Engineer, Modeling and Simulation Technology
General Dynamics Land Systems
http://www.gdls.com
_______________________________________________
CMake mailing list
[email protected]
http://www.cmake.org/mailman/listinfo/cmake