From c37ea19ffb039c4f211a9c61ea909c79c09501c0 Mon Sep 17 00:00:00 2001 From: Lukas Steiner Date: Thu, 24 Sep 2020 13:32:08 +0200 Subject: [PATCH] Cleanup of cmake. --- .gitlab-ci.yml | 3 +-- DRAMSys/CMakeLists.txt | 17 ++++++++++++++--- DRAMSys/library/CMakeLists.txt | 27 +++++++++++---------------- DRAMSys/simulator/CMakeLists.txt | 20 ++++++-------------- 4 files changed, 32 insertions(+), 35 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 980e0033..66000685 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -17,8 +17,7 @@ build: - rm -rf build - mkdir -p build - cd build - - export COVERAGE=true - - cmake ../DRAMSys + - cmake -DDRAMSYS_COVERAGE_CHECK=ON ../DRAMSys - make -j 16 - find . -name "*.o" -type f -delete - rm -rf ${CI_PROJECT_DIR}/coverage diff --git a/DRAMSys/CMakeLists.txt b/DRAMSys/CMakeLists.txt index 67c39384..2904122d 100644 --- a/DRAMSys/CMakeLists.txt +++ b/DRAMSys/CMakeLists.txt @@ -37,16 +37,27 @@ cmake_minimum_required(VERSION 3.10) # Project Name: project(DRAMSys) +option(DRAMSYS_COVERAGE_CHECK "Coverage check of DRAMSys") +option(DRAMSYS_WITH_GEM5 "Build DRAMSys with gem5 coupling") + # Configuration: set(CMAKE_CXX_STANDARD 11 CACHE STRING "C++ Version") set(DCMAKE_SH "CMAKE_SH-NOTFOUND" CACHE STRING "Ignore sh.exe error on Windows") +if(DRAMSYS_COVERAGE_CHECK) + message("== Coverage check enabled") + set(GCC_COVERAGE_COMPILE_FLAGS "-g -O0 -coverage -fprofile-arcs -ftest-coverage") + set(GCC_COVERAGE_LINK_FLAGS "-coverage -lgcov") + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${GCC_COVERAGE_COMPILE_FLAGS}") + set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} ${GCC_COVERAGE_LINK_FLAGS}") +endif() + # Add DRAMSysLibrary: add_subdirectory(library) # Add TraceAnalyzer: if(EXISTS ${CMAKE_CURRENT_LIST_DIR}/traceAnalyzer) - message("---- Trace Analyzer included") + message("== Trace Analyzer included") add_subdirectory(traceAnalyzer) endif() @@ -54,8 +65,8 @@ endif() add_subdirectory(simulator) # Add DRAMSysgem5 -if(DEFINED ENV{GEM5}) - message("---- gem5 coupling included") +if(DEFINED ENV{GEM5} AND DRAMSYS_WITH_GEM5) + message("== gem5 coupling included") add_subdirectory(gem5) endif() diff --git a/DRAMSys/library/CMakeLists.txt b/DRAMSys/library/CMakeLists.txt index 67bf3d92..d1636c6e 100644 --- a/DRAMSys/library/CMakeLists.txt +++ b/DRAMSys/library/CMakeLists.txt @@ -41,16 +41,6 @@ project(DRAMSysLibrary) set(CMAKE_CXX_STANDARD 11 CACHE STRING "C++ Version") set(DCMAKE_SH="CMAKE_SH-NOTFOUND") -if(DEFINED ENV{COVERAGE}) - if($ENV{COVERAGE} STREQUAL "true") - message("---- Coverage check enabled") - set(GCC_COVERAGE_COMPILE_FLAGS "-g -O0 -coverage -fprofile-arcs -ftest-coverage") - set(GCC_COVERAGE_LINK_FLAGS "-coverage -lgcov") - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${GCC_COVERAGE_COMPILE_FLAGS}") - set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} ${GCC_COVERAGE_LINK_FLAGS}") - endif() -endif() - # Add DRAMPower: add_subdirectory(src/common/third_party/DRAMPower) @@ -63,16 +53,16 @@ if(DEFINED ENV{SYSTEMC_HOME}) NAMES systemc SnpsVP PATHS $ENV{SYSTEMC_HOME}/lib-$ENV{SYSTEMC_TARGET_ARCH}/ $ENV{SYSTEMC_HOME}/lib-linux64/ $ENV{SYSTEMC_HOME}/libso-$ENV{COWARE_CXX_COMPILER}/ ) - message("---- Building with external SystemC located in $ENV{SYSTEMC_HOME}") + message("== Building with external SystemC located in $ENV{SYSTEMC_HOME}") else() set(BUILD_SHARED_LIBS OFF CACHE BOOL "Build Shared Libs") add_subdirectory(src/common/third_party/systemc) set(SYSTEMC_LIBRARY systemc) - message("---- Building with SystemC submodule") + message("== Building with SystemC submodule") endif() if(EXISTS ${CMAKE_CURRENT_LIST_DIR}/src/common/third_party/sqlite-amalgamation) - message("---- Database recording included") + message("== Database recording included") # Add sqlite3 Dependency: set(BUILD_ENABLE_RTREE ON CACHE BOOL "Enable R-Tree Feature") set(BUILD_ENABLE_RTREE ON) @@ -281,8 +271,8 @@ add_library(DRAMSysLibrary ) if(DEFINED ENV{LIBTHREED_ICE_HOME}) - message("---- Thermal simulation available") - add_definitions(-DTHERMALSIM) + message("== Thermal simulation available") + target_compile_definitions(DRAMSysLibrary PRIVATE THERMALSIM) target_include_directories(DRAMSysLibrary PRIVATE $ENV{LIBTHREED_ICE_HOME}/include/ ) @@ -305,9 +295,14 @@ endif() target_include_directories(DRAMSysLibrary PUBLIC src/common/third_party/DRAMPower/src/ PUBLIC $ENV{SYSTEMC_HOME}/include/ - PUBLIC $ENV{SYSTEMC_HOME}/include/tlm/ ) +if(EXISTS $ENV{SYSTEMC_HOME}/include/tlm/) + target_include_directories(DRAMSysLibrary + PUBLIC $ENV{SYSTEMC_HOME}/include/tlm/ + ) +endif() + target_link_libraries(DRAMSysLibrary PUBLIC ${SYSTEMC_LIBRARY} PRIVATE DRAMPower diff --git a/DRAMSys/simulator/CMakeLists.txt b/DRAMSys/simulator/CMakeLists.txt index 934cfecf..6dc49e0b 100644 --- a/DRAMSys/simulator/CMakeLists.txt +++ b/DRAMSys/simulator/CMakeLists.txt @@ -41,19 +41,6 @@ project(DRAMSysSimulator) set(CMAKE_CXX_STANDARD 11 CACHE STRING "C++ Version") set(DCMAKE_SH="CMAKE_SH-NOTFOUND") -if(DEFINED ENV{COVERAGE}) - if($ENV{COVERAGE} STREQUAL "true") - set(GCC_COVERAGE_COMPILE_FLAGS "-g -O0 -coverage -fprofile-arcs -ftest-coverage") - set(GCC_COVERAGE_LINK_FLAGS "-coverage -lgcov") - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${GCC_COVERAGE_COMPILE_FLAGS}") - set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} ${GCC_COVERAGE_LINK_FLAGS}") - endif() -endif() - -if(EXISTS ${CMAKE_CURRENT_LIST_DIR}/../library/src/simulation/DRAMSysRecordable.cpp) - add_definitions(-DRECORDING) -endif() - add_executable(DRAMSys main.cpp ExampleInitiator.h @@ -62,7 +49,12 @@ add_executable(DRAMSys TraceGenerator.h TracePlayer.cpp TracePlayerListener.h - TraceSetup.cpp) + TraceSetup.cpp +) + +if(EXISTS ${CMAKE_CURRENT_LIST_DIR}/../library/src/simulation/DRAMSysRecordable.cpp) + target_compile_definitions(DRAMSys PRIVATE RECORDING) +endif() target_include_directories(DRAMSys PUBLIC ../library/src/