It is easy enough in recent CMake versions to list all the subdirectories and 
their targets recursively.
Then you can list their files, check if they exist and create them if you want.
It can be done with a macro in your project and doesn’t need upstream support.

The next possible solution would be to create the file on disk and use a glob 
to list all the files.
You would need to rerun CMake manually whenever you add a file.

I would say that both solutions are not really good, even dangerous.
But if you really want them, you can pick your poison.

/Florent

> On 11 Apr 2017, at 21:28, Alexander Neundorf <[email protected]> wrote:
> 
> On 2017 M04 11, Tue 11:52:52 CEST Brad King wrote:
>> On 04/11/2017 11:41 AM, Petr Kmoch wrote:
>>> Currently, adding a new source file to a CMake-controlled project
>>> means doing two things: creating the file on disk, and adding it
>>> to the relevant CMakeList add_library() or add_executable() call.
>> 
>> I view this as a matching pair with an implicit sanity check.
>> 
>>> switch from current behaviour of "error out if source file is not found"
>>> to "create empty source file if it's not found."
>> 
>> So a typo in the `CMakeLists.txt` file leads to silent creation of a
>> source file instead of an error message?
>> 
>> That said, I can see how the proposed feature might be useful when
>> iteratively developing in an IDE.  Add the file to `CMakeLists.txt`,
>> reconfigure, and open the new (now existing) file to edit in the IDE.
>> 
>>> Is this something that would be acceptable into CMake? Any comments?
>> 
>> I'd like to hear more opinions from others before considering it
>> upstream.  It feels like a pretty personal workflow right now, and
>> can be implemented in CMake code already (perhaps with the `SOURCES`
>> target property to avoid separate lists).
> 
> personally I'm not convinced.
> Technically it would violate the "the source dir is read-only" rule.
> A typo would generate files. With multiple build dirs the behaviour will be 
> slightly different in the two dirs.
> ...not very strong arguments, but OTOH touching the file manually is also not 
> too complicated.
> 
> Alex
> 
> -- 
> 
> Powered by www.kitware.com
> 
> Please keep messages on-topic and check the CMake FAQ at: 
> http://www.cmake.org/Wiki/CMake_FAQ
> 
> Kitware offers various services to support the CMake community. For more 
> information on each offering, please visit:
> 
> CMake Support: http://cmake.org/cmake/help/support.html
> CMake Consulting: http://cmake.org/cmake/help/consulting.html
> CMake Training Courses: http://cmake.org/cmake/help/training.html
> 
> Visit other Kitware open-source projects at 
> http://www.kitware.com/opensource/opensource.html
> 
> Follow this link to subscribe/unsubscribe:
> http://public.kitware.com/mailman/listinfo/cmake-developers

-- 

Powered by www.kitware.com

Please keep messages on-topic and check the CMake FAQ at: 
http://www.cmake.org/Wiki/CMake_FAQ

Kitware offers various services to support the CMake community. For more 
information on each offering, please visit:

CMake Support: http://cmake.org/cmake/help/support.html
CMake Consulting: http://cmake.org/cmake/help/consulting.html
CMake Training Courses: http://cmake.org/cmake/help/training.html

Visit other Kitware open-source projects at 
http://www.kitware.com/opensource/opensource.html

Follow this link to subscribe/unsubscribe:
http://public.kitware.com/mailman/listinfo/cmake-developers

Reply via email to