11#--------------------------------------------------------------------------------
22# Copyright (c) 2012-2013, Lars Baehren <[email protected] > 3+ # Copyright (C) 2020-2022 Commissariat a l'energie atomique et aux energies alternatives (CEA)
34# All rights reserved.
45#
56# Redistribution and use in source and binary forms, with or without modification,
@@ -29,10 +30,8 @@ cmake_minimum_required(VERSION 3.5)
2930#
3031# The following variables are set when YAML is found:
3132# yaml_FOUND = Set to true, if all components of YAML have been found.
32- # yaml_LIBRARIES =
3333#
34- # In addition, the following imported target is created
35- # yaml = Include path for the header files of YAML
34+ # In addition, the following imported target is created: yaml
3635
3736function (_yaml_Find_Config)
3837 find_package (yaml ${yaml_FIND_VERSION} QUIET CONFIG)
@@ -44,21 +43,27 @@ function(_yaml_Find_Config)
4443endfunction (_yaml_Find_Config)
4544
4645function (_yaml_Find_Pkgconfig)
47- find_package (PkgConfig QUIET REQUIRED)
48-
46+ find_package (PkgConfig QUIET )
47+ if ( NOT "${PKG_CONFIG_FOUND} " )
48+ if (NOT "${yaml_FIND_QUIETLY} " )
49+ message ("PkgConfig not found, unable to look for yaml" )
50+ endif ()
51+ return ()
52+ endif ()
53+
4954 if ( NOT "x${yaml_FIND_VERSION} " STREQUAL "x" )
5055 pkg_search_module(yamlpkg QUIET yaml>=${yaml_FIND_VERSION} yaml-0.1>=${yaml_FIND_VERSION} )
51- if ( NOT "${yaml_FOUND } " )
56+ if ( NOT "${yamlpkg_FOUND } " )
5257 pkg_search_module(yamlpkg QUIET yaml yaml-0.1)
5358 endif ()
5459 else ()
55- pkg_search_module(yamlpkg QUIET yaml yaml-0.1)
56- endif ()
57-
58- if ( "${yamlpkg_FOUND} " AND " ${yamlpkg_VERSION } " VERSION_GREATER "0${yaml_FIND_VERSION } " )
59- find_library (yaml_LIBRARIES NAMES ${yamlpkg_LIBRARIES}
60- HINTS ${yamlpkg_LIBRARY_DIRS}
61- PATH_SUFFIXES lib
60+ pkg_search_module(yamlpkg QUIET yaml yaml-0.1)
61+ endif ()
62+
63+ if ( "${yamlpkg_FOUND} " AND NOT "0 ${yaml_FIND_VERSION } " VERSION_GREATER "0${yamlpkg_VERSION } " )
64+ find_library (yaml_LIBRARIES NAMES ${yamlpkg_LIBRARIES}
65+ HINTS ${yamlpkg_LIBRARY_DIRS}
66+ PATH_SUFFIXES lib
6267 )
6368 if ( EXISTS "${yaml_LIBRARIES} " )
6469 add_library (yaml SHARED IMPORTED GLOBAL )
@@ -72,10 +77,7 @@ function(_yaml_Find_Pkgconfig)
7277 mark_as_advanced (yaml_INCLUDE_DIRS yaml_LIBRARIES)
7378 if ("${yamlpkg_VERSION} " VERSION_GREATER 0)
7479 set (yaml_VERSION "${yamlpkg_VERSION} " PARENT_SCOPE)
75- elseif ("${yamlpkg_yaml_VERSION} " VERSION_GREATER 0)
76- set (yaml_VERSION "${yamlpkg_yaml_VERSION} " PARENT_SCOPE)
77- elseif ("${yamlpkg_yaml-0.1_VERSION}" VERSION_GREATER 0)
78- set (yaml_VERSION "${yamlpkg_yaml-0.1_VERSION}" PARENT_SCOPE)
80+ set (yaml_VERSION "${yamlpkg_VERSION} " CACHE STRING "" FORCE)
7981 else ()
8082 unset (yaml_VERSION PARENT_SCOPE)
8183 endif ()
@@ -90,15 +92,17 @@ if ( NOT TARGET yaml )
9092 _yaml_Find_Config()
9193endif ()
9294if ( NOT TARGET yaml )
93- _yaml_Find_Pkgconfig()
94- endif ()
95- if ( TARGET yaml AND NOT "${yaml_LIBRARIES} " )
96- set (yaml_LIBRARIES yaml)
95+ _yaml_Find_Pkgconfig()
9796endif ()
98- if ( NOT TARGET yaml )
99- unset (yaml_LIBRARIES CACHE )
100- unset (yaml_LIBRARIES)
101- unset (yaml_FOUND CACHE )
97+ if ( TARGET yaml )
98+ get_target_property (yaml_LIBRARIES yaml IMPORTED_LOCATION )
99+ get_target_property (yamlpkg_INCLUDE_DIRS yaml INTERFACE_INCLUDE_DIRECTORIES )
100+ else ()
101+ unset (yamlpkg_INCLUDE_DIRS CACHE )
102+ unset (yamlpkg_INCLUDE_DIRS)
103+ unset (yaml_LIBRARIES CACHE )
104+ unset (yaml_LIBRARIES)
105+ unset (yaml_FOUND CACHE )
102106 unset (yaml_FOUND)
103107endif ()
104108
0 commit comments