function(get_plot_tool_sources PLOT_TOOL_NAME)
   set(AMREX_SOURCE_DIR "${CMAKE_SOURCE_DIR}/Submodules/AMReX/Src/Base")
   add_sources(GlobalPlotToolSourceList
     # CPP
     ${AMREX_SOURCE_DIR}/AMReX_Machine.cpp
     ${AMREX_SOURCE_DIR}/AMReX_MemPool.cpp
     ${AMREX_SOURCE_DIR}/AMReX_BLBackTrace.cpp
     ${AMREX_SOURCE_DIR}/AMReX_BLProfiler.cpp
     ${AMREX_SOURCE_DIR}/AMReX_PlotFileDataImpl.cpp
     ${AMREX_SOURCE_DIR}/AMReX_PlotFileUtil.cpp
     ${AMREX_SOURCE_DIR}/AMReX_BCUtil.cpp
     ${AMREX_SOURCE_DIR}/AMReX_PhysBCFunct.cpp
     ${AMREX_SOURCE_DIR}/AMReX_BCRec.cpp
     ${AMREX_SOURCE_DIR}/AMReX_MultiFabUtil_Perilla.cpp
     ${AMREX_SOURCE_DIR}/AMReX_MultiFabUtil.cpp
     ${AMREX_SOURCE_DIR}/AMReX_Geometry.cpp
     ${AMREX_SOURCE_DIR}/AMReX_CoordSys.cpp
     ${AMREX_SOURCE_DIR}/AMReX_MFIter.cpp
     ${AMREX_SOURCE_DIR}/AMReX_FabArrayBase.cpp
     ${AMREX_SOURCE_DIR}/AMReX_iMultiFab.cpp
     ${AMREX_SOURCE_DIR}/AMReX_MFCopyDescriptor.cpp
     ${AMREX_SOURCE_DIR}/AMReX_MultiFab.cpp
     ${AMREX_SOURCE_DIR}/AMReX_BaseFab.cpp
     ${AMREX_SOURCE_DIR}/AMReX_IArrayBox.cpp
     ${AMREX_SOURCE_DIR}/AMReX_FArrayBox.cpp
     ${AMREX_SOURCE_DIR}/AMReX_BoxDomain.cpp
     ${AMREX_SOURCE_DIR}/AMReX_BoxArray.cpp
     ${AMREX_SOURCE_DIR}/AMReX_BoxList.cpp
     ${AMREX_SOURCE_DIR}/AMReX_RealVect.cpp
     ${AMREX_SOURCE_DIR}/AMReX_RealBox.cpp
     ${AMREX_SOURCE_DIR}/AMReX_Periodicity.cpp
     ${AMREX_SOURCE_DIR}/AMReX_Orientation.cpp
     ${AMREX_SOURCE_DIR}/AMReX_IndexType.cpp
     ${AMREX_SOURCE_DIR}/AMReX_IntVect.cpp
     ${AMREX_SOURCE_DIR}/AMReX_BoxIterator.cpp
     ${AMREX_SOURCE_DIR}/AMReX_Box.cpp
     ${AMREX_SOURCE_DIR}/AMReX_VectorIO.cpp
     ${AMREX_SOURCE_DIR}/AMReX_IntConv.cpp
     ${AMREX_SOURCE_DIR}/AMReX_FPC.cpp
     ${AMREX_SOURCE_DIR}/AMReX_FabConv.cpp
     ${AMREX_SOURCE_DIR}/AMReX_GpuElixir.cpp
     ${AMREX_SOURCE_DIR}/AMReX_GpuAsyncArray.cpp
     ${AMREX_SOURCE_DIR}/AMReX_CudaAllocators.cpp
     ${AMREX_SOURCE_DIR}/AMReX_GpuUtility.cpp
     ${AMREX_SOURCE_DIR}/AMReX_GpuDevice.cpp
     ${AMREX_SOURCE_DIR}/AMReX_GpuControl.cpp
     ${AMREX_SOURCE_DIR}/AMReX_parstream.cpp
     ${AMREX_SOURCE_DIR}/AMReX_NFiles.cpp
     ${AMREX_SOURCE_DIR}/AMReX_EArena.cpp
     ${AMREX_SOURCE_DIR}/AMReX_DArena.cpp
     ${AMREX_SOURCE_DIR}/AMReX_CArena.cpp
     ${AMREX_SOURCE_DIR}/AMReX_BArena.cpp
     ${AMREX_SOURCE_DIR}/AMReX_Arena.cpp
     ${AMREX_SOURCE_DIR}/AMReX_VisMF.cpp
     ${AMREX_SOURCE_DIR}/AMReX_ParallelContext.cpp
     ${AMREX_SOURCE_DIR}/AMReX_ForkJoin.cpp
     ${AMREX_SOURCE_DIR}/AMReX_ParallelDescriptor.cpp
     ${AMREX_SOURCE_DIR}/AMReX_DistributionMapping.cpp
     ${AMREX_SOURCE_DIR}/AMReX_Utility.cpp
     ${AMREX_SOURCE_DIR}/AMReX_parmparse_fi.cpp
     ${AMREX_SOURCE_DIR}/AMReX_ParmParse.cpp
     ${AMREX_SOURCE_DIR}/AMReX_error_fi.cpp
     ${AMREX_SOURCE_DIR}/AMReX_Random.cpp
     ${AMREX_SOURCE_DIR}/AMReX.cpp
     # Fortran
     ${AMREX_SOURCE_DIR}/AMReX_constants_mod.f90
     ${AMREX_SOURCE_DIR}/AMReX_FILCC_3D.F90
     ${AMREX_SOURCE_DIR}/AMReX_BLutil_F.F90
     ${AMREX_SOURCE_DIR}/AMReX_BLProfiler_F.F90
     ${AMREX_SOURCE_DIR}/AMReX_filcc_mod.F90
     ${AMREX_SOURCE_DIR}/AMReX_omp_mod.F90
     ${AMREX_SOURCE_DIR}/AMReX_acc_mod.F90
     ${AMREX_SOURCE_DIR}/AMReX_fort_mod.F90
     ${AMREX_SOURCE_DIR}/AMReX_error_mod.F90
     ${AMREX_SOURCE_DIR}/AMReX_parmparse_mod.F90
     ${AMREX_SOURCE_DIR}/AMReX_string_mod.F90
     ${AMREX_SOURCE_DIR}/AMReX_bc_types_mod.F90
     ${AMREX_SOURCE_DIR}/AMReX_io_mod.F90
     ${AMREX_SOURCE_DIR}/AMReX_ParallelDescriptor_F.F90
     ${AMREX_SOURCE_DIR}/AMReX_mempool_mod.F90
   )
   set(AMREX_SOURCE_DIR "${CMAKE_SOURCE_DIR}/Submodules/AMReX/Tools/Plotfile")
   add_sources(GlobalPlotToolSourceList
     ${AMREX_SOURCE_DIR}/AMReX_PPMUtil.cpp
     ${AMREX_SOURCE_DIR}/${PLOT_TOOL_NAME}.cpp
   )
endfunction(get_plot_tool_sources)
