2021-10-14 13:47:35 +02:00

60 lines
2.0 KiB
CMake

# ---------------------------------
# Finds third party pthread lib
# Adds library to target
# Adds include path
# ---------------------------------
GET_PROPERTY(OV_PRINTED GLOBAL PROPERTY OV_TRIED_ThirdPartyPThread)
IF(WIN32)
FIND_PATH(PTHREAD_DIR lib PATHS ${LIST_DEPENDENCIES_PATH} PATH_SUFFIXES pthread NO_DEFAULT_PATH)
FIND_PATH(PTHREAD_DIR lib PATHS ${LIST_DEPENDENCIES_PATH} PATH_SUFFIXES pthreads NO_DEFAULT_PATH)
FIND_LIBRARY(PTHREAD_LIB pthreadVC2 PATHS ${PTHREAD_DIR} PATH_SUFFIXES lib NO_DEFAULT_PATH)
FIND_PROGRAM(PTHREAD_DLL pthread.dll PATHS ${PTHREAD_DIR} PATH_SUFFIXES bin NO_DEFAULT_PATH)
INCLUDE("OvSetWindowsSDKPath")
SET(WS232_LIB "WS232_LIB-NOTFOUND")
FIND_LIBRARY(WS232_LIB ws2_32 ${OV_MS_SDK_PATH}/lib NO_DEFAULT_PATH)
FIND_LIBRARY(WS232_LIB ws2_32 ${OV_MS_SDK_PATH}/lib)
IF(PTHREAD_LIB AND WS232_LIB AND PTHREAD_DLL)
OV_PRINT(OV_PRINTED " Found PThreads")
INCLUDE_DIRECTORIES(${PTHREAD_DIR}/include)
TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${WS232_LIB})
TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${PTHREAD_LIB})
INSTALL(PROGRAMS "${PTHREAD_DLL}" DESTINATION ${DIST_BINDIR})
ADD_DEFINITIONS(-DTARGET_HAS_PThread)
ELSE()
OV_PRINT(OV_PRINTED " FAILED to find PThreads")
ENDIF()
IF(PTHREAD_LIB)
OV_PRINT(OV_PRINTED " [ OK ] Third party lib ${PTHREAD_LIB}")
ELSE()
OV_PRINT(OV_PRINTED " [FAILED] Third party lib ${PTHREAD_LIB}")
ENDIF()
IF(WS232_LIB)
OV_PRINT(OV_PRINTED " [ OK ] Third party lib ${WS232_LIB}")
ELSE()
OV_PRINT(OV_PRINTED " [FAILED] Third party lib ${WS232_LIB}")
ENDIF()
ENDIF(WIN32)
IF(UNIX)
FIND_LIBRARY(LIB_STANDARD_MODULE_PTHREAD pthread)
IF(LIB_STANDARD_MODULE_PTHREAD)
OV_PRINT(OV_PRINTED " Found pthread...")
TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${LIB_STANDARD_MODULE_PTHREAD})
ADD_DEFINITIONS(-DTARGET_HAS_PThread)
ELSE(LIB_STANDARD_MODULE_PTHREAD)
OV_PRINT(OV_PRINTED " FAILED to find pthread...")
ENDIF(LIB_STANDARD_MODULE_PTHREAD)
ENDIF(UNIX)
SET_PROPERTY(GLOBAL PROPERTY OV_TRIED_ThirdPartyPThread "Yes")