From d53c19cfa5015e006ae4277303cdbf10cb23380c Mon Sep 17 00:00:00 2001 From: Vladislav Sytchenko Date: Fri, 28 May 2021 15:01:41 -0400 Subject: [PATCH] SWDEV-273235 - Cleanup OpenCL installation logic Don't use hardcoded install destinations. CMake will decide where things should be installed based on platform. Change-Id: Ifcf956181d3efb32d4ce6191a89c1ea225d0e8cc --- opencl/CMakeLists.txt | 15 ++------------- opencl/amdocl/CMakeLists.txt | 6 ++++++ opencl/packaging/rocm-opencl.txt | 2 +- opencl/tools/clinfo/CMakeLists.txt | 6 +++--- opencl/tools/cltrace/CMakeLists.txt | 11 +++++++---- 5 files changed, 19 insertions(+), 21 deletions(-) diff --git a/opencl/CMakeLists.txt b/opencl/CMakeLists.txt index 597741b25d..c5131abb48 100644 --- a/opencl/CMakeLists.txt +++ b/opencl/CMakeLists.txt @@ -7,6 +7,8 @@ endif() project(opencl) +include(GNUInstallDirs) + option(BUILD_TESTS "Enable building OpenCL tests" ON) if(NOT WIN32) @@ -58,19 +60,6 @@ endif() ###--- Packaging ------------------------------------------------------------### # MAIN package -if(TARGET clinfo) -install(PROGRAMS $ - DESTINATION bin - COMPONENT MAIN) -endif() -if(TARGET cltrace) -install(PROGRAMS $ - DESTINATION lib - COMPONENT MAIN) -endif() -install(PROGRAMS $ - DESTINATION lib - COMPONENT MAIN) if(TARGET OpenCL) install(PROGRAMS $ DESTINATION lib diff --git a/opencl/amdocl/CMakeLists.txt b/opencl/amdocl/CMakeLists.txt index 3934e7a353..0294d73eac 100644 --- a/opencl/amdocl/CMakeLists.txt +++ b/opencl/amdocl/CMakeLists.txt @@ -102,3 +102,9 @@ if(BUILD_SHARED_LIBS) endif() target_link_libraries(amdocl PUBLIC rocclr) + +INSTALL(TARGETS amdocl + COMPONENT MAIN + RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} + LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} + ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}) diff --git a/opencl/packaging/rocm-opencl.txt b/opencl/packaging/rocm-opencl.txt index 19feeb9fa7..005b7b865b 100644 --- a/opencl/packaging/rocm-opencl.txt +++ b/opencl/packaging/rocm-opencl.txt @@ -1,7 +1,7 @@ cmake_minimum_required(VERSION 3.5.1) project(rocm-opencl) -install(DIRECTORY @PROJECT_BINARY_DIR@/bin DESTINATION . USE_SOURCE_PERMISSIONS) +install(FILES @PROJECT_BINARY_DIR@/tools/clinfo/clinfo DESTINATION bin) install(FILES @PROJECT_BINARY_DIR@/amdocl/libamdocl64.so DESTINATION lib) install(FILES @PROJECT_BINARY_DIR@/khronos/icd/libOpenCL.so DESTINATION lib) install(FILES @PROJECT_BINARY_DIR@/khronos/icd/libOpenCL.so.@OPENCL_LIB_VERSION_MAJOR@ DESTINATION lib) diff --git a/opencl/tools/clinfo/CMakeLists.txt b/opencl/tools/clinfo/CMakeLists.txt index 81d9707d44..8f19f11e95 100644 --- a/opencl/tools/clinfo/CMakeLists.txt +++ b/opencl/tools/clinfo/CMakeLists.txt @@ -1,6 +1,6 @@ - -set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin) - add_executable(clinfo clinfo.cpp) target_link_libraries(clinfo OpenCL amdocl) + +INSTALL(TARGETS clinfo + RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}) diff --git a/opencl/tools/cltrace/CMakeLists.txt b/opencl/tools/cltrace/CMakeLists.txt index e0d1e497cf..fa89669636 100644 --- a/opencl/tools/cltrace/CMakeLists.txt +++ b/opencl/tools/cltrace/CMakeLists.txt @@ -1,11 +1,14 @@ -set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib) - add_library(cltrace SHARED cltrace.cpp) if(WIN32) - target_sources(amdocl PRIVATE cltrace.def) + target_sources(cltrace PRIVATE cltrace.def) else() - set_target_properties(amdocl PROPERTIES LINK_DEPENDS "${CMAKE_CURRENT_LIST_DIR}/cltrace.map") + set_target_properties(cltrace PROPERTIES LINK_DEPENDS "${CMAKE_CURRENT_LIST_DIR}/cltrace.map") endif() target_link_libraries(cltrace OpenCL amdocl) + +INSTALL(TARGETS cltrace + RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} + LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} + ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR})