@@ -59,6 +59,8 @@ project( ${CORE_RUNTIME_TARGET} )
59
59
list ( APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR} /cmake_modules" )
60
60
include ( utils )
61
61
include ( hsa_common )
62
+ # Set default libdir to be "lib" for ROCm, distros will override this anyway:
63
+ set (CMAKE_INSTALL_LIBDIR "lib" CACHE STRING "Library install directory" )
62
64
include ( GNUInstallDirs )
63
65
64
66
## Expose static library option
@@ -117,7 +119,7 @@ endif()
117
119
target_include_directories ( ${CORE_RUNTIME_TARGET}
118
120
PUBLIC
119
121
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR} /inc>
120
- $<INSTALL_INTERFACE:include /hsa>
122
+ $<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR} /hsa>
121
123
PRIVATE
122
124
${CMAKE_CURRENT_SOURCE_DIR}
123
125
${CMAKE_CURRENT_SOURCE_DIR} /libamdhsacode )
@@ -191,10 +193,10 @@ set ( SRCS core/util/lnx/os_linux.cpp
191
193
192
194
target_sources ( ${CORE_RUNTIME_TARGET} PRIVATE ${SRCS} )
193
195
194
- if ( NOT DEFINED IMAGE_SUPPORT )
196
+ if ( NOT DEFINED IMAGE_SUPPORT AND CMAKE_SYSTEM_PROCESSOR MATCHES "i?86|x86_64|amd64|AMD64" )
195
197
set ( IMAGE_SUPPORT ON )
196
198
endif ()
197
- set ( IMAGE_SUPPORT ${IMAGE_SUPPORT} CACHE BOOL "Build with image support (default: ON)." )
199
+ set ( IMAGE_SUPPORT ${IMAGE_SUPPORT} CACHE BOOL "Build with image support (default: ON for x86, OFF elsewise )." )
198
200
199
201
## Optional image module defintions.
200
202
if (${IMAGE_SUPPORT} )
@@ -203,8 +205,6 @@ if(${IMAGE_SUPPORT})
203
205
HSA_IMAGE_SUPPORT
204
206
UNIX_OS
205
207
LINUX
206
- __AMD64__
207
- __x86_64__
208
208
AMD_INTERNAL_BUILD
209
209
BRAHMA_BUILD=1 )
210
210
@@ -275,7 +275,7 @@ if( NOT ${BUILD_SHARED_LIBS} )
275
275
276
276
## Bind to source build target interface but not its link requirements.
277
277
target_include_directories ( ${CORE_RUNTIME_NAME} INTERFACE $<TARGET_PROPERTY:${CORE_RUNTIME_NAME} ::${CORE_RUNTIME_TARGET} ,INTERFACE_INCLUDE_DIRECTORIES > )
278
- target_link_libraries ( ${CORE_RUNTIME_NAME} INTERFACE -Wl,$<INSTALL_PREFIX >/lib /cmake/${CORE_RUNTIME_NAME} /${LNKSCR}
278
+ target_link_libraries ( ${CORE_RUNTIME_NAME} INTERFACE -Wl,$<INSTALL_PREFIX >/${CMAKE_INSTALL_LIBDIR} /cmake/${CORE_RUNTIME_NAME} /${LNKSCR}
279
279
-Wl,--whole-archive $<TARGET_FILE:${CORE_RUNTIME_NAME} ::${CORE_RUNTIME_TARGET} > -Wl,--no -whole-archive)
280
280
add_dependencies ( ${CORE_RUNTIME_NAME} ${CORE_RUNTIME_TARGET} )
281
281
@@ -287,25 +287,23 @@ if( NOT ${BUILD_SHARED_LIBS} )
287
287
endif ()
288
288
289
289
## Create symlinks for legacy packaging and install
290
- add_custom_target ( hsa_include_link ALL WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} COMMAND ${CMAKE_COMMAND} -E create_symlink ../../include /hsa hsa_include_link )
290
+ add_custom_target ( hsa_include_link ALL WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} COMMAND ${CMAKE_COMMAND} -E create_symlink ../../${CMAKE_INSTALL_INCLUDEDIR} /hsa hsa_include_link )
291
291
if ( ${BUILD_SHARED_LIBS} )
292
- add_custom_target ( hsa_lib_link ALL WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} COMMAND ${CMAKE_COMMAND} -E create_symlink ../../lib /${CORE_RUNTIME_LIBRARY} .so ${CORE_RUNTIME_LIBRARY} -link.so )
293
- add_custom_target ( hsa_lib_link2 ALL WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} COMMAND ${CMAKE_COMMAND} -E create_symlink ../../lib /${CORE_RUNTIME_LIBRARY} .so.${VERSION_MAJOR} ${CORE_RUNTIME_LIBRARY} -link.so.${VERSION_MAJOR} )
292
+ add_custom_target ( hsa_lib_link ALL WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} COMMAND ${CMAKE_COMMAND} -E create_symlink ../../${CMAKE_INSTALL_LIBDIR} /${CORE_RUNTIME_LIBRARY} .so ${CORE_RUNTIME_LIBRARY} -link.so )
293
+ add_custom_target ( hsa_lib_link2 ALL WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} COMMAND ${CMAKE_COMMAND} -E create_symlink ../../${CMAKE_INSTALL_LIBDIR} /${CORE_RUNTIME_LIBRARY} .so.${VERSION_MAJOR} ${CORE_RUNTIME_LIBRARY} -link.so.${VERSION_MAJOR} )
294
294
endif ()
295
295
296
296
## Set install information
297
297
# Installs binaries and exports the library usage data to ${HSAKMT_TARGET}Targets
298
- # TODO: Fix me for flat directory layout. Should be ${CMAKE_INSTALL_LIBDIR}
299
298
install ( TARGETS ${CORE_RUNTIME_TARGET} EXPORT ${CORE_RUNTIME_NAME} Targets
300
- ARCHIVE DESTINATION lib COMPONENT binary
301
- LIBRARY DESTINATION lib COMPONENT binary )
299
+ ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT binary
300
+ LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT binary )
302
301
303
302
# Install license
304
303
install ( FILES ${CMAKE_CURRENT_SOURCE_DIR} /LICENSE.md DESTINATION ${CMAKE_INSTALL_DOCDIR} COMPONENT binary )
305
304
306
305
# Install public headers
307
- # TODO: Fix me for flat directory layout. Should be ${CMAKE_INSTALL_INCLUDEDIR}
308
- install ( DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} /inc/ DESTINATION include /hsa COMPONENT dev )
306
+ install ( DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} /inc/ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} /hsa COMPONENT dev )
309
307
310
308
# Legacy symlink - not packaged (CPack is bugged until ~3.18, see https://gitlab.kitware.com/cmake/cmake/-/merge_requests/4637)
311
309
install ( FILES ${CMAKE_CURRENT_BINARY_DIR} /hsa_include_link DESTINATION hsa/include PERMISSIONS OWNER_WRITE OWNER_READ RENAME hsa )
@@ -318,11 +316,10 @@ endif ()
318
316
319
317
## Configure and install package config file
320
318
# Record our usage data for clients find_package calls.
321
- # TODO: Fix me for flat directory layout. Should be ${CMAKE_INSTALL_LIBDIR}
322
319
install ( EXPORT ${CORE_RUNTIME_NAME} Targets
323
320
FILE ${CORE_RUNTIME_NAME} Targets.cmake
324
321
NAMESPACE ${CORE_RUNTIME_NAME} ::
325
- DESTINATION lib /cmake/${CORE_RUNTIME_NAME}
322
+ DESTINATION ${CMAKE_INSTALL_LIBDIR} /cmake/${CORE_RUNTIME_NAME}
326
323
COMPONENT dev)
327
324
328
325
# Adds the target alias hsa-runtime64::hsa-runtime64 to the local cmake cache.
@@ -336,28 +333,26 @@ add_library( ${CORE_RUNTIME_NAME}::${CORE_RUNTIME_NAME} ALIAS ${CORE_RUNTIME_NAM
336
333
# Create cmake configuration files
337
334
include (CMakePackageConfigHelpers)
338
335
339
- # TODO: Fix me for flat directory layout. Should be ${CMAKE_INSTALL_LIBDIR}
340
336
configure_package_config_file(${CORE_RUNTIME_NAME} -config.cmake.in
341
337
${CORE_RUNTIME_NAME} -config.cmake
342
- INSTALL_DESTINATION lib /cmake/${CORE_RUNTIME_NAME} )
338
+ INSTALL_DESTINATION ${CMAKE_INSTALL_LIBDIR} /cmake/${CORE_RUNTIME_NAME} )
343
339
344
340
write_basic_package_version_file(${CORE_RUNTIME_NAME} -config-version .cmake
345
341
VERSION ${SO_VERSION_STRING} COMPATIBILITY AnyNewerVersion )
346
342
347
- # TODO: Fix me for flat directory layout. Should be ${CMAKE_INSTALL_LIBDIR}
348
343
install (FILES ${CMAKE_CURRENT_BINARY_DIR} /${CORE_RUNTIME_NAME} -config.cmake ${CMAKE_CURRENT_BINARY_DIR} /${CORE_RUNTIME_NAME} -config-version .cmake
349
- DESTINATION lib /cmake/${CORE_RUNTIME_NAME}
344
+ DESTINATION ${CMAKE_INSTALL_LIBDIR} /cmake/${CORE_RUNTIME_NAME}
350
345
COMPONENT dev)
351
346
352
347
# Install build files needed only when using a static build.
353
348
if ( NOT ${BUILD_SHARED_LIBS} )
354
349
# libelf find package module
355
350
install (FILES ${CMAKE_CURRENT_SOURCE_DIR} /cmake_modules/FindLibElf.cmake ${CMAKE_CURRENT_SOURCE_DIR} /cmake_modules/COPYING-CMAKE-SCRIPTS
356
- DESTINATION lib /cmake/${CORE_RUNTIME_NAME}
351
+ DESTINATION ${CMAKE_INSTALL_LIBDIR} /cmake/${CORE_RUNTIME_NAME}
357
352
COMPONENT dev)
358
353
# Linker script (defines function aliases)
359
354
install (FILES ${CMAKE_CURRENT_SOURCE_DIR} /${LNKSCR}
360
- DESTINATION lib /cmake/${CORE_RUNTIME_NAME}
355
+ DESTINATION ${CMAKE_INSTALL_LIBDIR} /cmake/${CORE_RUNTIME_NAME}
361
356
COMPONENT dev)
362
357
endif ()
363
358
0 commit comments