Skip to content

Commit f2937e8

Browse files
committed
Improved Findyaml
1 parent 6b77e1c commit f2937e8

File tree

1 file changed

+29
-25
lines changed

1 file changed

+29
-25
lines changed

paraconf/cmake/Findyaml.cmake

Lines changed: 29 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
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

3736
function(_yaml_Find_Config)
3837
find_package(yaml ${yaml_FIND_VERSION} QUIET CONFIG)
@@ -44,21 +43,27 @@ function(_yaml_Find_Config)
4443
endfunction(_yaml_Find_Config)
4544

4645
function(_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()
9193
endif()
9294
if ( 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()
9796
endif()
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)
103107
endif()
104108

0 commit comments

Comments
 (0)