blob: 5663340e2f14d05b34def243544ba9e13db31cc5 [file] [log] [blame]
Jonathan Peyton2e013352015-07-15 16:05:30 +00001#
2#//===----------------------------------------------------------------------===//
3#//
4#// The LLVM Compiler Infrastructure
5#//
6#// This file is dual licensed under the MIT and the University of Illinois Open
7#// Source Licenses. See LICENSE.txt for details.
8#//
9#//===----------------------------------------------------------------------===//
10#
11
12function(libomp_get_definitions_flags cppflags)
13 set(cppflags_local)
14 libomp_append(cppflags_local "-D USE_ITT_BUILD")
15 # yes... you need 5 backslashes...
16 libomp_append(cppflags_local "-D KMP_ARCH_STR=\"\\\\\"${LIBOMP_LEGAL_ARCH}\\\\\"\"")
17 libomp_append(cppflags_local "-D BUILD_I8")
18 libomp_append(cppflags_local "-D KMP_LIBRARY_FILE=\\\\\"${LIBOMP_LIB_FILE}\\\\\"")
19 libomp_append(cppflags_local "-D KMP_VERSION_MAJOR=${LIBOMP_VERSION}")
20 libomp_append(cppflags_local "-D KMP_NESTED_HOT_TEAMS")
21
22 # customize to 128 bytes for ppc64
23 if(${PPC64})
24 libomp_append(cppflags_local "-D CACHE_LINE=128")
25 else()
26 libomp_append(cppflags_local "-D CACHE_LINE=64")
27 endif()
28
29 libomp_append(cppflags_local "-D KMP_ADJUST_BLOCKTIME=1")
30 libomp_append(cppflags_local "-D BUILD_PARALLEL_ORDERED")
31 libomp_append(cppflags_local "-D KMP_ASM_INTRINS")
32 libomp_append(cppflags_local "-D USE_ITT_NOTIFY" IF_TRUE_1_0 LIBOMP_USE_ITT_NOTIFY)
33 libomp_append(cppflags_local "-D INTEL_NO_ITTNOTIFY_API" IF_FALSE LIBOMP_USE_ITT_NOTIFY)
34 libomp_append(cppflags_local "-D INTEL_ITTNOTIFY_PREFIX=__kmp_itt_")
35 libomp_append(cppflags_local "-D KMP_USE_VERSION_SYMBOLS" IF_TRUE LIBOMP_USE_VERSION_SYMBOLS)
36
37 if(WIN32)
38 libomp_append(cppflags_local "-D _CRT_SECURE_NO_WARNINGS")
39 libomp_append(cppflags_local "-D _CRT_SECURE_NO_DEPRECATE")
40 libomp_append(cppflags_local "-D _WINDOWS")
41 libomp_append(cppflags_local "-D _WINNT")
42 libomp_append(cppflags_local "-D _WIN32_WINNT=0x0501")
43 libomp_append(cppflags_local "-D KMP_WIN_CDECL")
44 libomp_append(cppflags_local "-D _USRDLL")
45 libomp_append(cppflags_local "-D _ITERATOR_DEBUG_LEVEL=0" IF_TRUE DEBUG_BUILD)
46 else()
47 libomp_append(cppflags_local "-D _GNU_SOURCE")
48 libomp_append(cppflags_local "-D _REENTRANT")
49 libomp_append(cppflags_local "-D BUILD_TV")
50 libomp_append(cppflags_local "-D USE_CBLKDATA")
51 libomp_append(cppflags_local "-D KMP_GOMP_COMPAT")
52 endif()
53
54 libomp_append(cppflags_local "-D USE_LOAD_BALANCE" IF_FALSE MIC)
55 if(NOT WIN32 AND NOT APPLE)
56 libomp_append(cppflags_local "-D KMP_TDATA_GTID")
57 endif()
58 libomp_append(cppflags_local "-D KMP_USE_ASSERT" IF_TRUE LIBOMP_ENABLE_ASSERTIONS)
59 libomp_append(cppflags_local "-D KMP_DYNAMIC_LIB")
60 libomp_append(cppflags_local "-D KMP_STUB" IF_TRUE STUBS_LIBRARY)
61
62 if(${DEBUG_BUILD} OR ${RELWITHDEBINFO_BUILD})
63 libomp_append(cppflags_local "-D KMP_DEBUG")
64 endif()
65 libomp_append(cppflags_local "-D _DEBUG" IF_TRUE DEBUG_BUILD)
66 libomp_append(cppflags_local "-D BUILD_DEBUG" IF_TRUE DEBUG_BUILD)
67 libomp_append(cppflags_local "-D KMP_STATS_ENABLED" IF_TRUE_1_0 LIBOMP_STATS)
68 libomp_append(cppflags_local "-D USE_DEBUGGER" IF_TRUE_1_0 LIBOMP_USE_DEBUGGER)
69 libomp_append(cppflags_local "-D OMPT_SUPPORT" IF_TRUE_1_0 LIBOMP_OMPT_SUPPORT)
70 libomp_append(cppflags_local "-D OMPT_BLAME" IF_TRUE_1_0 LIBOMP_OMPT_BLAME)
71 libomp_append(cppflags_local "-D OMPT_TRACE" IF_TRUE_1_0 LIBOMP_OMPT_TRACE)
72
73 # OpenMP version flags
74 set(libomp_have_omp_50 0)
75 set(libomp_have_omp_41 0)
76 set(libomp_have_omp_40 0)
77 set(libomp_have_omp_30 0)
78 if(${LIBOMP_OMP_VERSION} EQUAL 50 OR ${LIBOMP_OMP_VERSION} GREATER 50)
79 set(libomp_have_omp_50 1)
80 endif()
81 if(${LIBOMP_OMP_VERSION} EQUAL 41 OR ${LIBOMP_OMP_VERSION} GREATER 41)
82 set(libomp_have_omp_41 1)
83 endif()
84 if(${LIBOMP_OMP_VERSION} EQUAL 40 OR ${LIBOMP_OMP_VERSION} GREATER 40)
85 set(libomp_have_omp_40 1)
86 endif()
87 if(${LIBOMP_OMP_VERSION} EQUAL 30 OR ${LIBOMP_OMP_VERSION} GREATER 30)
88 set(libomp_have_omp_30 1)
89 endif()
90 libomp_append(cppflags_local "-D OMP_50_ENABLED=${libomp_have_omp_50}")
91 libomp_append(cppflags_local "-D OMP_41_ENABLED=${libomp_have_omp_41}")
92 libomp_append(cppflags_local "-D OMP_40_ENABLED=${libomp_have_omp_40}")
93 libomp_append(cppflags_local "-D OMP_30_ENABLED=${libomp_have_omp_30}")
94 libomp_append(cppflags_local "-D KMP_USE_ADAPTIVE_LOCKS" IF_TRUE_1_0 LIBOMP_USE_ADAPTIVE_LOCKS)
95 libomp_append(cppflags_local "-D KMP_DEBUG_ADAPTIVE_LOCKS=0")
96 libomp_append(cppflags_local "-D KMP_USE_INTERNODE_ALIGNMENT" IF_TRUE_1_0 LIBOMP_USE_INTERNODE_ALIGNMENT)
97 # CMake doesn't include CPPFLAGS from environment, but we will.
98 set(${cppflags} ${cppflags_local} ${LIBOMP_CPPFLAGS} $ENV{CPPFLAGS} PARENT_SCOPE)
99endfunction()
100