diff --git a/projects/rocm-smi-lib/CMakeLists.txt b/projects/rocm-smi-lib/CMakeLists.txt index dfb1e92b33..efaaca9436 100755 --- a/projects/rocm-smi-lib/CMakeLists.txt +++ b/projects/rocm-smi-lib/CMakeLists.txt @@ -5,6 +5,8 @@ cmake_minimum_required(VERSION 3.5.0) set(AMD_SMI_LIBS_TARGET "amd_smi_libraries") +set ( BUILD_SHARED_LIBS ON CACHE BOOL "Build shared library (.so) or not.") + ## Set default module path if not already set if(NOT DEFINED CMAKE_MODULE_PATH) set(CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake_modules/") diff --git a/projects/rocm-smi-lib/oam/CMakeLists.txt b/projects/rocm-smi-lib/oam/CMakeLists.txt index 96b4e6fb16..3968823272 100644 --- a/projects/rocm-smi-lib/oam/CMakeLists.txt +++ b/projects/rocm-smi-lib/oam/CMakeLists.txt @@ -70,7 +70,7 @@ set(OAM_EXAMPLE_EXE "oam_ex") add_executable(${OAM_EXAMPLE_EXE} "example/oam_example.c") target_include_directories(${OAM_EXAMPLE_EXE} PRIVATE ${OAM_INC_LIST}) target_link_libraries(${OAM_EXAMPLE_EXE} ${OAM_TARGET}) -add_library(${OAM_TARGET} SHARED ${CMN_SRC_LIST} ${OAM_SRC_LIST} +add_library(${OAM_TARGET} ${CMN_SRC_LIST} ${OAM_SRC_LIST} ${CMN_INC_LIST} ${OAM_INC_LIST}) target_link_libraries(${OAM_TARGET} pthread rt) target_include_directories(${OAM_TARGET} PRIVATE @@ -84,14 +84,18 @@ set_property(TARGET ${OAM_TARGET} PROPERTY ## If the library is a release, strip the target library if ("${CMAKE_BUILD_TYPE}" STREQUAL Release) - add_custom_command( - TARGET ${OAM_TARGET} - POST_BUILD COMMAND ${CMAKE_STRIP} lib${OAM_TARGET}.so) + if(${BUILD_SHARED_LIBS}) #striping only for .so + add_custom_command( + TARGET ${OAM_TARGET} + POST_BUILD COMMAND ${CMAKE_STRIP} lib${OAM_TARGET}.so) + endif() endif () ## Add the install directives for the runtime library. install(TARGETS ${OAM_TARGET} - LIBRARY DESTINATION ${OAM_NAME}/lib COMPONENT ${OAM_COMPONENT}) + LIBRARY DESTINATION ${OAM_NAME}/lib + ARCHIVE DESTINATION ${OAM_NAME}/lib + COMPONENT ${OAM_COMPONENT}) install(FILES ${COMMON_SRC_ROOT}/oam/include/oam/oam_mapi.h ${COMMON_SRC_ROOT}/oam/include/oam/amd_oam.h DESTINATION oam/include/oam) diff --git a/projects/rocm-smi-lib/rocm_smi/CMakeLists.txt b/projects/rocm-smi-lib/rocm_smi/CMakeLists.txt index 79b53c182d..f71fe8eb65 100755 --- a/projects/rocm-smi-lib/rocm_smi/CMakeLists.txt +++ b/projects/rocm-smi-lib/rocm_smi/CMakeLists.txt @@ -74,7 +74,7 @@ set(SMI_EXAMPLE_EXE "rocm_smi_ex") add_executable(${SMI_EXAMPLE_EXE} "example/rocm_smi_example.cc") target_link_libraries(${SMI_EXAMPLE_EXE} ${ROCM_SMI_TARGET}) -add_library(${ROCM_SMI_TARGET} SHARED ${CMN_SRC_LIST} ${SMI_SRC_LIST} +add_library(${ROCM_SMI_TARGET} ${CMN_SRC_LIST} ${SMI_SRC_LIST} ${CMN_INC_LIST} ${SMI_INC_LIST}) target_link_libraries(${ROCM_SMI_TARGET} pthread rt) target_include_directories(${ROCM_SMI_TARGET} PRIVATE @@ -88,29 +88,35 @@ set_property(TARGET ${ROCM_SMI_TARGET} PROPERTY ## If the library is a release, strip the target library if ("${CMAKE_BUILD_TYPE}" STREQUAL Release) + if(${BUILD_SHARED_LIBS}) #stripping only for .so add_custom_command( TARGET ${ROCM_SMI_TARGET} POST_BUILD COMMAND ${CMAKE_STRIP} lib${ROCM_SMI_TARGET}.so) + endif() endif () ## Add symlinks from top level ROCm lib dir to rocm-smi lib so files -add_custom_target ( so-link ALL WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} +if(${BUILD_SHARED_LIBS}) + add_custom_target ( so-link ALL WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} COMMAND ${CMAKE_COMMAND} -E create_symlink ../${ROCM_SMI}/lib/${ROCM_SMI_LIB_NAME}.so so-link ) -add_custom_target ( so-major-link ALL WORKING_DIRECTORY + add_custom_target ( so-major-link ALL WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} COMMAND ${CMAKE_COMMAND} -E create_symlink ../${ROCM_SMI}/lib/${ROCM_SMI_LIB_NAME}.so.${VERSION_MAJOR} so-major-link ) -install ( FILES ${CMAKE_CURRENT_BINARY_DIR}/so-link DESTINATION lib RENAME + install ( FILES ${CMAKE_CURRENT_BINARY_DIR}/so-link DESTINATION lib RENAME ${ROCM_SMI_LIB_NAME}.so ) -install ( FILES ${CMAKE_CURRENT_BINARY_DIR}/so-major-link DESTINATION lib + install ( FILES ${CMAKE_CURRENT_BINARY_DIR}/so-major-link DESTINATION lib RENAME ${ROCM_SMI_LIB_NAME}.so.${VERSION_MAJOR} ) - +endif() ## Add the install directives for the runtime library. install(TARGETS ${ROCM_SMI_TARGET} - LIBRARY DESTINATION ${ROCM_SMI}/lib COMPONENT ${ROCM_SMI_COMPONENT}) + LIBRARY DESTINATION ${ROCM_SMI}/lib + ARCHIVE DESTINATION ${ROCM_SMI}/lib + COMPONENT ${ROCM_SMI_COMPONENT}) + install(FILES ${COMMON_SRC_ROOT}/include/rocm_smi/rocm_smi.h DESTINATION rocm_smi/include/rocm_smi) install(FILES ${COMMON_SRC_ROOT}/include/rocm_smi/kfd_ioctl.h