From 9390c10366410c92fb19410145937ab7c4962f12 Mon Sep 17 00:00:00 2001 From: nnnickkk Date: Wed, 10 Jun 2020 11:06:25 +0400 Subject: [PATCH] - Tcl/tk files added to the package - libcrypto/libssl added for tls support - Embedded standard libs package python37.zip build by internal tools now --- cmake/build_common.cmake | 15 +++++++++------ mkstd.py | 40 ++++++++++++++++++++++++++++++++++++++++ package.cmake | 14 ++++++++++++++ 3 files changed, 63 insertions(+), 6 deletions(-) diff --git a/cmake/build_common.cmake b/cmake/build_common.cmake index d6c4a72867d424..394a6c98e60bf3 100644 --- a/cmake/build_common.cmake +++ b/cmake/build_common.cmake @@ -137,12 +137,6 @@ if(WIN32) WORKING_DIRECTORY "${CMAKE_CURRENT_LIST_DIR}/.." ) - execute_process( - COMMAND - 7z.exe a -r -tzip ../python37.zip *.pyc -x!__pycache__ -x!test -x!ensurepip -x!idlelib -x!venv -x!tests -x!tkinter -x!turtle* -aou - WORKING_DIRECTORY - "${CMAKE_CURRENT_LIST_DIR}/../Lib" - ) file( COPY python37.zip @@ -174,6 +168,15 @@ if(WIN32) DESTINATION "${ROOT}/${PACKAGE_NAME}/bin" ) + file( + COPY + externals/tcltk-8.6.9.0/${FOLDER_ARCH}/lib/tcl8.6 + externals/tcltk-8.6.9.0/${FOLDER_ARCH}/lib/tk8.6 + externals/tcltk-8.6.9.0/${FOLDER_ARCH}/lib/tix8.4.3 + DESTINATION + "${ROOT}/${PACKAGE_NAME}/tcl" + ) + elseif(UNIX) execute_process( COMMAND diff --git a/mkstd.py b/mkstd.py index 089ac8bd0ab196..6a2838426ab6fb 100644 --- a/mkstd.py +++ b/mkstd.py @@ -1,3 +1,43 @@ import compileall +import zipfile +import os compileall.compile_dir('Lib',force=True,legacy=True,optimize=2) + +from Lib.lib2to3.pgen2.driver import main as grammar_gen + +grammar_gen('Lib/lib2to3/Grammar.txt','Lib/lib2to3/PatternGrammar.txt') + +missed_dir = [ +'__pycache__','test','ensurepip','idlelib','venv','tests','turtledemo','pydoc-data','site-packages' +] +missed_file = [ +'turtle.pyc' +] + +def allow_ext(fname): + _, ext = os.path.splitext(fname) + return ext in ('.pyc','.pickle','.pem') + +zf = zipfile.ZipFile("python37.zip", "w", zipfile.ZIP_DEFLATED, True, 9) + +os.chdir("Lib") + +for dirname, subdirs, files in os.walk('.'): + for p in dirname.split(os.path.sep): + if p in missed_dir: + break + else: + dirname = dirname[2:] + print(dirname) + not_saved = bool(dirname) + for filename in files: + if allow_ext(filename) and filename not in missed_file: + if not_saved: + not_saved = False + zf.write(dirname) + zf.write(os.path.join(dirname, filename)) + +os.chdir("..") + +zf.close() diff --git a/package.cmake b/package.cmake index 7c51d4ee4f7936..5cd6e8367b271c 100644 --- a/package.cmake +++ b/package.cmake @@ -56,16 +56,30 @@ if(WIN32) ${PYTHON_BINDIR}/_sqlite3.pyd ${PYTHON_BINDIR}/_ssl.pyd ${PYTHON_BINDIR}/_tkinter.pyd + ${PYTHON_BINDIR}/_queue.pyd ${PYTHON_BINDIR}/pyshellext.dll ${PYTHON_BINDIR}/sqlite3.dll ${PYTHON_BINDIR}/tcl86t.dll ${PYTHON_BINDIR}/tk86t.dll + ${PYTHON_BINDIR}/libcrypto-1_1.dll + ${PYTHON_BINDIR}/libssl-1_1.dll + ${PYTHON_BINDIR}/python.exe DESTINATION . COMPONENT CNPM_RUNTIME EXCLUDE_FROM_ALL ) + install( + DIRECTORY + tcl + DESTINATION + python + COMPONENT + CNPM_RUNTIME + EXCLUDE_FROM_ALL + ) + elseif(UNIX) set_target_properties( Python::library