diff --git a/CMakeLists.txt b/CMakeLists.txt index 10430f3..3656ff3 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -5,9 +5,6 @@ if (POLICY CMP0048) set(PROJ_VERSION VERSION 1.5.0) endif() -# FIXME: Remove following line after enabling COMGR by default -set(USE_COMGR_LIBRARY "no" CACHE STRING "Do not enable COMGR by default") - # Optionally, build OpenCL Runtime with ccache. set(ROCM_CCACHE_BUILD OFF CACHE BOOL "Set to ON for a ccache enabled build") if (ROCM_CCACHE_BUILD) @@ -21,78 +18,31 @@ endif() # if (ROCM_CCACHE_BUILD) project(rocm-opencl) +include (GNUInstallDirs) + set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_CURRENT_SOURCE_DIR}/cmake" "${CMAKE_CURRENT_SOURCE_DIR}/cmake/modules") set(OPENCL_ICD_LOADER_HEADERS_DIR "${CMAKE_CURRENT_SOURCE_DIR}/api/opencl/khronos/headers/opencl2.2" CACHE PATH "") find_package(ROCT REQUIRED) find_package(ROCR REQUIRED) -# FIXME: Remove following if block after enabling COMGR by default -if (${USE_COMGR_LIBRARY} STREQUAL "no") - set(LLVM_INCLUDE_TESTS OFF CACHE BOOL "") - set(LLVM_BUILD_TOOLS OFF CACHE BOOL "") - set(LLVM_INSTALL_TOOLCHAIN_ONLY ON CACHE BOOL "") - set(LLVM_TARGETS_TO_BUILD "AMDGPU" CACHE STRING "") - set(CLANG_ENABLE_ARCMT OFF CACHE BOOL "") - set(CLANG_ENABLE_STATIC_ANALYZER OFF CACHE BOOL "") - - # override default option value in library and driver - set(GENERIC_IS_ZERO ON CACHE BOOL ON FORCE) - - add_subdirectory(compiler/llvm EXCLUDE_FROM_ALL) - - find_package(LLVM REQUIRED CONFIG PATHS ${CMAKE_BINARY_DIR}/compiler/llvm NO_DEFAULT_PATH) - - list(APPEND CMAKE_MODULE_PATH "${LLVM_CMAKE_DIR}") - include(AddLLVM) - - add_definitions(${LLVM_DEFINITIONS}) - # TODO: add find_package for Clang and lld, and also use LLVM/Clang variables got from their config - include_directories(${CMAKE_SOURCE_DIR}/compiler/llvm/tools/clang/include) - include_directories(${CMAKE_BINARY_DIR}/compiler/llvm/tools/clang/include) - include_directories(${CMAKE_SOURCE_DIR}/compiler/llvm/tools/lld/include) - +find_package(LLVM REQUIRED CONFIG PATHS ${LLVM_DIR} "/opt/rocm/llvm" NO_DEFAULT_PATH) +set(USE_COMGR_LIBRARY "yes") +find_package(amd_comgr REQUIRED CONFIG) +add_definitions(-DUSE_COMGR_LIBRARY) +foreach(DIR ${LLVM_INCLUDE_DIRS}) + include_directories("${DIR}") + include_directories("${DIR}/clang") + include_directories("${DIR}/lld") # TODO: move AMDGPU.h header to include folder - include_directories(${CMAKE_SOURCE_DIR}/compiler/llvm/lib/Target/AMDGPU) - include_directories(${CMAKE_BINARY_DIR}/compiler/llvm/lib/Target/AMDGPU) - - set(BUILD_HC_LIB OFF CACHE BOOL "") - set(ROCM_DEVICELIB_INCLUDE_TESTS OFF CACHE BOOL "") - set(AMDGCN_TARGETS_LIB_LIST "AMDGCN_LIB_TARGETS") - set(AMDGCN_TARGETS_LIB_DEPS "AMDGCN_DEP_TARGETS") - set(AMDGPU_TARGET_TRIPLE "amdgcn-amd-amdhsa") - add_subdirectory(library/amdgcn EXCLUDE_FROM_ALL) - add_subdirectory(compiler/driver EXCLUDE_FROM_ALL) - - install(PROGRAMS $ $ - DESTINATION bin/x86_64 - COMPONENT DEV) - - foreach(AMDGCN_LIB_TARGET ${AMDGCN_LIB_TARGETS}) - get_target_property(lib_file_name ${AMDGCN_LIB_TARGET} ARCHIVE_OUTPUT_NAME) - get_target_property(lib_file_path ${AMDGCN_LIB_TARGET} ARCHIVE_OUTPUT_DIRECTORY) - install(FILES ${lib_file_path}/${lib_file_name}.amdgcn.bc - DESTINATION lib/x86_64/bitcode - COMPONENT DEV) - endforeach() -endif() # if (${USE_COMGR_LIBRARY} STREQUAL "no") - -if(${USE_COMGR_LIBRARY} MATCHES "yes") - set(COMGR_DYN_DLL "yes") - add_definitions(-DCOMGR_DYN_DLL) - add_definitions(-DUSE_COMGR_LIBRARY) - if( ${BUILD_HIP} MATCHES "yes") - add_subdirectory(api/hip) - endif() -endif() + include_directories("${DIR}/llvm/Target/AMDGPU") +endforeach() add_subdirectory(api/opencl/amdocl) add_subdirectory(compiler/lib/loaders/elf/utils/libelf) add_subdirectory(runtime) -add_subdirectory(tools/clinfo) set(BUILD_SHARED_LIBS "Build shared libs" ON) -add_subdirectory(api/opencl/khronos/icd) ###--- Packaging ------------------------------------------------------------### @@ -101,31 +51,9 @@ include(ROCMSetupVersion) rocm_setup_version( VERSION "2.0.0" ) # MAIN package -install(PROGRAMS $ - DESTINATION bin/x86_64 - COMPONENT MAIN) install(PROGRAMS $ DESTINATION lib/x86_64 COMPONENT MAIN) -install(PROGRAMS $ - DESTINATION lib/x86_64 - COMPONENT MAIN) -install(PROGRAMS $ - DESTINATION lib/x86_64 - COMPONENT MAIN) - -# DEV package -install(DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/api/opencl/khronos/headers/opencl2.2/CL" - DESTINATION include - COMPONENT DEV - USE_SOURCE_PERMISSIONS - PATTERN cl_d3d10.h EXCLUDE - PATTERN cl_d3d11.h EXCLUDE - PATTERN cl_dx9_media_sharing.h EXCLUDE - PATTERN cl_egl.h EXCLUDE) -install(PROGRAMS $ - DESTINATION lib/x86_64 - COMPONENT DEV) # Generic CPACK variables set(CPACK_GENERATOR "DEB;RPM" CACHE STRING "Default packaging generators")