forked from OSchip/llvm-project
145 lines
4.9 KiB
CMake
145 lines
4.9 KiB
CMake
#
|
|
#//===----------------------------------------------------------------------===//
|
|
#//
|
|
#// 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.
|
|
#//
|
|
#//===----------------------------------------------------------------------===//
|
|
#
|
|
|
|
# void append_definitions(string new_flag);
|
|
# - appends new_flag to cpp_flags list
|
|
macro(append_definitions new_flag)
|
|
list(APPEND local_cpp_flags "${new_flag}")
|
|
endmacro()
|
|
|
|
function(append_cpp_flags input_cpp_flags)
|
|
set(local_cpp_flags)
|
|
|
|
append_definitions("-D USE_ITT_BUILD")
|
|
append_definitions("-D KMP_ARCH_STR=\"\\\\\"${legal_arch}\\\\\"\"")
|
|
append_definitions("-D BUILD_I8")
|
|
append_definitions("-D KMP_LIBRARY_FILE=\\\\\"${lib_file}\\\\\"") # yes... you need 5 backslashes...
|
|
append_definitions("-D KMP_VERSION_MAJOR=${version}")
|
|
|
|
# customize to 128 bytes for ppc64
|
|
if(${PPC64})
|
|
append_definitions("-D CACHE_LINE=128")
|
|
else()
|
|
append_definitions("-D CACHE_LINE=64")
|
|
endif()
|
|
|
|
append_definitions("-D KMP_ADJUST_BLOCKTIME=1")
|
|
append_definitions("-D BUILD_PARALLEL_ORDERED")
|
|
append_definitions("-D KMP_ASM_INTRINS")
|
|
if(${USE_ITT_NOTIFY})
|
|
append_definitions("-D USE_ITT_NOTIFY=1")
|
|
else()
|
|
append_definitions("-D USE_ITT_NOTIFY=0")
|
|
append_definitions("-D INTEL_NO_ITTNOTIFY_API")
|
|
endif()
|
|
append_definitions("-D INTEL_ITTNOTIFY_PREFIX=__kmp_itt_")
|
|
|
|
if(${USE_VERSION_SYMBOLS})
|
|
append_definitions("-D KMP_USE_VERSION_SYMBOLS")
|
|
endif()
|
|
|
|
#####################
|
|
# Windows definitions
|
|
if(${WINDOWS})
|
|
append_definitions("-D _CRT_SECURE_NO_WARNINGS")
|
|
append_definitions("-D _CRT_SECURE_NO_DEPRECATE")
|
|
append_definitions("-D _WINDOWS")
|
|
append_definitions("-D _WINNT")
|
|
append_definitions("-D _WIN32_WINNT=0x0501")
|
|
append_definitions("-D KMP_WIN_CDECL")
|
|
append_definitions("-D _USRDLL")
|
|
if(${DEBUG_BUILD})
|
|
append_definitions("-D _ITERATOR_DEBUG_LEVEL=0")
|
|
endif()
|
|
else() # Other than windows... (Unix based systems, Intel(R) Many Integrated Core Architecture (Intel(R) MIC Architecture), and Mac)
|
|
append_definitions("-D _GNU_SOURCE")
|
|
append_definitions("-D _REENTRANT")
|
|
append_definitions("-D BUILD_TV")
|
|
append_definitions("-D USE_CBLKDATA")
|
|
if(NOT "${version}" STREQUAL "4")
|
|
append_definitions("-D KMP_GOMP_COMPAT")
|
|
endif()
|
|
endif()
|
|
|
|
# Any architecture other than Intel(R) MIC Architecture
|
|
if(NOT ${MIC})
|
|
append_definitions("-D USE_LOAD_BALANCE")
|
|
endif()
|
|
|
|
##################
|
|
# Unix definitions
|
|
if(${LINUX})
|
|
append_definitions("-D KMP_TDATA_GTID")
|
|
endif()
|
|
|
|
##################################
|
|
# Other conditional definitions
|
|
append_definitions("-D KMP_USE_ASSERT")
|
|
append_definitions("-D GUIDEDLL_EXPORTS")
|
|
if(${STUBS_LIBRARY})
|
|
append_definitions("-D KMP_STUB")
|
|
endif()
|
|
if(${DEBUG_BUILD} OR ${RELWITHDEBINFO_BUILD})
|
|
append_definitions("-D KMP_DEBUG")
|
|
endif()
|
|
if(${DEBUG_BUILD})
|
|
append_definitions("-D _DEBUG")
|
|
append_definitions("-D BUILD_DEBUG")
|
|
endif()
|
|
if(${STATS_GATHERING})
|
|
append_definitions("-D KMP_STATS_ENABLED=1")
|
|
else()
|
|
append_definitions("-D KMP_STATS_ENABLED=0")
|
|
endif()
|
|
|
|
# OpenMP version flags
|
|
set(have_omp_50 0)
|
|
set(have_omp_41 0)
|
|
set(have_omp_40 0)
|
|
set(have_omp_30 0)
|
|
if(${omp_version} EQUAL 50 OR ${omp_version} GREATER 50)
|
|
set(have_omp_50 1)
|
|
endif()
|
|
if(${omp_version} EQUAL 41 OR ${omp_version} GREATER 41)
|
|
set(have_omp_41 1)
|
|
endif()
|
|
if(${omp_version} EQUAL 40 OR ${omp_version} GREATER 40)
|
|
set(have_omp_40 1)
|
|
endif()
|
|
if(${omp_version} EQUAL 30 OR ${omp_version} GREATER 30)
|
|
set(have_omp_30 1)
|
|
endif()
|
|
append_definitions("-D OMP_50_ENABLED=${have_omp_50}")
|
|
append_definitions("-D OMP_41_ENABLED=${have_omp_41}")
|
|
append_definitions("-D OMP_40_ENABLED=${have_omp_40}")
|
|
append_definitions("-D OMP_30_ENABLED=${have_omp_30}")
|
|
|
|
# Architectural definitions
|
|
if(${INTEL64} OR ${IA32})
|
|
if(${USE_ADAPTIVE_LOCKS})
|
|
append_definitions("-D KMP_USE_ADAPTIVE_LOCKS=1")
|
|
else()
|
|
append_definitions("-D KMP_USE_ADAPTIVE_LOCKS=0")
|
|
endif()
|
|
append_definitions("-D KMP_DEBUG_ADAPTIVE_LOCKS=0")
|
|
else()
|
|
append_definitions("-D KMP_USE_ADAPTIVE_LOCKS=0")
|
|
append_definitions("-D KMP_DEBUG_ADAPTIVE_LOCKS=0")
|
|
endif()
|
|
if(${USE_INTERNODE_ALIGNMENT})
|
|
append_definitions("-D KMP_USE_INTERNODE_ALIGNMENT=1")
|
|
else()
|
|
append_definitions("-D KMP_USE_INTERNODE_ALIGNMENT=0")
|
|
endif()
|
|
set(${input_cpp_flags} "${${input_cpp_flags}}" "${local_cpp_flags}" "${USER_CPP_FLAGS}" "$ENV{CPPFLAGS}" PARENT_SCOPE)
|
|
endfunction()
|
|
|