[clang][driver] Handle '-mrelax' and '-mno-relax' for AVR
[llvm-project.git] / openmp / runtime / CMakeLists.txt
blob43299ddbad8452352c05fc997f82654c558a853c
2 #//===----------------------------------------------------------------------===//
3 #//
4 #// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
5 #// See https://llvm.org/LICENSE.txt for license information.
6 #// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
7 #//
8 #//===----------------------------------------------------------------------===//
11 if("${CMAKE_SOURCE_DIR}" STREQUAL "${CMAKE_CURRENT_SOURCE_DIR}")
12   message(FATAL_ERROR "Direct configuration not supported, please use parent directory!")
13 endif()
15 # Add cmake directory to search for custom cmake functions
16 set(CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/cmake ${CMAKE_MODULE_PATH})
18 # Set libomp version
19 set(LIBOMP_VERSION_MAJOR 5)
20 set(LIBOMP_VERSION_MINOR 0)
22 # These include files are in the cmake/ subdirectory
23 include(LibompUtils)
24 include(LibompGetArchitecture)
25 include(LibompHandleFlags)
26 include(LibompDefinitions)
28 # Determine the target architecture
29 if(${OPENMP_STANDALONE_BUILD})
30   # If adding a new architecture, take a look at cmake/LibompGetArchitecture.cmake
31   libomp_get_architecture(LIBOMP_DETECTED_ARCH)
32   set(LIBOMP_ARCH ${LIBOMP_DETECTED_ARCH} CACHE STRING
33     "The architecture to build for (x86_64/i386/arm/ppc64/ppc64le/aarch64/mic/mips/mips64/riscv64/loongarch64).")
34   # Should assertions be enabled?  They are on by default.
35   set(LIBOMP_ENABLE_ASSERTIONS TRUE CACHE BOOL
36     "enable assertions?")
37   string(TOUPPER "${CMAKE_BUILD_TYPE}" uppercase_CMAKE_BUILD_TYPE)
38 else() # Part of LLVM build
39   # Determine the native architecture from LLVM.
40   string(TOLOWER "${LLVM_TARGET_ARCH}" LIBOMP_NATIVE_ARCH)
41   if( LIBOMP_NATIVE_ARCH STREQUAL "host" )
42     string(REGEX MATCH "^[^-]*" LIBOMP_NATIVE_ARCH ${LLVM_HOST_TRIPLE})
43   endif ()
44   if(LIBOMP_NATIVE_ARCH MATCHES "i[2-6]86")
45     set(LIBOMP_ARCH i386)
46   elseif(LIBOMP_NATIVE_ARCH STREQUAL "x86")
47     set(LIBOMP_ARCH i386)
48   elseif(LIBOMP_NATIVE_ARCH STREQUAL "amd64")
49     set(LIBOMP_ARCH x86_64)
50   elseif(LIBOMP_NATIVE_ARCH STREQUAL "x86_64")
51     set(LIBOMP_ARCH x86_64)
52   elseif(LIBOMP_NATIVE_ARCH MATCHES "powerpc64le")
53     set(LIBOMP_ARCH ppc64le)
54   elseif(LIBOMP_NATIVE_ARCH MATCHES "powerpc")
55     set(LIBOMP_ARCH ppc64)
56   elseif(LIBOMP_NATIVE_ARCH MATCHES "aarch64")
57     set(LIBOMP_ARCH aarch64)
58   elseif(LIBOMP_NATIVE_ARCH MATCHES "arm64")
59     set(LIBOMP_ARCH aarch64)
60   elseif(LIBOMP_NATIVE_ARCH MATCHES "arm")
61     set(LIBOMP_ARCH arm)
62   elseif(LIBOMP_NATIVE_ARCH MATCHES "riscv64")
63     set(LIBOMP_ARCH riscv64)
64   elseif(LIBOMP_NATIVE_ARCH MATCHES "loongarch64")
65     set(LIBOMP_ARCH loongarch64)
66   else()
67     # last ditch effort
68     libomp_get_architecture(LIBOMP_ARCH)
69   endif ()
70   set(LIBOMP_ENABLE_ASSERTIONS ${LLVM_ENABLE_ASSERTIONS})
71 endif()
73 # Time profiling support
74 set(LIBOMP_PROFILING_SUPPORT ${OPENMP_ENABLE_LIBOMP_PROFILING})
76 # FUJITSU A64FX is a special processor because its cache line size is 256.
77 # We need to pass this information into kmp_config.h.
78 if(LIBOMP_ARCH STREQUAL "aarch64")
79   libomp_is_aarch64_a64fx(LIBOMP_DETECT_AARCH64_A64FX)
80   if (LIBOMP_DETECT_AARCH64_A64FX)
81     set(LIBOMP_ARCH "aarch64_a64fx")
82     set(LIBOMP_ARCH_AARCH64_A64FX TRUE)
83   endif()
84 endif()
86 libomp_check_variable(LIBOMP_ARCH 32e x86_64 32 i386 arm ppc64 ppc64le aarch64 aarch64_a64fx mic mips mips64 riscv64 loongarch64)
88 set(LIBOMP_LIB_TYPE normal CACHE STRING
89   "Performance,Profiling,Stubs library (normal/profile/stubs)")
90 libomp_check_variable(LIBOMP_LIB_TYPE normal profile stubs)
91 # Set the OpenMP Year and Month associated with version
92 set(LIBOMP_OMP_YEAR_MONTH 201611)
93 set(LIBOMP_MIC_ARCH knc CACHE STRING
94   "Intel(R) Many Integrated Core Architecture (Intel(R) MIC Architecture) (knf/knc).  Ignored if not Intel(R) MIC Architecture build.")
95 if("${LIBOMP_ARCH}" STREQUAL "mic")
96   libomp_check_variable(LIBOMP_MIC_ARCH knf knc)
97 endif()
98 set(LIBOMP_FORTRAN_MODULES FALSE CACHE BOOL
99   "Create Fortran module files? (requires fortran compiler)")
101 # - Support for universal fat binary builds on Mac
102 # - Having this extra variable allows people to build this library as a universal library
103 #   without forcing a universal build of the llvm/clang compiler.
104 set(LIBOMP_OSX_ARCHITECTURES "${CMAKE_OSX_ARCHITECTURES}" CACHE STRING
105   "For Mac builds, semicolon separated list of architectures to build for universal fat binary.")
106 set(CMAKE_OSX_ARCHITECTURES ${LIBOMP_OSX_ARCHITECTURES})
108 # Should @rpath be used for dynamic libraries on Mac?
109 # The if(NOT DEFINED) is there to guard a cached value of the variable if one
110 # exists so there is no interference with what the user wants.  Also, no cache entry
111 # is created so there are no inadvertant effects on other parts of LLVM.
112 if(NOT DEFINED CMAKE_MACOSX_RPATH)
113   set(CMAKE_MACOSX_RPATH TRUE)
114 endif()
116 # User specified flags.  These are appended to the configured flags.
117 set(LIBOMP_CXXFLAGS "" CACHE STRING
118   "Appended user specified C++ compiler flags.")
119 set(LIBOMP_CPPFLAGS "" CACHE STRING
120   "Appended user specified C preprocessor flags.")
121 set(LIBOMP_ASMFLAGS "" CACHE STRING
122   "Appended user specified assembler flags.")
123 set(LIBOMP_LDFLAGS "" CACHE STRING
124   "Appended user specified linker flags.")
125 set(LIBOMP_LIBFLAGS "" CACHE STRING
126   "Appended user specified linked libs flags. (e.g., -lm)")
127 set(LIBOMP_FFLAGS "" CACHE STRING
128   "Appended user specified Fortran compiler flags.  These are only used if LIBOMP_FORTRAN_MODULES==TRUE.")
130 # Should the libomp library and generated headers be copied into the original source exports/ directory
131 # Turning this to FALSE aids parallel builds to not interfere with each other.
132 # Currently, the testsuite module expects the just built OpenMP library to be located inside the exports/
133 # directory.  TODO: have testsuite run under llvm-lit directly.  We can then get rid of copying to exports/
134 set(LIBOMP_COPY_EXPORTS FALSE CACHE STRING
135   "Should exports be copied into source exports/ directory?")
137 # HWLOC-support
138 set(LIBOMP_USE_HWLOC FALSE CACHE BOOL
139   "Use Hwloc (http://www.open-mpi.org/projects/hwloc/) library for affinity?")
140 set(LIBOMP_HWLOC_INSTALL_DIR /usr/local CACHE PATH
141   "Install path for hwloc library")
143 # Get the build number from kmp_version.cpp
144 libomp_get_build_number("${CMAKE_CURRENT_SOURCE_DIR}" LIBOMP_VERSION_BUILD)
145 math(EXPR LIBOMP_VERSION_BUILD_YEAR "${LIBOMP_VERSION_BUILD}/10000")
146 math(EXPR LIBOMP_VERSION_BUILD_MONTH_DAY "${LIBOMP_VERSION_BUILD}%10000")
148 # Currently don't record any timestamps
149 set(LIBOMP_BUILD_DATE "No_Timestamp")
151 # Architecture
152 set(IA32 FALSE)
153 set(INTEL64 FALSE)
154 set(ARM FALSE)
155 set(AARCH64 FALSE)
156 set(AARCH64_A64FX FALSE)
157 set(PPC64BE FALSE)
158 set(PPC64LE FALSE)
159 set(PPC64 FALSE)
160 set(MIC FALSE)
161 set(MIPS64 FALSE)
162 set(MIPS FALSE)
163 set(RISCV64 FALSE)
164 set(LOONGARCH64 FALSE)
165 if("${LIBOMP_ARCH}" STREQUAL "i386" OR "${LIBOMP_ARCH}" STREQUAL "32")    # IA-32 architecture
166   set(IA32 TRUE)
167 elseif("${LIBOMP_ARCH}" STREQUAL "x86_64" OR "${LIBOMP_ARCH}" STREQUAL "32e") # Intel(R) 64 architecture
168   set(INTEL64 TRUE)
169 elseif("${LIBOMP_ARCH}" STREQUAL "arm") # ARM architecture
170   set(ARM TRUE)
171 elseif("${LIBOMP_ARCH}" STREQUAL "ppc64") # PPC64BE architecture
172   set(PPC64BE TRUE)
173   set(PPC64 TRUE)
174 elseif("${LIBOMP_ARCH}" STREQUAL "ppc64le") # PPC64LE architecture
175   set(PPC64LE TRUE)
176   set(PPC64 TRUE)
177 elseif("${LIBOMP_ARCH}" STREQUAL "aarch64") # AARCH64 architecture
178   set(AARCH64 TRUE)
179 elseif("${LIBOMP_ARCH}" STREQUAL "aarch64_a64fx") # AARCH64_A64FX architecture
180   set(AARCH64_A64FX TRUE)
181 elseif("${LIBOMP_ARCH}" STREQUAL "mic") # Intel(R) Many Integrated Core Architecture
182   set(MIC TRUE)
183 elseif("${LIBOMP_ARCH}" STREQUAL "mips") # MIPS architecture
184     set(MIPS TRUE)
185 elseif("${LIBOMP_ARCH}" STREQUAL "mips64") # MIPS64 architecture
186     set(MIPS64 TRUE)
187 elseif("${LIBOMP_ARCH}" STREQUAL "riscv64") # RISCV64 architecture
188     set(RISCV64 TRUE)
189 elseif("${LIBOMP_ARCH}" STREQUAL "loongarch64") # LoongArch64 architecture
190     set(LOONGARCH64 TRUE)
191 endif()
193 # Set some flags based on build_type
194 set(RELEASE_BUILD FALSE)
195 set(DEBUG_BUILD FALSE)
196 set(RELWITHDEBINFO_BUILD FALSE)
197 set(MINSIZEREL_BUILD FALSE)
198 if("${uppercase_CMAKE_BUILD_TYPE}" STREQUAL "RELEASE")
199   set(RELEASE_BUILD TRUE)
200 elseif("${uppercase_CMAKE_BUILD_TYPE}" STREQUAL "DEBUG")
201   set(DEBUG_BUILD TRUE)
202 elseif("${uppercase_CMAKE_BUILD_TYPE}" STREQUAL "RELWITHDEBINFO")
203   set(RELWITHDEBINFO_BUILD TRUE)
204 elseif("${uppercase_CMAKE_BUILD_TYPE}" STREQUAL "MINSIZEREL")
205   set(MINSIZEREL_BUILD TRUE)
206 endif()
208 # Include itt notify interface?
209 set(LIBOMP_USE_ITT_NOTIFY TRUE CACHE BOOL
210   "Enable ITT notify?")
212 # normal, profile, stubs library.
213 set(NORMAL_LIBRARY FALSE)
214 set(STUBS_LIBRARY FALSE)
215 set(PROFILE_LIBRARY FALSE)
216 if("${LIBOMP_LIB_TYPE}" STREQUAL "normal")
217   set(NORMAL_LIBRARY TRUE)
218 elseif("${LIBOMP_LIB_TYPE}" STREQUAL "profile")
219   set(PROFILE_LIBRARY TRUE)
220 elseif("${LIBOMP_LIB_TYPE}" STREQUAL "stubs")
221   set(STUBS_LIBRARY TRUE)
222 endif()
224 # Setting directory names
225 set(LIBOMP_BASE_DIR ${CMAKE_CURRENT_SOURCE_DIR})
226 set(LIBOMP_SRC_DIR ${LIBOMP_BASE_DIR}/src)
227 set(LIBOMP_TOOLS_DIR ${LIBOMP_BASE_DIR}/tools)
228 set(LIBOMP_INC_DIR ${LIBOMP_SRC_DIR}/include)
229 set(LIBOMP_BINARY_DIR ${CMAKE_CURRENT_BINARY_DIR})
231 # Enabling Fortran if it is needed
232 if(${LIBOMP_FORTRAN_MODULES})
233   enable_language(Fortran)
234 endif()
235 # Enable MASM Compiler if it is needed (Windows only)
236 if(WIN32)
237   enable_language(ASM_MASM)
238 endif()
240 # Getting legal type/arch
241 libomp_get_legal_type(LIBOMP_LEGAL_TYPE)
242 libomp_get_legal_arch(LIBOMP_LEGAL_ARCH)
244 # Compiler flag checks, library checks, threading check, etc.
245 include(config-ix)
247 # Is there a quad precision data type available?
248 # TODO: Make this a real feature check
249 set(LIBOMP_USE_QUAD_PRECISION "${LIBOMP_HAVE_QUAD_PRECISION}" CACHE BOOL
250   "Should 128-bit precision entry points be built?")
251 if(LIBOMP_USE_QUAD_PRECISION AND (NOT LIBOMP_HAVE_QUAD_PRECISION))
252   libomp_error_say("128-bit quad precision functionality requested but not available")
253 endif()
255 # libgomp drop-in compatibility requires versioned symbols
256 set(LIBOMP_USE_VERSION_SYMBOLS "${LIBOMP_HAVE_VERSION_SYMBOLS}" CACHE BOOL
257   "Should version symbols be used? These provide binary compatibility with libgomp.")
258 if(LIBOMP_USE_VERSION_SYMBOLS AND (NOT LIBOMP_HAVE_VERSION_SYMBOLS))
259   libomp_error_say("Version symbols functionality requested but not available")
260 endif()
262 # On multinode systems, larger alignment is desired to avoid false sharing
263 set(LIBOMP_USE_INTERNODE_ALIGNMENT FALSE CACHE BOOL
264   "Should larger alignment (4096 bytes) be used for some locks and data structures?")
266 # Build code that allows the OpenMP library to conveniently interface with debuggers
267 set(LIBOMP_USE_DEBUGGER FALSE CACHE BOOL
268   "Enable debugger interface code?")
270 # Should we link to C++ library?
271 set(LIBOMP_USE_STDCPPLIB FALSE CACHE BOOL
272   "Should we link to C++ library?")
274 # Intel(R) Transactional Synchronization Extensions (Intel(R) TSX) based locks have
275 # __asm code which can be troublesome for some compilers.  This feature is also x86 specific.
276 # TODO: Make this a real feature check
277 set(LIBOMP_USE_ADAPTIVE_LOCKS "${LIBOMP_HAVE_ADAPTIVE_LOCKS}" CACHE BOOL
278   "Should Intel(R) TSX lock be compiled (adaptive lock in kmp_lock.cpp).  These are x86 specific.")
279 if(LIBOMP_USE_ADAPTIVE_LOCKS AND (NOT LIBOMP_HAVE_ADAPTIVE_LOCKS))
280   libomp_error_say("Adaptive locks (Intel(R) TSX) functionality is only supported on x86 Architecture")
281 endif()
283 # - stats-gathering enables OpenMP stats where things like the number of
284 # parallel regions, clock ticks spent in particular openmp regions are recorded.
285 set(LIBOMP_STATS FALSE CACHE BOOL
286   "Stats-Gathering functionality?")
287 if(LIBOMP_STATS AND (NOT LIBOMP_HAVE_STATS))
288   libomp_error_say("Stats-gathering functionality requested but not available")
289 endif()
290 # The stats functionality requires the std c++ library
291 if(LIBOMP_STATS)
292   set(LIBOMP_USE_STDCPPLIB TRUE)
293 endif()
295 # Shared library can be switched to a static library
296 set(LIBOMP_ENABLE_SHARED TRUE CACHE BOOL
297   "Shared library instead of static library?")
299 if(WIN32 AND NOT LIBOMP_ENABLE_SHARED)
300   libomp_error_say("Static libraries requested but not available on Windows")
301 endif()
303 if(LIBOMP_USE_ITT_NOTIFY AND NOT LIBOMP_ENABLE_SHARED)
304   message(STATUS "ITT Notify not supported for static libraries - forcing ITT Notify off")
305   set(LIBOMP_USE_ITT_NOTIFY FALSE)
306 endif()
308 if(LIBOMP_USE_VERSION_SYMBOLS AND (NOT LIBOMP_ENABLE_SHARED) )
309   message(STATUS "Version symbols not supported for static libraries - forcing Version symbols functionality off")
310   set (LIBOMP_USE_VERSION_SYMBOLS FALSE)
311 endif()
313 # OMPT-support defaults to ON for OpenMP 5.0+ and if the requirements in
314 # cmake/config-ix.cmake are fulfilled.
315 set(OMPT_DEFAULT FALSE)
316 if ((LIBOMP_HAVE_OMPT_SUPPORT) AND (NOT WIN32))
317   set(OMPT_DEFAULT TRUE)
318 endif()
319 set(LIBOMP_OMPT_SUPPORT ${OMPT_DEFAULT} CACHE BOOL
320   "OMPT-support?")
322 set(LIBOMP_OMPT_DEBUG FALSE CACHE BOOL
323   "Trace OMPT initialization?")
324 set(LIBOMP_OMPT_OPTIONAL TRUE CACHE BOOL
325   "OMPT-optional?")
326 if(LIBOMP_OMPT_SUPPORT AND (NOT LIBOMP_HAVE_OMPT_SUPPORT))
327   libomp_error_say("OpenMP Tools Interface requested but not available in this implementation")
328 endif()
330 # OMPD-support
331 # Enable if OMPT SUPPORT is ON
332 set(OMPD_DEFAULT FALSE)
333 if (LIBOMP_HAVE_OMPT_SUPPORT AND ("${CMAKE_SYSTEM_NAME}" STREQUAL "Linux"))
334   set(OMPD_DEFAULT TRUE)
335 endif()
337 set(LIBOMP_OMPD_SUPPORT ${OMPD_DEFAULT} CACHE BOOL
338   "OMPD-support?")
340 if(LIBOMP_OMPD_SUPPORT AND ((NOT LIBOMP_OMPT_SUPPORT) OR (NOT "${CMAKE_SYSTEM_NAME}" STREQUAL "Linux")))
341   libomp_warning_say("OpenMP Debug Interface(OMPD) requested but not available in this implementation")
342   set(LIBOMP_OMPD_SUPPORT FALSE)
343 endif()
345 # Error check hwloc support after config-ix has run
346 if(LIBOMP_USE_HWLOC AND (NOT LIBOMP_HAVE_HWLOC))
347   libomp_error_say("Hwloc requested but not available")
348 endif()
350 # Hierarchical scheduling support
351 set(LIBOMP_USE_HIER_SCHED FALSE CACHE BOOL
352   "Hierarchical scheduling support?")
354 # Setting final library name
355 set(LIBOMP_DEFAULT_LIB_NAME libomp)
356 if(${PROFILE_LIBRARY})
357   set(LIBOMP_DEFAULT_LIB_NAME ${LIBOMP_DEFAULT_LIB_NAME}prof)
358 endif()
359 if(${STUBS_LIBRARY})
360   set(LIBOMP_DEFAULT_LIB_NAME ${LIBOMP_DEFAULT_LIB_NAME}stubs)
361 endif()
362 set(LIBOMP_LIB_NAME ${LIBOMP_DEFAULT_LIB_NAME} CACHE STRING "Base OMP library name")
363 if (OPENMP_MSVC_NAME_SCHEME)
364   # MSVC_TOOLS_VERSION corresponds to the version of the VC++ toolset.
365   set(MSVC_TOOLS_VERSION 140)
366   set(LIBOMP_LIB_NAME ${LIBOMP_LIB_NAME}${MSVC_TOOLS_VERSION}.${LIBOMP_ARCH})
367 endif()
369 if(${LIBOMP_ENABLE_SHARED})
370   set(LIBOMP_LIBRARY_SUFFIX ${CMAKE_SHARED_LIBRARY_SUFFIX})
371   set(LIBOMP_LIBRARY_KIND SHARED)
372   set(LIBOMP_INSTALL_KIND LIBRARY)
373 else()
374   set(LIBOMP_LIBRARY_SUFFIX ${CMAKE_STATIC_LIBRARY_SUFFIX})
375   set(LIBOMP_LIBRARY_KIND STATIC)
376   set(LIBOMP_INSTALL_KIND ARCHIVE)
377 endif()
379 set(LIBOMP_LIB_FILE ${LIBOMP_LIB_NAME}${LIBOMP_LIBRARY_SUFFIX})
381 # Optional backwards compatibility aliases.
382 set(LIBOMP_INSTALL_ALIASES TRUE CACHE BOOL
383   "Install libgomp and libiomp5 library aliases for backwards compatibility")
385 # Print configuration after all variables are set.
386 if(${OPENMP_STANDALONE_BUILD})
387   libomp_say("Operating System     -- ${CMAKE_SYSTEM_NAME}")
388   libomp_say("Target Architecture  -- ${LIBOMP_ARCH}")
389   if(${MIC})
390     libomp_say("Intel(R) MIC Architecture    -- ${LIBOMP_MIC_ARCH}")
391   endif()
392   libomp_say("Build Type           -- ${CMAKE_BUILD_TYPE}")
393   libomp_say("Library Kind         -- ${LIBOMP_LIBRARY_KIND}")
394   libomp_say("Library Type         -- ${LIBOMP_LIB_TYPE}")
395   libomp_say("Fortran Modules      -- ${LIBOMP_FORTRAN_MODULES}")
396   # will say development if all zeros
397   if(${LIBOMP_VERSION_BUILD} STREQUAL 00000000)
398     set(LIBOMP_BUILD Development)
399   else()
400     set(LIBOMP_BUILD ${LIBOMP_VERSION_BUILD})
401   endif()
402   libomp_say("Build                -- ${LIBOMP_BUILD}")
403   libomp_say("Use Stats-gathering  -- ${LIBOMP_STATS}")
404   libomp_say("Use Debugger-support -- ${LIBOMP_USE_DEBUGGER}")
405   libomp_say("Use ITT notify       -- ${LIBOMP_USE_ITT_NOTIFY}")
406   libomp_say("Use OMPT-support     -- ${LIBOMP_OMPT_SUPPORT}")
407   if(${LIBOMP_OMPT_SUPPORT})
408     libomp_say("Use OMPT-optional  -- ${LIBOMP_OMPT_OPTIONAL}")
409   endif()
410   libomp_say("Use OMPD-support     -- ${LIBOMP_OMPD_SUPPORT}")
411   libomp_say("Use Adaptive locks   -- ${LIBOMP_USE_ADAPTIVE_LOCKS}")
412   libomp_say("Use quad precision   -- ${LIBOMP_USE_QUAD_PRECISION}")
413   libomp_say("Use Hwloc library    -- ${LIBOMP_USE_HWLOC}")
414 endif()
416 add_subdirectory(src)
417 add_subdirectory(test)
419 # make these variables available for tools:
420 set(LIBOMP_LIBRARY_DIR ${LIBOMP_LIBRARY_DIR} PARENT_SCOPE)
421 set(LIBOMP_INCLUDE_DIR ${LIBOMP_INCLUDE_DIR} PARENT_SCOPE)
422 set(LIBOMP_OMP_TOOLS_INCLUDE_DIR ${LIBOMP_OMP_TOOLS_INCLUDE_DIR} PARENT_SCOPE)
423 # make these variables available for tools/libompd:
424 set(LIBOMP_SRC_DIR ${LIBOMP_SRC_DIR} PARENT_SCOPE)
425 set(LIBOMP_OMPD_SUPPORT ${LIBOMP_OMPD_SUPPORT} PARENT_SCOPE)