cmake: modernize dependency management

Switching to CMake's imported targets is easier, there's no need to use
both include_directories and library_directories.

Also bump the minimal required version to what we're currently using in
the CI.

Change-Id: Ib7474700493c0a3424bc8cc55de3db146aeb5db8
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 0aec7e1..e990364 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -57,10 +57,9 @@
 endif()
 
 find_package(PkgConfig)
-pkg_check_modules(LIBYANG REQUIRED libyang-cpp>=0.15.111)
-# TODO: bump to 0.7.8 once it is tagged
-pkg_check_modules(SYSREPO REQUIRED libSysrepo-cpp>=0.7.7)
-pkg_check_modules(LIBNETCONF2 REQUIRED libnetconf2>=0.12.47)
+pkg_check_modules(LIBYANG REQUIRED libyang-cpp>=1.0.130 IMPORTED_TARGET libyang)
+pkg_check_modules(SYSREPO REQUIRED libSysrepo-cpp>=0.7.9 IMPORTED_TARGET libsysrepo)
+pkg_check_modules(LIBNETCONF2 REQUIRED libnetconf2>=0.12.64 IMPORTED_TARGET libnetconf2)
 
 # we don't need filename tracking, and we prefer to use header-only Boost
 add_definitions(-DBOOST_SPIRIT_X3_NO_FILESYSTEM)
@@ -101,27 +100,20 @@
     src/sysrepo_access.cpp
     )
 
-target_link_libraries(sysrepoaccess datastoreaccess ast_values ${SYSREPO_LIBRARIES})
-link_directories(${SYSREPO_LIBRARY_DIRS})
-target_include_directories(sysrepoaccess SYSTEM PRIVATE ${SYSREPO_INCLUDE_DIRS})
+target_link_libraries(sysrepoaccess PUBLIC datastoreaccess ast_values PRIVATE PkgConfig::SYSREPO)
 
 add_library(netconfaccess STATIC
     src/netconf-client.cpp
     src/netconf_access.cpp
     )
 
-target_link_libraries(netconfaccess datastoreaccess yangschema ast_values utils ${LIBNETCONF2_LIBRARIES})
-link_directories(${LIBNETCONF2_LIBRARY_DIRS})
-target_include_directories(netconfaccess SYSTEM PRIVATE ${LIBNETCONF2_INCLUDE_DIRS})
+target_link_libraries(netconfaccess PUBLIC datastoreaccess yangschema ast_values utils PRIVATE PkgConfig::LIBNETCONF2)
 
 add_library(yangschema STATIC
     src/yang_schema.cpp
     src/libyang_utils.cpp
     )
-target_link_libraries(yangschema schemas utils ${LIBYANG_LIBRARIES})
-# Ensure that this doesn't override Boost's -isystem -- see the log for details.
-target_include_directories(yangschema SYSTEM PRIVATE ${LIBYANG_INCLUDEDIR})
-link_directories(${LIBYANG_LIBRARY_DIRS})
+target_link_libraries(yangschema PUBLIC schemas utils PRIVATE PkgConfig::LIBYANG)
 
 add_library(parser STATIC
     src/parser.cpp