
    <hy
                        S r SSKJr  SSKrSSKJr  \R                  (       a  SSKJ	r	  SSK
Jr  SS	KJr  O\r " S
 S\5      r " S S\5      r " S S\5      rg)z$Provides mixins for Apple compilers.    )annotationsN   )MesonException)ImmutableListProtocol)Environment   )Compilerc                  J    \ rS rSr% SrSS/rS\S'   SS jrSS jrSS	 jr	S
r
g)AppleCompilerMixin   zJHandle differences between Vanilla Clang and the Clang shipped with XCode.z-Xpreprocessorz-fopenmpzImmutableListProtocol[str]#_AppleCompilerMixin__BASE_OMP_FLAGSc                    UR                   U R                     nUc   S5       eUR                  R                  S5      (       a  SnOSnU R                  SU S3/-   $ )a  Flags required to compile with OpenMP on Apple.

The Apple Clang Compiler doesn't have builtin support for OpenMP, it
must be provided separately. As such, we need to add the -Xpreprocessor
argument so that an external OpenMP can be found.

:return: A list of arguments
for mypyx86
/usr/local/opt/homebrewz-Iz/opt/libomp/include)machinesfor_machine
cpu_family
startswithr   )selfenvmroots       ڂ/mnt/mint/home/seanl/mnt/public/Repos/ladybird/Build/vcpkg/downloads/tools/meson-1.9.0-d1fcc2/mesonbuild/compilers/mixins/apple.pyopenmp_flagsAppleCompilerMixin.openmp_flags   sd     LL))*}(j(}<<""5))D"D$$"TF2E(F'GGG    c                    UR                   U R                     nUc   S5       eUR                  R                  S5      (       a  SnOSnU R	                  SX S3/5      nU(       d  [        S5      eU R                  U-   $ )Nr   r   r   r   ompz/opt/libomp/libzCouldn't find libomp)r   r   r   r   find_libraryr   r   )r   r   r   r   links        r   openmp_link_flags$AppleCompilerMixin.openmp_link_flags.   s    LL))*}(j(}<<""5))D"D  o.F-GH !788$$t++r   c                    U/SSSU/U-   4$ )Nz	-nostdlibz-rz-o )r   prelink_nameobj_lists      r   get_prelink_args#AppleCompilerMixin.get_prelink_args;   s    ~T4FQQQr   r&   N)r   r   returnT.List[str])r'   strr(   r,   r+   z!T.Tuple[T.List[str], T.List[str]])__name__
__module____qualname____firstlineno____doc__r   __annotations__r   r#   r)   __static_attributes__r&   r   r   r   r      s'    T4Dj3Q0QH",Rr   r   c                  $    \ rS rSrSrSrSrSrSrg)AppleCStdsMixin@   z2Provide version overrides for the Apple Compilers.z>=10.0.0z>=11.0.0r&   N)	r.   r/   r0   r1   r2   _C17_VERSION_C18_VERSION_C2X_VERSIONr4   r&   r   r   r6   r6   @   s    <LLLr   r6   c                       \ rS rSrSrSrSrSrg)AppleCPPStdsMixinI   z6Provide version overrides for the Apple C++ Compilers.z>=13.0.0z>=16.0.0r&   N)r.   r/   r0   r1   r2   _CPP23_VERSION_CPP26_VERSIONr4   r&   r   r   r<   r<   I   s    @NNr   r<   )r2   
__future__r   typingTmesonlibr   TYPE_CHECKING_typingr   environmentr   	compilersr	   objectr   r6   r<   r&   r   r   <module>rI      sQ    + "  &??0*$ H&R &RRh    r   