From e1d9adf147ad53ff63adbaa18fabcb6b7f7459aa Mon Sep 17 00:00:00 2001 From: O01eg Date: Sun, 9 Apr 2023 15:03:55 +0300 Subject: [PATCH] Zip python standard library on MacOS --- CMakeLists.txt | 57 ++++++++++++++++++++++++++++++-------------------- 1 file changed, 34 insertions(+), 23 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index fb193a0..bf8cf01 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -149,7 +149,12 @@ if(APPLE) if(NOT TAR_EXECUTABLE) message(FATAL_ERROR "Unable to locate `tar` executable.") endif() - list(APPEND DIST_PACK_TOOLS tar) + add_custom_target(zip) + find_program(ZIP_EXECUTABLE zip) + if(NOT ZIP_EXECUTABLE) + message(FATAL_ERROR "Unable to locate `zip` executable.") + endif() + list(APPEND DIST_PACK_TOOLS tar zip) endif() ExternalProject_PatchSet(zlib ZLIB_PATCHSET) @@ -317,30 +322,36 @@ string(SUBSTRING "${PYTHON3_VERSION}" 0 3 PYTHON3_VERSION) string(REPLACE "." "" PYTHON3VERSION "${PYTHON3_VERSION}") if(WIN32) - # FreeOrion packages the python3 standard library in a zip file for - # distribution. - ExternalProject_Add_Step(python3 - zipPythonSTDlib - DEPENDEES install - WORKING_DIRECTORY - /lib/python${PYTHON3VERSION} - COMMAND ${CMAKE_COMMAND} -E remove_directory - /lib/python${PYTHON3VERSION}/lib-dynload - COMMAND ${ZIP_EXECUTABLE} -r -9 -q --exclude=*.pyc - /bin/python${PYTHON3VERSION}.zip - . - COMMENT "Zip python3 standard library" - ) - - ExternalProject_Add_Step(python3 - removePythonSTDlib - DEPENDEES zipPythonSTDlib - COMMAND ${CMAKE_COMMAND} -E remove_directory - /lib/python${PYTHON3VERSION} - COMMENT "Remove python3 standard library from install" - ) + set(PYTHON_STDLIB_POSTFIX "${PYTHON3VERSION}") + set(PYTHON_STDLIB_DEST "bin") +else() + set(PYTHON_STDLIB_POSTFIX "${PYTHON3_VERSION}") + set(PYTHON_STDLIB_DEST "lib") endif() +# FreeOrion packages the python3 standard library in a zip file for +# distribution. +ExternalProject_Add_Step(python3 + zipPythonSTDlib + DEPENDEES install + WORKING_DIRECTORY + /lib/python${PYTHON_STDLIB_POSTFIX} + COMMAND ${CMAKE_COMMAND} -E remove_directory + /lib/python${PYTHON_STDLIB_POSTFIX}/lib-dynload + COMMAND ${ZIP_EXECUTABLE} -r -9 -q --exclude=*.pyc + /${PYTHON_STDLIB_DEST}/python${PYTHON3VERSION}.zip + . + COMMENT "Zip python3 standard library" +) + +ExternalProject_Add_Step(python3 + removePythonSTDlib + DEPENDEES zipPythonSTDlib + COMMAND ${CMAKE_COMMAND} -E remove_directory + /lib/python${PYTHON_STDLIB_POSTFIX} + COMMENT "Remove python3 standard library from install" +) + ExternalProject_PatchSet(freetype FREETYPE_PATCHSET) ExternalProject_Add(freetype DEPENDS patch libpng zlib