Skip to content

Commit

Permalink
chore: windows build script
Browse files Browse the repository at this point in the history
  • Loading branch information
Julusian committed Sep 13, 2022
1 parent 97461c6 commit abc3582
Show file tree
Hide file tree
Showing 5 changed files with 72 additions and 15 deletions.
5 changes: 0 additions & 5 deletions src/CMakeModules/Bootstrap_Linux.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -95,7 +95,6 @@ SET (CASPARCG_MODULE_INIT_STATEMENTS "" CACHE INTERNAL "")
SET (CASPARCG_MODULE_UNINIT_STATEMENTS "" CACHE INTERNAL "")
SET (CASPARCG_MODULE_COMMAND_LINE_ARG_INTERCEPTORS_STATEMENTS "" CACHE INTERNAL "")
SET (CASPARCG_MODULE_PROJECTS "" CACHE INTERNAL "")
SET (CASPARCG_RUNTIME_DEPENDENCIES "" CACHE INTERNAL "")

INCLUDE (PrecompiledHeader)

Expand Down Expand Up @@ -142,7 +141,3 @@ FUNCTION (join_list VALUES GLUE OUTPUT)
STRING (REGEX REPLACE "[\\](.)" "\\1" _TMP_STR "${_TMP_STR}") #fixes escaping
SET (${OUTPUT} "${_TMP_STR}" PARENT_SCOPE)
ENDFUNCTION ()

FUNCTION (casparcg_add_runtime_dependency FILE_TO_COPY)
SET (CASPARCG_RUNTIME_DEPENDENCIES "${CASPARCG_RUNTIME_DEPENDENCIES}" "${FILE_TO_COPY}" CACHE INTERNAL "")
ENDFUNCTION ()
8 changes: 6 additions & 2 deletions src/CMakeModules/Bootstrap_Windows.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@ set(CASPARCG_MODULE_UNINIT_STATEMENTS "" CACHE INTERNAL "")
set(CASPARCG_MODULE_COMMAND_LINE_ARG_INTERCEPTORS_STATEMENTS "" CACHE INTERNAL "")
set(CASPARCG_MODULE_PROJECTS "" CACHE INTERNAL "")
set(CASPARCG_RUNTIME_DEPENDENCIES "" CACHE INTERNAL "")
set(CASPARCG_RUNTIME_DEPENDENCIES_DIRS "" CACHE INTERNAL "")

function(casparcg_add_include_statement HEADER_FILE_TO_INCLUDE)
set(CASPARCG_MODULE_INCLUDE_STATEMENTS "${CASPARCG_MODULE_INCLUDE_STATEMENTS}"
Expand Down Expand Up @@ -63,6 +64,9 @@ endfunction()
function(casparcg_add_runtime_dependency FILE_TO_COPY)
set(CASPARCG_RUNTIME_DEPENDENCIES "${CASPARCG_RUNTIME_DEPENDENCIES}" "${FILE_TO_COPY}" CACHE INTERNAL "")
endfunction()
function(casparcg_add_runtime_dependency_dir FILE_TO_COPY)
set(CASPARCG_RUNTIME_DEPENDENCIES_DIRS "${CASPARCG_RUNTIME_DEPENDENCIES_DIRS}" "${FILE_TO_COPY}" CACHE INTERNAL "")
endfunction()

set(PACKAGES_FOLDER "${PROJECT_SOURCE_DIR}/packages")
set(NUGET_PACKAGES_FOLDER "${CMAKE_CURRENT_BINARY_DIR}/packages")
Expand Down Expand Up @@ -161,13 +165,13 @@ if (ENABLE_HTML)
set(CEF_RESOURCE_PATH "${NUGET_PACKAGES_FOLDER}/casparcg.cef.redist.x64.95.0.1-MediaHandler.2467/CEF")
link_directories("${NUGET_PACKAGES_FOLDER}/casparcg.cef.sdk.95.0.1-MediaHandler.2467/CEF/x64")

casparcg_add_runtime_dependency("${CEF_RESOURCE_PATH}/locales")
casparcg_add_runtime_dependency_dir("${CEF_RESOURCE_PATH}/locales")
casparcg_add_runtime_dependency("${CEF_RESOURCE_PATH}/chrome_100_percent.pak")
casparcg_add_runtime_dependency("${CEF_RESOURCE_PATH}/chrome_200_percent.pak")
casparcg_add_runtime_dependency("${CEF_RESOURCE_PATH}/resources.pak")
casparcg_add_runtime_dependency("${CEF_RESOURCE_PATH}/icudtl.dat")

casparcg_add_runtime_dependency("${CEF_BIN_PATH}/swiftshader")
casparcg_add_runtime_dependency_dir("${CEF_BIN_PATH}/swiftshader")
casparcg_add_runtime_dependency("${CEF_BIN_PATH}/snapshot_blob.bin")
casparcg_add_runtime_dependency("${CEF_BIN_PATH}/v8_context_snapshot.bin")
casparcg_add_runtime_dependency("${CEF_BIN_PATH}/libcef.dll")
Expand Down
18 changes: 10 additions & 8 deletions src/shell/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -109,14 +109,16 @@ add_custom_command(TARGET casparcg_copy_dependencies POST_BUILD COMMAND ${CMAKE_

if (MSVC)
foreach(FILE_TO_COPY ${CASPARCG_RUNTIME_DEPENDENCIES})
if(IS_DIRECTORY ${FILE_TO_COPY})
get_filename_component(FOLDER_NAME "${FILE_TO_COPY}" NAME)
add_custom_command(TARGET casparcg_copy_dependencies POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy_directory \"${FILE_TO_COPY}\" \"${OUTPUT_FOLDER}/${FOLDER_NAME}\")
add_custom_command(TARGET casparcg_copy_dependencies POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy_directory \"${FILE_TO_COPY}\" \"${CMAKE_CURRENT_BINARY_DIR}/${FOLDER_NAME}\")
else()
add_custom_command(TARGET casparcg_copy_dependencies POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy \"${FILE_TO_COPY}\" \"${OUTPUT_FOLDER}/\")
add_custom_command(TARGET casparcg_copy_dependencies POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy \"${FILE_TO_COPY}\" \"${CMAKE_CURRENT_BINARY_DIR}/\")
endif()
get_filename_component(FOLDER_NAME "${FILE_TO_COPY}" NAME)
add_custom_command(TARGET casparcg_copy_dependencies POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy \"${FILE_TO_COPY}\" \"${OUTPUT_FOLDER}/\")
add_custom_command(TARGET casparcg_copy_dependencies POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy \"${FILE_TO_COPY}\" \"${CMAKE_CURRENT_BINARY_DIR}/\")
endforeach(FILE_TO_COPY)

foreach(FILE_TO_COPY ${CASPARCG_RUNTIME_DEPENDENCIES_DIRS})
get_filename_component(FOLDER_NAME "${FILE_TO_COPY}" NAME)
message(STATUS "AAAC: ${FILE_TO_COPY} ${FOLDER_NAME}")
add_custom_command(TARGET casparcg_copy_dependencies POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy_directory \"${FILE_TO_COPY}\" \"${OUTPUT_FOLDER}/${FOLDER_NAME}\")
add_custom_command(TARGET casparcg_copy_dependencies POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy_directory \"${FILE_TO_COPY}\" \"${CMAKE_CURRENT_BINARY_DIR}/${FOLDER_NAME}\")
endforeach(FILE_TO_COPY)
else ()
ADD_CUSTOM_COMMAND (TARGET casparcg POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_BINARY_DIR}/shell/casparcg ${CMAKE_BINARY_DIR}/staging/bin/casparcg)
Expand Down
42 changes: 42 additions & 0 deletions tools/windows/build.bat
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
@echo off

set BUILD_ARCHIVE_NAME=casparcg_server
set BUILD_VCVARSALL=C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Auxiliary\Build\vcvars64.bat
set BUILD_7ZIP=C:\Program Files\7-Zip\7z.exe

:: Clean and enter shadow build folder
echo Cleaning...
if exist dist rmdir dist /s /q || goto :error
mkdir dist || goto :error

:: Setup VC++ environment
echo Setting up VC++...
call "%BUILD_VCVARSALL%" amd64 || goto :error

:: Run cmake
cd dist || goto :error
cmake -G "Visual Studio 16 2019" -A x64 ..\src || goto :error

:: Restore dependencies
echo Restore dependencies...
nuget restore || goto :error

:: Build with MSBuild
echo Building...
msbuild "CasparCG Server.sln" /t:Clean /p:Configuration=Release || goto :error
msbuild "CasparCG Server.sln" /p:Configuration=Release /m:%NUMBER_OF_PROCESSORS% || goto :error

:: Create server folder to later zip
set SERVER_FOLDER=casparcg_server
call ..\tools\windows\package.bat ..

:: Create zip file
echo Creating zip...
if exist "%BUILD_ARCHIVE_NAME%.zip" unlink "%BUILD_ARCHIVE_NAME%.zip" || goto :error
"%BUILD_7ZIP%" a "%BUILD_ARCHIVE_NAME%.zip" ".\%SERVER_FOLDER%\*" || goto :error

:: Skip exiting with failure
goto :EOF

:error
exit /b %errorlevel%
14 changes: 14 additions & 0 deletions tools/windows/package.bat
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
if exist "%SERVER_FOLDER%" rmdir "%SERVER_FOLDER%" /s /q

xcopy shell\Release "%SERVER_FOLDER%" /E /I /Y

@REM del "%SERVER_FOLDER%\*_debug.dll"
@REM del "%SERVER_FOLDER%\*-d-2.dll"

copy %1\src\shell\casparcg_auto_restart.bat "%SERVER_FOLDER%\"
xcopy %1\resources\windows\flash-template-host-files "%SERVER_FOLDER%\" /E /I /Y

echo Copying documentation...
copy %1\CHANGELOG.md "%SERVER_FOLDER%"
copy %1\LICENSE.md "%SERVER_FOLDER%"
copy %1\README.md "%SERVER_FOLDER%"

0 comments on commit abc3582

Please sign in to comment.