From 53f4e1eb368d4ce0e2be2d89be36a22386610758 Mon Sep 17 00:00:00 2001 From: Lukas Steiner Date: Fri, 24 Apr 2020 09:33:20 +0200 Subject: [PATCH] Check if gem5 exists. --- DRAMSys/CMakeLists.txt | 4 +++- DRAMSys/gem5/CMakeLists.txt | 39 +++++++++++++++++-------------------- 2 files changed, 21 insertions(+), 22 deletions(-) diff --git a/DRAMSys/CMakeLists.txt b/DRAMSys/CMakeLists.txt index d0180170..e398fff0 100644 --- a/DRAMSys/CMakeLists.txt +++ b/DRAMSys/CMakeLists.txt @@ -54,4 +54,6 @@ add_subdirectory(traceAnalyzer) add_subdirectory(simulator) # Add DRAMSysgem5 -add_subdirectory(gem5) +if(DEFINED ENV{GEM5}) + add_subdirectory(gem5) +endif() diff --git a/DRAMSys/gem5/CMakeLists.txt b/DRAMSys/gem5/CMakeLists.txt index f854c2c1..df177e9c 100644 --- a/DRAMSys/gem5/CMakeLists.txt +++ b/DRAMSys/gem5/CMakeLists.txt @@ -32,34 +32,20 @@ cmake_minimum_required(VERSION 3.10) -# Project Name -project(DRAMSysGem5) +set(GEM5_ARCH ARM) # ARM, X86, ALPHA +set(GEM5_VARIANT opt) # opt, fast # Configuration: set(CMAKE_CXX_STANDARD 11 CACHE STRING "C++ Version") set(DCMAKE_SH="CMAKE_SH-NOTFOUND") -include_directories( - $ENV{GEM5}/build/ARM/ - $ENV{GEM5}/util/tlm/examples/slave_port - $ENV{GEM5}/util/tlm/examples/common - $ENV{GEM5}/util/tlm/src/ - $ENV{GEM5}/util/systemc -) +find_library(GEM5_LIBRARY gem5_${GEM5_VARIANT} PATH $ENV{GEM5}/build/${GEM5_ARCH}/) -link_directories( - $ENV{GEM5}/build/ARM/ -) - -add_executable(DRAMSysGem5 +add_executable(DRAMSys_gem5 main.cpp - $ENV{GEM5}/util/systemc/sc_gem5_control.cc $ENV{GEM5}/util/systemc/sc_logger.cc $ENV{GEM5}/util/systemc/sc_module.cc $ENV{GEM5}/util/systemc/stats.cc - $ENV{GEM5}/util/tlm/examples/common/cli_parser.cc - $ENV{GEM5}/util/tlm/examples/common/report_handler.cc - $ENV{GEM5}/util/tlm/src/master_transactor.cc $ENV{GEM5}/util/tlm/src/sc_master_port.cc $ENV{GEM5}/util/tlm/src/sc_slave_port.cc $ENV{GEM5}/util/tlm/src/slave_transactor.cc @@ -67,7 +53,18 @@ add_executable(DRAMSysGem5 $ENV{GEM5}/util/tlm/src/sc_mm.cc $ENV{GEM5}/util/tlm/src/sim_control.cc ) -target_include_directories(DRAMSysGem5 - PUBLIC ../library/src/simulation/ + +target_include_directories(DRAMSys_gem5 + PRIVATE $ENV{GEM5}/build/ARM/ + PRIVATE $ENV{GEM5}/util/tlm/examples/slave_port/ + PRIVATE $ENV{GEM5}/util/tlm/examples/common/ + PRIVATE $ENV{GEM5}/util/tlm/src/ + PRIVATE $ENV{GEM5}/util/systemc/ + PRIVATE ../library/src/simulation/ ) -target_link_libraries(DRAMSysGem5 systemc DRAMSysLibrary gem5_opt) \ No newline at end of file + +target_link_libraries(DRAMSys_gem5 + systemc + DRAMSysLibrary + ${GEM5_LIBRARY} +) \ No newline at end of file