CMakeLists.txt location

classic Classic list List threaded Threaded
7 messages Options
Reply | Threaded
Open this post in threaded view
|

CMakeLists.txt location

Alain Miniussi
Hi,

Is there a way, when printing CMake error, to get the exact location of
the CMakeLists.txt ?

For example, right now, when I have:

CMake Error at CMakeLists.txt:14 (add_executable):

I  need to scan all my CMakeLists.txt (~200) to check which one has
add_executable at line 14.

Thanks

Alain

--

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
Reply | Threaded
Open this post in threaded view
|

Re: CMakeLists.txt location

Nils Gladitz-2
On 13.09.2017 10:52, Alain Miniussi wrote:

> Hi,
>
> Is there a way, when printing CMake error, to get the exact location
> of the CMakeLists.txt ?
>
> For example, right now, when I have:
>
> CMake Error at CMakeLists.txt:14 (add_executable):
>
> I  need to scan all my CMakeLists.txt (~200) to check which one has
> add_executable at line 14.

CMake includes the (relative to the root source directory) path for me e.g.:
     CMake Error at Source/CMakeLists.txt:4 (add_executable):

Nils
--

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
Reply | Threaded
Open this post in threaded view
|

Re: CMakeLists.txt location

Alain Miniussi


On 13/09/2017 11:16, Nils Gladitz wrote:

> On 13.09.2017 10:52, Alain Miniussi wrote:
>> Hi,
>>
>> Is there a way, when printing CMake error, to get the exact location
>> of the CMakeLists.txt ?
>>
>> For example, right now, when I have:
>>
>> CMake Error at CMakeLists.txt:14 (add_executable):
>>
>> I  need to scan all my CMakeLists.txt (~200) to check which one has
>> add_executable at line 14.
>
> CMake includes the (relative to the root source directory) path for me
> e.g.:
>     CMake Error at Source/CMakeLists.txt:4 (add_executable):
Well, it never did for me:
$grep add_executable CMakeLists.txt
$

Alain
--

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
Reply | Threaded
Open this post in threaded view
|

Re: CMakeLists.txt location

Nils Gladitz-2
On 13.09.2017 12:22, Alain Miniussi wrote:

>
>
> On 13/09/2017 11:16, Nils Gladitz wrote:
>> On 13.09.2017 10:52, Alain Miniussi wrote:
>>> Hi,
>>>
>>> Is there a way, when printing CMake error, to get the exact location
>>> of the CMakeLists.txt ?
>>>
>>> For example, right now, when I have:
>>>
>>> CMake Error at CMakeLists.txt:14 (add_executable):
>>>
>>> I  need to scan all my CMakeLists.txt (~200) to check which one has
>>> add_executable at line 14.
>>
>> CMake includes the (relative to the root source directory) path for
>> me e.g.:
>>     CMake Error at Source/CMakeLists.txt:4 (add_executable):
> Well, it never did for me:
> $grep add_executable CMakeLists.txt
> $
>
> Alain


Do you have a minimal reproducible example for that behaviour?


e.g. given:

    cmake_minimum_required(VERSION 2.8.0)

     project(Foo NONE)

     file(WRITE foo/CMakeLists.txt "add_executable()")

     add_subdirectory(foo)


I get:

     CMake Error at foo/CMakeLists.txt:1 (add_executable):
       add_executable called with incorrect number of arguments


Even with the oldest CMake version currently available to me (2.8.0).


Nils

--

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
Reply | Threaded
Open this post in threaded view
|

Re: CMakeLists.txt location

Mateusz Loskot
On 13 September 2017 at 12:49, Nils Gladitz <[hidden email]> wrote:

> On 13.09.2017 12:22, Alain Miniussi wrote:
>> On 13/09/2017 11:16, Nils Gladitz wrote:
>>> On 13.09.2017 10:52, Alain Miniussi wrote:
>>>>
>>>> Is there a way, when printing CMake error, to get the exact location of
>>>> the CMakeLists.txt ?
>>>>
>>>> For example, right now, when I have:
>>>>
>>>> CMake Error at CMakeLists.txt:14 (add_executable):
>>>>
>>>> I  need to scan all my CMakeLists.txt (~200) to check which one has
>>>> add_executable at line 14.
>>>
>>>
>>> CMake includes the (relative to the root source directory) path for me
>>> e.g.:
>>>     CMake Error at Source/CMakeLists.txt:4 (add_executable):
>>
>> Well, it never did for me:
>> $grep add_executable CMakeLists.txt
>> $
>
> Do you have a minimal reproducible example for that behaviour?
>
> e.g. given:
>
>    cmake_minimum_required(VERSION 2.8.0)
>     project(Foo NONE)
>     file(WRITE foo/CMakeLists.txt "add_executable()")
>     add_subdirectory(foo)
>
> I get:
>
>     CMake Error at foo/CMakeLists.txt:1 (add_executable):
>       add_executable called with incorrect number of arguments

I can confirm this works with cmake version 3.9.0 on Windows 10

D:\tmp\cmake-location\build>cmake ..
-- Building for: Visual Studio 15 2017
CMake Error at foo/CMakeLists.txt:1 (add_executable):
  add_executable called with incorrect number of arguments

-- Configuring incomplete, errors occurred!
See also "D:/tmp/cmake-location/build/CMakeFiles/CMakeOutput.log".


Best regards,
--
Mateusz Loskot, http://mateusz.loskot.net
--

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
--
Mateusz Loskot
http://mateusz.loskot.net
Reply | Threaded
Open this post in threaded view
|

Re: CMakeLists.txt location

Alain Miniussi
In reply to this post by Nils Gladitz-2


On 13/09/2017 12:49, Nils Gladitz wrote:

>  [...]
> Do you have a minimal reproducible example for that behaviour?
>
>
> e.g. given:
>
>    cmake_minimum_required(VERSION 2.8.0)
>
>     project(Foo NONE)
>
>     file(WRITE foo/CMakeLists.txt "add_executable()")
>
>     add_subdirectory(foo)
>
>
> I get:
>
>     CMake Error at foo/CMakeLists.txt:1 (add_executable):
>       add_executable called with incorrect number of arguments
>
>
> Even with the oldest CMake version currently available to me (2.8.0).
That test case works for me too. But my real case does not.
I think it would be tricky to minimized, what is failling is the second
run of cmake, after a modification in the build system or in a
configure_file source.

--------------------------------
CMake Error at CMakeLists.txt:14 (add_executable):
   Target "cmTC_60ee6" links to item " -Xlinker --enable-new-dtags -Xlinker
   -rpath -Xlinker
   /opt/software/common/intel/impi/2017.0.098/intel64/lib/release_mt
-Xlinker
   -rpath -Xlinker /opt/software/common/intel/impi/2017.0.098/intel64/lib
   -Xlinker -rpath -Xlinker
/opt/intel/mpi-rt/2017.0.0/intel64/lib/release_mt
   -Xlinker -rpath -Xlinker /opt/intel/mpi-rt/2017.0.0/intel64/lib
/opt/software/occigen/libraries/boost/1_63_0/intel/17.0/intelmpi/2017.0.098/lib/libboost_serialization.a"
   which has leading or trailing whitespace.  This is now an error according
   to policy CMP0004.


CMake Error: Internal CMake error, TryCompile generation of cmake failed
INFO   Boost MPI not available or too old:
--------------------------------

Now, maybe the problem is with a CMakeLists.tx generated by a try_compile.
Indicating that I would actually need the location of the try_compile.

Thanks

Alain

>
>
> Nils
>

--

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
Reply | Threaded
Open this post in threaded view
|

Re: CMakeLists.txt location

Nils Gladitz-2
On 13.09.2017 14:31, Alain Miniussi wrote:

>
>
> On 13/09/2017 12:49, Nils Gladitz wrote:
>>  [...]
>> Do you have a minimal reproducible example for that behaviour?
>>
>>
>> e.g. given:
>>
>>    cmake_minimum_required(VERSION 2.8.0)
>>
>>     project(Foo NONE)
>>
>>     file(WRITE foo/CMakeLists.txt "add_executable()")
>>
>>     add_subdirectory(foo)
>>
>>
>> I get:
>>
>>     CMake Error at foo/CMakeLists.txt:1 (add_executable):
>>       add_executable called with incorrect number of arguments
>>
>>
>> Even with the oldest CMake version currently available to me (2.8.0).
> That test case works for me too. But my real case does not.
> I think it would be tricky to minimized, what is failling is the
> second run of cmake, after a modification in the build system or in a
> configure_file source.
>
> --------------------------------
> CMake Error at CMakeLists.txt:14 (add_executable):
>   Target "cmTC_60ee6" links to item " -Xlinker --enable-new-dtags
> -Xlinker
>   -rpath -Xlinker
> /opt/software/common/intel/impi/2017.0.098/intel64/lib/release_mt
> -Xlinker
>   -rpath -Xlinker /opt/software/common/intel/impi/2017.0.098/intel64/lib
>   -Xlinker -rpath -Xlinker
> /opt/intel/mpi-rt/2017.0.0/intel64/lib/release_mt
>   -Xlinker -rpath -Xlinker /opt/intel/mpi-rt/2017.0.0/intel64/lib
> /opt/software/occigen/libraries/boost/1_63_0/intel/17.0/intelmpi/2017.0.098/lib/libboost_serialization.a"
>
>   which has leading or trailing whitespace.  This is now an error
> according
>   to policy CMP0004.
>
>
> CMake Error: Internal CMake error, TryCompile generation of cmake failed
> INFO   Boost MPI not available or too old:
> --------------------------------
>
> Now, maybe the problem is with a CMakeLists.tx generated by a
> try_compile.
> Indicating that I would actually need the location of the try_compile.
>
> Thanks
>
> Alain

Ok, I assume that means you are actually looking at CMakeError.log and
not the output you get from CMake concerning your own project's
configuration run.
try_compile() runs aren't necessarily meant to succeed but rather their
outcome is used in conditionals which may or may not have fatal outcomes
for your actual project.

If a fatal diagnostic is produced based on such a conditional it would
be visible in CMake's direct output (with file and line information) not
CMakeError.log.
You only need to look at CMakeError.log to understand why a
try_compile() did not succeed even though you would have expected it to.

The CMakeLists.txt where the error comes from in your failing
try_compile() is generated and temporary so you will not find it in your
own sources.

Nils
--

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