mirror of
https://github.com/NVIDIA/nvbench.git
synced 2026-04-30 03:31:13 +00:00
NVBench now supports not installing itself
This commit is contained in:
@@ -39,6 +39,7 @@ option(NVBench_ENABLE_DEVICE_TESTING
|
|||||||
OFF
|
OFF
|
||||||
)
|
)
|
||||||
option(NVBench_ENABLE_EXAMPLES "Build NVBench examples." OFF)
|
option(NVBench_ENABLE_EXAMPLES "Build NVBench examples." OFF)
|
||||||
|
option(NVBench_ENABLE_INSTALL_RULES "Install NVBench." ${NVBench_TOPLEVEL_PROJECT})
|
||||||
|
|
||||||
include(cmake/NVBenchConfigTarget.cmake)
|
include(cmake/NVBenchConfigTarget.cmake)
|
||||||
include(cmake/NVBenchDependentDlls.cmake)
|
include(cmake/NVBenchDependentDlls.cmake)
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
# fmtlib/fmt
|
# fmtlib/fmt
|
||||||
include("${rapids-cmake-dir}/cpm/fmt.cmake")
|
include("${rapids-cmake-dir}/cpm/fmt.cmake")
|
||||||
|
|
||||||
if(NOT BUILD_SHARED_LIBS)
|
if(NOT BUILD_SHARED_LIBS AND NVBench_ENABLE_INSTALL_RULES)
|
||||||
set(export_set_details BUILD_EXPORT_SET nvbench-targets
|
set(export_set_details BUILD_EXPORT_SET nvbench-targets
|
||||||
INSTALL_EXPORT_SET nvbench-targets)
|
INSTALL_EXPORT_SET nvbench-targets)
|
||||||
endif()
|
endif()
|
||||||
|
|||||||
@@ -1,37 +1,39 @@
|
|||||||
macro(nvbench_generate_exports)
|
macro(nvbench_generate_exports)
|
||||||
set(nvbench_build_export_code_block "")
|
if(NVBench_ENABLE_INSTALL_RULES)
|
||||||
set(nvbench_install_export_code_block "")
|
set(nvbench_build_export_code_block "")
|
||||||
|
set(nvbench_install_export_code_block "")
|
||||||
|
|
||||||
if (NVBench_ENABLE_NVML)
|
if (NVBench_ENABLE_NVML)
|
||||||
string(APPEND nvbench_build_export_code_block
|
string(APPEND nvbench_build_export_code_block
|
||||||
"include(\"${NVBench_SOURCE_DIR}/cmake/NVBenchNVML.cmake\")\n"
|
"include(\"${NVBench_SOURCE_DIR}/cmake/NVBenchNVML.cmake\")\n"
|
||||||
|
)
|
||||||
|
string(APPEND nvbench_install_export_code_block
|
||||||
|
"include(\"\${CMAKE_CURRENT_LIST_DIR}/NVBenchNVML.cmake\")\n"
|
||||||
|
)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
if (NVBench_ENABLE_CUPTI)
|
||||||
|
string(APPEND nvbench_build_export_code_block
|
||||||
|
"include(\"${NVBench_SOURCE_DIR}/cmake/NVBenchCUPTI.cmake\")\n"
|
||||||
|
)
|
||||||
|
string(APPEND nvbench_install_export_code_block
|
||||||
|
"include(\"\${CMAKE_CURRENT_LIST_DIR}/NVBenchCUPTI.cmake\")\n"
|
||||||
|
)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
rapids_export(BUILD NVBench
|
||||||
|
EXPORT_SET nvbench-targets
|
||||||
|
NAMESPACE "nvbench::"
|
||||||
|
GLOBAL_TARGETS nvbench main ctl internal_build_interface
|
||||||
|
LANGUAGES CUDA CXX
|
||||||
|
FINAL_CODE_BLOCK nvbench_build_export_code_block
|
||||||
)
|
)
|
||||||
string(APPEND nvbench_install_export_code_block
|
rapids_export(INSTALL NVBench
|
||||||
"include(\"\${CMAKE_CURRENT_LIST_DIR}/NVBenchNVML.cmake\")\n"
|
EXPORT_SET nvbench-targets
|
||||||
|
NAMESPACE "nvbench::"
|
||||||
|
GLOBAL_TARGETS nvbench main ctl internal_build_interface
|
||||||
|
LANGUAGES CUDA CXX
|
||||||
|
FINAL_CODE_BLOCK nvbench_install_export_code_block
|
||||||
)
|
)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if (NVBench_ENABLE_CUPTI)
|
|
||||||
string(APPEND nvbench_build_export_code_block
|
|
||||||
"include(\"${NVBench_SOURCE_DIR}/cmake/NVBenchCUPTI.cmake\")\n"
|
|
||||||
)
|
|
||||||
string(APPEND nvbench_install_export_code_block
|
|
||||||
"include(\"\${CMAKE_CURRENT_LIST_DIR}/NVBenchCUPTI.cmake\")\n"
|
|
||||||
)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
rapids_export(BUILD NVBench
|
|
||||||
EXPORT_SET nvbench-targets
|
|
||||||
NAMESPACE "nvbench::"
|
|
||||||
GLOBAL_TARGETS nvbench main ctl internal_build_interface
|
|
||||||
LANGUAGES CUDA CXX
|
|
||||||
FINAL_CODE_BLOCK nvbench_build_export_code_block
|
|
||||||
)
|
|
||||||
rapids_export(INSTALL NVBench
|
|
||||||
EXPORT_SET nvbench-targets
|
|
||||||
NAMESPACE "nvbench::"
|
|
||||||
GLOBAL_TARGETS nvbench main ctl internal_build_interface
|
|
||||||
LANGUAGES CUDA CXX
|
|
||||||
FINAL_CODE_BLOCK nvbench_install_export_code_block
|
|
||||||
)
|
|
||||||
endmacro()
|
endmacro()
|
||||||
|
|||||||
@@ -1,61 +1,69 @@
|
|||||||
include(GNUInstallDirs)
|
|
||||||
rapids_cmake_install_lib_dir(NVBench_INSTALL_LIB_DIR)
|
|
||||||
|
|
||||||
# in-source public headers:
|
if(NVBench_ENABLE_INSTALL_RULES)
|
||||||
install(DIRECTORY "${NVBench_SOURCE_DIR}/nvbench"
|
|
||||||
TYPE INCLUDE
|
|
||||||
FILES_MATCHING
|
|
||||||
PATTERN "*.cuh"
|
|
||||||
PATTERN "internal" EXCLUDE
|
|
||||||
)
|
|
||||||
|
|
||||||
# generated headers from build dir:
|
include(GNUInstallDirs)
|
||||||
install(
|
rapids_cmake_install_lib_dir(NVBench_INSTALL_LIB_DIR)
|
||||||
FILES
|
|
||||||
"${NVBench_BINARY_DIR}/nvbench/config.cuh"
|
|
||||||
DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}/nvbench"
|
|
||||||
)
|
|
||||||
install(
|
|
||||||
FILES
|
|
||||||
"${NVBench_BINARY_DIR}/nvbench/detail/version.cuh"
|
|
||||||
"${NVBench_BINARY_DIR}/nvbench/detail/git_revision.cuh"
|
|
||||||
DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}/nvbench/detail"
|
|
||||||
)
|
|
||||||
|
|
||||||
#
|
# in-source public headers:
|
||||||
# Install CMake files needed by consumers to locate dependencies:
|
install(DIRECTORY "${NVBench_SOURCE_DIR}/nvbench"
|
||||||
#
|
TYPE INCLUDE
|
||||||
|
FILES_MATCHING
|
||||||
|
PATTERN "*.cuh"
|
||||||
|
PATTERN "internal" EXCLUDE
|
||||||
|
)
|
||||||
|
|
||||||
# Borrowing this logic from rapids_cmake's export logic to make sure these end
|
# generated headers from build dir:
|
||||||
# up in the same location as nvbench-config.cmake:
|
|
||||||
rapids_cmake_install_lib_dir(config_install_location)
|
|
||||||
set(config_install_location "${config_install_location}/cmake/nvbench")
|
|
||||||
|
|
||||||
if (NVBench_ENABLE_NVML)
|
|
||||||
install(
|
install(
|
||||||
FILES
|
FILES
|
||||||
"${NVBench_SOURCE_DIR}/cmake/NVBenchNVML.cmake"
|
"${NVBench_BINARY_DIR}/nvbench/config.cuh"
|
||||||
DESTINATION "${config_install_location}"
|
DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}/nvbench"
|
||||||
)
|
)
|
||||||
endif()
|
|
||||||
|
|
||||||
if (NVBench_ENABLE_CUPTI)
|
|
||||||
install(
|
install(
|
||||||
FILES
|
FILES
|
||||||
"${NVBench_SOURCE_DIR}/cmake/NVBenchCUPTI.cmake"
|
"${NVBench_BINARY_DIR}/nvbench/detail/version.cuh"
|
||||||
DESTINATION "${config_install_location}"
|
"${NVBench_BINARY_DIR}/nvbench/detail/git_revision.cuh"
|
||||||
|
DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}/nvbench/detail"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
#
|
||||||
|
# Install CMake files needed by consumers to locate dependencies:
|
||||||
|
#
|
||||||
|
|
||||||
|
# Borrowing this logic from rapids_cmake's export logic to make sure these end
|
||||||
|
# up in the same location as nvbench-config.cmake:
|
||||||
|
rapids_cmake_install_lib_dir(config_install_location)
|
||||||
|
set(config_install_location "${config_install_location}/cmake/nvbench")
|
||||||
|
|
||||||
|
if (NVBench_ENABLE_NVML)
|
||||||
|
install(
|
||||||
|
FILES
|
||||||
|
"${NVBench_SOURCE_DIR}/cmake/NVBenchNVML.cmake"
|
||||||
|
DESTINATION "${config_install_location}"
|
||||||
|
)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
if (NVBench_ENABLE_CUPTI)
|
||||||
|
install(
|
||||||
|
FILES
|
||||||
|
"${NVBench_SOURCE_DIR}/cmake/NVBenchCUPTI.cmake"
|
||||||
|
DESTINATION "${config_install_location}"
|
||||||
|
)
|
||||||
|
endif()
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
# Call with a list of library targets to generate install rules:
|
# Call with a list of library targets to generate install rules:
|
||||||
function(nvbench_install_libraries)
|
function(nvbench_install_libraries)
|
||||||
install(TARGETS ${ARGN}
|
if(NVBench_ENABLE_INSTALL_RULES)
|
||||||
DESTINATION "${NVBench_INSTALL_LIB_DIR}"
|
install(TARGETS ${ARGN}
|
||||||
EXPORT nvbench-targets
|
DESTINATION "${NVBench_INSTALL_LIB_DIR}"
|
||||||
)
|
EXPORT nvbench-targets
|
||||||
|
)
|
||||||
|
endif()
|
||||||
endfunction()
|
endfunction()
|
||||||
|
|
||||||
# Call with a list of executables to generate install rules:
|
# Call with a list of executables to generate install rules:
|
||||||
function(nvbench_install_executables)
|
function(nvbench_install_executables)
|
||||||
install(TARGETS ${ARGN} EXPORT nvbench-targets)
|
if(NVBench_ENABLE_INSTALL_RULES)
|
||||||
|
install(TARGETS ${ARGN} EXPORT nvbench-targets)
|
||||||
|
endif()
|
||||||
endfunction()
|
endfunction()
|
||||||
|
|||||||
Reference in New Issue
Block a user