On Wed, Feb 14, 2018 at 19:19:39 +0100, Paweł Rutka wrote:
> I would like to ask about some important feature:
> Is there any possibility to provide form Cmake Server side location of
> command that generate the target? The Use Case is as follow:
> In IDE you want  to, after Class creation, automatically add CPP file into
> proper add_executable or extend some variable passed to  add_executable or
> any other case that lead to target creation.

Note that this is a very hard problem. Take the following examples:

=======
    add_executable(myexe a.c b.c)
=======

=======
    set(sources a.c b.c)
    add_executable(myexe ${sources})
=======

=======
    set(sources a.c b.c)

    add_subdirectory(foo) # does a `set(sources PARENT_SCOPE)`

    add_executable(myexe ${sources})
=======

=======
    set(sources a.c b.c)

    if (some_option)
      list(APPEND sources c.c)
    endif ()

    add_executable(myexe ${sources})
=======

=======
    set(sources a.c b.c)

    add_executable(myexe ${sources})
    set_property(TARGET myexe APPEND SOURCES d.c)
=======

What would the IDE be expected to do for each of these cases?

Personally, I think it would be best to just get where the target is
declared. This should have a backtrace available so that this pattern is
supported:

=======
    function (wrap_add_library)
        add_library(${ARGN})
        # Project-specific bits.
    endfunction ()

    # Somewhere else...
    wrap_add_library(mylib STATIC ...)
=======

Once the main location is found, I think just having the "your cursor is
on FOO, I'll highlight other instances of FOO" feature should be enough
to get one to the right place.

--Ben
-- 

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:
https://cmake.org/mailman/listinfo/cmake-developers

Reply via email to