diff --git a/projects/clr/opencl/CMakeLists.txt b/projects/clr/opencl/CMakeLists.txt index 76847d37a7..597741b25d 100644 --- a/projects/clr/opencl/CMakeLists.txt +++ b/projects/clr/opencl/CMakeLists.txt @@ -1,100 +1,50 @@ cmake_minimum_required(VERSION 3.5.1) if (POLICY CMP0048) - cmake_policy(SET CMP0048 NEW) - set(PROJ_VERSION VERSION 1.5.0) + cmake_policy(SET CMP0048 NEW) + set(PROJ_VERSION VERSION 1.5.0) endif() project(opencl) -set(CMAKE_CXX_STANDARD 14) -set(CMAKE_CXX_STANDARD_REQUIRED ON) -set(CMAKE_CXX_EXTENSIONS OFF) +option(BUILD_TESTS "Enable building OpenCL tests" ON) -#example command: -# cmake -DCMAKE_PREFIX_PATH=/path/to/ROCclr/build/or/install .. - -set(OPENCL_ICD_LOADER_HEADERS_DIR "${CMAKE_CURRENT_SOURCE_DIR}/khronos/headers/opencl2.2" CACHE PATH "") -option(BUILD_SHARED_LIBS "Build shared libs" ON) +if(NOT WIN32) + set(OPENCL_ICD_LOADER_HEADERS_DIR "${CMAKE_CURRENT_LIST_DIR}/khronos/headers/opencl2.2" CACHE PATH "") + add_subdirectory(khronos/icd) +endif() +add_subdirectory(amdocl) +if(NOT WIN32) + add_subdirectory(tools/clinfo) + add_subdirectory(tools/cltrace) +if(BUILD_TESTS) + add_subdirectory(tests/ocltst) +endif() +endif() #set a name for icd file set(OPENCL_AMD_ICD_FILE "amdocl64.icd") if (DEFINED ROCM_PATCH_VERSION) - set(OPENCL_AMD_ICD_FILE "amdocl64_${ROCM_PATCH_VERSION}.icd") -endif() - -# FIXME: Handling legacy custom boolean matching "yes" or "no" -if(DEFINED USE_COMGR_LIBRARY) - if(${USE_COMGR_LIBRARY} MATCHES "yes") - set(USE_COMGR_LIBRARY ON) - if(DEFINED LINK_COMGR_STATIC) - if(${LINK_COMGR_STATIC} MATCHES "yes") - set(LINK_COMGR_STATIC ON) - elseif(${LINK_COMGR_STATIC} MATCHES "no") - set(LINK_COMGR_STATIC OFF) - endif() - endif() - elseif(${USE_COMGR_LIBRARY} MATCHES "no") - set(USE_COMGR_LIBRARY OFF) - endif() -endif() - -option(USE_COMGR_LIBRARY "Use comgr library" ON) -option(LINK_COMGR_STATIC "Link comgr static library" OFF) -option(BUILD_TESTS "Enable building OpenCL tests" ON) - -set(THREADS_PREFER_PTHREAD_FLAG ON) -find_package(Threads REQUIRED) - -MESSAGE(STATUS "LINK_COMGR_STATIC :${LINK_COMGR_STATIC}") - -if(USE_COMGR_LIBRARY) - add_definitions(-DUSE_COMGR_LIBRARY) - if(NOT LINK_COMGR_STATIC) - add_definitions(-DCOMGR_DYN_DLL) - endif() - find_package(amd_comgr REQUIRED CONFIG - PATHS - /opt/rocm/ - PATH_SUFFIXES - cmake/amd_comgr - lib/cmake/amd_comgr - ) - MESSAGE(STATUS "Code Object Manager found at ${amd_comgr_DIR}.") - -endif() - - -find_package(ROCclr REQUIRED CONFIG - PATHS - ${ROCclr_DIR} - ${LIBROCclr_STATIC_DIR}) - -add_subdirectory(khronos/icd) -add_subdirectory(amdocl) -add_subdirectory(tools/clinfo) -add_subdirectory(tools/cltrace) -if(BUILD_TESTS) - add_subdirectory(tests/ocltst) -endif() - -if(USE_COMGR_LIBRARY) - include_directories("$") + set(OPENCL_AMD_ICD_FILE "amdocl64_${ROCM_PATCH_VERSION}.icd") endif() +if(NOT WIN32) # get date information based on UTC # use the last two digits of year + week number + day in the week as OPENCL_VERSION_GITDATE # use the commit date, instead of build date # add xargs to remove strange trailing newline character execute_process(COMMAND git show -s --format=@%ct - COMMAND xargs - COMMAND date -f - --utc +%y%U%w - WORKING_DIRECTORY ${PROJECT_SOURCE_DIR} - OUTPUT_VARIABLE OPENCL_VERSION_GITDATE - OUTPUT_STRIP_TRAILING_WHITESPACE) + COMMAND xargs + COMMAND date -f - --utc +%y%U%w + WORKING_DIRECTORY ${PROJECT_SOURCE_DIR} + OUTPUT_VARIABLE OPENCL_VERSION_GITDATE + OUTPUT_STRIP_TRAILING_WHITESPACE) +endif() +if(TARGET OpenCL) get_target_property(OPENCL_LIB_VERSION_MAJOR OpenCL SOVERSION) get_target_property(OPENCL_LIB_VERSION_STRING OpenCL VERSION) +endif() find_package(ROCM QUIET CONFIG PATHS /opt/rocm) @@ -108,21 +58,27 @@ endif() ###--- Packaging ------------------------------------------------------------### # MAIN package +if(TARGET clinfo) install(PROGRAMS $ DESTINATION bin COMPONENT MAIN) +endif() +if(TARGET cltrace) install(PROGRAMS $ DESTINATION lib COMPONENT MAIN) -install(PROGRAMS $ +endif() +install(PROGRAMS $ DESTINATION lib COMPONENT MAIN) +if(TARGET OpenCL) install(PROGRAMS $ DESTINATION lib COMPONENT MAIN) install(PROGRAMS $ DESTINATION lib COMPONENT MAIN) +endif() # DEV package install(DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/khronos/headers/opencl2.2/CL" @@ -133,19 +89,22 @@ install(DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/khronos/headers/opencl2.2/CL" PATTERN cl_d3d11.h EXCLUDE PATTERN cl_dx9_media_sharing.h EXCLUDE PATTERN cl_egl.h EXCLUDE) +if(TARGET OpenCL) install(PROGRAMS $ DESTINATION lib COMPONENT DEV) +endif() ############################# # Packaging steps ############################# +if(NOT WIN32) set(CPACK_PACKAGING_INSTALL_PREFIX "/opt/rocm/opencl" CACHE PATH "Package Installation path for OpenCL") #ROCM_PATH is needed to create symlink of libraries -if (NOT DEFINED ROCM_PATH ) - string(REPLACE "/opencl" "" ROCM_PATH ${CPACK_PACKAGING_INSTALL_PREFIX}) -endif () +if(NOT DEFINED ROCM_PATH) + string(REPLACE "/opencl" "" ROCM_PATH ${CPACK_PACKAGING_INSTALL_PREFIX}) +endif() message (STATUS "ROCM Installation path(ROCM_PATH): ${ROCM_PATH}") # Package: rocm-opencl @@ -156,35 +115,34 @@ configure_file(packaging/rocm-opencl.prerm ${BUILD_DIR}/prerm @ONLY) configure_file(packaging/rocm-opencl.rpm_post ${BUILD_DIR}/rpm_post @ONLY) configure_file(packaging/rocm-opencl.rpm_postun ${BUILD_DIR}/rpm_postun @ONLY) add_custom_target(pkg_rocm_opencl COMMAND ${CMAKE_COMMAND} . - COMMAND rm -rf *.deb *.rpm *.tar.gz - COMMAND make package - COMMAND cp *.deb ${PROJECT_BINARY_DIR} - COMMAND cp *.rpm ${PROJECT_BINARY_DIR} - WORKING_DIRECTORY ${BUILD_DIR} - DEPENDS amdocl64 OpenCL) + COMMAND rm -rf *.deb *.rpm *.tar.gz + COMMAND make package + COMMAND cp *.deb ${PROJECT_BINARY_DIR} + COMMAND cp *.rpm ${PROJECT_BINARY_DIR} + WORKING_DIRECTORY ${BUILD_DIR} + DEPENDS amdocl OpenCL) # Package: rocm-opencl-dev set(BUILD_DIR ${CMAKE_CURRENT_BINARY_DIR}/packages/rocm-opencl-dev) configure_file(packaging/rocm-opencl-dev.txt ${BUILD_DIR}/CMakeLists.txt @ONLY) add_custom_target(pkg_rocm_opencl_dev COMMAND ${CMAKE_COMMAND} . - COMMAND rm -rf *.deb *.rpm *.tar.gz - COMMAND make package - COMMAND cp *.deb ${PROJECT_BINARY_DIR} - COMMAND cp *.rpm ${PROJECT_BINARY_DIR} - WORKING_DIRECTORY ${BUILD_DIR} - DEPENDS amdocl64 OpenCL) + COMMAND rm -rf *.deb *.rpm *.tar.gz + COMMAND make package + COMMAND cp *.deb ${PROJECT_BINARY_DIR} + COMMAND cp *.rpm ${PROJECT_BINARY_DIR} + WORKING_DIRECTORY ${BUILD_DIR} + DEPENDS amdocl OpenCL) # Package: all if(POLICY CMP0037) - cmake_policy(PUSH) - cmake_policy(SET CMP0037 OLD) + cmake_policy(PUSH) + cmake_policy(SET CMP0037 OLD) endif() add_custom_target(package - WORKING_DIRECTORY ${PROJECT_BINARY_DIR} - DEPENDS pkg_rocm_opencl pkg_rocm_opencl_dev) + WORKING_DIRECTORY ${PROJECT_BINARY_DIR} + DEPENDS pkg_rocm_opencl pkg_rocm_opencl_dev) if(POLICY CMP0037) - cmake_policy(POP) + cmake_policy(POP) +endif() endif() - - diff --git a/projects/clr/opencl/amdocl/CMakeLists.txt b/projects/clr/opencl/amdocl/CMakeLists.txt index b929b7bf74..3934e7a353 100644 --- a/projects/clr/opencl/amdocl/CMakeLists.txt +++ b/projects/clr/opencl/amdocl/CMakeLists.txt @@ -1,82 +1,104 @@ +# Copyright (c) 2020-2021 Advanced Micro Devices, Inc. All rights reserved. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. -set(CMAKE_POSITION_INDEPENDENT_CODE ON) +cmake_minimum_required(VERSION 3.5) -# Some linker flags, -Wl,--unresolved-symbols=report-all being one of them, requires -shared-libasan if using -fsanitize=address. -# If -Wl,--unresolved-symbols=report-all is removed from CMAKE_SHARED_LINKER_FLAGS, then update this snippet -if(CMAKE_CXX_FLAGS MATCHES "fsanitize=address") - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -shared-libasan") +project(amdocl) + +option(BUILD_SHARED_LIBS "Build the shared library" ON) + +if(ADDRESS_SANITIZER) + set(ASAN_LINKER_FLAGS "-fsanitize=address") + set(ASAN_COMPILER_FLAGS "-fno-omit-frame-pointer -fsanitize=address") + + if(NOT CMAKE_COMPILER_IS_GNUCC) + if(BUILD_SHARED_LIBS) + set(ASAN_LINKER_FLAGS "${ASAN_LINKER_FLAGS} -shared-libsan") + else() + set(ASAN_LINKER_FLAGS "${ASAN_LINKER_FLAGS} -static-libsan") + endif() + endif() + + set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${ASAN_COMPILER_FLAGS}") + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${ASAN_COMPILER_FLAGS}") + set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} ${ASAN_LINKER_FLAGS} -s") + set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} ${ASAN_LINKER_FLAGS}") endif() -set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -Wl,-Bsymbolic -Wl,--unresolved-symbols=report-all -Wl,--version-script=${CMAKE_CURRENT_LIST_DIR}/amdocl.map") +list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_LIST_DIR}/cmake") +find_package(ROCclr) -set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib) - -set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_CURRENT_SOURCE_DIR}/cmake" "${CMAKE_CURRENT_SOURCE_DIR}/cmake/modules") - -add_definitions(-DLINUX -D__x86_64__ -D__AMD64__ -DUNIX_OS -DqLittleEndian -DOPENCL_MAJOR=2 -DOPENCL_MINOR=0 -DCL_TARGET_OPENCL_VERSION=220 -DWITH_AQL -DWITH_ONLINE_COMPILER -DATI_OS_LINUX -DATI_ARCH_X86 -DLITTLEENDIAN_CPU -DATI_BITS_64 -DATI_COMP_GCC -DWITH_HSA_DEVICE -DWITH_TARGET_AMDGCN -DOPENCL_EXPORTS -DCL_USE_DEPRECATED_OPENCL_1_0_APIS -DCL_USE_DEPRECATED_OPENCL_1_1_APIS -DCL_USE_DEPRECATED_OPENCL_1_2_APIS -DCL_USE_DEPRECATED_OPENCL_2_0_APIS -DVEGA10_ONLY=false -DWITH_LIGHTNING_COMPILER) - -if(CMAKE_BUILD_TYPE MATCHES "^Debug$") - add_definitions(-DDEBUG) -endif() - -include_directories(${CMAKE_CURRENT_LIST_DIR}/..) -include_directories(${CMAKE_CURRENT_LIST_DIR}/../khronos) -include_directories(${CMAKE_CURRENT_LIST_DIR}/../khronos/headers) -include_directories(${CMAKE_CURRENT_LIST_DIR}/../khronos/headers/opencl2.2) - -if((CMAKE_CXX_COMPILER_ID STREQUAL "GNU") OR - (CMAKE_${COMPILER}_COMPILER_ID MATCHES "Clang")) - add_definitions( - # Enabling -Wextra or -pedantic will cause - # thousands of warnings. Keep things simple for now. - -Wall - # This one seems impossible to fix for now. - # There are hundreds of instances of unused vars/functions - # throughout the code base. - -Wno-unused-variable - -Wno-unused-function) -endif() - -if(UNIX) - set(ADDITIONAL_SOURCES glibc_functions.cpp) +if(BUILD_SHARED_LIBS) + add_library(amdocl SHARED) + # Windows doesn't have a strip utility, so CMAKE_STRIP won't be set. + if((CMAKE_BUILD_TYPE STREQUAL "Release") AND NOT ("${CMAKE_STRIP}" STREQUAL "")) + add_custom_command(TARGET amdocl POST_BUILD COMMAND ${CMAKE_STRIP} $) + endif() else() - set(ADDITIONAL_SOURCES "") - set(ADDITIONAL_LIBRARIES "") + add_library(amdocl STATIC) endif() -set(amdocl64_src - cl_memobj.cpp - cl_program.cpp - cl_sdi_amd.cpp - cl_device.cpp - cl_debugger_amd.cpp - cl_svm.cpp - cl_sampler.cpp - cl_thread_trace_amd.cpp - cl_counter.cpp - cl_d3d10.cpp - cl_d3d9.cpp +set_target_properties(amdocl PROPERTIES + CXX_STANDARD 14 + CXX_STANDARD_REQUIRED ON + CXX_EXTENSIONS OFF + POSITION_INDEPENDENT_CODE ON) + +if(CMAKE_SIZEOF_VOID_P EQUAL 8) + set_target_properties(amdocl PROPERTIES OUTPUT_NAME "amdocl64") +else() + set_target_properties(amdocl PROPERTIES OUTPUT_NAME "amdocl32") +endif() + +target_sources(amdocl PRIVATE cl_command.cpp - cl_platform_amd.cpp + cl_context.cpp + cl_counter.cpp + cl_d3d9.cpp + cl_d3d10.cpp + cl_d3d11.cpp + cl_debugger_amd.cpp + cl_device.cpp cl_event.cpp - cl_lqdflash_amd.cpp - cl_kernel_info_amd.cpp cl_execute.cpp cl_gl.cpp cl_icd.cpp - cl_pipe.cpp - cl_d3d11.cpp - cl_context.cpp - cl_profile_amd.cpp + cl_kernel_info_amd.cpp + cl_lqdflash_amd.cpp + cl_memobj.cpp cl_p2p_amd.cpp - ${ADDITIONAL_SOURCES} -) + cl_pipe.cpp + cl_platform_amd.cpp + cl_profile_amd.cpp + cl_program.cpp + cl_sampler.cpp + cl_sdi_amd.cpp + cl_svm.cpp + cl_thread_trace_amd.cpp) -add_library(amdocl64 SHARED ${amdocl64_src}) - -# strip lib for release builds -if(CMAKE_BUILD_TYPE STREQUAL "Release") - add_custom_command(TARGET amdocl64 POST_BUILD COMMAND ${CMAKE_STRIP} $) +if(BUILD_SHARED_LIBS) + if(WIN32) + target_sources(amdocl PRIVATE amdocl.def) + else() + set_target_properties(amdocl PROPERTIES LINK_DEPENDS "${CMAKE_CURRENT_LIST_DIR}/amdocl.map") + endif() endif() -target_link_libraries(amdocl64 amdrocclr_static Threads::Threads dl ${ADDITIONAL_LIBRARIES}) +target_link_libraries(amdocl PUBLIC rocclr) diff --git a/projects/clr/opencl/amdocl/cmake/FindROCclr.cmake b/projects/clr/opencl/amdocl/cmake/FindROCclr.cmake new file mode 100644 index 0000000000..7574e0023c --- /dev/null +++ b/projects/clr/opencl/amdocl/cmake/FindROCclr.cmake @@ -0,0 +1,51 @@ +# Copyright (c) 2020-2021 Advanced Micro Devices, Inc. All rights reserved. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +if(ROCCLR_FOUND) + return() +endif() + +find_path(ROCCLR_INCLUDE_DIR top.hpp + HINTS + ${ROCCLR_PATH} + PATHS + # gerrit repo name + ${CMAKE_SOURCE_DIR}/vdi + ${CMAKE_SOURCE_DIR}/../vdi + ${CMAKE_SOURCE_DIR}/../../vdi + # github repo name + ${CMAKE_SOURCE_DIR}/ROCclr + ${CMAKE_SOURCE_DIR}/../ROCclr + ${CMAKE_SOURCE_DIR}/../../ROCclr + # jenkins repo name + ${CMAKE_SOURCE_DIR}/rocclr + ${CMAKE_SOURCE_DIR}/../rocclr + ${CMAKE_SOURCE_DIR}/../../rocclr + PATH_SUFFIXES + include) + +include(FindPackageHandleStandardArgs) +find_package_handle_standard_args(ROCCLR + "\nROCclr not found" + ROCCLR_INCLUDE_DIR) +mark_as_advanced(ROCCLR_INCLUDE_DIR) + +list(APPEND CMAKE_MODULE_PATH "${ROCCLR_INCLUDE_DIR}/../cmake") +include(ROCclr) diff --git a/projects/clr/opencl/amdocl/cmake/modules/FindROCR.cmake b/projects/clr/opencl/amdocl/cmake/modules/FindROCR.cmake deleted file mode 100644 index 2b198dcf8f..0000000000 --- a/projects/clr/opencl/amdocl/cmake/modules/FindROCR.cmake +++ /dev/null @@ -1,16 +0,0 @@ -# Try to find ROCR (Radeon Open Compute Runtime) -# -# Once found, this will define: -# - ROCR_FOUND - ROCR status (found or not found) -# - ROCR_INCLUDES - Required ROCR include directories -# - ROCR_LIBRARIES - Required ROCR libraries -find_path(FIND_ROCR_INCLUDES hsa.h HINTS /opt/rocm/include /opt/rocm/hsa/include PATH_SUFFIXES hsa) -find_library(FIND_ROCR_LIBRARIES hsa-runtime64 HINTS /opt/rocm/lib /opt/rocm/hsa/lib) - -include(FindPackageHandleStandardArgs) -find_package_handle_standard_args(ROCR DEFAULT_MSG - FIND_ROCR_INCLUDES FIND_ROCR_LIBRARIES) -mark_as_advanced(FIND_ROCR_INCLUDES FIND_ROCR_LIBRARIES) - -set(ROCR_INCLUDES ${FIND_ROCR_INCLUDES}) -set(ROCR_LIBRARIES ${FIND_ROCR_LIBRARIES}) diff --git a/projects/clr/opencl/amdocl/cmake/modules/FindROCT.cmake b/projects/clr/opencl/amdocl/cmake/modules/FindROCT.cmake deleted file mode 100644 index 37f08fcff7..0000000000 --- a/projects/clr/opencl/amdocl/cmake/modules/FindROCT.cmake +++ /dev/null @@ -1,16 +0,0 @@ -# Try to find ROCT (Radeon Open Compute Thunk) -# -# Once found, this will define: -# - ROCT_FOUND - ROCT status (found or not found) -# - ROCT_INCLUDES - Required ROCT include directories -# - ROCT_LIBRARIES - Required ROCT libraries -find_path(FIND_ROCT_INCLUDES hsakmt.h HINTS /opt/rocm/include) -find_library(FIND_ROCT_LIBRARIES hsakmt HINTS /opt/rocm/lib) - -include(FindPackageHandleStandardArgs) -find_package_handle_standard_args(ROCT DEFAULT_MSG - FIND_ROCT_INCLUDES FIND_ROCT_LIBRARIES) -mark_as_advanced(FIND_ROCT_INCLUDES FIND_ROCT_LIBRARIES) - -set(ROCT_INCLUDES ${FIND_ROCT_INCLUDES}) -set(ROCT_LIBRARIES ${FIND_ROCT_LIBRARIES}) diff --git a/projects/clr/opencl/amdocl/cmake/modules/bc2h.cmake b/projects/clr/opencl/amdocl/cmake/modules/bc2h.cmake deleted file mode 100644 index 4b88abe87a..0000000000 --- a/projects/clr/opencl/amdocl/cmake/modules/bc2h.cmake +++ /dev/null @@ -1,39 +0,0 @@ -file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/bc2h.c -"#include \n" -"int main(int argc, char **argv){\n" -" FILE *ifp, *ofp;\n" -" int c, i, l;\n" -" if (argc != 4) return 1;\n" -" ifp = fopen(argv[1], \"rb\");\n" -" if (!ifp) return 1;\n" -" i = fseek(ifp, 0, SEEK_END);\n" -" if (i < 0) return 1;\n" -" l = ftell(ifp);\n" -" if (l < 0) return 1;\n" -" i = fseek(ifp, 0, SEEK_SET);\n" -" if (i < 0) return 1;\n" -" ofp = fopen(argv[2], \"wb+\");\n" -" if (!ofp) return 1;\n" -" fprintf(ofp, \"#define %s_size %d\\n\\n\"\n" -" \"#if defined __GNUC__\\n\"\n" -" \"__attribute__((aligned (4096)))\\n\"\n" -" \"#elif defined _MSC_VER\\n\"\n" -" \"__declspec(align(4096))\\n\"\n" -" \"#endif\\n\"\n" -" \"static const unsigned char %s[%s_size+1] = {\",\n" -" argv[3], l,\n" -" argv[3], argv[3]);\n" -" i = 0;\n" -" while ((c = getc(ifp)) != EOF) {\n" -" if (0 == (i&7)) fprintf(ofp, \"\\n \");\n" -" fprintf(ofp, \" 0x%02x,\", c);\n" -" ++i;\n" -" }\n" -" fprintf(ofp, \" 0x00\\n};\\n\\n\");\n" -" fclose(ifp);\n" -" fclose(ofp);\n" -" return 0;\n" -"}\n" -) - -add_executable(bc2h ${CMAKE_CURRENT_BINARY_DIR}/bc2h.c) diff --git a/projects/clr/opencl/packaging/rocm-opencl.txt b/projects/clr/opencl/packaging/rocm-opencl.txt index 6a84ae01a7..19feeb9fa7 100644 --- a/projects/clr/opencl/packaging/rocm-opencl.txt +++ b/projects/clr/opencl/packaging/rocm-opencl.txt @@ -2,7 +2,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@/lib/libamdocl64.so DESTINATION lib) +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) install(FILES @PROJECT_BINARY_DIR@/khronos/icd/libOpenCL.so.@OPENCL_LIB_VERSION_STRING@ DESTINATION lib) diff --git a/projects/clr/opencl/tools/clinfo/CMakeLists.txt b/projects/clr/opencl/tools/clinfo/CMakeLists.txt index ebc1faf084..81d9707d44 100644 --- a/projects/clr/opencl/tools/clinfo/CMakeLists.txt +++ b/projects/clr/opencl/tools/clinfo/CMakeLists.txt @@ -1,10 +1,6 @@ -set (CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin) - -include_directories(${OPENCL_ICD_LOADER_HEADERS_DIR}) - -add_definitions(-DHAVE_CL2_HPP -DCL_TARGET_OPENCL_VERSION=220) +set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin) add_executable(clinfo clinfo.cpp) -target_link_libraries(clinfo OpenCL) +target_link_libraries(clinfo OpenCL amdocl) diff --git a/projects/clr/opencl/tools/cltrace/CMakeLists.txt b/projects/clr/opencl/tools/cltrace/CMakeLists.txt index ec867f2219..e0d1e497cf 100644 --- a/projects/clr/opencl/tools/cltrace/CMakeLists.txt +++ b/projects/clr/opencl/tools/cltrace/CMakeLists.txt @@ -1,21 +1,11 @@ -if(CMAKE_BUILD_TYPE MATCHES "^Debug$") - add_definitions(-DDEBUG) +set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib) + +add_library(cltrace SHARED cltrace.cpp) + +if(WIN32) + target_sources(amdocl PRIVATE cltrace.def) +else() + set_target_properties(amdocl PROPERTIES LINK_DEPENDS "${CMAKE_CURRENT_LIST_DIR}/cltrace.map") endif() -set (CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib) -set(CMAKE_SHARED_LINKER_FLAGS "-Wl,-Bsymbolic -Wl,--unresolved-symbols=report-all -Wl,--version-script=${CMAKE_CURRENT_LIST_DIR}/cltrace.map") - -include_directories(${CMAKE_CURRENT_LIST_DIR}/../../) -include_directories(${CMAKE_CURRENT_LIST_DIR}/../../khronos/headers/opencl2.2) - -# FIXME: Remove this -include_directories(${ROCclr_DIR}/include) - -add_definitions(-DHAVE_CL2_HPP -DCL_TARGET_OPENCL_VERSION=220) - -add_library(cltrace SHARED cltrace.cpp cltrace.def) -target_include_directories(cltrace - PRIVATE - $) - -target_link_libraries(cltrace OpenCL) +target_link_libraries(cltrace OpenCL amdocl) diff --git a/projects/clr/opencl/tools/cltrace/cltrace.def b/projects/clr/opencl/tools/cltrace/cltrace.def index f978481dd8..ac65c8d11f 100644 --- a/projects/clr/opencl/tools/cltrace/cltrace.def +++ b/projects/clr/opencl/tools/cltrace/cltrace.def @@ -1,2 +1,3 @@ EXPORTS vdiAgent_OnLoad +vdiAgent_OnUnload