Bug #2755
Analysis does not consider CMake include() command
Status: | Resolved | Start date: | 07/25/2018 | |
---|---|---|---|---|
Priority: | Normal | Due 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
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 almost 6 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 almost 6 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 almost 6 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 almost 6 years ago
- % Done changed from 0 to 50
#5 Updated by J. Moringen almost 6 years ago
- Subject changed from "scm": "archive" dependencies not analyzed to Analysis does not consider CMake include() command
#6 Updated by J. Moringen almost 6 years ago
- Status changed from In Progress to Resolved
- % Done changed from 50 to 100
Applied in changeset 933c7d6fccc7c9616325bd5050a8da1fff9c366d.