python: Move the components lib to be compiled in the binary

There has been some debate on how best to distribute the components
library. This change builds the components library into the gem5 binary.
The components library will now function similar to the `m5` library.
There is no need for awkward imports or obtaining the library from some
third-party source.

Additional incorporated in this patch:
* Added `__init__.py` to the Python modules.
* Fixed a typo in the `abstract_ruby_cache_hierarchy.py` filename.
* Ensured that imports within the library are relative.

Issue-on: https://gem5.atlassian.net/browse/GEM5-1023
Change-Id: I3988c8710cda8dcf7b21109a2cf5c3f1608cc71a
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/49690
Reviewed-by: Jason Lowe-Power <power.jg@gmail.com>
Reviewed-by: Andreas Sandberg <andreas.sandberg@arm.com>
Reviewed-by: Austin Harris <mail@austin-harris.com>
Maintainer: Jason Lowe-Power <power.jg@gmail.com>
Tested-by: kokoro <noreply+kokoro@google.com>
This commit is contained in:
Bobby R. Bruce
2021-08-30 11:38:46 -07:00
parent 136809cc45
commit f775c4c4a7
88 changed files with 194 additions and 122 deletions

View File

@@ -28,6 +28,168 @@
Import('*')
PySource('components_library', 'components_library/__init__.py')
PySource('components_library', 'components_library/coherence_protocol.py')
PySource('components_library', 'components_library/isas.py')
PySource('components_library', 'components_library/runtime.py')
PySource('components_library.boards', 'components_library/boards/__init__.py')
PySource('components_library.boards',
'components_library/boards/abstract_board.py')
PySource('components_library.boards',
'components_library/boards/mem_mode.py')
PySource('components_library.boards',
'components_library/boards/riscv_board.py')
PySource('components_library.boards',
'components_library/boards/simple_board.py')
PySource('components_library.boards',
'components_library/boards/test_board.py')
PySource('components_library.boards', 'components_library/boards/x86_board.py')
PySource('components_library.cachehierarchies',
'components_library/cachehierarchies/__init__.py')
PySource('components_library.cachehierarchies',
'components_library/cachehierarchies/abstract_cache_hierarchy.py')
PySource('components_library.cachehierarchies',
'components_library/cachehierarchies/'
'abstract_two_level_cache_hierarchy.py')
PySource('components_library.cachehierarchies.classic',
'components_library/cachehierarchies/classic/__init__.py')
PySource('components_library.cachehierarchies.classic',
'components_library/cachehierarchies/classic/'
'abstract_classic_cache_hierarchy.py')
PySource('components_library.cachehierarchies.classic',
'components_library/cachehierarchies/classic/no_cache.py')
PySource('components_library.cachehierarchies.classic',
'components_library/cachehierarchies/classic/'
'private_l1_cache_hierarchy.py')
PySource('components_library.cachehierarchies.classic',
'components_library/cachehierarchies/classic/'
'private_l1_private_l2_cache_hierarchy.py')
PySource('components_library.cachehierarchies.classic.caches',
'components_library/cachehierarchies/classic/caches/__init__.py')
PySource('components_library.cachehierarchies.classic.caches',
'components_library/cachehierarchies/classic/caches/l1dcache.py')
PySource('components_library.cachehierarchies.classic.caches',
'components_library/cachehierarchies/classic/caches/l1icache.py')
PySource('components_library.cachehierarchies.classic.caches',
'components_library/cachehierarchies/classic/caches/l2cache.py')
PySource('components_library.cachehierarchies.classic.caches',
'components_library/cachehierarchies/classic/caches/mmu_cache.py')
PySource('components_library.cachehierarchies.ruby',
'components_library/cachehierarchies/ruby/__init__.py')
PySource('components_library.cachehierarchies.ruby',
'components_library/cachehierarchies/ruby/'
'abstract_ruby_cache_hierarchy.py')
PySource('components_library.cachehierarchies.ruby',
'components_library/cachehierarchies/ruby/'
'mesi_two_level_cache_hierarchy.py')
PySource('components_library.cachehierarchies.ruby',
'components_library/cachehierarchies/ruby/mi_example_cache_hierarchy.py')
PySource('components_library.cachehierarchies.ruby.caches',
'components_library/cachehierarchies/ruby/caches/__init__.py')
PySource('components_library.cachehierarchies.ruby.caches',
'components_library/cachehierarchies/ruby/caches/abstract_directory.py')
PySource('components_library.cachehierarchies.ruby.caches',
'components_library/cachehierarchies/ruby/caches/'
'abstract_dma_controller.py')
PySource('components_library.cachehierarchies.ruby.caches',
'components_library/cachehierarchies/ruby/caches/abstract_l1_cache.py')
PySource('components_library.cachehierarchies.ruby.caches',
'components_library/cachehierarchies/ruby/caches/abstract_l2_cache.py')
PySource('components_library.cachehierarchies.ruby.caches.mesi_two_level',
'components_library/cachehierarchies/ruby/caches/mesi_two_level/'
'__init__.py')
PySource('components_library.cachehierarchies.ruby.caches.mesi_two_level',
'components_library/cachehierarchies/ruby/caches/mesi_two_level/'
'directory.py')
PySource('components_library.cachehierarchies.ruby.caches.mesi_two_level',
'components_library/cachehierarchies/ruby/caches/mesi_two_level/'
'dma_controller.py')
PySource('components_library.cachehierarchies.ruby.caches.mesi_two_level',
'components_library/cachehierarchies/ruby/caches/mesi_two_level/'
'l1_cache.py')
PySource('components_library.cachehierarchies.ruby.caches.mesi_two_level',
'components_library/cachehierarchies/ruby/caches/mesi_two_level/'
'l2_cache.py')
PySource('components_library.cachehierarchies.ruby.caches.mi_example',
'components_library/cachehierarchies/ruby/caches/mi_example/__init__.py')
PySource('components_library.cachehierarchies.ruby.caches.mi_example',
'components_library/cachehierarchies/ruby/caches/mi_example/directory.py')
PySource('components_library.cachehierarchies.ruby.caches.mi_example',
'components_library/cachehierarchies/ruby/caches/mi_example/'
'dma_controller.py')
PySource('components_library.cachehierarchies.ruby.caches.mi_example',
'components_library/cachehierarchies/ruby/caches/mi_example/l1_cache.py')
PySource('components_library.cachehierarchies.ruby.topologies',
'components_library/cachehierarchies/ruby/topologies/__init__.py')
PySource('components_library.cachehierarchies.ruby.topologies',
'components_library/cachehierarchies/ruby/topologies/simple_pt2pt.py')
PySource('components_library.memory', 'components_library/memory/__init__.py')
PySource('components_library.memory',
'components_library/memory/abstract_memory_system.py')
PySource('components_library.memory', 'components_library/memory/dramsim_3.py')
PySource('components_library.memory',
'components_library/memory/single_channel.py')
PySource('components_library.memory.dram_interfaces',
'components_library/memory/dram_interfaces/__init__.py')
PySource('components_library.memory.dram_interfaces',
'components_library/memory/dram_interfaces/ddr3.py')
PySource('components_library.memory.dram_interfaces',
'components_library/memory/dram_interfaces/ddr4.py')
PySource('components_library.memory.dram_interfaces',
'components_library/memory/dram_interfaces/gddr.py')
PySource('components_library.memory.dram_interfaces',
'components_library/memory/dram_interfaces/hbm.py')
PySource('components_library.memory.dram_interfaces',
'components_library/memory/dram_interfaces/hmc.py')
PySource('components_library.memory.dram_interfaces',
'components_library/memory/dram_interfaces/lpddr2.py')
PySource('components_library.memory.dram_interfaces',
'components_library/memory/dram_interfaces/lpddr3.py')
PySource('components_library.memory.dram_interfaces',
'components_library/memory/dram_interfaces/lpddr5.py')
PySource('components_library.memory.dram_interfaces',
'components_library/memory/dram_interfaces/wideio.py')
PySource('components_library.processors',
'components_library/processors/__init__.py')
PySource('components_library.processors',
'components_library/processors/abstract_core.py')
PySource('components_library.processors',
'components_library/processors/abstract_generator_core.py')
PySource('components_library.processors',
'components_library/processors/abstract_processor.py')
PySource('components_library.processors',
'components_library/processors/complex_generator_core.py')
PySource('components_library.processors',
'components_library/processors/complex_generator.py')
PySource('components_library.processors',
'components_library/processors/cpu_types.py')
PySource('components_library.processors',
'components_library/processors/linear_generator_core.py')
PySource('components_library.processors',
'components_library/processors/linear_generator.py')
PySource('components_library.processors',
'components_library/processors/random_generator_core.py')
PySource('components_library.processors',
'components_library/processors/random_generator.py')
PySource('components_library.processors',
'components_library/processors/simple_core.py')
PySource('components_library.processors',
'components_library/processors/simple_processor.py')
PySource('components_library.processors',
'components_library/processors/simple_switchable_processor.py')
PySource('components_library.processors',
'components_library/processors/switchable_processor.py')
PySource('components_library.resources',
'components_library/resources/__init__.py')
PySource('components_library.resources',
'components_library/resources/downloader.py')
PySource('components_library.resources',
'components_library/resources/resource.py')
PySource('components_library.utils', 'components_library/utils/__init__.py')
PySource('components_library.utils', 'components_library/utils/filelock.py')
PySource('components_library.utils', 'components_library/utils/override.py')
PySource('components_library.utils', 'components_library/utils/requires.py')
PySource('', 'importer.py')
PySource('m5', 'm5/__init__.py')
PySource('m5', 'm5/SimObject.py')