mirror of https://github.com/Cisco-Talos/clamav
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.
121 lines
3.4 KiB
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
|
|
)
|
|
|