AcademySoftwareFoundation / AcademySoftwareFoundation/OpenColorIO

OpenColorIO skips find_package for some 3rd party dependencies when "PackageName_ROOT" is defined

Ouverte
#2,185 2 commentaires 0 réactions 0 personnes assignées Voir sur GitHub
Langage dominant
C++
Étoiles
2.1k
Forks
505
Métriques de merge des PR
Aucune PR mergée en 30 j

Description

OpenColorIO has some 3rd party dependencies for which custom "FindPackageName.cmake" files have been written. Examples: yaml-cpp, Imath, minizip-ng,... These all check if the "PackageName_ROOT" variable is defined and if not they call find_package(PackageName).
For example for yaml-cpp:

```
# Search for yaml-cpp-config.cmake
if(NOT DEFINED yaml-cpp_ROOT)
find_package(yaml-cpp ${yaml-cpp_FIND_VERSION} CONFIG ${quiet})
endif()
```

The [CMake documentation of find_package](https://cmake.org/cmake/help/latest/command/find_package.html) states however that the location referred to by the variable "PackageName_ROOT" is searched first to find the package. In our build setup we do set this variable so that find_package commands will find the appropriate version (i.e., the one we build from source). Because of "if(NOT DEFINED...)" the find_package call is skipped in this case, which is unexpected behavior for us.

What is the reasoning behind this implementation? At first sight it doesn't seem to comply with the CMake docs.

Guide de contribution

Ouvrir le guide de contribution

Piste de recherche

Commencez par examiner les implémentations personnalisées de FindPackageName.cmake mentionnées dans l’issue, en particulier l’exemple yaml-cpp, et comparez leurs guards PackageName_ROOT avec la documentation de CMake sur find_package. Déterminez si le guard est intentionnel et clarifiez le comportement attendu ; l’achèvement devrait résoudre la question soulevée dans l’issue.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Évaluation

Stack technique
cmake, cpp
Domaine
build-system
Type d'issue
Bug
Difficulté
3/5
Temps estimé
1-2 jours
Activité
À l'abandon
Clarté
À clarifier
Accessibilité débutants
35/100

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.