1234567891011121314151617181920212223242526272829303132333435363738394041424344454647 |
- include(FindPackageHandleStandardArgs)
- set(_root ${PThreadWin32_ROOT})
- if (NOT _root)
- find_package_handle_standard_args(PThreadWin32
- FOUND_VAR PThreadWin32_FOUND
- REQUIRED_VARS _root) # 强制搜不到包
- unset(_root)
- endif()
- # PThreadWin32_ROOT 必须是 PThreadWin32的安装目录
- # PThreadWin32
- find_path(pthread_h NAMES pthread.h HINTS ${_root}/include DOC "PThreadWin32 include directory" NO_DEFAULT_PATH)
- find_library(pthread_lib NAMES "libpthreadVC3d.lib" "libpthreadVC3.lib"
- libPThreadWin32 HINTS ${_root}/lib DOC "PThreadWin32 library" NO_DEFAULT_PATH)
- set(pthread_INCLUDE_DIRS ${pthread_h})
- set(pthread_LIBRARIES ${pthread_lib})
- unset(pthread_h CACHE)
- unset(pthread_lib CACHE)
- message(STATUS "pthread_lib = ${pthread_INCLUDE_DIRS}")
- find_package_handle_standard_args(PThreadWin32
- FOUND_VAR PThreadWin32_FOUND
- REQUIRED_VARS
- pthread_INCLUDE_DIRS
- pthread_LIBRARIES) # 强制搜不到包
- if (PThreadWin32_FOUND)
- add_library(PThreadWin32::pthread STATIC IMPORTED)
- set_target_properties(PThreadWin32::pthread PROPERTIES
- IMPORTED_LOCATION "${pthread_LIBRARIES}"
- INTERFACE_INCLUDE_DIRECTORIES "${pthread_INCLUDE_DIRS}"
- INTERFACE_SOURCES
- "${pthread_INCLUDE_DIRS}/pthread.h"
- "${pthread_INCLUDE_DIRS}/sched.h"
- "${pthread_INCLUDE_DIRS}/semaphore.h"
- "${pthread_INCLUDE_DIRS}/_ptw32.h"
- PUBLIC_HEADER
- "${pthread_INCLUDE_DIRS}/pthread.h"
- "${pthread_INCLUDE_DIRS}/sched.h"
- "${pthread_INCLUDE_DIRS}/semaphore.h"
- "${pthread_INCLUDE_DIRS}/_ptw32.h")
- endif()
|