# #//===----------------------------------------------------------------------===// #// #// The LLVM Compiler Infrastructure #// #// This file is dual licensed under the MIT and the University of Illinois Open #// Source Licenses. See LICENSE.txt for details. #// #//===----------------------------------------------------------------------===// # function(libomp_get_definitions_flags cppflags) set(cppflags_local) libomp_append(cppflags_local "-D USE_ITT_BUILD") # yes... you need 5 backslashes... libomp_append(cppflags_local "-D KMP_ARCH_STR=\"\\\\\"${LIBOMP_LEGAL_ARCH}\\\\\"\"") libomp_append(cppflags_local "-D BUILD_I8") libomp_append(cppflags_local "-D KMP_LIBRARY_FILE=\\\\\"${LIBOMP_LIB_FILE}\\\\\"") libomp_append(cppflags_local "-D KMP_VERSION_MAJOR=${LIBOMP_VERSION}") libomp_append(cppflags_local "-D KMP_NESTED_HOT_TEAMS") # customize to 128 bytes for ppc64 if(${PPC64}) libomp_append(cppflags_local "-D CACHE_LINE=128") else() libomp_append(cppflags_local "-D CACHE_LINE=64") endif() libomp_append(cppflags_local "-D KMP_ADJUST_BLOCKTIME=1") libomp_append(cppflags_local "-D BUILD_PARALLEL_ORDERED") libomp_append(cppflags_local "-D KMP_ASM_INTRINS") libomp_append(cppflags_local "-D USE_ITT_NOTIFY" IF_TRUE_1_0 LIBOMP_USE_ITT_NOTIFY) libomp_append(cppflags_local "-D INTEL_NO_ITTNOTIFY_API" IF_FALSE LIBOMP_USE_ITT_NOTIFY) libomp_append(cppflags_local "-D INTEL_ITTNOTIFY_PREFIX=__kmp_itt_") libomp_append(cppflags_local "-D KMP_USE_VERSION_SYMBOLS" IF_TRUE LIBOMP_USE_VERSION_SYMBOLS) if(WIN32) libomp_append(cppflags_local "-D _CRT_SECURE_NO_WARNINGS") libomp_append(cppflags_local "-D _CRT_SECURE_NO_DEPRECATE") libomp_append(cppflags_local "-D _WINDOWS") libomp_append(cppflags_local "-D _WINNT") libomp_append(cppflags_local "-D _WIN32_WINNT=0x0501") libomp_append(cppflags_local "-D KMP_WIN_CDECL") libomp_append(cppflags_local "-D _USRDLL") libomp_append(cppflags_local "-D _ITERATOR_DEBUG_LEVEL=0" IF_TRUE DEBUG_BUILD) else() libomp_append(cppflags_local "-D _GNU_SOURCE") libomp_append(cppflags_local "-D _REENTRANT") libomp_append(cppflags_local "-D BUILD_TV") libomp_append(cppflags_local "-D USE_CBLKDATA") libomp_append(cppflags_local "-D KMP_GOMP_COMPAT") endif() libomp_append(cppflags_local "-D USE_LOAD_BALANCE" IF_FALSE MIC) if(NOT WIN32 AND NOT APPLE) libomp_append(cppflags_local "-D KMP_TDATA_GTID") endif() libomp_append(cppflags_local "-D KMP_USE_ASSERT" IF_TRUE LIBOMP_ENABLE_ASSERTIONS) libomp_append(cppflags_local "-D KMP_DYNAMIC_LIB") libomp_append(cppflags_local "-D KMP_STUB" IF_TRUE STUBS_LIBRARY) if(${DEBUG_BUILD} OR ${RELWITHDEBINFO_BUILD}) libomp_append(cppflags_local "-D KMP_DEBUG") endif() libomp_append(cppflags_local "-D _DEBUG" IF_TRUE DEBUG_BUILD) libomp_append(cppflags_local "-D BUILD_DEBUG" IF_TRUE DEBUG_BUILD) libomp_append(cppflags_local "-D KMP_STATS_ENABLED" IF_TRUE_1_0 LIBOMP_STATS) libomp_append(cppflags_local "-D USE_DEBUGGER" IF_TRUE_1_0 LIBOMP_USE_DEBUGGER) libomp_append(cppflags_local "-D OMPT_SUPPORT" IF_TRUE_1_0 LIBOMP_OMPT_SUPPORT) libomp_append(cppflags_local "-D OMPT_BLAME" IF_TRUE_1_0 LIBOMP_OMPT_BLAME) libomp_append(cppflags_local "-D OMPT_TRACE" IF_TRUE_1_0 LIBOMP_OMPT_TRACE) # OpenMP version flags set(libomp_have_omp_50 0) set(libomp_have_omp_41 0) set(libomp_have_omp_40 0) set(libomp_have_omp_30 0) if(${LIBOMP_OMP_VERSION} EQUAL 50 OR ${LIBOMP_OMP_VERSION} GREATER 50) set(libomp_have_omp_50 1) endif() if(${LIBOMP_OMP_VERSION} EQUAL 41 OR ${LIBOMP_OMP_VERSION} GREATER 41) set(libomp_have_omp_41 1) endif() if(${LIBOMP_OMP_VERSION} EQUAL 40 OR ${LIBOMP_OMP_VERSION} GREATER 40) set(libomp_have_omp_40 1) endif() if(${LIBOMP_OMP_VERSION} EQUAL 30 OR ${LIBOMP_OMP_VERSION} GREATER 30) set(libomp_have_omp_30 1) endif() libomp_append(cppflags_local "-D OMP_50_ENABLED=${libomp_have_omp_50}") libomp_append(cppflags_local "-D OMP_41_ENABLED=${libomp_have_omp_41}") libomp_append(cppflags_local "-D OMP_40_ENABLED=${libomp_have_omp_40}") libomp_append(cppflags_local "-D OMP_30_ENABLED=${libomp_have_omp_30}") libomp_append(cppflags_local "-D KMP_USE_ADAPTIVE_LOCKS" IF_TRUE_1_0 LIBOMP_USE_ADAPTIVE_LOCKS) libomp_append(cppflags_local "-D KMP_DEBUG_ADAPTIVE_LOCKS=0") libomp_append(cppflags_local "-D KMP_USE_INTERNODE_ALIGNMENT" IF_TRUE_1_0 LIBOMP_USE_INTERNODE_ALIGNMENT) # CMake doesn't include CPPFLAGS from environment, but we will. set(${cppflags} ${cppflags_local} ${LIBOMP_CPPFLAGS} $ENV{CPPFLAGS} PARENT_SCOPE) endfunction()