# dethread cmake file if (NOT DE_DEFS) message(FATAL_ERROR "Include Defs.cmake") endif () set(DETHREAD_SRCS deAtomic.c deAtomic.h deMutex.h deSemaphore.h deSingleton.c deSingleton.h deThread.h deThreadLocal.h deThreadTest.c deThreadTest.h ) set(DETHREAD_LIBS debase depool ) include_directories( ../debase ../depool ${CMAKE_CURRENT_SOURCE_DIR} ) if (DE_OS_IS_WIN32 OR DE_OS_IS_WINCE) set(DETHREAD_SRCS ${DETHREAD_SRCS} win32/deMutexWin32.c win32/deSemaphoreWin32.c win32/deThreadWin32.c win32/deThreadLocalWin32.c ) elseif (DE_OS_IS_UNIX OR DE_OS_IS_ANDROID) if (DE_OS_IS_UNIX) add_definitions(-D_GNU_SOURCE) set(DETHREAD_LIBS ${DETHREAD_LIBS} pthread) else () add_definitions(-D_XOPEN_SOURCE=600) endif () set(DETHREAD_SRCS ${DETHREAD_SRCS} unix/deMutexUnix.c unix/deSemaphoreUnix.c unix/deThreadUnix.c unix/deThreadLocalUnix.c ) elseif (DE_OS_IS_OSX OR DE_OS_IS_IOS) add_definitions(-D_XOPEN_SOURCE=600) # \note OS X doesn't support unnamed semaphores. set(DETHREAD_SRCS ${DETHREAD_SRCS} unix/deMutexUnix.c unix/deNamedSemaphoreUnix.c unix/deThreadUnix.c unix/deThreadLocalUnix.c ) else () message(FATAL_ERROR "Unsupported os for dethread") endif () add_library(dethread STATIC ${DETHREAD_SRCS}) target_link_libraries(dethread ${DETHREAD_LIBS}) set(DETHREAD_STANDALONE_TEST ON CACHE STRING "Build standalone binary for testing dethread.") if (DETHREAD_STANDALONE_TEST AND (DE_OS_IS_WIN32 OR DE_OS_IS_UNIX OR DE_OS_IS_OSX)) add_executable(dethread_test standalone_test.c) target_link_libraries(dethread_test dethread debase) endif ()