diff --git a/cmake/Templates.cmake b/cmake/Templates.cmake index f2dfe4a..cf67500 100644 --- a/cmake/Templates.cmake +++ b/cmake/Templates.cmake @@ -133,7 +133,7 @@ endfunction(rosetta_add_object_library) function(rosetta_wrap_library) set(options) - set(one_value_args NAME) + set(one_value_args NAME SONAME PREFIX) set(multi_value_args PUBLIC_INCLUDE_DIRS) cmake_parse_arguments(PARSE_ARGV 0 arg @@ -151,10 +151,14 @@ function(rosetta_wrap_library) PATH ${arg_PUBLIC_INCLUDE_DIRS}) endif () + if (arg_SONAME) + target_link_options(${lib_name} PRIVATE -Wl,--soname,${arg_SONAME}.so) + endif () + set_target_properties(${lib_name} PROPERTIES POSITION_INDEPENDENT_CODE ON src_header_dir ${CMAKE_CURRENT_SOURCE_DIR}/include - PREFIX "") + PREFIX "${arg_PREFIX}") endfunction(rosetta_wrap_library) function(rosetta_add_object_library) diff --git a/lib/CMakeLists.txt b/lib/CMakeLists.txt index b1f5eac..f6f4783 100644 --- a/lib/CMakeLists.txt +++ b/lib/CMakeLists.txt @@ -31,9 +31,10 @@ endforeach (item) foreach (assembly ${fx_assemblies}) target_link_libraries(${assembly} libc libpthread) - target_link_options(${assembly} PRIVATE -Wl,--soname,lib${assembly}.so) + # target_link_options(${assembly} PRIVATE -Wl,--soname,lib${assembly}.so) rosetta_wrap_library( NAME ${assembly} + SONAME lib${assembly} PUBLIC_INCLUDE_DIRS ${CMAKE_CURRENT_SOURCE_DIR}/libfx/${module}/include) set_target_properties(${assembly} PROPERTIES PREFIX "lib")