ClamAV is an open source (GPLv2) anti-virus toolkit.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 
clamav/cmake/FindPthreadW32.cmake

121 lines
3.4 KiB

# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
# file Copyright.txt or https://cmake.org/licensing for details.
#[=======================================================================[.rst:
FindPThreadW32
-------
Finds the PThreadW32 library.
Imported Targets
^^^^^^^^^^^^^^^^
This module provides the following imported targets, if found:
``PThreadW32::pthreadw32``
The PThreadW32 library
Result Variables
^^^^^^^^^^^^^^^^
This will define the following variables:
``PThreadW32_FOUND``
True if the system has the PThreadW32 library.
``PThreadW32_VERSION``
The version of the PThreadW32 library which was found.
``PThreadW32_INCLUDE_DIRS``
Include directories needed to use PThreadW32.
``PThreadW32_LIBRARIES``
Libraries needed to link to PThreadW32.
Cache Variables
^^^^^^^^^^^^^^^
The following cache variables may also be set:
``PThreadW32_INCLUDE_DIR``
The directory containing ``foo.h``.
``PThreadW32_LIBRARY``
The path to the PThreadW32 library.
#]=======================================================================]
if(NOT WIN32)
message(FATAL_ERROR "This find module intended for use on Windows")
endif()
find_package(PkgConfig QUIET)
pkg_check_modules(PC_PThreadW32 QUIET pthreadw32)
find_path(PThreadW32_INCLUDE_DIR
NAMES pthread.h
PATHS ${PC_PThreadW32_INCLUDE_DIRS}
PATH_SUFFIXES pthreadw32
)
if(PThreadW32_LIBRARY)
set(PThreadW32_LIBRARIES "${PThreadW32_LIBRARY}")
endif()
if(NOT PThreadW32_LIBRARIES)
find_library(PThreadW32_LIBRARY_RELEASE
NAMES pthreadVC2 pthreadVC3 PATHS ${PC_PThreadW32_LIBRARY_DIRS})
find_library(PThreadW32_LIBRARY_DEBUG
NAMES pthreadVC2d pthreadVC3d PATHS ${PC_PThreadW32_LIBRARY_DIRS})
include(SelectLibraryConfigurations)
SELECT_LIBRARY_CONFIGURATIONS(PThreadW32)
else()
file(TO_CMAKE_PATH "${PThreadW32_LIBRARIES}" PThreadW32_LIBRARIES)
endif()
set(PThreadW32_VERSION ${PC_PThreadW32_VERSION})
include(FindPackageHandleStandardArgs)
find_package_handle_standard_args(PThreadW32
FOUND_VAR PThreadW32_FOUND
REQUIRED_VARS
PThreadW32_LIBRARIES
PThreadW32_INCLUDE_DIR
VERSION_VAR PThreadW32_VERSION
)
if(PThreadW32_FOUND)
set(PThreadW32_INCLUDE_DIRS ${PThreadW32_INCLUDE_DIR})
set(PThreadW32_DEFINITIONS ${PC_PThreadW32_CFLAGS_OTHER})
if(NOT TARGET PThreadW32::pthreadw32)
add_library(PThreadW32::pthreadw32 UNKNOWN IMPORTED)
set_target_properties(PThreadW32::pthreadw32 PROPERTIES
INTERFACE_COMPILE_OPTIONS "${PC_PThreadW32_CFLAGS_OTHER}"
INTERFACE_INCLUDE_DIRECTORIES "${PThreadW32_INCLUDE_DIR}"
)
if(PThreadW32_LIBRARY_RELEASE)
set_property(TARGET PThreadW32::pthreadw32 APPEND PROPERTY
IMPORTED_CONFIGURATIONS RELEASE)
set_target_properties(PThreadW32::pthreadw32 PROPERTIES
IMPORTED_LOCATION_RELEASE "${PThreadW32_LIBRARY_RELEASE}"
)
endif()
if(PThreadW32_LIBRARY_DEBUG)
set_property(TARGET PThreadW32::pthreadw32 APPEND PROPERTY
IMPORTED_CONFIGURATIONS DEBUG)
set_target_properties(PThreadW32::pthreadw32 PROPERTIES
IMPORTED_LOCATION_DEBUG "${PThreadW32_LIBRARY_DEBUG}"
)
endif()
if(NOT PThreadW32_LIBRARY_RELEASE AND NOT PThreadW32_LIBRARY_DEBUG)
set_property(TARGET PThreadW32::pthreadw32 APPEND PROPERTY
IMPORTED_LOCATION "${PThreadW32_LIBRARY}")
endif()
endif()
endif()
mark_as_advanced(
PThreadW32_INCLUDE_DIR
PThreadW32_LIBRARY
)