
    e                     F   d dl Z d dlZd dlZd dlZd dlZd dlT d dlmZ d dlm	Z	m
Z
mZmZ d dlmZ d dlmZ ej                            e j                            e                     d dlmZ  ej        e          Zd Zd	 Zd
 Zedk    r eej        e           dS dS )    N)*)utils)expectrun_bld_cmd_ensure_loggingrun_cmd_no_failrun_cmd)Case)get_standard_makefile_args)extract_from_macrosc                    t          j        d                    t          j                            | d                             |t           j                  }t          j        |           |	                    dd           |	                    dd           |	                    d	d
t          j
                    d           t          j        | |          } | j        | j        | j        fS )Nza
{0} [--debug]
OR
{0} --verbose
OR
{0} --help

[1mEXAMPLES:[0m
    [1;32m# Run [0m
    > {0}
r   )usagedescriptionformatter_class	buildrootzbuild path root)helpinstallpathzinstall path caseroot?zCase directory to build)nargsdefaultr   )argparseArgumentParserformatospathbasenameArgumentDefaultsHelpFormatterr   setup_standard_logging_optionsadd_argumentgetcwd.parse_args_and_handle_standard_logging_optionsr   r   r   )argsr   parsers      `/lcrc/group/e3sm2/ac.wlin/E3SMv3/v3.LR.historical_0051/code/20240305/share/build/buildlib.kokkosparse_command_liner%      s    $	 FGT!W%%
 
   >  F" 
(000
*;<<<
O<<<
#ry{{9R     ?fMMD>4+T]::    c                 "   t           j                            d          }|t           j                            |          }t           j                            |d          }t          t           j                            |          d| d           t          t           j                            |          d| d           t          t           j                            t           j                            |d                    d| d           d S t          d           |
                    d	          }t           j                            |d
d          }t          t           j                            |          d           t           j                            |dd          }t          t           j                            |          d           t          |dd          }	|	d         |	d         }}
|                    d          d                                         }d|vrd|v r t           j                            |d          }
d|
v rd                    |
          }
nNt          j        |
          }t          |d ud                    |
                     d                    |          }
|
                    d          }|
                    d          }d| d|
 d| d| }|  d } t           j                            |           st          j        |            t%          |t&          | !           t%          d"                    ||          t&          | !           t%          d#                    |          t&          | !           d S )$NKokkos_ROOTincludez!Non-existent kokkos install dir ''z1Missing include subfolder in kokkos install dir 'zKokkos_Core.hppzMissing kokkos headers in 'z<no value foudn in env for Kokkos_ROOT. building from scratchSRCROOT	externalsekatzMissing ekat submoduleexternkokkosz Missing kokkos submodule in EKAT)KOKKOS_OPTIONS)
extra_vars   z:=DCMAKE_CXX_COMPILERKokkos_ENABLE_CUDAzbin/nvcc_wrapper/z-DCMAKE_CXX_COMPILER={}z{} is not in PATH?GMAKEGMAKE_Jzcmake  z -DCMAKE_INSTALL_PREFIX=z/build)from_dirz{} VERBOSE=1 -j {}z
{} install)r   environgetr   abspathjoinr   isdirisfileprint	get_valuer   splitstripr   shutilwhichmakedirsr   logger)bldrootr   caseinstalled_kokkos_dirkokkos_rootinclude_dirsrcrootekat_dir
kokkos_dir
macro_valscxxkokkos_options_rawkokkos_optionscxx_path	gmake_cmdgmake_jgen_makefile_cmds                    r$   buildlibrY   3   s9   :>>-88' goo&:;;gll;y99k**+]{+]+]+]^^^k**+m_j+m+m+mnnnrw||K8IJJKKLxjuLxLxLxyyy 	MNNNnnY''Gw||G[&99H
27==""$<===h(;;J
27==$$&HIII
 %T8@STTTJ(mZ^	C'--d33B7==??N N22>11',,z+=>>C#::+22377CC|C((H84')=)D)DS)I)IJJJ+228<<Cw''InnY''Ghhhhhkhh\fhh    G7==!! 
G/'JJJJ##Iw77'    |229==vPWXXXXXXr&   c                     t          | |          \  }}}t          |d          5 }t          |||           d d d            d S # 1 swxY w Y   d S )NF)	read_only)r%   r	   rY   )argvdocumentationrI   r   r   rJ   s         r$   _mainr^   z   s    %7m%L%L"G[(	h%	(	(	( -D+t,,,- - - - - - - - - - - - - - - - - -s   AA	A	__main__)r   sysr   loggingrE   standard_script_setupCIMEr   
CIME.utilsr   r   r   r   	CIME.caser	   
CIME.buildr
   r   appenddirname__file__buildlib_utilr   	getLogger__name__rH   r%   rY   r^   r\   __doc__ r&   r$   <module>ro      sS   * ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) # # # #       S S S S S S S S S S S S       1 1 1 1 1 1 )) * * * - - - - - -		8	$	$; ; ;DDY DY DYN- - - z	E#(G r&   