diff --git a/CMakeLists.txt b/CMakeLists.txt index 6c1d051847fc0a251b4df48605a1499a28f88044..9483a1570896f656d20673747dedaaea92a7c747 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -8,7 +8,7 @@ set(CMAKE_ENABLE_EXPORTS ON) set(CMAKE_VERBOSE_MAKEFILE ON) set(CMAKE_COLOR_MAKEFILE ON) set(CMAKE_C_STANDARD 11) - + # Predefine project SET( CPACK_PACKAGE_NAME "${PROJECT_NAME}") ReadVariables(version.mk) @@ -313,6 +313,15 @@ if(UNIX AND NOT WIN32) add_definitions("-DPYTHON_VERSION=\"python3.10\"") endif() + if (DARWIN) + if (CMAKE_SYSTEM_PROCESSOR MATCHES "arm") + set(PYTHON_URL "https://pub.cellframe.net/3rdparty/python/cpython-3.10.16+20250212-aarch64-apple-darwin-install_only.tar.gz") + else () + set(PYTHON_URL "https://pub.cellframe.net/3rdparty/python/cpython-3.10.16%2B20250205-x86_64-apple-darwin-install_only.tar.gz") + endif() + add_definitions("-DPYTHON_VERSION=\"python3.10\"") + endif() + message("[+] Build with python environment") message(" Downloading static prebuild cpython ${PYTHON_URL}") #this python was build by compiling and installing static python distrip to /opt/cellframe-node/ and @@ -336,9 +345,9 @@ if(UNIX AND NOT WIN32) list(APPEND CMAKE_PREFIX_PATH ${cpythonstatic_SOURCE_DIR}) if ( CPACK_DEBIAN_PACKAGE_ARCHITECTURE MATCHES "arm") - find_package(Python EXACT 3.11 COMPONENTS Interpreter Development REQUIRED) + find_package(Python EXACT 3.11 COMPONENTS Development REQUIRED) else() - find_package(Python EXACT 3.10 COMPONENTS Interpreter Development REQUIRED) + find_package(Python EXACT 3.10 COMPONENTS Development REQUIRED) endif() target_link_options(${NODE_TARGET} PUBLIC "-Wl,-rpath,${CMAKE_INSTALL_PREFIX}/python/lib/") @@ -368,8 +377,15 @@ if(UNIX AND NOT WIN32) include_directories(${Python_INCLUDE_DIRS} include/) add_subdirectory(python-cellframe) - + #this helps + #install_name_tool -change /install/lib/libpython3.10.dylib @executable_path/../../python/lib/libpython3.10.dylib ./build_osx_rwd/dist/Applications/CellframeNode.app/Contents/MacOS/cellframe-node list(APPEND NODE_LIBRARIES dap_plugins_python ${Python_LIBRARIES}) + if (DARWIN) + add_custom_command(TARGET ${NODE_TARGET} + POST_BUILD COMMAND + ${CMAKE_INSTALL_NAME_TOOL} -change /install/lib/libpython3.10.dylib @executable_path/../Frameworks/python/lib/libpython3.10.dylib + ${NODE_TARGET}) + endif() endif() if(ANDROID ) @@ -403,6 +419,25 @@ if(DARWIN) INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/os/macos/com.demlabs.cellframe-diagtool.plist DESTINATION ${SHAREDIR} ) INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/os/macos/Info.plist DESTINATION ${CONTENTSDIR} ) + if (BUILD_WITH_PYTHON_ENV) + set(PYTHON_PIP "${cpythonstatic_SOURCE_DIR}/bin/pip3") + set(PYTHON_BIN "${cpythonstatic_SOURCE_DIR}/bin/python3.10") + set(PYTHON_LIB "${cpythonstatic_SOURCE_DIR}/lib/libpython3.10.dylib") + set(PYTHON_LIB_DIR "${cpythonstatic_SOURCE_DIR}/lib/python3.10") + set(PYTHON_LIB_DIR_PRFX "python3.10") + + INSTALL(FILES ${PYTHON_PIP} DESTINATION ${RLIBDIR}/python/bin/ ) + INSTALL(FILES ${PYTHON_BIN} DESTINATION ${RLIBDIR}/python/bin/ ) + INSTALL(FILES ${PYTHON_LIB} DESTINATION ${RLIBDIR}/python/lib/ ) + + INSTALL(DIRECTORY ${PYTHON_LIB_DIR} DESTINATION ${RLIBDIR}/python/lib/ USE_SOURCE_PERMISSIONS) + + #install python-modules + INSTALL(DIRECTORY python-cellframe/dists/python-modules/pycfhelpers DESTINATION ${RLIBDIR}/python/lib/${PYTHON_LIB_DIR_PRFX}/site-packages USE_SOURCE_PERMISSIONS) + INSTALL(DIRECTORY python-cellframe/dists/python-modules/pycftools DESTINATION ${RLIBDIR}/python/lib/${PYTHON_LIB_DIR_PRFX}/site-packages USE_SOURCE_PERMISSIONS) + INSTALL(DIRECTORY python-cellframe/dists/interfaces DESTINATION ${RLIBDIR}/python/lib/ USE_SOURCE_PERMISSIONS) + endif() + else() INSTALL(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/dist/ DESTINATION ${CMAKE_INSTALL_PREFIX} FILES_MATCHING PATTERN "*" PATTERN "*") diff --git a/cellframe-sdk b/cellframe-sdk index 31b34aa3adde1f5ebe39fbcbc61799cfd8f63c82..118e96e5dc46d47d53bdd5fbf2b83b79d8c17f4e 160000 --- a/cellframe-sdk +++ b/cellframe-sdk @@ -1 +1 @@ -Subproject commit 31b34aa3adde1f5ebe39fbcbc61799cfd8f63c82 +Subproject commit 118e96e5dc46d47d53bdd5fbf2b83b79d8c17f4e diff --git a/diagtool b/diagtool index 293cc6c4038ea85c6819d9f847ad3802b02162b5..dfeb4a8f76a59842321ef40d56eb8509417d19b3 160000 --- a/diagtool +++ b/diagtool @@ -1 +1 @@ -Subproject commit 293cc6c4038ea85c6819d9f847ad3802b02162b5 +Subproject commit dfeb4a8f76a59842321ef40d56eb8509417d19b3 diff --git a/dist/share/default.setup b/dist/share/default.setup index 546d4767558a88c7c3748fe985d96a69efa60f1e..c0de7be100ad4969c2560b8f97ed3fe126e461b2 100644 --- a/dist/share/default.setup +++ b/dist/share/default.setup @@ -90,7 +90,7 @@ if Linux != ${HOST_OS} config cellframe-node plugins enabled ensure false endif -config cellframe-node plugins py_path ensure ${CONFIGS_PATH}/var/lib/plugins +config cellframe-node plugins py_path ensure ../var/lib/plugins config Backbone general node-role default full config KelVPN general node-role default full