diff options
author | Wohlstand <admin@wohlnet.ru> | 2020-09-21 13:58:05 +0300 |
---|---|---|
committer | Wohlstand <admin@wohlnet.ru> | 2020-09-21 13:58:05 +0300 |
commit | 5236032cf266aa77ba63c1851f889e25376a864e (patch) | |
tree | 36ad820bb5e5129ca17c365aa550ce01e2a18794 /cmake | |
parent | a0c5019dfeadc217181218d1c071e7924dbd136a (diff) | |
download | libADLMIDI-5236032cf266aa77ba63c1851f889e25376a864e.tar.gz libADLMIDI-5236032cf266aa77ba63c1851f889e25376a864e.tar.bz2 libADLMIDI-5236032cf266aa77ba63c1851f889e25376a864e.zip |
AppVeyor: Split build script by handy CMD files
Diffstat (limited to 'cmake')
-rw-r--r-- | cmake/mingw-dlls.cmake | 40 | ||||
-rw-r--r-- | cmake/win-ci/lib-sdk.cmd | 41 | ||||
-rw-r--r-- | cmake/win-ci/vlc-plugin.cmd | 52 | ||||
-rw-r--r-- | cmake/win-ci/winmm-drivers.cmd | 195 |
4 files changed, 328 insertions, 0 deletions
diff --git a/cmake/mingw-dlls.cmake b/cmake/mingw-dlls.cmake new file mode 100644 index 0000000..a720b33 --- /dev/null +++ b/cmake/mingw-dlls.cmake @@ -0,0 +1,40 @@ +function(find_mingw_dll _FieldName _FileName _DestList _SearchPaths) + find_file(MINGWDLL_${_FieldName} ${_FileName} PATHS "${_SearchPaths}") + if(MINGWDLL_${_FieldName}) + list(APPEND ${_DestList} "${MINGWDLL_${_FieldName}}") + set(${_DestList} ${${_DestList}} PARENT_SCOPE) + endif() +endfunction() + +set(MINGW_BIN_PATH $ENV{MinGW}) + +if(NOT MINGW_BIN_PATH) + set(MINGW_BIN_PATH "${QT_BINLIB_DIR}") +else() + string(REPLACE "\\" "/" MINGW_BIN_PATH $ENV{MinGW}) +endif() + +set(MINGW_DLLS) +find_mingw_dll(LIBGCCDW "libgcc_s_dw2-1.dll" MINGW_DLLS "${MINGW_BIN_PATH}") +find_mingw_dll(LIBGCCSJLJ "libgcc_s_sjlj-1.dll" MINGW_DLLS "${MINGW_BIN_PATH}") +find_mingw_dll(LIBGCCSEC "libgcc_s_seh-1.dll" MINGW_DLLS "${MINGW_BIN_PATH}") +find_mingw_dll(MINGWEX "libmingwex-0.dll" MINGW_DLLS "${MINGW_BIN_PATH}") +find_mingw_dll(WINPTHREAD "libwinpthread-1.dll" MINGW_DLLS "${MINGW_BIN_PATH}") +find_mingw_dll(WINPTHREADGC3 "pthreadGC-3.dll" MINGW_DLLS "${MINGW_BIN_PATH}") +find_mingw_dll(STDCPP "libstdc++-6.dll" MINGW_DLLS "${MINGW_BIN_PATH}") + +message("MinGW DLLs: [${MINGW_DLLS}]") + +install(FILES + ${MINGW_DLLS} + DESTINATION "${PGE_INSTALL_DIRECTORY}/" +) + +add_custom_target(copy_mingw_dlls DEPENDS pge_windeploy) +foreach(MingwRuntimeDll ${MINGW_DLLS}) + add_custom_command(TARGET copy_mingw_dlls POST_BUILD + COMMAND ${CMAKE_COMMAND} -E + copy ${MingwRuntimeDll} "${CMAKE_INSTALL_PREFIX_ORIG}/${PGE_INSTALL_DIRECTORY}" + ) +endforeach() + diff --git a/cmake/win-ci/lib-sdk.cmd b/cmake/win-ci/lib-sdk.cmd new file mode 100644 index 0000000..50e4da9 --- /dev/null +++ b/cmake/win-ci/lib-sdk.cmd @@ -0,0 +1,41 @@ +rem =============== BUILDING THE LIBRARY SDK AND THE DEMO =============== + +md build-%COMPILER%-%BUILD_TYPE%-%PLATFORM% +cd build-%COMPILER%-%BUILD_TYPE%-%PLATFORM% + +if NOT [%TOOLCHAIN_BIN%]==[] set PATH=%TOOLCHAIN_BIN%;%PATH:C:\Program Files\Git\usr\bin;=% + +cmake -G "%GENERATOR%"^ + -DCMAKE_BUILD_TYPE=%BUILD_TYPE%^ + -DCMAKE_PREFIX_PATH=%CMAKEPREFIXPATH%^ + -DCMAKE_INSTALL_PREFIX=libADLMIDI^ + -DWITH_OLD_UTILS=ON ^ + -DWITH_GENADLDATA=OFF ^ + -DlibADLMIDI_STATIC=%BUILD_STATIC% ^ + -DlibADLMIDI_SHARED=%BUILD_SHARED% ^ + -DWITH_MIDIPLAY=%BUILD_MIDIPLAY% ^ + -DWITH_VLC_PLUGIN=%VLC_PLUGIN% ^ + -DVLC_PLUGIN_NOINSTALL=ON .. +if %errorlevel% neq 0 exit /b %errorlevel% + +if [%COMPILER_FAMILY%]==[MinGW] ( + cmake --build . --config %BUILD_TYPE% -- -j 2 + if %errorlevel% neq 0 exit /b %errorlevel% +) + +if [%COMPILER_FAMILY%]==[MinGW] ( + mingw32-make install + if %errorlevel% neq 0 exit /b %errorlevel% +) + +if [%COMPILER_FAMILY%]==[MSVC] ( + cmake --build . --config %BUILD_TYPE% --target install + if %errorlevel% neq 0 exit /b %errorlevel% +) + +7z a -t7z -mx9 "libADLMIDI-%COMPILER%-%BUILD_TYPE%-%PLATFORM%.7z" "libADLMIDI" +if %errorlevel% neq 0 exit /b %errorlevel% + +appveyor PushArtifact "libADLMIDI-%COMPILER%-%BUILD_TYPE%-%PLATFORM%.7z" +if %errorlevel% neq 0 exit /b %errorlevel% + diff --git a/cmake/win-ci/vlc-plugin.cmd b/cmake/win-ci/vlc-plugin.cmd new file mode 100644 index 0000000..7117980 --- /dev/null +++ b/cmake/win-ci/vlc-plugin.cmd @@ -0,0 +1,52 @@ +rem =============== BUILDING A VLC PLUGIN =============== + +md C:\vlc-temp + +"%WGET_BIN%" --quiet %VLC_TARBALL% -O C:\vlc-temp\vlcsdk.7z +if %errorlevel% neq 0 exit /b %errorlevel% + +"%SEVENZIP%" x C:\vlc-temp\vlcsdk.7z -oC:\vlc-temp +if %errorlevel% neq 0 exit /b %errorlevel% + +xcopy /S /E /Y "C:\vlc-temp\%VLC_DIR%\sdk\*" "%TOOLCHAIN_BIN%\.." +if %errorlevel% neq 0 exit /b %errorlevel% + +md build-%COMPILER%-%BUILD_TYPE%-%PLATFORM% +cd build-%COMPILER%-%BUILD_TYPE%-%PLATFORM% + +if NOT [%TOOLCHAIN_BIN%]==[] set PATH=%TOOLCHAIN_BIN%;%PATH:C:\Program Files\Git\usr\bin;=% + +cmake -G "%GENERATOR%"^ + -DCMAKE_BUILD_TYPE=%BUILD_TYPE%^ + -DCMAKE_PREFIX_PATH=%CMAKEPREFIXPATH%^ + -DCMAKE_INSTALL_PREFIX=libADLMIDI^ + -DWITH_OLD_UTILS=ON ^ + -DWITH_GENADLDATA=OFF ^ + -DlibADLMIDI_STATIC=%BUILD_STATIC% ^ + -DlibADLMIDI_SHARED=%BUILD_SHARED% ^ + -DWITH_MIDIPLAY=%BUILD_MIDIPLAY% ^ + -DWITH_VLC_PLUGIN=%VLC_PLUGIN% ^ + -DVLC_PLUGIN_NOINSTALL=ON .. +if %errorlevel% neq 0 exit /b %errorlevel% + +if [%COMPILER_FAMILY%]==[MinGW] ( + cmake --build . --config %BUILD_TYPE% -- -j 2 + if %errorlevel% neq 0 exit /b %errorlevel% +) + +if [%COMPILER_FAMILY%]==[MinGW] ( + mingw32-make install + if %errorlevel% neq 0 exit /b %errorlevel% +) + +if [%COMPILER_FAMILY%]==[MSVC] ( + cmake --build . --config %BUILD_TYPE% --target install + if %errorlevel% neq 0 exit /b %errorlevel% +) + +7z a -t7z -mx9 "libADLMIDI-%VLC_DIR%-codec-%PLATFORM%.7z" "libadlmidi_plugin.dll" +if %errorlevel% neq 0 exit /b %errorlevel% + +appveyor PushArtifact "libADLMIDI-%VLC_DIR%-codec-%PLATFORM%.7z" +if %errorlevel% neq 0 exit /b %errorlevel% + diff --git a/cmake/win-ci/winmm-drivers.cmd b/cmake/win-ci/winmm-drivers.cmd new file mode 100644 index 0000000..c44f46c --- /dev/null +++ b/cmake/win-ci/winmm-drivers.cmd @@ -0,0 +1,195 @@ +rem =============== BUILDING THE WINMM DRIVERS, USING DIFFERENT MINGW TOOLCHAINS =============== + +set MINGW_VANILLA_URL=http://wohlsoft.ru/docs/Software/MinGW/MinGW-6-3-x86-dw2.zip +set MINGW_W64_32_URL=http://wohlsoft.ru/docs/Software/MinGW/i686-8.1.0-release-posix-dwarf-rt_v6-rev0.7z +set MINGW_W64_64_URL=http://wohlsoft.ru/docs/Software/MinGW/x86_64-8.1.0-release-posix-seh-rt_v6-rev0.7z +set NINJA_URL=http://wohlsoft.ru/docs/Software/Ninja-Build/ninja-win.zip + +md C:\mingw-temp +md C:\mingw-temp\bin + +"%WGET_BIN%" --quiet %NINJA_URL% -O C:\mingw-temp\ninja.zip +if %errorlevel% neq 0 exit /b %errorlevel% +"%SEVENZIP%" x C:\mingw-temp\ninja.zip -oC:\mingw-temp\bin +if %errorlevel% neq 0 exit /b %errorlevel% + +md C:\mingw-temp\MinGW32 +md C:\mingw-temp\MinGW-w64 + +"%WGET_BIN%" --quiet %MINGW_VANILLA_URL% -O C:\mingw-temp\mingw-vanilla.zip +if %errorlevel% neq 0 exit /b %errorlevel% +"%SEVENZIP%" x C:\mingw-temp\mingw-vanilla.zip -oC:\mingw-temp\MinGW32 +if %errorlevel% neq 0 exit /b %errorlevel% + + +"%WGET_BIN%" --quiet %MINGW_W64_32_URL% -O C:\mingw-temp\mingw-w64-32.7z +if %errorlevel% neq 0 exit /b %errorlevel% +"%SEVENZIP%" x C:\mingw-temp\mingw-w64-32.7z -oC:\mingw-temp\MinGW-w64 +if %errorlevel% neq 0 exit /b %errorlevel% + +"%WGET_BIN%" --quiet %MINGW_W64_64_URL% -O C:\mingw-temp\mingw-w64-64.7z +if %errorlevel% neq 0 exit /b %errorlevel% +"%SEVENZIP%" x C:\mingw-temp\mingw-w64-64.7z -oC:\mingw-temp\MinGW-w64 +if %errorlevel% neq 0 exit /b %errorlevel% + +set PUREPATH=C:\mingw-temp\bin;%PATH:C:\Program Files\Git\usr\bin;=% + +set FILES_LIST=^ +"adlmidiconfigtool.exe" "adlmididrv.dll" "libadlconfig.cpl" ^ +"drvsetup.exe" "drvtest.exe" ^ +"install.bat" "uninstall.bat" + +rem ============= BUILD pre-WinXP 32-bit driver ============= + +md build-drv-prexp +cd build-drv-prexp + +set CMAKEPREFIXPATH=C:/mingw-temp/MinGW32 +set TOOLCHAIN_BIN=C:\mingw-temp\MinGW32\bin +set PATH=%TOOLCHAIN_BIN%;%PUREPATH% + +cmake -G "%GENERATOR%"^ + -DCMAKE_BUILD_TYPE=%BUILD_TYPE%^ + -DCMAKE_PREFIX_PATH=%CMAKEPREFIXPATH%^ + -DCMAKE_INSTALL_PREFIX=libADLMIDI^ + -DWITH_OLD_UTILS=OFF ^ + -DWITH_GENADLDATA=OFF ^ + -DlibADLMIDI_STATIC=ON ^ + -DlibADLMIDI_SHARED=OFF ^ + -DWITH_MIDIPLAY=OFF ^ + -DWITH_VLC_PLUGIN=OFF ^ + -DWITH_WINMMDRV=ON ^ + -DWITH_WINMMDRV_PTHREADS=ON ^ + -DWITH_WINMMDRV_MINGWEX=ON ^ + .. +if %errorlevel% neq 0 exit /b %errorlevel% + +cmake --build . --config %BUILD_TYPE% -- -j 2 +if %errorlevel% neq 0 exit /b %errorlevel% + +cd .. + + +rem ============= BUILD WinXP+ 32-bit driver ============= + +md build-drv-32 +cd build-drv-32 + +set CMAKEPREFIXPATH=C:/mingw-temp/MinGW-w64/mingw32 +set TOOLCHAIN_BIN=C:\mingw-temp\MinGW-w64\mingw32\bin +set PATH=%TOOLCHAIN_BIN%;%PUREPATH% + +cmake -G "%GENERATOR%"^ + -DCMAKE_BUILD_TYPE=%BUILD_TYPE%^ + -DCMAKE_PREFIX_PATH=%CMAKEPREFIXPATH%^ + -DCMAKE_INSTALL_PREFIX=libADLMIDI^ + -DWITH_OLD_UTILS=OFF ^ + -DWITH_GENADLDATA=OFF ^ + -DlibADLMIDI_STATIC=ON ^ + -DlibADLMIDI_SHARED=OFF ^ + -DWITH_MIDIPLAY=OFF ^ + -DWITH_VLC_PLUGIN=OFF ^ + -DWITH_WINMMDRV=ON ^ + -DWITH_WINMMDRV_PTHREADS=ON ^ + -DWITH_WINMMDRV_MINGWEX=OFF ^ + .. +if %errorlevel% neq 0 exit /b %errorlevel% + +cmake --build . --config %BUILD_TYPE% -- -j 2 +if %errorlevel% neq 0 exit /b %errorlevel% + +cd .. + + +rem ============= BUILD WinXP+ 64-bit driver ============= + +md build-drv-64 +cd build-drv-64 + +set CMAKEPREFIXPATH=C:/mingw-temp/MinGW-w64/mingw64 +set TOOLCHAIN_BIN=C:\mingw-temp\MinGW-w64\mingw64\bin +set PATH=%TOOLCHAIN_BIN%;%PUREPATH% + +cmake -G "%GENERATOR%"^ + -DCMAKE_BUILD_TYPE=%BUILD_TYPE%^ + -DCMAKE_PREFIX_PATH=%CMAKEPREFIXPATH%^ + -DCMAKE_INSTALL_PREFIX=libADLMIDI^ + -DWITH_OLD_UTILS=OFF ^ + -DWITH_GENADLDATA=OFF ^ + -DlibADLMIDI_STATIC=ON ^ + -DlibADLMIDI_SHARED=OFF ^ + -DWITH_MIDIPLAY=OFF ^ + -DWITH_VLC_PLUGIN=OFF ^ + -DWITH_WINMMDRV=ON ^ + -DWITH_WINMMDRV_PTHREADS=ON ^ + -DWITH_WINMMDRV_MINGWEX=OFF ^ + .. +if %errorlevel% neq 0 exit /b %errorlevel% + +cmake --build . --config %BUILD_TYPE% -- -j 2 +if %errorlevel% neq 0 exit /b %errorlevel% + +cd .. + + +rem ============= Deploy archives ============= + +cd build-drv-prexp +7z a -t7z -mx9 "libADLMIDI-winmm-driver-prexp.7z" %FILES_LIST% +if %errorlevel% neq 0 exit /b %errorlevel% +appveyor PushArtifact "libADLMIDI-winmm-driver-prexp.7z" +if %errorlevel% neq 0 exit /b %errorlevel% +cd .. + +md x86 +md x64 + +cd build-drv-32 +7z a -t7z -mx9 "libADLMIDI-winmm-driver-x86.7z" %FILES_LIST% +if %errorlevel% neq 0 exit /b %errorlevel% +appveyor PushArtifact "libADLMIDI-winmm-driver-x86.7z" +if %errorlevel% neq 0 exit /b %errorlevel% +for %%f in (%FILES_LIST%) DO copy %%f ..\x86 +cd .. + +cd build-drv-64 +7z a -t7z -mx9 "libADLMIDI-winmm-driver-x64.7z" %FILES_LIST% +if %errorlevel% neq 0 exit /b %errorlevel% +appveyor PushArtifact "libADLMIDI-winmm-driver-x64.7z" +if %errorlevel% neq 0 exit /b %errorlevel% +for %%f in (%FILES_LIST%) DO copy %%f ..\x64 +cd .. + +echo @echo off > install-x64.bat +echo cd x86 >> install-x64.bat +echo drvsetup install >> install-x64.bat +echo cd ..\x64 >> install-x64.bat +echo drvsetup install >> install-x64.bat +echo cd .. >> install-x64.bat +echo. >> install-x64.bat + +echo @echo off > install-x86.bat +echo cd x86 >> install-x86.bat +echo drvsetup install >> install-x86.bat +echo cd .. >> install-x86.bat +echo. >> install-x86.bat + +echo @echo off > uninstall-x64.bat +echo cd x86 >> uninstall-x64.bat +echo drvsetup uninstall >> uninstall-x64.bat +echo cd ..\x64 >> uninstall-x64.bat +echo drvsetup uninstall >> uninstall-x64.bat +echo cd .. >> uninstall-x64.bat +echo. >> install-x64.bat + +echo @echo off > uninstall-x86.bat +echo cd x86 >> uninstall-x86.bat +echo drvsetup uninstall >> uninstall-x86.bat +echo cd .. >> uninstall-x86.bat +echo. >> uninstall-x86.bat + +7z a -t7z -mx9 "libADLMIDI-winmm-driver-all.7z" *install*.bat x86 x64 +if %errorlevel% neq 0 exit /b %errorlevel% +appveyor PushArtifact "libADLMIDI-winmm-driver-all.7z" +if %errorlevel% neq 0 exit /b %errorlevel% + |