vcpkg/ports/pthreads/CMakeLists.txt
2017-08-29 12:15:35 -07:00

214 lines
4.7 KiB
CMake

cmake_minimum_required(VERSION 3.9.0)
project(pthreads)
set(PTHREAD_PUBLIC_HEADERS pthread.h sched.h semaphore.h)
set(PTHREAD_SHARED_SOURCES
autostatic.c
barrier.c
cancel.c
cleanup.c
condvar.c
create.c
dll.c
errno.c
exit.c
fork.c
global.c
misc.c
mutex.c
nonportable.c
private.c
rwlock.c
sched.c
semaphore.c
signal.c
spin.c
sync.c
tsd.c
attr.C
)
set(PTHREAD_STATIC_SOURCES
autostatic.c
cleanup.c
create.c
dll.c
errno.c
fork.c
global.c
pthread_attr_destroy.c
pthread_attr_getdetachstate.c
pthread_attr_getinheritsched.c
pthread_attr_getschedparam.c
pthread_attr_getschedpolicy.c
pthread_attr_getscope.c
pthread_attr_getstackaddr.c
pthread_attr_getstacksize.c
pthread_attr_init.c
pthread_attr_setdetachstate.c
pthread_attr_setinheritsched.c
pthread_attr_setschedparam.c
pthread_attr_setschedpolicy.c
pthread_attr_setscope.c
pthread_attr_setstackaddr.c
pthread_attr_setstacksize.c
pthread_barrier_destroy.c
pthread_barrier_init.c
pthread_barrier_wait.c
pthread_barrierattr_destroy.c
pthread_barrierattr_getpshared.c
pthread_barrierattr_init.c
pthread_barrierattr_setpshared.c
pthread_cancel.c
pthread_cond_destroy.c
pthread_cond_init.c
pthread_cond_signal.c
pthread_cond_wait.c
pthread_condattr_destroy.c
pthread_condattr_getpshared.c
pthread_condattr_init.c
pthread_condattr_setpshared.c
pthread_delay_np.c
pthread_detach.c
pthread_equal.c
pthread_exit.c
pthread_getconcurrency.c
pthread_getschedparam.c
pthread_getspecific.c
pthread_getunique_np.c
pthread_getw32threadhandle_np.c
pthread_join.c
pthread_key_create.c
pthread_key_delete.c
pthread_kill.c
pthread_mutex_consistent.c
pthread_mutex_destroy.c
pthread_mutex_init.c
pthread_mutex_lock.c
pthread_mutex_timedlock.c
pthread_mutex_trylock.c
pthread_mutex_unlock.c
pthread_mutexattr_destroy.c
pthread_mutexattr_getkind_np.c
pthread_mutexattr_getpshared.c
pthread_mutexattr_getrobust.c
pthread_mutexattr_gettype.c
pthread_mutexattr_init.c
pthread_mutexattr_setkind_np.c
pthread_mutexattr_setpshared.c
pthread_mutexattr_setrobust.c
pthread_mutexattr_settype.c
pthread_num_processors_np.c
pthread_once.c
pthread_rwlock_destroy.c
pthread_rwlock_init.c
pthread_rwlock_rdlock.c
pthread_rwlock_tryrdlock.c
pthread_rwlock_trywrlock.c
pthread_rwlock_unlock.c
pthread_rwlock_wrlock.c
pthread_rwlockattr_destroy.c
pthread_rwlockattr_getpshared.c
pthread_rwlockattr_init.c
pthread_rwlockattr_setpshared.c
pthread_self.c
pthread_setcancelstate.c
pthread_setcanceltype.c
pthread_setconcurrency.c
pthread_setschedparam.c
pthread_setspecific.c
pthread_spin_destroy.c
pthread_spin_init.c
pthread_spin_lock.c
pthread_spin_trylock.c
pthread_spin_unlock.c
pthread_testcancel.c
pthread_timechange_handler_np.c
pthread_win32_attach_detach_np.c
ptw32_calloc.c
ptw32_callUserDestroyRoutines.c
ptw32_cond_check_need_init.c
ptw32_getprocessors.c
ptw32_is_attr.c
ptw32_MCS_lock.c
ptw32_mutex_check_need_init.c
ptw32_new.c
ptw32_processInitialize.c
ptw32_processTerminate.c
ptw32_relmillisecs.c
ptw32_reuse.c
ptw32_rwlock_check_need_init.c
ptw32_semwait.c
ptw32_spinlock_check_need_init.c
ptw32_threadDestroy.c
ptw32_threadStart.c
ptw32_throw.c
ptw32_timespec.c
ptw32_tkAssocCreate.c
ptw32_tkAssocDestroy.c
sched_get_priority_max.c
sched_get_priority_min.c
sched_getscheduler.c
sched_setscheduler.c
sched_yield.c
sem_close.c
sem_destroy.c
sem_getvalue.c
sem_init.c
sem_open.c
sem_post_multiple.c
sem_post.c
sem_timedwait.c
sem_trywait.c
sem_unlink.c
sem_wait.c
signal.c
w32_CancelableWait.c
)
option(PTW32_ARCH "x32")
add_definitions(-DPTW32_ARCH=${PTW32_ARCH} -DPTW32_RC_MSC -DHAVE_PTW32_CONFIG_H -D_TIMESPEC_DEFINED)
if(BUILD_SHARED_LIBS)
set(PTHREAD_SOURCES ${PTHREAD_SHARED_SOURCES})
add_definitions(-DPTW32_BUILD)
else()
set(PTHREAD_SOURCES ${PTHREAD_STATIC_SOURCES})
add_definitions(-DPTW32_STATIC_LIB)
endif()
if(PTHREADS_BUILD_CPP)
set(PTHREADS_EXCEPTION_SCHEME CE)
add_definitions(/__CLEANUP_CXX)
elseif(PTHREADS_BUILD_SEH)
set(PTHREADS_EXCEPTION_SCHEME SE)
add_definitions(/__CLEANUP_SEH)
else()
set(PTHREADS_EXCEPTION_SCHEME C)
endif()
set(PTHREADS_COMPATIBILITY_VERSION 2)
set(CMAKE_DEBUG_POSTFIX d)
set(PTHREADS_COMPILER V)
set(PTHREADS_LIBRARY "pthreads${PTHREADS_COMPILER}${PTHREADS_EXCEPTION_SCHEME}${PTHREADS_COMPATIBILITY_VERSION}")
include_directories(.)
add_library(${PTHREADS_LIBRARY} ${PTHREAD_SOURCES})
install(
TARGETS ${PTHREADS_LIBRARY}
RUNTIME DESTINATION bin
LIBRARY DESTINATION lib
ARCHIVE DESTINATION lib
)
if(NOT DISABLE_INSTALL_HEADERS)
install(FILES ${PTHREAD_PUBLIC_HEADERS} DESTINATION include)
endif()