mirror of https://github.com/BOINC/boinc.git
428 lines
16 KiB
Python
428 lines
16 KiB
Python
# This file is part of BOINC.
|
|
# http://boinc.berkeley.edu
|
|
# Copyright (C) 2024 University of California
|
|
#
|
|
# BOINC is free software; you can redistribute it and/or modify it
|
|
# under the terms of the GNU Lesser General Public License
|
|
# as published by the Free Software Foundation,
|
|
# either version 3 of the License, or (at your option) any later version.
|
|
#
|
|
# BOINC is distributed in the hope that it will be useful,
|
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
|
# See the GNU Lesser General Public License for more details.
|
|
#
|
|
# You should have received a of the GNU Lesser General Public License
|
|
# along with BOINC. If not, see <http://www.gnu.org/licenses/>.
|
|
#
|
|
|
|
import os
|
|
import sys
|
|
|
|
linux_client_list = [
|
|
'./client/boinc',
|
|
'./client/boinccmd',
|
|
'./client/scripts/boinc-client.service',
|
|
'./client/scripts/boinc-client',
|
|
'./client/scripts/boinc.bash',
|
|
'./client/scripts/boinc-client.conf',
|
|
'./packages/deb/*',
|
|
'./packages/generic/36x11-common_xhost-boinc',
|
|
'locale/*/*.mo',
|
|
'./win_build/installerv2/redist/all_projects_list.xml'
|
|
]
|
|
|
|
linux_apps_list = [
|
|
'./samples/condor/boinc_gahp',
|
|
'./samples/example_app/uc2',
|
|
'./samples/example_app/ucn',
|
|
'./samples/example_app/uc2_graphics',
|
|
'./samples/example_app/slide_show',
|
|
'./samples/multi_thread/multi_thread',
|
|
'./samples/sleeper/sleeper',
|
|
'./samples/vboxmonitor/vboxmonitor',
|
|
'./samples/vboxwrapper/vboxwrapper*pc-linux-gnu',
|
|
'./samples/worker/worker*pc-linux-gnu',
|
|
'./samples/wrapper/wrapper*pc-linux-gnu',
|
|
'./samples/openclapp/openclapp',
|
|
'./samples/wrappture/wrappture_example',
|
|
'./samples/wrappture/fermi',
|
|
'./samples/sporadic/sporadic'
|
|
]
|
|
|
|
linux_manager_list = [
|
|
'./clientgui/boincmgr',
|
|
'./clientgui/skins',
|
|
'./clientgui/res/boinc.desktop',
|
|
'./clientgui/res/boinc.png',
|
|
'./clientgui/res/boinc.svg',
|
|
'locale/*/*.mo',
|
|
]
|
|
|
|
mingw_apps_list = [
|
|
'./lib/wrapper.exe'
|
|
]
|
|
|
|
mingw_apps_vcpkg_list = [
|
|
'./samples/condor/boinc_gahp.exe',
|
|
'./samples/example_app/uc2.exe',
|
|
'./samples/example_app/ucn.exe',
|
|
'./samples/example_app/uc2_graphics.exe',
|
|
'./samples/example_app/slide_show.exe',
|
|
'./samples/multi_thread/multi_thread.exe',
|
|
'./samples/sleeper/sleeper.exe',
|
|
'./samples/worker/worker*.exe',
|
|
'./samples/wrapper/wrapper*.exe',
|
|
'./samples/wrappture/wrappture_example.exe',
|
|
'./samples/wrappture/fermi.exe',
|
|
'./samples/sporadic/sporadic.exe'
|
|
]
|
|
|
|
android_manager_generic_list = [
|
|
'./android/BOINC/app/build/outputs/apk/debug/app-debug.apk',
|
|
'./android/BOINC/app/build/outputs/apk/release/app-release-unsigned.apk'
|
|
]
|
|
|
|
android_manager_xiaomi_list = [
|
|
'./android/BOINC/app/build/outputs/apk/xiaomi_debug/app-xiaomi_debug.apk',
|
|
'./android/BOINC/app/build/outputs/apk/xiaomi_release/app-xiaomi_release-unsigned.apk'
|
|
]
|
|
|
|
android_manager_armv6_list = [
|
|
'./android/BOINC/app/build/outputs/apk/armv6_debug/app-armv6_debug.apk',
|
|
'./android/BOINC/app/build/outputs/apk/armv6_release/app-armv6_release-unsigned.apk'
|
|
]
|
|
|
|
android_apps_list = [
|
|
# boinc_gahp
|
|
'./samples/condor/android_armv6_boinc_gahp',
|
|
'./samples/condor/android_arm_boinc_gahp',
|
|
'./samples/condor/android_arm64_boinc_gahp',
|
|
'./samples/condor/android_x86_boinc_gahp',
|
|
'./samples/condor/android_x86_64_boinc_gahp',
|
|
# uc2
|
|
'./samples/example_app/android_armv6_uc2',
|
|
'./samples/example_app/android_arm_uc2',
|
|
'./samples/example_app/android_arm64_uc2',
|
|
'./samples/example_app/android_x86_uc2',
|
|
'./samples/example_app/android_x86_64_uc2',
|
|
# ucn
|
|
'./samples/example_app/android_armv6_ucn',
|
|
'./samples/example_app/android_arm_ucn',
|
|
'./samples/example_app/android_arm64_ucn',
|
|
'./samples/example_app/android_x86_ucn',
|
|
'./samples/example_app/android_x86_64_ucn',
|
|
# multi_thread
|
|
'./samples/multi_thread/android_armv6_multi_thread',
|
|
'./samples/multi_thread/android_arm_multi_thread',
|
|
'./samples/multi_thread/android_arm64_multi_thread',
|
|
'./samples/multi_thread/android_x86_multi_thread',
|
|
'./samples/multi_thread/android_x86_64_multi_thread',
|
|
# sleeper
|
|
'./samples/sleeper/android_armv6_sleeper',
|
|
'./samples/sleeper/android_arm_sleeper',
|
|
'./samples/sleeper/android_arm64_sleeper',
|
|
'./samples/sleeper/android_x86_sleeper',
|
|
'./samples/sleeper/android_x86_64_sleeper',
|
|
# worker
|
|
'./samples/worker/android_armv6_worker',
|
|
'./samples/worker/android_arm_worker',
|
|
'./samples/worker/android_arm64_worker',
|
|
'./samples/worker/android_x86_worker',
|
|
'./samples/worker/android_x86_64_worker',
|
|
# wrapper
|
|
'./samples/wrapper/android_armv6_wrapper',
|
|
'./samples/wrapper/android_arm_wrapper',
|
|
'./samples/wrapper/android_arm64_wrapper',
|
|
'./samples/wrapper/android_x86_wrapper',
|
|
'./samples/wrapper/android_x86_64_wrapper',
|
|
# wrappture_example
|
|
'./samples/wrappture/android_armv6_wrappture_example',
|
|
'./samples/wrappture/android_arm_wrappture_example',
|
|
'./samples/wrappture/android_arm64_wrappture_example',
|
|
'./samples/wrappture/android_x86_wrappture_example',
|
|
'./samples/wrappture/android_x86_64_wrappture_example',
|
|
# fermi
|
|
'./samples/wrappture/android_armv6_fermi',
|
|
'./samples/wrappture/android_arm_fermi',
|
|
'./samples/wrappture/android_arm64_fermi',
|
|
'./samples/wrappture/android_x86_fermi',
|
|
'./samples/wrappture/android_x86_64_fermi',
|
|
# sporadic
|
|
'./samples/sporadic/android_armv6_sporadic',
|
|
'./samples/sporadic/android_arm_sporadic',
|
|
'./samples/sporadic/android_arm64_sporadic',
|
|
'./samples/sporadic/android_x86_sporadic',
|
|
'./samples/sporadic/android_x86_64_sporadic'
|
|
]
|
|
|
|
windows_apps_list = [
|
|
'./win_build/Build/x64/Release/htmlgfx*.exe',
|
|
'./win_build/Build/x64/Release/wrapper*.exe',
|
|
'./win_build/Build/x64/Release/vboxwrapper*.exe',
|
|
'./win_build/Build/x64/Release/boincsim.exe',
|
|
'./win_build/Build/x64/Release/slide_show.exe',
|
|
'./win_build/Build/x64/Release/example*.exe',
|
|
'./win_build/Build/x64/Release/worker*.exe',
|
|
'./win_build/Build/x64/Release/sleeper*.exe',
|
|
'./win_build/Build/x64/Release/boinclog.exe',
|
|
'./win_build/Build/x64/Release/multi_thread*.exe',
|
|
'./win_build/Build/x64/Release/test*.exe',
|
|
'./win_build/Build/x64/Release/wrappture*.exe',
|
|
'./win_build/Build/x64/Release/crypt_prog.exe',
|
|
'./win_build/Build/ARM64/Release/htmlgfx*.exe',
|
|
'./win_build/Build/ARM64/Release/wrapper*.exe',
|
|
'./win_build/Build/ARM64/Release/vboxwrapper*.exe',
|
|
'./win_build/Build/ARM64/Release/boincsim.exe',
|
|
'./win_build/Build/ARM64/Release/slide_show.exe',
|
|
'./win_build/Build/ARM64/Release/example*.exe',
|
|
'./win_build/Build/ARM64/Release/worker*.exe',
|
|
'./win_build/Build/ARM64/Release/sleeper*.exe',
|
|
'./win_build/Build/ARM64/Release/boinclog.exe',
|
|
'./win_build/Build/ARM64/Release/multi_thread*.exe',
|
|
'./win_build/Build/ARM64/Release/test*.exe',
|
|
'./win_build/Build/ARM64/Release/wrappture*.exe',
|
|
'./win_build/Build/ARM64/Release/crypt_prog.exe'
|
|
]
|
|
|
|
windows_client_list = [
|
|
'./win_build/Build/x64/Release/boinc.exe',
|
|
'./win_build/Build/x64/Release/boincsvcctrl.exe',
|
|
'./win_build/Build/x64/Release/boinccmd.exe',
|
|
'./win_build/Build/x64/Release/boincscr.exe',
|
|
'./win_build/Build/x64/Release/boinc.scr',
|
|
'./win_build/Build/ARM64/Release/boinc.exe',
|
|
'./win_build/Build/ARM64/Release/boincsvcctrl.exe',
|
|
'./win_build/Build/ARM64/Release/boinccmd.exe',
|
|
'./win_build/Build/ARM64/Release/boincscr.exe',
|
|
'./win_build/Build/ARM64/Release/boinc.scr',
|
|
'./curl/ca-bundle.crt'
|
|
]
|
|
|
|
windows_manager_list = [
|
|
'./win_build/Build/x64/Release/boinctray.exe',
|
|
'./win_build/Build/x64/Release/boincmgr.exe',
|
|
'./win_build/Build/ARM64/Release/boinctray.exe',
|
|
'./win_build/Build/ARM64/Release/boincmgr.exe',
|
|
'./clientgui/skins',
|
|
'locale/*/*.mo',
|
|
]
|
|
|
|
wasm_client_list = [
|
|
'./client/boinc_client.wasm',
|
|
'./client/boinc_client.js',
|
|
'./client/boinc.html',
|
|
'./samples/wasm/index.html',
|
|
]
|
|
|
|
wasm_client_debug_folder_list = [
|
|
'lib/*.cpp',
|
|
'lib/*.h',
|
|
'client/*.cpp',
|
|
'client/*.h',
|
|
'client/boinc_client.html',
|
|
'client/boinc_client.js',
|
|
'client/boinc_client.wasm',
|
|
]
|
|
|
|
snap_list = [
|
|
'./boinc_*.snap',
|
|
]
|
|
|
|
macos_manager_list = [
|
|
'mac_build/build/Deployment/AddRemoveUser',
|
|
'mac_build/build/Deployment/BOINC\ Installer.app',
|
|
'mac_build/build/Deployment/BOINCManager.app',
|
|
'mac_build/build/Deployment/BOINCSaver.saver',
|
|
'mac_build/build/Deployment/BOINC_Finish_Install.app',
|
|
'mac_build/build/Deployment/PostInstall.app',
|
|
'mac_build/build/Deployment/SetUpSecurity',
|
|
'mac_build/build/Deployment/SetVersion',
|
|
'mac_build/build/Deployment/Uninstall\ BOINC.app',
|
|
'mac_build/build/Deployment/boinc',
|
|
'mac_build/build/Deployment/boinccmd',
|
|
'mac_build/build/Deployment/boincscr',
|
|
'mac_build/build/Deployment/gfx_cleanup',
|
|
'mac_build/build/Deployment/gfx_switcher',
|
|
'mac_build/build/Deployment/setprojectgrp',
|
|
'mac_build/build/Deployment/switcher',
|
|
'mac_build/build/Deployment/detect_rosetta_cpu',
|
|
]
|
|
|
|
macos_apps_list = [
|
|
'zip/build/Deployment/boinc_zip_test',
|
|
'zip/build/Deployment/testzlibconflict',
|
|
'samples/mac_build/build/Deployment/UC2-apple-darwin',
|
|
'samples/mac_build/build/Deployment/UC2_graphics-apple-darwin',
|
|
'samples/mac_build/build/Deployment/slide_show-apple-darwin',
|
|
'samples/vboxwrapper/build/Deployment/vboxwrapper',
|
|
]
|
|
|
|
macos_makefile_apps_list = [
|
|
'samples/wrapper/wrapper',
|
|
'samples/vboxwrapper/vboxwrapper',
|
|
]
|
|
|
|
macos_apps_x86_64_list = [
|
|
'samples/example_app/x86_64/uc2',
|
|
'samples/example_app/uc2_x86_64',
|
|
'samples/example_app/x86_64/uc2_graphics',
|
|
'samples/example_app/uc2_graphics_x86_64',
|
|
'samples/example_app/x86_64/slide_show',
|
|
'samples/example_app/slide_show_x86_64',
|
|
'samples/openclapp/openclapp_x86_64',
|
|
]
|
|
|
|
macos_apps_arm64_list = [
|
|
'samples/example_app/arm64/uc2',
|
|
'samples/example_app/uc2_arm64',
|
|
'samples/example_app/arm64/uc2_graphics',
|
|
'samples/example_app/uc2_graphics_arm64',
|
|
'samples/example_app/arm64/slide_show',
|
|
'samples/example_app/slide_show_arm64',
|
|
'samples/openclapp/openclapp_arm64',
|
|
]
|
|
|
|
logs_list = [
|
|
'config.log',
|
|
'3rdParty/wasm/vcpkg/buildtrees/*.log',
|
|
'3rdParty/linux/vcpkg/buildtrees/*.log',
|
|
'3rdParty/osx/vcpkg/buildtrees/*.log',
|
|
'3rdParty/android/vcpkg/buildtrees/*.log',
|
|
'3rdParty/mingw/vcpkg/buildtrees/*.log',
|
|
'3rdParty/Windows/vcpkg/buildtrees/*.log',
|
|
'parts/boinc/build/3rdParty/linux/vcpkg/buildtrees/*.log',
|
|
'android/BOINC/app/build/reports/',
|
|
'mac_build/xcodebuild_*.log',
|
|
]
|
|
|
|
def prepare_7z_archive(archive_name, target_directory, files_list):
|
|
os.makedirs(target_directory, exist_ok=True)
|
|
archive_path = os.path.join(target_directory, archive_name + '.7z')
|
|
command = '7z a -t7z -r -mx=9 -xr!*.dSYM -xr!Makefile -xr!Makefile.* ' + archive_path + ' ' + " ".join(files_list)
|
|
os.system(command)
|
|
|
|
def help():
|
|
print('Usage: python preprare_deployment.py BOINC_TYPE')
|
|
print('BOINC_TYPE : [' + " | ".join(boinc_types.keys()) + ']')
|
|
|
|
def prepare_linux_client(target_directory):
|
|
prepare_7z_archive('linux_client', target_directory, linux_client_list)
|
|
|
|
def prepare_linux_client_vcpkg(target_directory):
|
|
prepare_7z_archive('linux_client-vcpkg', target_directory, linux_client_list)
|
|
|
|
def prepare_linux_apps(target_directory):
|
|
prepare_7z_archive('linux_apps', target_directory, linux_apps_list)
|
|
|
|
def prepare_linux_apps_arm64(target_directory):
|
|
prepare_7z_archive('linux_apps-arm64', target_directory, linux_apps_list)
|
|
|
|
def prepare_linux_apps_vcpkg(target_directory):
|
|
prepare_7z_archive('linux_apps-vcpkg', target_directory, linux_apps_list)
|
|
|
|
def prepare_linux_manager(target_directory):
|
|
prepare_7z_archive('linux_manager', target_directory, linux_manager_list)
|
|
|
|
def prepare_linux_manager_with_webview(target_directory):
|
|
prepare_7z_archive('linux_manager-with-webview', target_directory, linux_manager_list)
|
|
|
|
def prepare_linux_manager_with_webview_vcpkg(target_directory):
|
|
prepare_7z_archive('linux_manager-with-webview-vcpkg', target_directory, linux_manager_list)
|
|
|
|
def prepare_linux_manager_without_webview(target_directory):
|
|
prepare_7z_archive('linux_manager-without-webview', target_directory, linux_manager_list)
|
|
|
|
def prepare_win_apps_mingw(target_directory):
|
|
prepare_7z_archive('win_apps-mingw', target_directory, mingw_apps_list)
|
|
|
|
def prepare_win_apps_mingw_vcpkg(target_directory):
|
|
prepare_7z_archive('win_apps-mingw-vcpkg', target_directory, mingw_apps_vcpkg_list)
|
|
|
|
def prepare_android_manager(target_directory):
|
|
prepare_7z_archive('android_manager', target_directory, android_manager_generic_list)
|
|
prepare_7z_archive('android_manager_xiaomi', target_directory, android_manager_xiaomi_list)
|
|
prepare_7z_archive('android_manager_armv6', target_directory, android_manager_armv6_list)
|
|
|
|
def prepare_android_manager_vcpkg(target_directory):
|
|
prepare_7z_archive('android_manager-vcpkg', target_directory, android_manager_generic_list)
|
|
prepare_7z_archive('android_manager-vcpkg_xiaomi', target_directory, android_manager_xiaomi_list)
|
|
prepare_7z_archive('android_manager-vcpkg_armv6', target_directory, android_manager_armv6_list)
|
|
|
|
def prepare_android_apps(target_directory):
|
|
prepare_7z_archive('android_apps', target_directory, android_apps_list)
|
|
|
|
def prepare_android_apps_vcpkg(target_directory):
|
|
prepare_7z_archive('android_apps-vcpkg', target_directory, android_apps_list)
|
|
|
|
def prepare_win_apps(target_directory):
|
|
prepare_7z_archive('win_apps', target_directory, windows_apps_list)
|
|
|
|
def prepare_win_client(target_directory):
|
|
prepare_7z_archive('win_client', target_directory, windows_client_list)
|
|
|
|
def prepare_win_manager(target_directory):
|
|
prepare_7z_archive('win_manager', target_directory, windows_manager_list)
|
|
|
|
def prepare_wasm_client(target_directory):
|
|
prepare_7z_archive('wasm_client', target_directory, wasm_client_list)
|
|
|
|
def prepare_wasm_client_debug(target_directory):
|
|
prepare_7z_archive('wasm_client-debug', target_directory, wasm_client_debug_folder_list)
|
|
|
|
def prepare_linux_snap(target_directory):
|
|
prepare_7z_archive('linux_snap', target_directory, snap_list)
|
|
|
|
def prepare_macos_apps(target_directory):
|
|
prepare_7z_archive('macos_manager', target_directory, macos_manager_list)
|
|
prepare_7z_archive('macos_apps', target_directory, macos_apps_list)
|
|
|
|
def prepare_macos_makefile_apps(target_directory):
|
|
prepare_7z_archive('macos_apps', target_directory, macos_makefile_apps_list)
|
|
prepare_7z_archive('macos_apps_x86_64', target_directory, macos_apps_x86_64_list)
|
|
prepare_7z_archive('macos_apps_arm64', target_directory, macos_apps_arm64_list)
|
|
|
|
def prepare_logs(target_directory):
|
|
prepare_7z_archive('logs', target_directory, logs_list)
|
|
|
|
boinc_types = {
|
|
'linux_client': prepare_linux_client,
|
|
'linux_client-vcpkg': prepare_linux_client_vcpkg,
|
|
'linux_apps': prepare_linux_apps,
|
|
'linux_apps-arm64': prepare_linux_apps_arm64,
|
|
'linux_apps-vcpkg': prepare_linux_apps_vcpkg,
|
|
'linux_manager': prepare_linux_manager,
|
|
'linux_manager-with-webview': prepare_linux_manager_with_webview,
|
|
'linux_manager-with-webview-vcpkg': prepare_linux_manager_with_webview_vcpkg,
|
|
'linux_manager-without-webview': prepare_linux_manager_without_webview,
|
|
'win_apps-mingw': prepare_win_apps_mingw,
|
|
'win_apps-mingw-vcpkg': prepare_win_apps_mingw_vcpkg,
|
|
'android_manager': prepare_android_manager,
|
|
'android_manager-vcpkg': prepare_android_manager_vcpkg,
|
|
'android_apps': prepare_android_apps,
|
|
'android_apps-vcpkg': prepare_android_apps_vcpkg,
|
|
'win_apps': prepare_win_apps,
|
|
'win_client': prepare_win_client,
|
|
'win_manager': prepare_win_manager,
|
|
'wasm_client': prepare_wasm_client,
|
|
'wasm_client-debug': prepare_wasm_client_debug,
|
|
'linux_snap': prepare_linux_snap,
|
|
'macos_manager': prepare_macos_apps,
|
|
'macos_samples-makefile': prepare_macos_makefile_apps,
|
|
'logs': prepare_logs,
|
|
}
|
|
|
|
if (len(sys.argv) != 2):
|
|
help()
|
|
sys.exit(1)
|
|
|
|
boinc_type = sys.argv[1]
|
|
target_dir = 'deploy'
|
|
|
|
if (boinc_type not in boinc_types):
|
|
print('Unknown BOINC_TYPE: ' + boinc_type)
|
|
help()
|
|
sys.exit(1)
|
|
|
|
boinc_types[boinc_type](target_dir)
|