Minor improvements on package handling
This commit is contained in:
@@ -64,7 +64,6 @@ option(DRAMSYS_BUILD_TESTS "Build DRAMSys unit tests" OFF)
|
|||||||
option(DRAMSYS_BUILD_BENCHMARKS "Build DRAMSys benchmarks" 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_CLI "Build DRAMSys Command Line Tool" ${PROJECT_IS_TOP_LEVEL})
|
||||||
option(DRAMSYS_BUILD_TRACE_ANALYZER "Build DRAMSys Trace Analyzer" OFF)
|
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:
|
# Use sane defaults for FetchContent:
|
||||||
# In case we are the top-level project, get everything by default
|
# 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)
|
set_target_properties(systemc PROPERTIES SYSTEM TRUE)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if (DRAMSYS_WITH_DRAMPOWER AND DRAMSYS_USE_FETCH_CONTENT_INTERNAL)
|
if (DRAMSYS_USE_FETCH_CONTENT_INTERNAL)
|
||||||
FetchContent_Declare(
|
FetchContent_Declare(
|
||||||
DRAMPower
|
DRAMPower
|
||||||
GIT_REPOSITORY https://github.com/tukl-msd/DRAMPower
|
GIT_REPOSITORY https://github.com/tukl-msd/DRAMPower
|
||||||
GIT_TAG 9e64a1b
|
GIT_TAG 9e64a1b
|
||||||
|
OVERRIDE_FIND_PACKAGE
|
||||||
)
|
)
|
||||||
|
|
||||||
FetchContent_MakeAvailable(DRAMPower)
|
FetchContent_MakeAvailable(DRAMPower)
|
||||||
@@ -140,6 +140,14 @@ find_package(SystemCLanguage REQUIRED)
|
|||||||
find_package(SQLite3 REQUIRED)
|
find_package(SQLite3 REQUIRED)
|
||||||
find_package(nlohmann_json 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 ###
|
### Source Directory ###
|
||||||
###############################################
|
###############################################
|
||||||
|
|||||||
@@ -22,8 +22,8 @@
|
|||||||
"inherits": "cmake-pedantic",
|
"inherits": "cmake-pedantic",
|
||||||
"cacheVariables": {
|
"cacheVariables": {
|
||||||
"DRAMSYS_BUILD_TESTS": "ON",
|
"DRAMSYS_BUILD_TESTS": "ON",
|
||||||
"DRAMSYS_BUILD_TRACE_ANALYZER": "ON",
|
"DRAMSYS_BUILD_BENCHMARKS": "ON",
|
||||||
"DRAMSYS_WITH_DRAMPOWER": "ON"
|
"DRAMSYS_BUILD_TRACE_ANALYZER": "ON"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -70,6 +70,19 @@
|
|||||||
"CMAKE_BUILD_TYPE": "Debug",
|
"CMAKE_BUILD_TYPE": "Debug",
|
||||||
"CMAKE_CXX_FLAGS": "-Wall -Wextra -Wpedantic -fdiagnostics-color=always"
|
"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"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|||||||
2
NOTICE
2
NOTICE
@@ -22,7 +22,7 @@ This software uses the following third-party libraries:
|
|||||||
License: Qwt License (based on LGPL-2.1)
|
License: Qwt License (based on LGPL-2.1)
|
||||||
License URL: https://qwt.sourceforge.io/qwtlicense.html
|
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: BSD-3-Clause
|
||||||
License URL: https://github.com/google/googletest/blob/main/LICENSE
|
License URL: https://github.com/google/googletest/blob/main/LICENSE
|
||||||
|
|
||||||
|
|||||||
@@ -35,14 +35,23 @@
|
|||||||
### benches_dramsys ###
|
### 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(
|
if (DRAMSYS_USE_FETCH_CONTENT)
|
||||||
benchmark
|
if (DRAMSYS_USE_FETCH_CONTENT_GOOGLE_BENCHMARK)
|
||||||
URL https://github.com/google/benchmark/archive/refs/tags/v1.8.3.zip
|
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
|
add_executable(benches_dramsys
|
||||||
main.cpp
|
main.cpp
|
||||||
@@ -51,11 +60,10 @@ add_executable(benches_dramsys
|
|||||||
)
|
)
|
||||||
|
|
||||||
target_include_directories(benches_dramsys PUBLIC ${CMAKE_CURRENT_SOURCE_DIR})
|
target_include_directories(benches_dramsys PUBLIC ${CMAKE_CURRENT_SOURCE_DIR})
|
||||||
set_target_properties(benches_dramsys PROPERTIES FOLDER benches)
|
|
||||||
target_link_libraries(benches_dramsys
|
target_link_libraries(benches_dramsys
|
||||||
DRAMSys::util
|
|
||||||
DRAMSys::libdramsys
|
DRAMSys::libdramsys
|
||||||
DRAMSys::simulator
|
DRAMSys::simulator
|
||||||
SystemC::systemc
|
SystemC::systemc
|
||||||
benchmark
|
benchmark::benchmark
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -96,18 +96,20 @@ add_library(libdramsys
|
|||||||
|
|
||||||
target_include_directories(libdramsys PUBLIC ${CMAKE_CURRENT_SOURCE_DIR})
|
target_include_directories(libdramsys PUBLIC ${CMAKE_CURRENT_SOURCE_DIR})
|
||||||
|
|
||||||
|
target_compile_features(libdramsys PUBLIC cxx_std_17)
|
||||||
|
|
||||||
|
target_compile_definitions(libdramsys
|
||||||
|
PUBLIC
|
||||||
|
$<$<BOOL:${DRAMPower_FOUND}>:DRAMPOWER>
|
||||||
|
)
|
||||||
|
|
||||||
target_link_libraries(libdramsys
|
target_link_libraries(libdramsys
|
||||||
PUBLIC
|
PUBLIC
|
||||||
SystemC::systemc
|
SystemC::systemc
|
||||||
DRAMSys::config
|
DRAMSys::config
|
||||||
SQLite::SQLite3
|
SQLite::SQLite3
|
||||||
|
$<$<TARGET_EXISTS:DRAMPower>: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)
|
add_library(DRAMSys::libdramsys ALIAS libdramsys)
|
||||||
|
|||||||
@@ -2,14 +2,13 @@ include(GoogleTest)
|
|||||||
|
|
||||||
set(DRAMSYS_TEST_RESOURCES_DIR "${CMAKE_CURRENT_SOURCE_DIR}/resources")
|
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)
|
||||||
if (DRAMSYS_USE_FETCH_CONTENT_GTEST)
|
if (DRAMSYS_USE_FETCH_CONTENT_GOOGLE_TEST)
|
||||||
FetchContent_Declare(
|
FetchContent_Declare(
|
||||||
GTest
|
GTest
|
||||||
GIT_REPOSITORY https://github.com/google/googletest
|
URL https://github.com/google/googletest/releases/download/v1.15.2/googletest-1.15.2.tar.gz
|
||||||
GIT_TAG release-1.12.1
|
|
||||||
OVERRIDE_FIND_PACKAGE
|
OVERRIDE_FIND_PACKAGE
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user