mirror of
https://github.com/barry-ran/QtScrcpy.git
synced 2025-04-20 03:25:02 +00:00
feat: build win
This commit is contained in:
parent
06b2e949f9
commit
2357b23923
8 changed files with 59 additions and 75 deletions
2
.github/workflows/macos.yml
vendored
2
.github/workflows/macos.yml
vendored
|
@ -44,7 +44,7 @@ jobs:
|
|||
ENV_QT_PATH: ${{ env.qt-install-path }}
|
||||
run: |
|
||||
python ci/generate-version.py
|
||||
ci/mac/build_for_mac.sh release
|
||||
ci/mac/build_for_mac.sh RelWithDebInfo
|
||||
# 获取ref最后一个/后的内容
|
||||
- name: Get the version
|
||||
shell: bash
|
||||
|
|
2
.github/workflows/windows.yml
vendored
2
.github/workflows/windows.yml
vendored
|
@ -76,7 +76,7 @@ jobs:
|
|||
ENV_QT_PATH: ${{ env.qt-install-path }}
|
||||
run: |
|
||||
call python ci\generate-version.py
|
||||
call "ci\win\build_for_win.bat" release ${{ matrix.msvc-arch }}
|
||||
call "ci\win\build_for_win.bat" RelWithDebInfo ${{ matrix.msvc-arch }}
|
||||
# 获取ref最后一个/后的内容
|
||||
- name: Get the version
|
||||
shell: bash
|
||||
|
|
|
@ -33,9 +33,9 @@ message(STATUS "[${PROJECT_NAME}] CPU_ARCH:${QC_CPU_ARCH}")
|
|||
set(CMAKE_CXX_STANDARD 11)
|
||||
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
||||
|
||||
# default debug
|
||||
# default RelWithDebInfo
|
||||
if(NOT CMAKE_BUILD_TYPE)
|
||||
set(CMAKE_BUILD_TYPE Debug)
|
||||
set(CMAKE_BUILD_TYPE RelWithDebInfo)
|
||||
endif()
|
||||
message(STATUS "[${PROJECT_NAME}] BUILD_TYPE:${CMAKE_BUILD_TYPE}")
|
||||
|
||||
|
@ -297,8 +297,14 @@ target_link_libraries(${PROJECT_NAME} PRIVATE
|
|||
)
|
||||
|
||||
# output dir
|
||||
if(MSVC)
|
||||
# msvc不需要指定CMAKE_BUILD_TYPE,会自动生成到CMAKE_ARCHIVE_OUTPUT_DIRECTORY/[Debug/Release/..]
|
||||
set(QC_OUTPUT_DIR "${CMAKE_CURRENT_SOURCE_DIR}/../output/${QC_CPU_ARCH}")
|
||||
else()
|
||||
set(QC_OUTPUT_DIR "${CMAKE_CURRENT_SOURCE_DIR}/../output/${QC_CPU_ARCH}/${CMAKE_BUILD_TYPE}")
|
||||
endif()
|
||||
set_target_properties(${PROJECT_NAME} PROPERTIES
|
||||
RUNTIME_OUTPUT_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/../output/${QC_CPU_ARCH}/${CMAKE_BUILD_TYPE}"
|
||||
RUNTIME_OUTPUT_DIRECTORY "${QC_OUTPUT_DIR}"
|
||||
)
|
||||
|
||||
#
|
||||
|
@ -322,6 +328,8 @@ if(CMAKE_SYSTEM_NAME STREQUAL "Windows")
|
|||
# copy
|
||||
set(FFMPEG_BIN_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../third_party/ffmpeg/bin/${QC_CPU_ARCH}")
|
||||
get_target_property(FFMPEG_BIN_OUTPUT_PATH ${PROJECT_NAME} RUNTIME_OUTPUT_DIRECTORY)
|
||||
# msvc output dir need append build type
|
||||
set(FFMPEG_BIN_OUTPUT_PATH ${FFMPEG_BIN_OUTPUT_PATH}/${CMAKE_BUILD_TYPE})
|
||||
add_custom_command(TARGET ${PROJECT_NAME} POST_BUILD
|
||||
COMMAND ${CMAKE_COMMAND} -E copy_if_different "${FFMPEG_BIN_PATH}/avcodec-58.dll" "${FFMPEG_BIN_OUTPUT_PATH}"
|
||||
COMMAND ${CMAKE_COMMAND} -E copy_if_different "${FFMPEG_BIN_PATH}/avformat-58.dll" "${FFMPEG_BIN_OUTPUT_PATH}"
|
||||
|
|
|
@ -21,17 +21,17 @@ old_cd=$(pwd)
|
|||
cd $(dirname "$0")
|
||||
|
||||
# 启动参数声明
|
||||
build_mode=debug
|
||||
build_mode=RelWithDebInfo
|
||||
|
||||
echo
|
||||
echo
|
||||
echo ---------------------------------------------------------------
|
||||
echo check build param[debug/release]
|
||||
echo check build param[Debug/Release/MinSizeRel/RelWithDebInfo]
|
||||
echo ---------------------------------------------------------------
|
||||
|
||||
# 编译参数检查
|
||||
build_mode=$(echo $1 | tr '[:upper:]' '[:lower:]')
|
||||
if [[ $build_mode != "release" && $build_mode != "debug" ]]; then
|
||||
build_mode=$(echo $1)
|
||||
if [[ $build_mode != "Release" && $build_mode != "Debug" && $build_mode != "MinSizeRel" && $build_mode != "RelWithDebInfo" ]]; then
|
||||
echo "error: unkonow build mode -- $1"
|
||||
exit 1
|
||||
fi
|
||||
|
@ -39,9 +39,6 @@ fi
|
|||
# 提示
|
||||
echo current build mode: $build_mode
|
||||
|
||||
# 环境变量设置
|
||||
#export PATH=$qt_cmake_path:$PATH
|
||||
|
||||
echo
|
||||
echo
|
||||
echo ---------------------------------------------------------------
|
||||
|
@ -54,27 +51,21 @@ if [ -d "$output_path" ]; then
|
|||
rm -rf $output_path
|
||||
fi
|
||||
# 删除编译目录
|
||||
build_path=$script_path/../temp
|
||||
build_path=$script_path/../build_temp
|
||||
if [ -d "$build_path" ]; then
|
||||
rm -rf $build_path
|
||||
fi
|
||||
mkdir $build_path
|
||||
cd $build_path
|
||||
|
||||
cmake_params="-DCMAKE_PREFIX_PATH=$qt_cmake_path"
|
||||
if [ $build_mode == "debug" ]; then
|
||||
cmake_params="$cmake_params -DCMAKE_BUILD_TYPE=Debug"
|
||||
else
|
||||
cmake_params="$cmake_params -DCMAKE_BUILD_TYPE=Release"
|
||||
fi
|
||||
|
||||
cmake_params="-DCMAKE_PREFIX_PATH=$qt_cmake_path -DCMAKE_BUILD_TYPE=$build_mode -G Xcode"
|
||||
cmake $cmake_params ../..
|
||||
if [ $? -ne 0 ] ;then
|
||||
echo "cmake failed"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
cmake --build . -j8
|
||||
cmake --build . --config $build_mode -j8
|
||||
if [ $? -ne 0 ] ;then
|
||||
echo "cmake build failed"
|
||||
exit 1
|
||||
|
|
|
@ -30,7 +30,7 @@ keymap_path=$script_path/../../keymap
|
|||
# config_path=$script_path/../../config
|
||||
|
||||
publish_path=$script_path/$publish_dir
|
||||
release_path=$script_path/../../output/mac/Release
|
||||
release_path=$script_path/../../output/mac/RelWithDebInfo
|
||||
|
||||
export PATH=$qt_clang_path/bin:$PATH
|
||||
|
||||
|
|
|
@ -7,12 +7,11 @@ echo check ENV
|
|||
echo ---------------------------------------------------------------
|
||||
|
||||
:: 从环境变量获取必要参数
|
||||
:: example: D:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\VC\Auxiliary\Build\vcvarsall.bat
|
||||
set vcvarsall="%ENV_VCVARSALL%"
|
||||
:: example: D:\Qt\Qt5.12.5\5.12.5
|
||||
set qt_msvc_path="%ENV_QT_PATH%"
|
||||
:: example: D:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\VC\Auxiliary\Build\vcvarsall.bat
|
||||
:: set vcvarsall="%ENV_VCVARSALL%"
|
||||
|
||||
echo ENV_VCVARSALL %ENV_VCVARSALL%
|
||||
:: example: D:\Qt\Qt5.12.5\5.12.5
|
||||
:: echo ENV_VCVARSALL %ENV_VCVARSALL%
|
||||
echo ENV_QT_PATH %ENV_QT_PATH%
|
||||
|
||||
:: 获取脚本绝对路径
|
||||
|
@ -23,96 +22,82 @@ cd /d %~dp0
|
|||
|
||||
:: 启动参数声明
|
||||
set cpu_mode=x86
|
||||
set build_mode=debug
|
||||
set build_mode=RelWithDebInfo
|
||||
set errno=1
|
||||
|
||||
echo=
|
||||
echo=
|
||||
echo ---------------------------------------------------------------
|
||||
echo check build param[debug/release x86/x64]
|
||||
echo check build param[Debug/Release/MinSizeRel/RelWithDebInfo]
|
||||
echo ---------------------------------------------------------------
|
||||
|
||||
:: 编译参数检查 /i忽略大小写
|
||||
if /i "%1"=="debug" (
|
||||
set build_mode=debug
|
||||
:: 编译参数检查
|
||||
if "%1"=="Debug" (
|
||||
goto build_mode_ok
|
||||
)
|
||||
if /i "%1"=="release" (
|
||||
set build_mode=release
|
||||
if "%1"=="Release" (
|
||||
goto build_mode_ok
|
||||
)
|
||||
if "%1"=="MinSizeRel" (
|
||||
goto build_mode_ok
|
||||
)
|
||||
if "%1"=="RelWithDebInfo" (
|
||||
goto build_mode_ok
|
||||
)
|
||||
echo error: unkonow build mode -- %1
|
||||
goto return
|
||||
:build_mode_ok
|
||||
|
||||
set build_mode=%1
|
||||
set cmake_vs_build_mode=Win32
|
||||
set qt_cmake_path=%ENV_QT_PATH%\msvc2019\lib\cmake\Qt5
|
||||
|
||||
if /i "%2"=="x86" (
|
||||
set cpu_mode=x86
|
||||
set cmake_vs_build_mode=Win32
|
||||
set qt_cmake_path=%ENV_QT_PATH%\msvc2019\lib\cmake\Qt5
|
||||
)
|
||||
if /i "%2"=="x64" (
|
||||
set cpu_mode=x64
|
||||
set cmake_vs_build_mode=x64
|
||||
set qt_cmake_path=%ENV_QT_PATH%\msvc2019_64\lib\cmake\Qt5
|
||||
)
|
||||
|
||||
:: 提示
|
||||
echo current build mode: %build_mode% %cpu_mode%
|
||||
|
||||
:: 环境变量设置
|
||||
if /i %cpu_mode% == x86 (
|
||||
set qt_msvc_path=%qt_msvc_path%\msvc2017\bin
|
||||
) else (
|
||||
set qt_msvc_path=%qt_msvc_path%\msvc2017_64\bin
|
||||
)
|
||||
set PATH=%qt_msvc_path%;%PATH%
|
||||
|
||||
:: 注册vc环境
|
||||
if /i %cpu_mode% == x86 (
|
||||
call %vcvarsall% %cpu_mode%
|
||||
) else (
|
||||
call %vcvarsall% %cpu_mode%
|
||||
)
|
||||
|
||||
if not %errorlevel%==0 (
|
||||
echo "vcvarsall not find"
|
||||
goto return
|
||||
)
|
||||
echo qt cmake path: %qt_cmake_path%
|
||||
|
||||
echo=
|
||||
echo=
|
||||
echo ---------------------------------------------------------------
|
||||
echo begin qmake build
|
||||
echo begin cmake build
|
||||
echo ---------------------------------------------------------------
|
||||
|
||||
:: 删除输出目录
|
||||
set output_path=%script_path%..\..\output\win\%cpu_mode%\%build_mode%
|
||||
set output_path=%script_path%..\..\output
|
||||
if exist %output_path% (
|
||||
rmdir /q /s %output_path%
|
||||
)
|
||||
:: 删除临时目录
|
||||
set temp_path=%script_path%..\temp
|
||||
set temp_path=%script_path%..\build_temp
|
||||
if exist %temp_path% (
|
||||
rmdir /q /s %temp_path%
|
||||
)
|
||||
md %temp_path%
|
||||
cd %temp_path%
|
||||
|
||||
set qmake_params=-spec win32-msvc
|
||||
if /i %build_mode% == debug (
|
||||
set qmake_params=%qmake_params% "CONFIG+=debug" "CONFIG+=qml_debug"
|
||||
) else (
|
||||
set qmake_params=%qmake_params% "CONFIG+=qtquickcompiler"
|
||||
)
|
||||
set cmake_params=-DCMAKE_PREFIX_PATH=%qt_cmake_path% -DCMAKE_BUILD_TYPE=%build_mode% -G "Visual Studio 16 2019" -A %cmake_vs_build_mode%
|
||||
echo cmake params: %cmake_params%
|
||||
|
||||
:: qmake ../../all.pro -spec win32-msvc "CONFIG+=debug" "CONFIG+=qml_debug"
|
||||
qmake ../../all.pro %qmake_params%
|
||||
cmake %cmake_params% ../..
|
||||
if not %errorlevel%==0 (
|
||||
echo "qmake failed"
|
||||
echo "cmake failed"
|
||||
goto return
|
||||
)
|
||||
|
||||
:: nmake
|
||||
:: jom是qt的多进程nmake工具
|
||||
..\win\jom -j8
|
||||
cmake --build . --config %build_mode% -j8
|
||||
if not %errorlevel%==0 (
|
||||
echo "nmake failed"
|
||||
echo "cmake build failed"
|
||||
goto return
|
||||
)
|
||||
|
||||
|
|
BIN
ci/win/jom.exe
BIN
ci/win/jom.exe
Binary file not shown.
|
@ -7,7 +7,7 @@ echo check ENV
|
|||
echo ---------------------------------------------------------------
|
||||
|
||||
:: 从环境变量获取必要参数
|
||||
:: example: D:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\VC\Auxiliary\Build\vcvarsall.bat
|
||||
:: example: D:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\VC\Auxiliary\Build\vcvarsall.bat
|
||||
set vcvarsall="%ENV_VCVARSALL%"
|
||||
:: 例如 d:\a\QtScrcpy\Qt\5.12.7
|
||||
set qt_msvc_path="%ENV_QT_PATH%"
|
||||
|
@ -47,12 +47,12 @@ set config_path=%script_path%..\..\config
|
|||
|
||||
if /i %cpu_mode% == x86 (
|
||||
set publish_path=%script_path%%publish_dir%\
|
||||
set release_path=%script_path%..\..\output\win\x86\release
|
||||
set qt_msvc_path=%qt_msvc_path%\msvc2017\bin
|
||||
set release_path=%script_path%..\..\output\x86\RelWithDebInfo
|
||||
set qt_msvc_path=%qt_msvc_path%\msvc2019\bin
|
||||
) else (
|
||||
set publish_path=%script_path%%publish_dir%\
|
||||
set release_path=%script_path%..\..\output\win\x64\release
|
||||
set qt_msvc_path=%qt_msvc_path%\msvc2017_64\bin
|
||||
set release_path=%script_path%..\..\output\x64\RelWithDebInfo
|
||||
set qt_msvc_path=%qt_msvc_path%\msvc2019_64\bin
|
||||
)
|
||||
set PATH=%qt_msvc_path%;%PATH%
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue