1 # ---------------------------------------------------------------------------
3 # Copyright (C) Stephanie Gawroriski <xer@multiphasicapps.net>
4 # ---------------------------------------------------------------------------
5 # SquirrelJME is under the Mozilla Public License Version 2.0.
6 # See license.mkd for licensing and copyright information.
7 # ---------------------------------------------------------------------------
8 # DESCRIPTION: Threading and atomics support
10 # For compatibility for Windows, do not use pthreads even if available
13 add_compile_definitions(SJME_CONFIG_HAS_THREADS=1)
14 add_compile_definitions(SJME_CONFIG_HAS_THREADS_WIN32=1)
16 if(CMAKE_USE_PTHREADS_INIT)
17 # Does pthread actually exist?
18 try_compile(SQUIRRELJME_PTHREADS_VALID
19 "${CMAKE_CURRENT_BINARY_DIR}"
20 SOURCES "${CMAKE_CURRENT_LIST_DIR}/tryPThread.c"
21 LINK_LIBRARIES ${CMAKE_THREAD_LIBS_INIT})
24 if(SQUIRRELJME_PTHREADS_VALID)
25 message("PThread: Valid!")
27 add_compile_definitions(
28 SJME_CONFIG_HAS_THREADS=1)
29 add_compile_definitions(
30 SJME_CONFIG_HAS_THREADS_PTHREAD=1)
34 add_compile_definitions(
35 SJME_CONFIG_HAS_THREADS_PTHREAD_LINUX=1)
38 add_compile_definitions(
39 SJME_CONFIG_HAS_THREADS_PTHREAD_MACOS=1)
42 add_compile_definitions(
43 SJME_CONFIG_HAS_THREADS_PTHREAD_BSD=1)
46 message("PThread: Not available or misconfigured.")