diff --git a/CMakeLists.txt b/CMakeLists.txt index 7104bccc..caa7a4f3 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -64,7 +64,6 @@ option(DRAMSYS_BUILD_TESTS "Build DRAMSys unit tests" OFF) option(DRAMSYS_BUILD_BENCHMARKS "Build DRAMSys benchmarks" OFF) option(DRAMSYS_BUILD_CLI "Build DRAMSys Command Line Tool" ${PROJECT_IS_TOP_LEVEL}) option(DRAMSYS_BUILD_TRACE_ANALYZER "Build DRAMSys Trace Analyzer" OFF) -option(DRAMSYS_WITH_DRAMPOWER "Build with DRAMPower support enabled." OFF) # Use sane defaults for FetchContent: # In case we are the top-level project, get everything by default @@ -125,11 +124,12 @@ if (DRAMSYS_USE_FETCH_CONTENT) set_target_properties(systemc PROPERTIES SYSTEM TRUE) endif() - if (DRAMSYS_WITH_DRAMPOWER AND DRAMSYS_USE_FETCH_CONTENT_INTERNAL) + if (DRAMSYS_USE_FETCH_CONTENT_INTERNAL) FetchContent_Declare( DRAMPower GIT_REPOSITORY https://github.com/tukl-msd/DRAMPower GIT_TAG 9e64a1b + OVERRIDE_FIND_PACKAGE ) FetchContent_MakeAvailable(DRAMPower) @@ -140,6 +140,14 @@ find_package(SystemCLanguage REQUIRED) find_package(SQLite3 REQUIRED) find_package(nlohmann_json REQUIRED) +find_package(DRAMPower) + +if (DRAMPower_FOUND) + message(STATUS "Building with DRAMPower") +else() + message(STATUS "Building without DRAMPower") +endif() + ############################################### ### Source Directory ### ############################################### diff --git a/CMakePresets.json b/CMakePresets.json index 0f947767..2802550b 100644 --- a/CMakePresets.json +++ b/CMakePresets.json @@ -22,8 +22,8 @@ "inherits": "cmake-pedantic", "cacheVariables": { "DRAMSYS_BUILD_TESTS": "ON", - "DRAMSYS_BUILD_TRACE_ANALYZER": "ON", - "DRAMSYS_WITH_DRAMPOWER": "ON" + "DRAMSYS_BUILD_BENCHMARKS": "ON", + "DRAMSYS_BUILD_TRACE_ANALYZER": "ON" } }, { @@ -70,6 +70,19 @@ "CMAKE_BUILD_TYPE": "Debug", "CMAKE_CXX_FLAGS": "-Wall -Wextra -Wpedantic -fdiagnostics-color=always" } + }, + { + "name": "dev-local", + "binaryDir": "${sourceDir}/build", + "inherits": [ + "dev-mode", + "std" + ], + "cacheVariables": { + "CMAKE_BUILD_TYPE": "Debug", + "CMAKE_CXX_FLAGS": "-Wall -Wextra -Wpedantic -fdiagnostics-color=always", + "DRAMSYS_USE_FETCH_CONTENT": "OFF" + } } ] } diff --git a/NOTICE b/NOTICE index 8ae8283e..a5b52ad5 100644 --- a/NOTICE +++ b/NOTICE @@ -22,7 +22,7 @@ This software uses the following third-party libraries: License: Qwt License (based on LGPL-2.1) License URL: https://qwt.sourceforge.io/qwtlicense.html -6. Google Test v1.12.1 +6. Google Test v1.15.2 License: BSD-3-Clause License URL: https://github.com/google/googletest/blob/main/LICENSE diff --git a/benches/CMakeLists.txt b/benches/CMakeLists.txt index 30c8d1ba..f623e570 100644 --- a/benches/CMakeLists.txt +++ b/benches/CMakeLists.txt @@ -35,14 +35,23 @@ ### benches_dramsys ### ############################################### -set(BENCHMARK_ENABLE_TESTING OFF) +option(DRAMSYS_USE_FETCH_CONTENT_GOOGLE_BENCHMARK "Enable FetchContent to provide Google Benchmark" ${DRAMSYS_USE_FETCH_CONTENT}) -FetchContent_Declare( - benchmark - URL https://github.com/google/benchmark/archive/refs/tags/v1.8.3.zip -) +if (DRAMSYS_USE_FETCH_CONTENT) + if (DRAMSYS_USE_FETCH_CONTENT_GOOGLE_BENCHMARK) + set(BENCHMARK_ENABLE_TESTING OFF) -FetchContent_MakeAvailable(benchmark) + FetchContent_Declare( + benchmark + URL https://github.com/google/benchmark/archive/refs/tags/v1.8.3.zip + OVERRIDE_FIND_PACKAGE + ) + + FetchContent_MakeAvailable(benchmark) + endif() +endif() + +find_package(benchmark REQUIRED) add_executable(benches_dramsys main.cpp @@ -51,11 +60,10 @@ add_executable(benches_dramsys ) target_include_directories(benches_dramsys PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}) -set_target_properties(benches_dramsys PROPERTIES FOLDER benches) + target_link_libraries(benches_dramsys - DRAMSys::util DRAMSys::libdramsys DRAMSys::simulator SystemC::systemc - benchmark + benchmark::benchmark ) diff --git a/src/libdramsys/CMakeLists.txt b/src/libdramsys/CMakeLists.txt index 27ab89d2..7f93d37e 100644 --- a/src/libdramsys/CMakeLists.txt +++ b/src/libdramsys/CMakeLists.txt @@ -96,18 +96,20 @@ add_library(libdramsys target_include_directories(libdramsys PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}) +target_compile_features(libdramsys PUBLIC cxx_std_17) + +target_compile_definitions(libdramsys + PUBLIC + $<$:DRAMPOWER> +) + target_link_libraries(libdramsys PUBLIC SystemC::systemc DRAMSys::config SQLite::SQLite3 + $<$:DRAMPower> + ) -target_compile_features(libdramsys PUBLIC cxx_std_17) - -if (DRAMSYS_WITH_DRAMPOWER) - target_link_libraries(libdramsys PUBLIC DRAMPower) - target_compile_definitions(libdramsys PUBLIC DRAMPOWER) -endif () - add_library(DRAMSys::libdramsys ALIAS libdramsys) diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index 8d262fd1..d3740dba 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -2,14 +2,13 @@ include(GoogleTest) set(DRAMSYS_TEST_RESOURCES_DIR "${CMAKE_CURRENT_SOURCE_DIR}/resources") -option(DRAMSYS_USE_FETCH_CONTENT_GTEST "Enable FetchContent to provide gtest" ${DRAMSYS_USE_FETCH_CONTENT}) +option(DRAMSYS_USE_FETCH_CONTENT_GOOGLE_TEST "Enable FetchContent to provide Google Test" ${DRAMSYS_USE_FETCH_CONTENT}) if (DRAMSYS_USE_FETCH_CONTENT) - if (DRAMSYS_USE_FETCH_CONTENT_GTEST) + if (DRAMSYS_USE_FETCH_CONTENT_GOOGLE_TEST) FetchContent_Declare( GTest - GIT_REPOSITORY https://github.com/google/googletest - GIT_TAG release-1.12.1 + URL https://github.com/google/googletest/releases/download/v1.15.2/googletest-1.15.2.tar.gz OVERRIDE_FIND_PACKAGE )