Adding "BUILD_SHARED_LIBS" flag to cmake files

JIRA : SWDEV-234471
Changing cmake for dynamically creation of shared / archive libs depending upon the parameret to cmake

Adapted comments.

Change-Id: Ice5925719b8c307c32310b252f61cbc211d1af27


[ROCm/amdsmi commit: d325613220]
Cette révision appartient à :
Ashutosh Mishra
2020-07-07 16:38:25 +05:30
révisé par Ashutosh Mishra
Parent 77fc313a36
révision 2e7d7b3238
3 fichiers modifiés avec 24 ajouts et 12 suppressions
+2
Voir le fichier
@@ -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/")
+9 -5
Voir le fichier
@@ -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)
+13 -7
Voir le fichier
@@ -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