find_package(PkgConfig QUIET) if(PKG_CONFIG_FOUND) pkg_check_modules(PC_simpleini QUIET simpleini) endif() find_path(simpleini_INCLUDE_DIR SimpleIni.h HINTS ${PC_simpleini_INCLUDEDIR} ${PC_simpleini_INCLUDE_DIRS} ${SIMPLEINI_INCLUDE_DIRS}) find_library(simpleini_LIBRARY simpleini HINTS ${PC_simpleini_LIBDIR} ${PC_simpleini_LIBRARY_DIRS} ${SIMPLEINI_LIBRARY_DIRS}) list(APPEND _required_vars "simpleini_INCLUDE_DIR") if(NOT simpleini_INCLUDE_DIR STREQUAL "simpleini_INCLUDE_DIR-NOTFOUND") file(READ "${simpleini_INCLUDE_DIR}/SimpleIni.h" _version_header_content) if(_version_header_content MATCHES "Version *([0-9.]+)") set(simpleini_VERSION "${CMAKE_MATCH_1}") endif() endif() # SimpleIni can be distributed as a header-only library, so the library is optional. if(NOT simpleini_LIBRARY STREQUAL "simpleini_LIBRARY-NOTFOUND") list(APPEND _required_vars "simpleini_LIBRARY") endif() include(FindPackageHandleStandardArgs) find_package_handle_standard_args(simpleini REQUIRED_VARS ${_required_vars} VERSION_VAR simpleini_VERSION) if(simpleini_FOUND AND NOT TARGET simpleini::simpleini) if(simpleini_LIBRARY STREQUAL "simpleini_LIBRARY-NOTFOUND") # Header-only distribution. add_library(simpleini INTERFACE) target_include_directories(simpleini INTERFACE ${simpleini_INCLUDE_DIR}) add_library(simpleini::simpleini ALIAS simpleini) else() # A distribution with a library. add_library(simpleini::simpleini UNKNOWN IMPORTED) set_target_properties(simpleini::simpleini PROPERTIES INTERFACE_INCLUDE_DIRECTORIES ${simpleini_INCLUDE_DIR} IMPORTED_LOCATION ${simpleini_LIBRARY}) endif() endif() if(simpleini_FOUND) mark_as_advanced(simpleini_INCLUDE_DIR simpleini_LIBRARY) set(simpleini_LIBRARIES ${simpleini_LIBRARY}) set(simpleini_INCLUDE_DIRS ${simpleini_INCLUDE_DIR}) endif()