
configure_file(${CMAKE_SOURCE_DIR}/cmake/sysconfdata.py ${CMAKE_SOURCE_DIR}/Lib/_sysconfigdata.py)

file(
  GLOB_RECURSE libfiles
  FOLLOW_SYMLINKS
  RELATIVE ${CMAKE_CURRENT_SOURCE_DIR}
  "${CMAKE_CURRENT_SOURCE_DIR}/*"
)

set(plat_dir "plat-${PY_PLATFORM}")
set(tar_files ${CMAKE_CURRENT_BINARY_DIR}/lib_includes.txt)

file(REMOVE ${tar_files})
set(tar_deps)

foreach(file ${libfiles})
  # Don't install files for other platforms
  string(REGEX MATCH "^plat-" is_platform_file "${file}")
  if(plat_dir)
    string(REGEX MATCH "^${plat_dir}" is_matching_platform_file "${file}")
  endif()

  # Exclude tests if BUILD_TESTING is OFF
  string(REGEX MATCH "^test" is_test "${file}")
  string(REGEX MATCH "^lib-tk" is_tk "${file}")
  string(REGEX MATCH "^idlelib" is_idle "${file}")
  set(include_file 1)

  if(is_test OR is_tk OR is_email OR is_idle)
    set(include_file 0)
  endif()

  if(include_file AND (NOT is_platform_file OR is_matching_platform_file))
    file(APPEND ${tar_files} "${file}\n")
    list(APPEND ${tar_deps} ${CMAKE_CURRENT_SOURCE_DIR}/${file})
  endif()
endforeach()

set(PY_SUFFIX so)
if(WIN32)
  set(PY_SUFFIX pyd)
endif()

add_custom_command(
  OUTPUT ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/python27.zip
  DEPENDS ${tar_deps}
  DEPENDS ${tar_files}
  DEPENDS etree objectify _speedups
  COMMAND ${CMAKE_COMMAND} -E tar cf ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/python27.zip --files-from=${tar_files} --format=zip
  WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/Lib
)

add_custom_target(ziplib ALL DEPENDS ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/python27.zip)
