Skip to content

Commit 6950325

Browse files
committed
[CMake] Don't create symlinks for cppyy libraries
If the `CMAKE_INSTALL_PYTHONDIR` is different from the `CMAKE_INSTALL_LIBDIR`, the cppyy libraries will still be installed in the `CMAKE_INSTALL_LIBDIR` and then there are symlinks created in the `CMAKE_INSTALL_PYTHONDIR`. This should not be done, as system links should be avoided in the install tree, it entangles the regular ROOT libraries with the Python libraries, and there is actually no reason to do it.
1 parent c40c4bf commit 6950325

File tree

2 files changed

+6
-22
lines changed

2 files changed

+6
-22
lines changed

bindings/pyroot/cppyy/CPyCppyy/CMakeLists.txt

Lines changed: 3 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -47,8 +47,6 @@ set(sources
4747
src/Utility.cxx
4848
)
4949

50-
file(RELATIVE_PATH PYTHONDIR_TO_LIBDIR "${CMAKE_INSTALL_FULL_PYTHONDIR}" "${CMAKE_INSTALL_FULL_LIBDIR}")
51-
5250
set(libname cppyy)
5351

5452
add_library(${libname} SHARED ${headers} ${sources})
@@ -106,15 +104,9 @@ set_property(GLOBAL APPEND PROPERTY ROOT_EXPORTED_TARGETS ${libname})
106104

107105
# Install library
108106
install(TARGETS ${libname} EXPORT ${CMAKE_PROJECT_NAME}Exports
109-
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} COMPONENT libraries
110-
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT libraries
111-
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT libraries)
112-
if (NOT MSVC AND NOT CMAKE_INSTALL_LIBDIR STREQUAL CMAKE_INSTALL_PYTHONDIR)
113-
# add a symlink to ${libname} in CMAKE_INSTALL_PYTHONDIR
114-
set(LIB_FILE_NAME ${CMAKE_SHARED_LIBRARY_PREFIX}${libname}.so)
115-
install(CODE "file(CREATE_LINK ${PYTHONDIR_TO_LIBDIR}/${LIB_FILE_NAME}
116-
\$ENV{DESTDIR}${CMAKE_INSTALL_FULL_PYTHONDIR}/${LIB_FILE_NAME} SYMBOLIC)")
117-
endif()
107+
RUNTIME DESTINATION ${CMAKE_INSTALL_PYTHONDIR} COMPONENT libraries
108+
LIBRARY DESTINATION ${CMAKE_INSTALL_PYTHONDIR} COMPONENT libraries
109+
ARCHIVE DESTINATION ${CMAKE_INSTALL_PYTHONDIR} COMPONENT libraries)
118110

119111
file(COPY ${headers} DESTINATION ${CMAKE_BINARY_DIR}/include/CPyCppyy)
120112
install(FILES ${headers}

bindings/pyroot/cppyy/cppyy-backend/CMakeLists.txt

Lines changed: 3 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -21,8 +21,6 @@ file(COPY ${cppyy_backendPySrcDir}
2121
PATTERN "cmake" EXCLUDE
2222
PATTERN "pkg_templates" EXCLUDE)
2323

24-
file(RELATIVE_PATH PYTHONDIR_TO_LIBDIR "${CMAKE_INSTALL_FULL_PYTHONDIR}" "${CMAKE_INSTALL_FULL_LIBDIR}")
25-
2624
set(libname cppyy_backend)
2725

2826
add_library(${libname} SHARED clingwrapper/src/clingwrapper.cxx)
@@ -40,15 +38,9 @@ set_property(GLOBAL APPEND PROPERTY ROOT_EXPORTED_TARGETS ${libname})
4038

4139
# Install library
4240
install(TARGETS ${libname} EXPORT ${CMAKE_PROJECT_NAME}Exports
43-
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} COMPONENT libraries
44-
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT libraries
45-
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT libraries)
46-
if (NOT MSVC AND NOT CMAKE_INSTALL_LIBDIR STREQUAL CMAKE_INSTALL_PYTHONDIR)
47-
# add a symlink to ${libname} in CMAKE_INSTALL_PYTHONDIR
48-
set(LIB_FILE_NAME ${CMAKE_SHARED_LIBRARY_PREFIX}${libname}.so)
49-
install(CODE "file(CREATE_LINK ${PYTHONDIR_TO_LIBDIR}/${LIB_FILE_NAME}
50-
\$ENV{DESTDIR}${CMAKE_INSTALL_FULL_PYTHONDIR}/${LIB_FILE_NAME} SYMBOLIC)")
51-
endif()
41+
RUNTIME DESTINATION ${CMAKE_INSTALL_PYTHONDIR} COMPONENT libraries
42+
LIBRARY DESTINATION ${CMAKE_INSTALL_PYTHONDIR} COMPONENT libraries
43+
ARCHIVE DESTINATION ${CMAKE_INSTALL_PYTHONDIR} COMPONENT libraries)
5244

5345
# Compile .py files
5446
foreach(py_source ${py_sources})

0 commit comments

Comments
 (0)