Skip to content

Commit

Permalink
Fix Linux FMU runtime deps for installed OpenModelica (#12113)
Browse files Browse the repository at this point in the history
- Include runtime dependencies that can be in system directory.
  • Loading branch information
AnHeuermann committed Mar 15, 2024
1 parent 8b23c42 commit 063c0d3
Show file tree
Hide file tree
Showing 2 changed files with 6 additions and 1 deletion.
3 changes: 2 additions & 1 deletion OMCompiler/Compiler/SimCode/SimCodeUtil.mo
Expand Up @@ -15745,7 +15745,8 @@ algorithm
" NAMES " + lib + "\n" +
" PATHS ${EXTERNAL_LIBDIRECTORIES})\n" +
"message(STATUS \"Linking ${" + lib + "}\")" + "\n" +
"target_link_libraries(${FMU_NAME} PRIVATE ${" + lib + "})" + "\n";
"target_link_libraries(${FMU_NAME} PRIVATE ${" + lib + "})" + "\n" +
"list(APPEND RUNTIME_DEPENDS ${" + lib + "})" + "\n";
end for;
end getCmakeLinkLibrariesCode;

Expand Down
Expand Up @@ -161,6 +161,7 @@ if(${NEED_CVODE})
message(FATAL_ERROR "Couldn't find library sundials_cvode in ${CVODE_DIRECTORY}")
endif()
message(STATUS "SUNDIALS_CVODE_LIBRARY: ${SUNDIALS_CVODE_LIBRARY}")
list(APPEND RUNTIME_DEPENDS ${SUNDIALS_CVODE_LIBRARY})

find_library(SUNDIALS_NVECSERIAL_LIBRARY sundials_nvecserial
PATHS ${CVODE_DIRECTORY}
Expand All @@ -171,6 +172,7 @@ if(${NEED_CVODE})
message(FATAL_ERROR "Couldn't find library sundials_nvecserial in ${CVODE_DIRECTORY}")
endif()
message(STATUS "SUNDIALS_NVECSERIAL_LIBRARY: ${SUNDIALS_NVECSERIAL_LIBRARY}")
list(APPEND RUNTIME_DEPENDS ${SUNDIALS_NVECSERIAL_LIBRARY})

target_link_libraries(${FMU_NAME} PRIVATE ${SUNDIALS_NVECSERIAL_LIBRARY})
target_link_libraries(${FMU_NAME} PRIVATE ${SUNDIALS_CVODE_LIBRARY})
Expand Down Expand Up @@ -207,11 +209,13 @@ if(RUNTIME_DEPENDENCIES_LEVEL STREQUAL "all")
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
RUNTIME DESTINATION ${CMAKE_INSTALL_LIBDIR})
elseif(RUNTIME_DEPENDENCIES_LEVEL STREQUAL "modelica")
message(STATUS "Installing dynamic dependencies from list: ${RUNTIME_DEPENDS}")
install(TARGETS ${FMU_NAME}
RUNTIME_DEPENDENCIES
DIRECTORIES ${EXTERNAL_LIBDIRECTORIES} ${CVODE_DIRECTORY}
PRE_EXCLUDE_REGEXES "api-ms-" "ext-ms-"
POST_EXCLUDE_REGEXES "^\\/lib.*" "^\\/usr\\/lib.*" "^\\/usr\\/local\\/lib.*" ".*system32/.*\\.dll"
POST_INCLUDE_FILES ${RUNTIME_DEPENDS}
PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
Expand Down

0 comments on commit 063c0d3

Please sign in to comment.