# #//===----------------------------------------------------------------------===// #// #// 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() ####################################### # Intel(R) MIC Architecture definitions if(${MIC}) append_definitions("-D KMP_TDATA_GTID") else() # Other than Intel(R) MIC Architecture... 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()