diff --git a/CMakeLists.txt b/CMakeLists.txt index 504b0ec..9b4f15f 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,4 +1,5 @@ -cmake_minimum_required(VERSION 3.18) +# 3.18.3 is needed for a MSVC + NVCC + C++17 bugfix. +cmake_minimum_required(VERSION 3.18.3) project(nvbench CUDA) @@ -27,9 +28,5 @@ CPMAddPackage( GIT_TAG 7.1.3 ) -# Why does CMake make it so difficult to enable cuda C++17 with interface -# properties...Resorting to brute force to unblock. -set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -std=c++17") - add_subdirectory(nvbench) add_subdirectory(testing) diff --git a/nvbench/CMakeLists.txt b/nvbench/CMakeLists.txt index 9a9489c..421e09c 100644 --- a/nvbench/CMakeLists.txt +++ b/nvbench/CMakeLists.txt @@ -17,11 +17,10 @@ set(srcs detail/state_generator.cu ) -# TODO shared may be a good idea to reduce compilation overhead for large -# benchmark libraries. add_library(nvbench STATIC ${srcs}) -# TODO generator expression for installed paths + +# TODO generator expressions for installed paths target_include_directories(nvbench PUBLIC "${nvbench_SOURCE_DIR}") target_link_libraries(nvbench PRIVATE fmt::fmt) target_link_libraries(nvbench INTERFACE benchmark_main) -set_target_properties(nvbench PROPERTIES COMPILE_FEATURES cuda_std_17) +target_compile_features(nvbench PUBLIC cuda_std_17) diff --git a/nvbench/benchmark_manager.cu b/nvbench/benchmark_manager.cu index 2864568..4a0e096 100644 --- a/nvbench/benchmark_manager.cu +++ b/nvbench/benchmark_manager.cu @@ -9,7 +9,7 @@ namespace nvbench { benchmark_manager &benchmark_manager::get() -{ +{ // Karen's function: static benchmark_manager the_manager; return the_manager; }