加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
此仓库是为了提升国内下载速度的镜像仓库,每日同步一次。 原始仓库: https://github.com/mysql/mysql-workbench
克隆/下载
PrepareOutputDir.cmd 15.16 KB
一键复制 编辑 原始数据 按行查看 历史
Marcin Marek 提交于 2023-07-10 17:03 . Python 3.11 support on windows:
@echo off
rem -------------------------------------------------------------------------------
rem Check parameter
if [%1] == [] goto Usage
if [%2] == [] goto Usage
if [%3] == [] goto Usage
rem -------------------------------------------------------------------------------
rem Script start
echo Preparing output directory...
rem -------------------------------------------------------------------------------
rem Set directory variables
set LIBRARY_DIR=%1library
echo Library directory: %LIBRARY_DIR%
set RES_DIR=%1res
echo Resources directory: %RES_DIR%
set IMAGES_DIR=%1images
echo Images directory: %IMAGES_DIR%
set SCRIPTS_DIR=%1scripts
echo Scripts directory: %SCRIPTS_DIR%
if %2 == Debug ( set ADDITIONAL_LIBFOLDER=debug\)
set EXT_LIB_DIR=%WB_3DPARTY_PATH%\%ADDITIONAL_LIBFOLDER%Lib
echo Windows resource directory: %EXT_LIB_DIR%
set EXT_BIN_DIR=%WB_3DPARTY_PATH%\bin
echo External binary directory: %EXT_BIN_DIR%
set TARGET_DIR=%1bin\%3\%2
echo Target directory: %TARGET_DIR%
set PYTHON_COMMON_DIR=%WB_3DPARTY_PATH%\Python\lib
echo Python common library directory: %PYTHON_COMMON_DIR%
set PYTHON_DIR=%WB_3DPARTY_PATH%\Python
echo Python directory: %PYTHON_DIR%
set PYTHON_LIB_DIR=%WB_3DPARTY_PATH%\Python\Libs
echo Python library directory: %PYTHON_LIB_DIR%
set PYTHON_DLLS_DIR=%WB_3DPARTY_PATH%\Python\Dlls
echo Python dlls directory: %PYTHON_DLLS_DIR%
rem -------------------------------------------------------------------------------
rem Copy the files to the target directory
echo Copy Struct files ...
if not exist %TARGET_DIR%\structs mkdir %TARGET_DIR%\structs
xcopy /i /s /y /d %RES_DIR%\grt\structs*.xml %TARGET_DIR%\structs\. 1> nul 2> nul
echo Copy image files ...
if not exist %TARGET_DIR%\images\grt\structs mkdir %TARGET_DIR%\images\grt\structs
if not exist %TARGET_DIR%\images\icons mkdir %TARGET_DIR%\images\icons
if not exist %TARGET_DIR%\images\cursors mkdir %TARGET_DIR%\images\cursors
if not exist %TARGET_DIR%\images\ui mkdir %TARGET_DIR%\images\ui
if not exist %TARGET_DIR%\images\home mkdir %TARGET_DIR%\images\home
if not exist %TARGET_DIR%\images\sql mkdir %TARGET_DIR%\images\sql
xcopy /i /s /y /d %IMAGES_DIR%\grt\*.png %TARGET_DIR%\images\grt\. 1> nul 2> nul
xcopy /i /s /y /d %IMAGES_DIR%\grt\structs\*.png %TARGET_DIR%\images\grt\structs\. 1> nul 2> nul
xcopy /i /y /d %IMAGES_DIR%\icons\*.png %TARGET_DIR%\images\icons\. 1> nul 2> nul
xcopy /i /s /y /d %IMAGES_DIR%\toolbar\*.png %TARGET_DIR%\images\icons\. 1> nul 2> nul
xcopy /i /s /y /d %IMAGES_DIR%\changeset\*.png %TARGET_DIR%\images\icons\. 1> nul 2> nul
xcopy /i /s /y /d %IMAGES_DIR%\admin\*.png %TARGET_DIR%\images\icons\. 1> nul 2> nul
xcopy /i /s /y /d %IMAGES_DIR%\migration\*.png %TARGET_DIR%\images\icons\. 1> nul 2> nul
xcopy /i /s /y /d %IMAGES_DIR%\cursors\*.png %TARGET_DIR%\images\cursors\. 1> nul 2> nul
xcopy /i /s /y /d %IMAGES_DIR%\icons\MySQLWorkbench.ico %TARGET_DIR%\images\icons\. 1> nul 2> nul
xcopy /i /s /y /d %IMAGES_DIR%\icons\MySQLWorkbenchDoc.ico %TARGET_DIR%\. 1> nul 2> nul
xcopy /i /s /y /d %IMAGES_DIR%\ui\*.png %TARGET_DIR%\images\ui\. 1> nul 2> nul
xcopy /i /s /y /d %IMAGES_DIR%\ui\*.xpm %TARGET_DIR%\images\ui\. 1> nul 2> nul
xcopy /i /s /y /d %IMAGES_DIR%\home\*.png %TARGET_DIR%\images\home\. 1> nul 2> nul
xcopy /i /s /y /d %IMAGES_DIR%\sql\*.png %TARGET_DIR%\images\sql\. 1> nul 2> nul
echo Copy Resource files ..
if not exist %TARGET_DIR%\data mkdir %TARGET_DIR%\data
xcopy /i /s /y /d %RES_DIR%\grtdata\*.xml %TARGET_DIR%\data\. 1> nul 2> nul
xcopy /i /s /y /d %RES_DIR%\wbdata\*.xml %TARGET_DIR%\data\. 1> nul 2> nul
xcopy /i /s /y /d %RES_DIR%\wbdata\data.db %TARGET_DIR%\data\. 1> nul 2> nul
if not exist %TARGET_DIR%\mysql.profiles mkdir %TARGET_DIR%\mysql.profiles
copy %RES_DIR%\mysql.profiles\*.xml %TARGET_DIR%\mysql.profiles\. 1> nul 2> nul
if not exist %TARGET_DIR%\snippets mkdir %TARGET_DIR%\snippets
copy %RES_DIR%\snippets\*.txt %TARGET_DIR%\snippets\. 1> nul 2> nul
if not exist %TARGET_DIR%\script_templates mkdir %TARGET_DIR%\script_templates
copy %RES_DIR%\scripts\script_templates\*.txt %TARGET_DIR%\script_templates\. 1> nul 2> nul
if not exist %TARGET_DIR%\sys mkdir %TARGET_DIR%\sys
xcopy /i /s /y /d %RES_DIR%\scripts\sys %TARGET_DIR%\sys 1> nul 2> nul
echo Copy Scripting Libraries...
xcopy /i /s /y /d %RES_DIR%\scripts\vbs\*.vbs %TARGET_DIR%\
xcopy /i /s /y /d %RES_DIR%\scripts\python\*.py %TARGET_DIR%\
xcopy /i /s /y /d %RES_DIR%\scripts\snippets\shell_snippets.* %TARGET_DIR%\
xcopy /i /s /y /d %LIBRARY_DIR%\sshtunnel\sshtunnel.py %TARGET_DIR%\
xcopy /i /s /y /d %RES_DIR%\scripts\shell\*.vbs %TARGET_DIR%\
if not exist %TARGET_DIR%\firewall\ mkdir %TARGET_DIR%\firewall
xcopy /i /s /y /d %RES_DIR%\scripts\firewall\* %TARGET_DIR%\firewall 1> nul 2> nul
echo Copy python workbench files
if not exist %TARGET_DIR%\workbench mkdir %TARGET_DIR%\workbench
xcopy /i /s /y /d %LIBRARY_DIR%\python\workbench\*.py %TARGET_DIR%\workbench
echo Copy python/mforms
xcopy /i /s /y /d %LIBRARY_DIR%\forms\swig\mforms.py %TARGET_DIR%\
xcopy /i /s /y /d %LIBRARY_DIR%\forms\swig\cairo.py %TARGET_DIR%\
echo Copy executables ...
xcopy /i /s /y /d %EXT_BIN_DIR%\mysqldump.exe %TARGET_DIR%\.
xcopy /i /s /y /d %EXT_BIN_DIR%\mysql.exe %TARGET_DIR%\.
xcopy /i /s /y /d %EXT_BIN_DIR%\ogrinfo.exe %TARGET_DIR%\.
xcopy /i /s /y /d %EXT_BIN_DIR%\ogr2ogr.exe %TARGET_DIR%\.
xcopy /i /s /y /d %EXT_BIN_DIR%\ccapiserver.exe %TARGET_DIR%\.
rem Do not remove
rem Python executable needed by MSI Custom Action (to precompile Python files) and maybe some externally executed scripts...
rem xcopy /i /s /y /d %EXT_BIN_DIR%\python*.exe %TARGET_DIR%\.
if %2 == Debug ( set DEBUG_PREFIX=_d)
if not %2 == Debug ( set EXCLUDE_CMD=/xf *_d.* )
robocopy %PYTHON_DIR% %TARGET_DIR% python311%DEBUG_PREFIX%.dll %EXCLUDE_CMD%
robocopy %PYTHON_DIR% %TARGET_DIR% python%DEBUG_PREFIX%.exe %EXCLUDE_CMD%
robocopy %PYTHON_DIR% %TARGET_DIR%\python\site-packages pyodbc*%DEBUG_PREFIX%.pyd %EXCLUDE_CMD%
rem =========== Python ============================
echo * Python libraries ...
if not exist %TARGET_DIR%\python mkdir %TARGET_DIR%\python 1> nul 2> nul
if not exist %TARGET_DIR%\python\lib mkdir %TARGET_DIR%\python\lib 1> nul 2> nul
if not exist %TARGET_DIR%\python\DLLs mkdir %TARGET_DIR%\python\DLLs 1> nul 2> nul
if not exist %TARGET_DIR%\python\site-packages mkdir %TARGET_DIR%\python\site-packages 1> nul 2> nul
rem the shared python files
xcopy /i /y /d %PYTHON_COMMON_DIR%\*.py %TARGET_DIR%\python\lib 1> nul 2> nul
xcopy /i /s /y /d %PYTHON_COMMON_DIR%\multiprocessing %TARGET_DIR%\python\lib\multiprocessing 1> nul 2> nul
xcopy /i /s /y /d %PYTHON_COMMON_DIR%\email %TARGET_DIR%\python\lib\email 1> nul 2> nul
xcopy /i /s /y /d %PYTHON_COMMON_DIR%\encodings %TARGET_DIR%\python\lib\encodings 1> nul 2> nul
xcopy /i /s /y /d %PYTHON_COMMON_DIR%\logging %TARGET_DIR%\python\lib\logging 1> nul 2> nul
xcopy /i /s /y /d %PYTHON_COMMON_DIR%\json %TARGET_DIR%\python\lib\json 1> nul 2> nul
xcopy /i /s /y /d %PYTHON_COMMON_DIR%\collections %TARGET_DIR%\python\lib\collections 1> nul 2> nul
xcopy /i /s /y /d %PYTHON_COMMON_DIR%\sqlite3 %TARGET_DIR%\python\lib\sqlite3 1> nul 2> nul
xcopy /i /s /y /d %PYTHON_COMMON_DIR%\xml %TARGET_DIR%\python\lib\xml 1> nul 2> nul
xcopy /i /s /y /d %PYTHON_COMMON_DIR%\importlib %TARGET_DIR%\python\lib\importlib 1> nul 2> nul
xcopy /i /s /y /d %PYTHON_COMMON_DIR%\asyncio %TARGET_DIR%\python\lib\asyncio 1> nul 2> nul
xcopy /i /s /y /d %PYTHON_COMMON_DIR%\concurrent %TARGET_DIR%\python\lib\concurrent 1> nul 2> nul
xcopy /i /s /y /d %PYTHON_COMMON_DIR%\ctypes %TARGET_DIR%\python\lib\ctypes 1> nul 2> nul
xcopy /i /s /y /d %PYTHON_COMMON_DIR%\curses %TARGET_DIR%\python\lib\curses 1> nul 2> nul
xcopy /i /s /y /d %PYTHON_COMMON_DIR%\dbm %TARGET_DIR%\python\lib\dbm 1> nul 2> nul
xcopy /i /s /y /d %PYTHON_COMMON_DIR%\distutils %TARGET_DIR%\python\lib\distutils 1> nul 2> nul
xcopy /i /s /y /d %PYTHON_COMMON_DIR%\ensurepip %TARGET_DIR%\python\lib\ensurepip 1> nul 2> nul
xcopy /i /s /y /d %PYTHON_COMMON_DIR%\html %TARGET_DIR%\python\lib\html 1> nul 2> nul
xcopy /i /s /y /d %PYTHON_COMMON_DIR%\http %TARGET_DIR%\python\lib\http 1> nul 2> nul
xcopy /i /s /y /d %PYTHON_COMMON_DIR%\idlelib %TARGET_DIR%\python\lib\idlelib 1> nul 2> nul
xcopy /i /s /y /d %PYTHON_COMMON_DIR%\msilib %TARGET_DIR%\python\lib\msilib 1> nul 2> nul
xcopy /i /s /y /d %PYTHON_COMMON_DIR%\multiprocessing %TARGET_DIR%\python\lib\multiprocessing 1> nul 2> nul
xcopy /i /s /y /d %PYTHON_COMMON_DIR%\pydoc_data %TARGET_DIR%\python\lib\pydoc_data 1> nul 2> nul
xcopy /i /s /y /d %PYTHON_COMMON_DIR%\tkinter %TARGET_DIR%\python\lib\tkinter 1> nul 2> nul
xcopy /i /s /y /d %PYTHON_COMMON_DIR%\turtledemo %TARGET_DIR%\python\lib\turtledemo 1> nul 2> nul
xcopy /i /s /y /d %PYTHON_COMMON_DIR%\urllib %TARGET_DIR%\python\lib\urllib 1> nul 2> nul
xcopy /i /s /y /d %PYTHON_COMMON_DIR%\venv %TARGET_DIR%\python\lib\venv 1> nul 2> nul
xcopy /i /s /y /d %PYTHON_COMMON_DIR%\wsgiref %TARGET_DIR%\python\lib\wsgiref 1> nul 2> nul
xcopy /i /s /y /d %PYTHON_COMMON_DIR%\xmlrpc %TARGET_DIR%\python\lib\xmlrpc 1> nul 2> nul
robocopy %PYTHON_COMMON_DIR%\lib2to3 %TARGET_DIR%\python\lib\lib2to3 /E /xd %PYTHON_COMMON_DIR%\lib2to3\tests\
robocopy %PYTHON_COMMON_DIR%\__phello__ %TARGET_DIR%\python\lib\__phello__
robocopy %PYTHON_COMMON_DIR%\__phello__\ham %TARGET_DIR%\python\lib\__phello__\ham
robocopy %PYTHON_COMMON_DIR%\re %TARGET_DIR%\python\lib\re
robocopy %PYTHON_COMMON_DIR%\tomllib %TARGET_DIR%\python\lib\tomllib
robocopy %PYTHON_COMMON_DIR%\zoneinfo %TARGET_DIR%\python\lib\zoneinfo
robocopy %PYTHON_DLLS_DIR% %TARGET_DIR%\python\DLLs *%DEBUG_PREFIX%.pyd %EXCLUDE_CMD% _ctypes_test*.pyd
robocopy %PYTHON_DIR% %TARGET_DIR%\python\site-packages\ pyodbc%DEBUG_PREFIX%*.pyd %EXCLUDE_CMD%
robocopy %PYTHON_DIR%\ %TARGET_DIR%\python\DLLs *sqlite3*%DEBUG_PREFIX%.dll %EXCLUDE_CMD%
rem site packages that are release type independent
rem xcopy /i /s /y /d %PYTHON_COMMON_DIR%\site-packages\paramiko %TARGET_DIR%\python\site-packages\paramiko 1> nul 2> nul
rem xcopy /i /s /y /d %PYTHON_COMMON_DIR%\site-packages\ecdsa %TARGET_DIR%\python\site-packages\ecdsa 1> nul 2> nul
rem site packages for debug/release types
rem robocopy %PYTHON_DIR%\pysqlite2 %TARGET_DIR%\python\site-packages\pysqlite2 *%DEBUG_PREFIX%.pyd %EXCLUDE_CMD%
rem xcopy /i /s /y /d %PYTHON_DIR%\pysqlite2\*.py %TARGET_DIR%\python\site-packages\pysqlite2 1> nul 2> nul
xcopy /i /s /y /d %PYTHON_LIB_DIR%\site-packages\*.pyd %TARGET_DIR%\python\site-packages\ 1> nul 2> nul
rem =======================================
if %2 == Debug ( set DEBUG_PREFIX=d)
echo * SSL libraries ...
xcopy /i /s /y /d %EXT_LIB_DIR%\libcrypto-3-x64.dll %TARGET_DIR%\.
xcopy /i /s /y /d %EXT_LIB_DIR%\libssl-3-x64.dll %TARGET_DIR%\.
echo * glib libraries ...
xcopy /i /s /y /d %EXT_LIB_DIR%\glib*.dll %TARGET_DIR%\.
xcopy /i /s /y /d %EXT_LIB_DIR%\gmodule*.dll %TARGET_DIR%\.
xcopy /i /s /y /d %EXT_LIB_DIR%\gobject*.dll %TARGET_DIR%\.
xcopy /i /s /y /d %EXT_LIB_DIR%\gthread*.dll %TARGET_DIR%\.
rem xcopy /i /s /y /d %EXT_LIB_DIR%\intl.dll %TARGET_DIR%\.
echo * libxml2 libraries ...
xcopy /i /s /y /d %EXT_LIB_DIR%\libxml2.dll %TARGET_DIR%\.
xcopy /i /s /y /d %EXT_LIB_DIR%\iconv.dll %TARGET_DIR%\.
echo * zlib + libzip libraries ...
xcopy /i /s /y /d %EXT_LIB_DIR%\zlib%DEBUG_PREFIX%.dll %TARGET_DIR%\.
xcopy /i /s /y /d %EXT_LIB_DIR%\zip.dll %TARGET_DIR%\.
echo * ANTLR4 runtime lib ...
xcopy /i /s /y /d %EXT_LIB_DIR%\antlr4-runtime.dll %TARGET_DIR%\.
echo * cairo library ...
xcopy /i /s /y /d %EXT_LIB_DIR%\libcairo.dll %TARGET_DIR%\. 1> nul 2> nul
echo * png library ...
xcopy /i /s /y /d %EXT_LIB_DIR%\libpng16%DEBUG_PREFIX%.dll %TARGET_DIR%\. 1> nul 2> nul
echo * pixman library ...
xcopy /i /s /y /d %EXT_LIB_DIR%\pixman*.dll %TARGET_DIR%\. 1> nul 2> nul
echo * cppconn library ...
xcopy /i /s /y /d %EXT_LIB_DIR%\mysqlcppconn-9-vs14.dll %TARGET_DIR%\. 1> nul 2> nul
echo * pcre library ...
xcopy /i /s /y /d %EXT_LIB_DIR%\pcre%DEBUG_PREFIX%.dll %TARGET_DIR%\. 1> nul 2> nul
xcopy /i /s /y /d %EXT_LIB_DIR%\pcrecpp%DEBUG_PREFIX%.dll %TARGET_DIR%\. 1> nul 2> nul
echo * sqlite library ...
xcopy /i /s /y /d %EXT_LIB_DIR%\sqlite3.dll %TARGET_DIR%\. 1> nul 2> nul
echo * vsqlite++ library ...
xcopy /i /s /y /d %EXT_LIB_DIR%\vsqlite++.dll %TARGET_DIR%\. 1> nul 2> nul
echo * gdal library + tools ...
xcopy /i /s /y /d %EXT_LIB_DIR%\gdal*.dll %TARGET_DIR%\. 1> nul 2> nul
xcopy /i /s /y /d %EXT_LIB_DIR%\*.exe %TARGET_DIR%\. 1> nul 2> nul
echo * ssh library ...
xcopy /i /s /y /d %EXT_LIB_DIR%\ssh.dll %TARGET_DIR%\.
echo * ffi library ...
xcopy /i /s /y /d %EXT_LIB_DIR%\libffi.dll %TARGET_DIR%\.
echo * auth plugins ...
set AUTH_LIB_DIR=%WB_3DPARTY_PATH%\Lib
xcopy /i /s /y /d %AUTH_LIB_DIR%\authentication_ldap_sasl_client.dll %TARGET_DIR%\.
xcopy /i /s /y /d %AUTH_LIB_DIR%\authentication_kerberos_client.dll %TARGET_DIR%\.
xcopy /i /s /y /d %AUTH_LIB_DIR%\comerr64.dll %TARGET_DIR%\.
xcopy /i /s /y /d %AUTH_LIB_DIR%\fido2.dll %TARGET_DIR%\.
xcopy /i /s /y /d %AUTH_LIB_DIR%\gssapi64.dll %TARGET_DIR%\.
xcopy /i /s /y /d %AUTH_LIB_DIR%\k5sprt64.dll %TARGET_DIR%\.
xcopy /i /s /y /d %AUTH_LIB_DIR%\krb5_64.dll %TARGET_DIR%\.
xcopy /i /s /y /d %AUTH_LIB_DIR%\krbcc64.dll %TARGET_DIR%\.
xcopy /i /s /y /d %AUTH_LIB_DIR%\libsasl.dll %TARGET_DIR%\.
xcopy /i /s /y /d %AUTH_LIB_DIR%\saslSCRAM.dll %TARGET_DIR%\.
xcopy /i /s /y /d %AUTH_LIB_DIR%\xpprof64.dll %TARGET_DIR%\.
echo * proj9 library ...
xcopy /i /s /y /d %EXT_LIB_DIR%\proj*%DEBUG_PREFIX%.dll %TARGET_DIR%\.
echo * Templates
if not exist %TARGET_DIR%\modules\data\sqlide mkdir %TARGET_DIR%\modules\data\sqlide
xcopy /i /s /y /d %RES_DIR%\sqlidedata\templates\*.* %TARGET_DIR%\modules\data\sqlide\. 1> nul 2> nul
echo * Context Help
xcopy /i /s /y /d %RES_DIR%\sqlidedata\context-help\*.* %TARGET_DIR%\modules\data\sqlide\. 1> nul 2> nul
echo * Copy Sample Files
if not exist %TARGET_DIR%\extras mkdir %TARGET_DIR%\extras
xcopy /i /y /d %1samples\models\* %TARGET_DIR%\extras 1> nul 2> nul
echo * README
if %2 == Release_OSS xcopy /i /y /d %1README.md %TARGET_DIR%
if not %2 == Release_OSS xcopy /i /y /d %1README-commercial.md %TARGET_DIR%
echo * License
if %2 == Release_OSS xcopy /i /y /d %1license.txt %TARGET_DIR%
if not %2 == Release_OSS xcopy /i /y /d %1license-commercial.txt %TARGET_DIR%
rem -------------------------------------------------------------------------------
rem Call sub-scripts
call %1\modules\PrepareOutputDir.cmd %1 %2 %3
rem -------------------------------------------------------------------------------
rem Work is done
echo Output directory preparation complete.
rem Make sure to reset error level
set ERRORLEVEL=0
goto EndOfScript
:Usage
echo This script sets up the output directory so that applications can be started from there and find
echo all directories and files as in the final distribution. The script takes 3 parameters, the
echo SolutionDirectory and ConfigurationName.
echo Use an ABSOLUTE PATH to the solution directory and end it with a backslash!
echo .
echo Usage:
echo %0 SolutionDirectory ConfigurationName Architecture
echo .
echo Example:
echo %0 "C:\Documents and Settings\mysqldev\My Documents\work\mysql-workbench\" Debug x64
echo .
:EndOfScript
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化