diff --git a/openmp/libomptarget/cmake/Modules/LibomptargetGetDependencies.cmake b/openmp/libomptarget/cmake/Modules/LibomptargetGetDependencies.cmake --- a/openmp/libomptarget/cmake/Modules/LibomptargetGetDependencies.cmake +++ b/openmp/libomptarget/cmake/Modules/LibomptargetGetDependencies.cmake @@ -65,36 +65,46 @@ pkg_check_modules(LIBOMPTARGET_SEARCH_LIBFFI QUIET libffi) -find_path ( - LIBOMPTARGET_DEP_LIBFFI_INCLUDE_DIR - NAMES - ffi.h - HINTS - ${LIBOMPTARGET_SEARCH_LIBFFI_INCLUDEDIR} - ${LIBOMPTARGET_SEARCH_LIBFFI_INCLUDE_DIRS} - PATHS - /usr/include - /usr/local/include - /opt/local/include - /sw/include - ENV CPATH) +if (OPENMP_STANDALONE_BUILD) + set(LIBOMPTARGET_ENABLE_FFI_DEFAULT ON) +else() + set(LIBOMPTARGET_ENABLE_FFI_DEFAULT ${LLVM_ENABLE_FFI}) +endif() -# Don't bother look for the library if the header files were not found. -if (LIBOMPTARGET_DEP_LIBFFI_INCLUDE_DIR) - find_library ( - LIBOMPTARGET_DEP_LIBFFI_LIBRARIES +option(LIBOMPTARGET_ENABLE_FFI "Enable libffi for libomptarget." + ${LIBOMPTARGET_ENABLE_FFI_DEFAULT}) +if (LIBOMPTARGET_ENABLE_FFI) + find_path ( + LIBOMPTARGET_DEP_LIBFFI_INCLUDE_DIR NAMES - ffi + ffi.h HINTS - ${LIBOMPTARGET_SEARCH_LIBFFI_LIBDIR} - ${LIBOMPTARGET_SEARCH_LIBFFI_LIBRARY_DIRS} + ${LIBOMPTARGET_SEARCH_LIBFFI_INCLUDEDIR} + ${LIBOMPTARGET_SEARCH_LIBFFI_INCLUDE_DIRS} PATHS - /usr/lib - /usr/local/lib - /opt/local/lib - /sw/lib - ENV LIBRARY_PATH - ENV LD_LIBRARY_PATH) + /usr/include + /usr/local/include + /opt/local/include + /sw/include + ENV CPATH) + + # Don't bother look for the library if the header files were not found. + if (LIBOMPTARGET_DEP_LIBFFI_INCLUDE_DIR) + find_library ( + LIBOMPTARGET_DEP_LIBFFI_LIBRARIES + NAMES + ffi + HINTS + ${LIBOMPTARGET_SEARCH_LIBFFI_LIBDIR} + ${LIBOMPTARGET_SEARCH_LIBFFI_LIBRARY_DIRS} + PATHS + /usr/lib + /usr/local/lib + /opt/local/lib + /sw/lib + ENV LIBRARY_PATH + ENV LD_LIBRARY_PATH) + endif() endif() set(LIBOMPTARGET_DEP_LIBFFI_INCLUDE_DIRS ${LIBOMPTARGET_DEP_LIBFFI_INCLUDE_DIR})