use -rdynamic for re-exporting symbols when using plugins

This commit is contained in:
Axel Kohlmeyer 2024-02-25 21:11:31 -05:00
parent e7b0c8b3c5
commit b8c8b4d19b
No known key found for this signature in database
GPG Key ID: D9B44E93BF0C375A
3 changed files with 4 additions and 18 deletions

View File

@ -222,6 +222,10 @@ endif()
add_executable(lmp ${MAIN_SOURCES})
target_link_libraries(lmp PRIVATE lammps)
set_target_properties(lmp PROPERTIES OUTPUT_NAME ${LAMMPS_BINARY})
# re-export all symbols for plugins
if(PKG_PLUGIN)
set_target_properties(lmp PROPERTIES LINK_FLAGS "-rdynamic")
endif()
install(TARGETS lmp EXPORT LAMMPS_Targets DESTINATION ${CMAKE_INSTALL_BINDIR})
option(CMAKE_VERBOSE_MAKEFILE "Generate verbose Makefiles" OFF)

View File

@ -105,15 +105,6 @@ add_library(lammps INTERFACE)
target_include_directories(lammps INTERFACE ${LAMMPS_SOURCE_DIR})
if((CMAKE_SYSTEM_NAME STREQUAL "Windows") AND CMAKE_CROSSCOMPILING)
target_link_libraries(lammps INTERFACE ${CMAKE_BINARY_DIR}/../liblammps.dll.a)
else()
# make a best guess where the static lammps library could be
if(EXISTS ${CMAKE_BINARY_DIR}/../liblammps.a)
target_link_libraries(lammps INTERFACE ${CMAKE_BINARY_DIR}/../liblammps.a)
elseif(EXISTS ${LAMMPS_HEADER_DIR}/liblammps.a)
target_link_libraries(lammps INTERFACE ${LAMMPS_HEADER_DIR}/liblammps.a)
elseif(EXISTS ${LAMMPS_HEADER_DIR}/../build/liblammps.a)
target_link_libraries(lammps INTERFACE ${LAMMPS_HEADER_DIR}/../build/liblammps.a)
endif()
endif()
################################################################################

View File

@ -29,15 +29,6 @@ add_library(lammps INTERFACE)
target_include_directories(lammps INTERFACE ${LAMMPS_HEADER_DIR})
if((CMAKE_SYSTEM_NAME STREQUAL "Windows") AND CMAKE_CROSSCOMPILING)
target_link_libraries(lammps INTERFACE ${CMAKE_BINARY_DIR}/../liblammps.dll.a)
else()
# make a best guess where the static lammps library could be
if(EXISTS ${CMAKE_BINARY_DIR}/../liblammps.a)
target_link_libraries(lammps INTERFACE ${CMAKE_BINARY_DIR}/../liblammps.a)
elseif(EXISTS ${LAMMPS_SOURCE_DIR}/liblammps.a)
target_link_libraries(lammps INTERFACE ${LAMMPS_SOURCE_DIR}/liblammps.a)
elseif(EXISTS ${LAMMPS_SOURCE_DIR}/../build/liblammps.a)
target_link_libraries(lammps INTERFACE ${LAMMPS_SOURCE_DIR}/../build/liblammps.a)
endif()
endif()
################################################################################