[please cc me, I am not yet subscribed to this list]

I am packaging tvm for debian and noticed that the project does not appear to 
use SONAMES on the libraries.
 (i.e. it's just libtvm.so not libtvm.so.0 or 0.8  etc)
I guess this may be because it's relatively new so API stability has not been 
worried about much?

Do you currently make any claims about API stability or otherwise? Do
you plan to use semantic versioning to indicate API compatibility at some point?

I've patched cmake to add an SONAME, which is simple enough. It's
generally a good idea for projects to version their library APIs, but
maybe this is premature still?

--- tvm-0.8.0.orig/CMakeLists.txt
+++ tvm-0.8.0/CMakeLists.txt
@@ -477,6 +477,7 @@ add_library(tvm_libinfo_objs OBJECT ${LI
 add_library(tvm SHARED $<TARGET_OBJECTS:tvm_objs> 
$<TARGET_OBJECTS:tvm_runtime_objs> $<TARGET_OBJECTS:tvm_libinfo_objs>)
 set_property(TARGET tvm APPEND PROPERTY LINK_OPTIONS 
"${TVM_NO_UNDEFINED_SYMBOLS}")
 set_property(TARGET tvm APPEND PROPERTY LINK_OPTIONS "${TVM_VISIBILITY_FLAG}")
+set_property(TARGET tvm APPEND PROPERTY SOVERSION 0 )
 if(BUILD_STATIC_RUNTIME)
   add_library(tvm_runtime STATIC $<TARGET_OBJECTS:tvm_runtime_objs> 
$<TARGET_OBJECTS:tvm_libinfo_objs>)
   set(NOTICE_MULTILINE
@@ -490,6 +491,7 @@ else()
   set_property(TARGET tvm_runtime APPEND PROPERTY LINK_OPTIONS 
"${TVM_NO_UNDEFINED_SYMBOLS}")
 endif()
 set_property(TARGET tvm_runtime APPEND PROPERTY LINK_OPTIONS 
"${TVM_VISIBILITY_FLAG}")
+set_property(TARGET tvm_runtime APPEND PROPERTY SOVERSION 0 )

 target_compile_definitions(tvm_objs PUBLIC 
DMLC_USE_LOGGING_LIBRARY=<tvm/runtime/logging.h>)
 target_compile_definitions(tvm_runtime_objs PUBLIC 
DMLC_USE_LOGGING_LIBRARY=<tvm/runtime/logging.h>)

Wookey
-- 
Principal hats:  Linaro, Debian, Wookware, ARM
http://wookware.org/

Attachment: signature.asc
Description: PGP signature

Reply via email to