forked from OGRECave/ogre
-
Notifications
You must be signed in to change notification settings - Fork 0
/
PrepareThreadingOptions.cmake
57 lines (53 loc) · 2.16 KB
/
PrepareThreadingOptions.cmake
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
#-------------------------------------------------------------------
# This file is part of the CMake build system for OGRE
# (Object-oriented Graphics Rendering Engine)
# For the latest info, see http://www.ogre3d.org/
#
# The contents of this file are placed in the public domain. Feel
# free to make use of it in any way you like.
#-------------------------------------------------------------------
#######################################################################
# This file determines which threading options are available for the
# build, depending on the dependencies found.
#######################################################################
# sanitise threading choices
if (NOT OGRE_CONFIG_THREADS)
set(OGRE_CONFIG_THREAD_PROVIDER "none")
else ()
if (OGRE_CONFIG_THREAD_PROVIDER STREQUAL "boost")
if (WIN32 OR APPLE)
# Prefer static linking in all cases
set(Boost_USE_STATIC_LIBS TRUE)
else ()
# Statically linking boost to a dynamic Ogre build doesn't work on Linux 64bit
set(Boost_USE_STATIC_LIBS ${OGRE_STATIC})
endif ()
if (APPLE AND APPLE_IOS)
set(Boost_USE_MULTITHREADED OFF)
endif()
if(ANDROID)
# FindBoost needs extra hint on android
set(Boost_COMPILER -gcc)
endif()
find_package(Boost COMPONENTS thread QUIET)
if (NOT Boost_THREAD_FOUND)
message(WARNING "boost-thread is not available. Using ${OGRE_THREAD_DEFAULT_PROVIDER} as thread provider.")
set(OGRE_CONFIG_THREAD_PROVIDER ${OGRE_THREAD_DEFAULT_PROVIDER})
endif ()
elseif (OGRE_CONFIG_THREAD_PROVIDER STREQUAL "poco")
find_package(POCO)
if (NOT POCO_FOUND)
message(WARNING "poco is not available. Using ${OGRE_THREAD_DEFAULT_PROVIDER} as thread provider.")
set(OGRE_CONFIG_THREAD_PROVIDER ${OGRE_THREAD_DEFAULT_PROVIDER})
endif ()
elseif (OGRE_CONFIG_THREAD_PROVIDER STREQUAL "tbb")
find_package(TBB)
if (NOT TBB_FOUND)
message(WARNING "tbb is not available. Using ${OGRE_THREAD_DEFAULT_PROVIDER} as thread provider.")
set(OGRE_CONFIG_THREAD_PROVIDER ${OGRE_THREAD_DEFAULT_PROVIDER})
endif ()
elseif (OGRE_CONFIG_THREAD_PROVIDER STREQUAL "std")
else ()
message(WARNING "Unknown thread provider chosen. Defaulting to std.")
endif ()
endif ()