Bug #2755

Analysis does not consider CMake include() command

Added by S. Meyer zu Borgsen over 5 years ago. Updated over 5 years ago.

Status:ResolvedStart date:07/25/2018
Priority:NormalDue date:
Assignee:J. Moringen% Done:

100%

Category:Project Analysis
Target version:-

Description

For example from the aruco.project no dependencies are collected from the cmakelists in the zip archive.

Associated revisions

Revision 933c7d6f
Added by J. Moringen over 5 years ago

CMake analysis considers INCLUDE in src/analysis/cmake.lisp

  • src/analysis/cmake.lisp (header): updated copyright
    (include-scanner): new parameter; approximate syntax for CMake's
    include() command
    (analyze pathname eql :cmake/one-directory): for sub-projects, call
    `analyze' with :implicit-provides? nile
    (analyze pathname eql :cmake/one-file): added implicit-provides?
    keyword parameter; process files included via include() calls
  • changes (release 0.24): added enhancement entry

fixes #2755

History

#1 Updated by J. Moringen over 5 years ago

  • Status changed from New to Feedback
  • Assignee changed from J. Moringen to S. Meyer zu Borgsen

S. Meyer zu Borgsen wrote:

For example from the aruco.project no dependencies are collected from the cmakelists in the zip archive.

I tried

build-generator analyze 'https://netix.dl.sourceforge.net/project/aruco/3.0.0/aruco-3.0.8.zip?scm=archive'
build-generator report -k graph -o /tmp/report test.distribution

where test.distribution only contained the aruco project and everything seemed fine. Can you describe what the expected behavior was and what happened instead?

#2 Updated by S. Meyer zu Borgsen over 5 years ago

  • Assignee changed from S. Meyer zu Borgsen to J. Moringen

The first problem was unfortunately that I did not know that I needed to append ?scm=archive.

Although the main problem remains that the analysis gives:

"requires":null

It requires OpenCV but does not detect it during analysis which breaks the build-order.

But maybe the problem is not the SCM-type but the project structure?

#3 Updated by J. Moringen over 5 years ago

  • Status changed from Feedback to In Progress

S. Meyer zu Borgsen wrote:

Although the main problem remains that the analysis gives:

[...]

It requires OpenCV but does not detect it during analysis which breaks the build-order.

But maybe the problem is not the SCM-type but the project structure?

From a brief look at the project source code, the OpenCV dependency seems to be handled in a findDependencies CMake module that is include d in the main CMakeLists.txt file. I can probably improve the generator to handle this case.

#4 Updated by J. Moringen over 5 years ago

  • % Done changed from 0 to 50

#5 Updated by J. Moringen over 5 years ago

  • Subject changed from "scm": "archive" dependencies not analyzed to Analysis does not consider CMake include() command

#6 Updated by J. Moringen over 5 years ago

  • Status changed from In Progress to Resolved
  • % Done changed from 50 to 100

Also available in: Atom PDF