Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Zip python standard library on MacOS #112

Draft
wants to merge 2 commits into
base: master
Choose a base branch
from
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
62 changes: 38 additions & 24 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand Down Expand Up @@ -229,7 +234,9 @@ if(WIN32)
)
set(PYTHON3_CONFIGURE_INSTALL_DIR ${SDK_INSTALL_DIR})
else()
set(PYTHON3_CONFIGURE_FLAGS "-DBUILD_FRAMEWORK=OFF")
set(PYTHON3_CONFIGURE_FLAGS
-DBUILD_EXTENSIONS_AS_BUILTIN=ON
-DBUILD_FRAMEWORK=OFF)
set(PYTHON3_CONFIGURE_INSTALL_DIR ${SDK_INSTALL_DIR})
endif()

Expand Down Expand Up @@ -290,6 +297,7 @@ ExternalProject_Add(python3
-DENABLE_JSON=OFF
-DENABLE_LINUXAUDIODEV=OFF
-DENABLE_MMAP=OFF
-DENABLE_MSI=OFF
-DENABLE_MULTIBYTECODEC=OFF
-DENABLE_MULTIPROCESSING=OFF
-DENABLE_NIS=OFF
Expand Down Expand Up @@ -317,30 +325,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
<INSTALL_DIR>/lib/python${PYTHON3VERSION}
COMMAND ${CMAKE_COMMAND} -E remove_directory
<INSTALL_DIR>/lib/python${PYTHON3VERSION}/lib-dynload
COMMAND ${ZIP_EXECUTABLE} -r -9 -q --exclude=*.pyc
<INSTALL_DIR>/bin/python${PYTHON3VERSION}.zip
.
COMMENT "Zip python3 standard library"
)

ExternalProject_Add_Step(python3
removePythonSTDlib
DEPENDEES zipPythonSTDlib
COMMAND ${CMAKE_COMMAND} -E remove_directory
<INSTALL_DIR>/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
<INSTALL_DIR>/lib/python${PYTHON_STDLIB_POSTFIX}
COMMAND ${CMAKE_COMMAND} -E remove_directory
<INSTALL_DIR>/lib/python${PYTHON_STDLIB_POSTFIX}/lib-dynload
COMMAND ${ZIP_EXECUTABLE} -r -9 -q --exclude=*.pyc
<INSTALL_DIR>/${PYTHON_STDLIB_DEST}/python${PYTHON3VERSION}.zip
.
COMMENT "Zip python3 standard library"
)

ExternalProject_Add_Step(python3
removePythonSTDlib
DEPENDEES zipPythonSTDlib
COMMAND ${CMAKE_COMMAND} -E remove_directory
<INSTALL_DIR>/lib/python${PYTHON_STDLIB_POSTFIX}
COMMENT "Remove python3 standard library from install"
)

ExternalProject_PatchSet(freetype FREETYPE_PATCHSET)
ExternalProject_Add(freetype
DEPENDS patch libpng zlib
Expand Down
8 changes: 4 additions & 4 deletions Sources.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -23,12 +23,12 @@ set(LIBPNG_VERSION 1.6.37)
set(LIBPNG_URL https://downloads.sourceforge.net/project/libpng/libpng16/${LIBPNG_VERSION}/libpng-${LIBPNG_VERSION}.tar.gz)
set(LIBPNG_MD5 6c7519f6c75939efa0ed3053197abd54)

set(PYTHON_CMAKE_URL https://github.com/freeorion/python-cmake-buildsystem/archive/3c6db81e68b842b2b595f7aadcb420480dc45c93.zip)
set(PYTHON_CMAKE_MD5 a4119a1f02fd1814432e31a0b3e0c6c7)
set(PYTHON_CMAKE_URL https://github.com/o01eg/python-cmake-buildsystem/archive/c8ebbcde77433daf17c6e91f8bc7041c380bc61c.zip)
set(PYTHON_CMAKE_MD5 ef568d9a803ef4fdc7dcd0453742f3ed)

set(PYTHON3_VERSION 3.8.16)
set(PYTHON3_VERSION 3.9.10)
set(PYTHON3_URL https://www.python.org/ftp/python/${PYTHON3_VERSION}/Python-${PYTHON3_VERSION}.tgz)
set(PYTHON3_MD5 060040f864f1003b849b33393c9605df)
set(PYTHON3_MD5 1440acb71471e2394befdb30b1a958d1)

set(FREETYPE_VERSION 2.9)
set(FREETYPE_URL http://downloads.sourceforge.net/project/freetype/freetype2/${FREETYPE_VERSION}/freetype-${FREETYPE_VERSION}.tar.gz)
Expand Down