-
Notifications
You must be signed in to change notification settings - Fork 460
/
External_tbb.cmake
122 lines (103 loc) · 3.92 KB
/
External_tbb.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
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
set(proj tbb)
if(Slicer_USE_SYSTEM_${proj})
message(FATAL_ERROR "Enabling Slicer_USE_SYSTEM_${proj} is not supported!")
endif()
set(tbb_ver "2018_20171205oss")
if (WIN32)
set(tbb_file "tbb${tbb_ver}_win.zip")
set(tbb_md5 "e37abf02d74a638f7a6629c992f23918")
elseif (APPLE)
set(tbb_file "tbb${tbb_ver}_mac.tgz")
set(tbb_md5 "ff7a02f58fee4e2e637db6da19a21806")
else ()
set(tbb_file "tbb${tbb_ver}_lin.tgz")
set(tbb_md5 "d637d29f59ee31fe5830a0366e2e973a")
endif ()
#------------------------------------------------------------------------------
set(TBB_INSTALL_DIR "${CMAKE_BINARY_DIR}/${proj}-install")
ExternalProject_Message(${proj} "TBB_INSTALL_DIR:${TBB_INSTALL_DIR}")
ExternalProject_Add(${proj}
${${proj}_EP_ARGS}
URL https://github.com/Slicer/SlicerBinaryDependencies/releases/download/tbb/${tbb_file}
URL_MD5 ${tbb_md5}
DOWNLOAD_DIR ${CMAKE_BINARY_DIR}
SOURCE_DIR ${TBB_INSTALL_DIR}
BUILD_IN_SOURCE 1
CONFIGURE_COMMAND ""
BUILD_COMMAND ""
INSTALL_COMMAND ""
)
if(CMAKE_SIZEOF_VOID_P EQUAL 8) # 64-bit
set(tbb_archdir intel64)
else()
set(tbb_archdir ia32)
endif()
if (WIN32)
if (NOT MSVC_VERSION VERSION_GREATER 1500)
message(FATAL_ERROR "At least Visual Studio 10.0 is required")
elseif (NOT MSVC_VERSION VERSION_GREATER 1600)
set(tbb_vsdir vc10)
elseif (NOT MSVC_VERSION VERSION_GREATER 1700)
set(tbb_vsdir vc11)
elseif (NOT MSVC_VERSION VERSION_GREATER 1800)
set(tbb_vsdir vc12)
elseif (NOT MSVC_VERSION VERSION_GREATER 1900)
set(tbb_vsdir vc14)
elseif (tbb_enabled)
message(FATAL_ERROR "TBB does not support your Visual Studio compiler.")
endif ()
set(tbb_libdir lib/${tbb_archdir}/${tbb_vsdir})
set(tbb_bindir bin/${tbb_archdir}/${tbb_vsdir})
elseif (APPLE)
set(tbb_libdir "lib")
set(tbb_bindir "bin")
else ()
set(tbb_libdir "lib/${tbb_archdir}/gcc4.4")
set(tbb_bindir "bin")
set(tbb_libsuffix "${CMAKE_SHARED_LIBRARY_SUFFIX}")
endif ()
if (NOT WIN32)
set(tbb_lib_prefix "lib")
else ()
set(tbb_lib_prefix "")
endif ()
if (NOT tbb_libsuffix)
set(tbb_libsuffix ${CMAKE_SHARED_LIBRARY_SUFFIX})
if (WIN32)
set(tbb_libsuffix ${CMAKE_IMPORT_LIBRARY_SUFFIX})
endif ()
endif ()
# TODO: apply this patch
# if (UNIX AND NOT APPLE)
# superbuild_apply_patch(tbb gcc5x-warning-fix
# "Tell TBB about GCC 5.1 stdlib support")
# endif()
#------------------------------------------------------------------------------
set(TBB_INCLUDE_DIR "${TBB_INSTALL_DIR}/include")
set(TBB_LIBRARY_DEBUG "${TBB_INSTALL_DIR}/${tbb_libdir}/${tbb_lib_prefix}tbb_debug${tbb_libsuffix}")
set(TBB_LIBRARY_RELEASE "${TBB_INSTALL_DIR}/${tbb_libdir}/${tbb_lib_prefix}tbb${tbb_libsuffix}")
set(TBB_MALLOC_INCLUDE_DIR "${TBB_INSTALL_DIR}/include/tbb")
set(TBB_MALLOC_LIBRARY_DEBUG "${TBB_INSTALL_DIR}/${tbb_libdir}/${tbb_lib_prefix}tbbmalloc_debug${tbb_libsuffix}")
set(TBB_MALLOC_LIBRARY_RELEASE "${TBB_INSTALL_DIR}/${tbb_libdir}/${tbb_lib_prefix}tbbmalloc${tbb_libsuffix}")
set(TBB_MALLOC_PROXY_INCLUDE_DIR "${TBB_INSTALL_DIR}/include/tbb")
set(TBB_MALLOC_PROXY_LIBRARY_DEBUG "${TBB_INSTALL_DIR}/${tbb_libdir}/${tbb_lib_prefix}tbbmalloc_proxy_debug${tbb_libsuffix}")
set(TBB_MALLOC_PROXY_LIBRARY_RELEASE "${TBB_INSTALL_DIR}/${tbb_libdir}/${tbb_lib_prefix}tbbmalloc_proxy${tbb_libsuffix}")
set(TBB_BIN_DIR "${TBB_INSTALL_DIR}/${tbb_bindir}")
set(TBB_LIB_DIR "${TBB_INSTALL_DIR}/${tbb_libdir}")
mark_as_superbuild(
VARS
TBB_BIN_DIR:PATH
TBB_LIB_DIR:PATH
)
#-----------------------------------------------------------------------------
ExternalProject_GenerateProjectDescription_Step(${proj}
VERSION ${tbb_ver}
LICENSE_FILES "https://raw.githubusercontent.com/01org/tbb/tbb_2018/LICENSE"
)
#-----------------------------------------------------------------------------
# Launcher setting specific to build tree
set(${proj}_LIBRARY_PATHS_LAUNCHER_BUILD "${TBB_INSTALL_DIR}/${tbb_bindir}")
mark_as_superbuild(
VARS ${proj}_LIBRARY_PATHS_LAUNCHER_BUILD
LABELS "LIBRARY_PATHS_LAUNCHER_BUILD"
)