aboutsummaryrefslogtreecommitdiff
path: root/cmake
diff options
context:
space:
mode:
authorWohlstand <admin@wohlnet.ru>2020-09-21 13:58:05 +0300
committerWohlstand <admin@wohlnet.ru>2020-09-21 13:58:05 +0300
commit5236032cf266aa77ba63c1851f889e25376a864e (patch)
tree36ad820bb5e5129ca17c365aa550ce01e2a18794 /cmake
parenta0c5019dfeadc217181218d1c071e7924dbd136a (diff)
downloadlibADLMIDI-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.cmake40
-rw-r--r--cmake/win-ci/lib-sdk.cmd41
-rw-r--r--cmake/win-ci/vlc-plugin.cmd52
-rw-r--r--cmake/win-ci/winmm-drivers.cmd195
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%
+