Broken pkg-config file ompl.pc

Aperta
#1,218 3 commenti 0 reazioni 0 assegnatari Vedi su GitHub

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
4/5
Tempo stimato
3-5 giorni
Idoneità per principianti
42/100
Tipo di issue
Bug
Chiarezza
Abbastanza chiara
Stato di attività
Ferma
Stack tecnologico
cmake, cpp
Ambito
build-system

Direzione di ricerca

Inizia ispezionando la generazione di CMake/pkg-config modificata dalla PR #1066 e confrontando gli esempi di ompl.pc generati in questo report. Riproduci l’installazione in un container Ubuntu 20.04 con -DCMAKE_INSTALL_PREFIX=/opt/workspace/install, quindi verifica pkg-config ompl --cflags e --libs. Il lavoro è completato quando ompl.pc contiene dipendenze pkg-config valide e funziona senza trattare i nomi dei target CMake come nomi di pacchetti.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

OMPL generates a broken pkg-config file since PR #1066

(Following outputs are generated inside an Ubuntu 20.04 docker container, with -DCMAKE_INSTALL_PREFIX=/opt/workspace/install)

Before #1066 (good):

# This file was generated by CMake for ompl
prefix=/opt/workspace/install
exec_prefix=${prefix}
libdir=${prefix}/lib
includedir=${prefix}/include/ompl-1.6

Name: ompl
Description: The Open Motion Planning Library
Version: 1.6.0
Requires: eigen3 
Libs: -L${libdir} -lompl /usr/lib/x86_64-linux-gnu/libboost_serialization.so /usr/lib/x86_64-linux-gnu/libboost_filesystem.so /usr/lib/x86_64-linux-gnu/libboost_system.so -lpthread
Cflags: -std=c++17 -I${includedir} -I/usr/include

After #1066 (bad, Boost::* are no valid pkg-config dependencies):

# This file was generated by CMake for ompl
prefix=/opt/workspace/install
exec_prefix=${prefix}
libdir=${prefix}/lib
includedir=${prefix}/include/ompl-1.6

Name: ompl
Description: The Open Motion Planning Library
Version: 1.6.0
Requires: eigen3 Boost::filesystem Boost::program_options Boost::serialization Boost::system
Libs: -L${libdir} -lompl -lpthread
Cflags: -std=c++17 -I${includedir} -I/usr/include

Trying to use pkg-config will thus lead to an error:

$ pkg-config ompl --cflags
Package Boost::filesystem was not found in the pkg-config search path.
Perhaps you should add the directory containing `Boost::filesystem.pc'
to the PKG_CONFIG_PATH environment variable
Package 'Boost::filesystem', required by 'ompl', not found

On the current main branch the following ompl.pc is generated (which is even more broken):

# This file was generated by CMake for ompl
prefix=/opt/workspace/install
exec_prefix=${prefix}
libdir=/opt/workspace/install/lib
includedir=/opt/workspace/install/include

Name: ompl
Description: The Open Motion Planning Library
Version: 1.6.0
Requires: Eigen3::Eigen Boost::filesystem Boost::serialization Boost::system Eigen3::Eigen $<$<BOOL:TRUE>:Threads::Threads> $<$<BOOL:>:flann::flann> $<$<BOOL:FALSE>:Triangle::Triangle> $<$<BOOL:>:Spot::Spot>
Libs: -L${libdir} -lompl 
Cflags: -std=c++17 -I${includedir} -I/usr/include
Lingua principale
C++
Stelle
2.2k
Fork
718
Merge medio
16h 12m
PR unite (30g)
1

Preparare l'ambiente

Questo progetto non fornisce container di sviluppo, Dockerfile né guida per i contributori, quindi l'ambiente è a tuo carico: parti dal suo README e consulta la nostra guida al primo contributo per i passaggi generali.

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di ompl/ompl

Tutte le issue di ompl/ompl

Issue simili

Altre issue su C++

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.