mirror of
https://github.com/reactos/CMake.git
synced 2024-12-04 17:56:26 +00:00
b01184022b
This is to avoid getting an (older) copy of FPHSA.cmake which is e.g. installed with KDE 4.5.0 and 4.5.1. Alex
64 lines
2.5 KiB
CMake
64 lines
2.5 KiB
CMake
# - Find libarchive library and headers
|
|
# The module defines the following variables:
|
|
#
|
|
# LibArchive_FOUND - true if libarchive was found
|
|
# LibArchive_INCLUDE_DIRS - include search path
|
|
# LibArchive_LIBRARIES - libraries to link
|
|
# LibArchive_VERSION - libarchive 3-component version number
|
|
|
|
#=============================================================================
|
|
# Copyright 2010 Kitware, Inc.
|
|
#
|
|
# Distributed under the OSI-approved BSD License (the "License");
|
|
# see accompanying file Copyright.txt for details.
|
|
#
|
|
# This software is distributed WITHOUT ANY WARRANTY; without even the
|
|
# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
|
# See the License for more information.
|
|
#=============================================================================
|
|
# (To distribute this file outside of CMake, substitute the full
|
|
# License text for the above reference.)
|
|
|
|
find_path(LibArchive_INCLUDE_DIR
|
|
NAMES archive.h
|
|
PATHS
|
|
"[HKEY_LOCAL_MACHINE\\SOFTWARE\\GnuWin32\\LibArchive;InstallPath]/include"
|
|
)
|
|
|
|
find_library(LibArchive_LIBRARY
|
|
NAMES archive libarchive
|
|
PATHS
|
|
"[HKEY_LOCAL_MACHINE\\SOFTWARE\\GnuWin32\\LibArchive;InstallPath]/lib"
|
|
)
|
|
|
|
mark_as_advanced(LibArchive_INCLUDE_DIR LibArchive_LIBRARY)
|
|
|
|
# Extract the version number from the header.
|
|
if(LibArchive_INCLUDE_DIR AND EXISTS "${LibArchive_INCLUDE_DIR}/archive.h")
|
|
# The version string appears in one of two known formats in the header:
|
|
# #define ARCHIVE_LIBRARY_VERSION "libarchive 2.4.12"
|
|
# #define ARCHIVE_VERSION_STRING "libarchive 2.8.4"
|
|
# Match either format.
|
|
set(_LibArchive_VERSION_REGEX "^#define[ \t]+ARCHIVE[_A-Z]+VERSION[_A-Z]*[ \t]+\"libarchive +([0-9]+)\\.([0-9]+)\\.([0-9]+)[^\"]*\".*$")
|
|
file(STRINGS "${LibArchive_INCLUDE_DIR}/archive.h" _LibArchive_VERSION_STRING LIMIT_COUNT 1 REGEX "${_LibArchive_VERSION_REGEX}")
|
|
if(_LibArchive_VERSION_STRING)
|
|
string(REGEX REPLACE "${_LibArchive_VERSION_REGEX}" "\\1.\\2.\\3" LibArchive_VERSION "${_LibArchive_VERSION_STRING}")
|
|
endif()
|
|
unset(_LibArchive_VERSION_REGEX)
|
|
unset(_LibArchive_VERSION_STRING)
|
|
endif()
|
|
|
|
# Handle the QUIETLY and REQUIRED arguments and set LIBARCHIVE_FOUND
|
|
# to TRUE if all listed variables are TRUE.
|
|
include("${CMAKE_CURRENT_LIST_DIR}/FindPackageHandleStandardArgs.cmake")
|
|
find_package_handle_standard_args(LibArchive DEFAULT_MSG
|
|
LibArchive_LIBRARY LibArchive_INCLUDE_DIR
|
|
)
|
|
set(LibArchive_FOUND ${LIBARCHIVE_FOUND})
|
|
unset(LIBARCHIVE_FOUND)
|
|
|
|
if(LibArchive_FOUND)
|
|
set(LibArchive_INCLUDE_DIRS ${LibArchive_INCLUDE_DIR})
|
|
set(LibArchive_LIBRARIES ${LibArchive_LIBRARY})
|
|
endif()
|