Allow installing to a local sitelib

Such as a virtual environment

Contributes to CURA-8640
This commit is contained in:
j.spijker@ultimaker.com 2022-03-24 15:03:21 +01:00 committed by Jelle Spijker
parent bde680f353
commit 4c837cd53a
No known key found for this signature in database
GPG Key ID: 6662DC033BE6B99A

View File

@ -43,6 +43,11 @@ if(APPLE)
endif() endif()
find_package(Python ${Python_VERSION} EXACT REQUIRED COMPONENTS Interpreter) find_package(Python ${Python_VERSION} EXACT REQUIRED COMPONENTS Interpreter)
message(STATUS "Linking and building ${project_name} against Python ${Python_VERSION}") message(STATUS "Linking and building ${project_name} against Python ${Python_VERSION}")
if(NOT DEFINED Python_SITELIB_LOCAL)
set(Python_SITELIB_LOCAL
${Python_SITELIB}
CACHE PATH "Local alternative site-package location to install Cura" FORCE)
endif()
# Tests # Tests
include(CuraTests) include(CuraTests)
@ -72,10 +77,10 @@ if(NOT APPLE AND NOT WIN32)
DESTINATION ${CMAKE_INSTALL_BINDIR} DESTINATION ${CMAKE_INSTALL_BINDIR}
PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE) PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE)
install(DIRECTORY cura install(DIRECTORY cura
DESTINATION ${Python_SITELIB}/cura DESTINATION ${Python_SITELIB_LOCAL}/cura
FILES_MATCHING PATTERN *.py) FILES_MATCHING PATTERN *.py)
install(FILES ${CMAKE_BINARY_DIR}/CuraVersion.py install(FILES ${CMAKE_BINARY_DIR}/CuraVersion.py
DESTINATION ${Python_SITELIB}/cura) DESTINATION ${Python_SITELIB_LOCAL}/cura)
install(FILES ${CMAKE_BINARY_DIR}/com.ultimaker.cura.desktop install(FILES ${CMAKE_BINARY_DIR}/com.ultimaker.cura.desktop
DESTINATION ${CMAKE_INSTALL_DATADIR}/applications) DESTINATION ${CMAKE_INSTALL_DATADIR}/applications)
@ -91,8 +96,8 @@ else()
DESTINATION ${CMAKE_INSTALL_BINDIR} DESTINATION ${CMAKE_INSTALL_BINDIR}
PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE) PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE)
install(DIRECTORY cura install(DIRECTORY cura
DESTINATION ${Python_SITELIB} DESTINATION ${Python_SITELIB_LOCAL}
FILES_MATCHING PATTERN *.py) FILES_MATCHING PATTERN *.py)
install(FILES ${CMAKE_BINARY_DIR}/CuraVersion.py install(FILES ${CMAKE_BINARY_DIR}/CuraVersion.py
DESTINATION ${Python_SITELIB}/cura) DESTINATION ${Python_SITELIB_LOCAL}/cura)
endif() endif()