diff --git a/cmake/common_local_lib_foot.cmake b/cmake/common_local_lib_foot.cmake index f3f1f428..86de79f9 100644 --- a/cmake/common_local_lib_foot.cmake +++ b/cmake/common_local_lib_foot.cmake @@ -482,11 +482,13 @@ if(BUILD_SHARED) set(ADDITIONAL_COMPILE_DEFINITIONS_SHARED "${ADDITIONAL_COMPILE_DEFINITIONS_SHARED};JVX_MODULE_NAME=${JVX_MODULE_NAME};;JVX_COMPONENT_ACCESS_TYPE_COMPONENT=JVX_COMPONENT_ACCESS_DYNAMIC_LIB;JVX_IMPORT_DECLARATION=/*export in module file*/") # Use this new macro which translates in a different way in Linux and Windows - add_export_definition_linker(LOCAL_SOURCES ADDITIONAL_LINKER_FLAGS ${JVX_EXPORTS_SHARED_COMPONENT}) + add_export_definition_linker(EXPORT_SOURCES EXPORT_LINKER_FLAGS ${JVX_EXPORTS_SHARED_COMPONENT}) + set(ADDITIONAL_SOURCES ${ADDITIONAL_SOURCES} ${EXPORT_SOURCES}) + set(ADDITIONAL_LINKER_FLAGS ${ADDITIONAL_LINKER_FLAGS} ${EXPORT_LINKER_FLAGS}) # message("In my scope I: LOCAL_SOURCES = ${LOCAL_SOURCES}") # set(ADDITIONAL_LINKER_FLAGS "${ADDITIONAL_LINKER_FLAGS} ${JVX_CMAKE_LINKER_FLAGS_SHARED_EXPORT_COMPONENTS}") # set(ADDITIONAL_SOURCES ${ADDITIONAL_SOURCES} ${JVX_EXPORTS_SHARED_COMPONENT}) - # message("In my scope II: ADDITIONAL_SOURCES = ${ADDITIONAL_SOURCES}") + # message(FATAL_ERROR "In my scope II: ADDITIONAL_SOURCES = ${ADDITIONAL_SOURCES} -- ADDITIONAL_LINKER_FLAGS = ${ADDITIONAL_LINKER_FLAGS} ") set(JVX_COLLECT_COMPONENTS_MAC_BUNDLE "${JVX_COLLECT_COMPONENTS_MAC_BUNDLE};${JVX_TARGET_NAME}.${JVX_SHARED_EXTENSION}" CACHE INTERNAL "all components") endif() diff --git a/cmake/linux.cmake b/cmake/linux.cmake index 58a49e23..cb306851 100644 --- a/cmake/linux.cmake +++ b/cmake/linux.cmake @@ -121,13 +121,18 @@ set(JVX_PRE_EXIT_MATLAB_HOOK "pause(1);") # macros ### -function(add_export_definition_linker sourceslst linkerflags fileName) +function(add_export_definition_linker varNameSourcesLst varNameLinkerflags varNameFile) - # In linux, export files are added as linker options - set(linkerflags "${linkerflags} -Wl,--retain-symbols-file=${fileName}") + message("===add_export_definition_linker===> Enter with arguments - ${varNameSourcesLst} ${varNameLinkerflags} ${varNameFile}") # We add this def file anyway to show up in project tables - set(sourceslst "${sourceslst} ${fileName}") + set(${varNameSourcesLst} ${varNameFile} PARENT_SCOPE) + + # In linux, export files are added as linker options + set(${varNameLinkerflags} "-Wl,--retain-symbols-file=${varNameFile}" PARENT_SCOPE) + + # message(FATAL_ERROR "===add_export_definition_linker===> Sources with added entry, ${varNameSourcesLst} = ${${varNameSourcesLst}}") + endfunction(add_export_definition_linker) # configure FFT library