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_TRY_VALID
19 "${CMAKE_CURRENT_BINARY_DIR}"
20 SOURCES "${CMAKE_CURRENT_LIST_DIR}/tryPThread.c"
21 CMAKE_FLAGS "-DCMAKE_TRY_COMPILE_TARGET_TYPE=EXECUTABLE"
22 LINK_LIBRARIES ${CMAKE_THREAD_LIBS_INIT}
23 OUTPUT_VARIABLE SQUIRRELJME_PTHREADS_TRY_OUTPUT)
24 message("PThread: ${SQUIRRELJME_PTHREADS_TRY_OUTPUT}")
27 if(SQUIRRELJME_PTHREADS_TRY_VALID)
28 message("PThread: Valid!")
30 add_compile_definitions(
31 SJME_CONFIG_HAS_THREADS=1)
32 add_compile_definitions(
33 SJME_CONFIG_HAS_THREADS_PTHREAD=1)
37 add_compile_definitions(
38 SJME_CONFIG_HAS_THREADS_PTHREAD_LINUX=1)
41 add_compile_definitions(
42 SJME_CONFIG_HAS_THREADS_PTHREAD_MACOS=1)
45 add_compile_definitions(
46 SJME_CONFIG_HAS_THREADS_PTHREAD_BSD=1)
49 message("PThread: Not available or misconfigured.")