SET(PUGIXML_PKG_DIR "" CACHE PATH "Path to pugixml package") SET(PUGIXML_SRC_DIR "" CACHE PATH "Path to pugixml source directory") SET(PUGIXML_INC_DIR "" CACHE PATH "Path to pugixml include directory") SET(PUGIXML_LIB_DIR "" CACHE PATH "Path to pugixml library directory") IF (NOT PUGIXML_SRC_DIR STREQUAL "") add_subdirectory(${PUGIXML_SRC_DIR} ${CMAKE_CURRENT_BINARY_DIR}/pugixml) message(STATUS "Using pugixml source from ${PUGIXML_SRC_DIR}") ELSE() IF (NOT PUGIXML_PKG_DIR STREQUAL "") find_package(pugixml CONFIG PATHS ${PUGIXML_PKG_DIR}) ELSE() find_package(pugixml CONFIG) ENDIF() IF (pugixml_FOUND) IF (PUGIXML_INC_DIR STREQUAL "") include_directories(${pugixml_DIR}/../../../include) ELSE() include_directories(${PUGIXML_INC_DIR}) ENDIF() message(STATUS "Using pugixml package from ${pugixml_DIR}") message(STATUS "pugixml include dir: ${pugixml_DIR}/../../../include") ELSEIF (NOT PUGIXML_INC_DIR STREQUAL "" AND NOT PUGIXML_LIB_DIR STREQUAL "") set(pugixml_FOUND TRUE) include_directories(${PUGIXML_INC_DIR}) link_directories(${PUGIXML_LIB_DIR}) add_library(pugixml STATIC IMPORTED) message(STATUS "Using pugixml include directory and library directory from ${PUGIXML_INC_DIR} and ${PUGIXML_LIB_DIR}") ENDIF() ENDIF() IF (NOT pugixml_FOUND) message(FATAL_ERROR "pugixml not found") ENDIF()