mirror of
				https://github.com/KartKrewDev/RingRacers.git
				synced 2025-10-30 08:01:28 +00:00 
			
		
		
		
	Don't download individual asset files; support only archives
This commit is contained in:
		
							parent
							
								
									6e2d757219
								
							
						
					
					
						commit
						f25bdead73
					
				
					 4 changed files with 47 additions and 114 deletions
				
			
		
							
								
								
									
										53
									
								
								.travis.yml
									
										
									
									
									
								
							
							
						
						
									
										53
									
								
								.travis.yml
									
										
									
									
									
								
							|  | @ -593,8 +593,10 @@ install: | ||||||
| before_script: | before_script: | ||||||
|   # OLDPWD is root repo folder |   # OLDPWD is root repo folder | ||||||
|   - OLDPWD=$PWD |   - OLDPWD=$PWD | ||||||
|  |   - mkdir -p "$OLDPWD/assets/installer" | ||||||
|   - cd "$HOME/srb2_cache" |   - cd "$HOME/srb2_cache" | ||||||
| 
 | 
 | ||||||
|  |   # Get stat command so we know what the cached archive date is. | ||||||
|   # stat is different for OSX |   # stat is different for OSX | ||||||
|   - if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then |   - if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then | ||||||
|       STATCMD="stat -f %m"; |       STATCMD="stat -f %m"; | ||||||
|  | @ -608,52 +610,25 @@ before_script: | ||||||
|         echo "$(basename $ASSET_ARCHIVE_PATH) cache date -- $($STATCMD $(basename $ASSET_ARCHIVE_PATH))"; |         echo "$(basename $ASSET_ARCHIVE_PATH) cache date -- $($STATCMD $(basename $ASSET_ARCHIVE_PATH))"; | ||||||
|       fi; |       fi; | ||||||
|       wget --verbose --server-response -N "$ASSET_ARCHIVE_PATH"; |       wget --verbose --server-response -N "$ASSET_ARCHIVE_PATH"; | ||||||
|       7z x "$(basename $ASSET_ARCHIVE_PATH)" -o"$HOME/srb2_cache" -aos; |       7z x "$(basename $ASSET_ARCHIVE_PATH)" -o"$OLDPWD/assets/installer" -aos; | ||||||
|       for f in $ASSET_FILES_REQUIRED; do |  | ||||||
|         cp "$HOME/srb2_cache/$f" "$OLDPWD/assets/$f"; |  | ||||||
|       done; |  | ||||||
|     fi; |     fi; | ||||||
| 
 | 
 | ||||||
|   # Get individual required files |  | ||||||
|   - for f in $ASSET_FILES_REQUIRED; do |  | ||||||
|       if [ -f "$f" ]; then |  | ||||||
|         echo "$f cache date -- $($STATCMD $f)"; |  | ||||||
|       fi; |  | ||||||
|       wget --verbose --server-response -N "$ASSET_BASE_PATH/$f"; |  | ||||||
|       if [ ! -f "$HOME/srb2_cache/$f" ]; then |  | ||||||
|         echo "Could not download \"$ASSET_BASE_PATH/$f\""; |  | ||||||
|         return 1; |  | ||||||
|       fi; |  | ||||||
|       cp "$HOME/srb2_cache/$f" "$OLDPWD/assets/$f"; |  | ||||||
|     done; |  | ||||||
| 
 |  | ||||||
|   # Get the docs |  | ||||||
|   - for f in $ASSET_FILES_DOCS; do |  | ||||||
|       if [ -f "$f" ]; then |  | ||||||
|         echo "$f cache date -- $($STATCMD $f)"; |  | ||||||
|       fi; |  | ||||||
|       wget --verbose --server-response -N "$ASSET_BASE_PATH/$f"; |  | ||||||
|       cp "$HOME/srb2_cache/$f" "$OLDPWD/assets/$f"; |  | ||||||
|     done; |  | ||||||
| 
 |  | ||||||
|   # Get optional files too |   # Get optional files too | ||||||
|   - if [[ "$ASSET_FILES_OPTIONAL_GET" == "1" ]]; then |   - if [[ "$ASSET_FILES_OPTIONAL_GET" == "1" ]] && [[ "$ASSET_ARCHIVE_OPTIONAL_PATH" != "" ]]; then | ||||||
|       for f in $ASSET_FILES_OPTIONAL; do |       if [ -f "$(basename $ASSET_ARCHIVE_OPTIONAL_PATH)" ]; then | ||||||
|         if [ -f "$f" ]; then |         echo "$(basename $ASSET_ARCHIVE_OPTIONAL_PATH) cache date -- $($STATCMD $(basename $ASSET_ARCHIVE_OPTIONAL_PATH))"; | ||||||
|           echo "$f cache date -- $($STATCMD $f)"; |       fi; | ||||||
|         fi; |       wget --verbose --server-response -N "$ASSET_ARCHIVE_OPTIONAL_PATH"; | ||||||
|         wget --verbose --server-response -N "$ASSET_BASE_PATH/$f"; |       7z x "$(basename $ASSET_ARCHIVE_OPTIONAL_PATH)" -o"$OLDPWD/assets/installer" -aos; | ||||||
|         cp "$HOME/srb2_cache/$f" "$OLDPWD/assets/$f"; |  | ||||||
|       done; |  | ||||||
|     fi; |     fi; | ||||||
| 
 | 
 | ||||||
|   # Go back to root repo folder |   # Copy assets to repo staging folder, then go back to root repo folder | ||||||
|   - cd "$OLDPWD" |   - cd "$OLDPWD" | ||||||
| 
 | 
 | ||||||
|   # Prepare CMake asset lists |   # Prepare CMake asset lists | ||||||
|   - SRB2_ASSET_REQUIRED=$(echo ${ASSET_FILES_REQUIRED// /\;}) |   - SRB2_ASSET_HASHED=$(echo ${ASSET_FILES_HASHED// /\;}) | ||||||
|   - SRB2_ASSET_OPTIONAL=$(echo ${ASSET_FILES_OPTIONAL// /\;}) |  | ||||||
|   - SRB2_ASSET_DOCS=$(echo ${ASSET_FILES_DOCS// /\;}) |   - SRB2_ASSET_DOCS=$(echo ${ASSET_FILES_DOCS// /\;}) | ||||||
|  |   - SRB2_ASSET_DIRECTORY="$OLDPWD/assets/installer" | ||||||
| 
 | 
 | ||||||
|   # Prepare CMake |   # Prepare CMake | ||||||
|   - mkdir build |   - mkdir build | ||||||
|  | @ -662,8 +637,8 @@ before_script: | ||||||
|   - export CFLAGS="-Wall -W -Werror $WFLAGS" |   - export CFLAGS="-Wall -W -Werror $WFLAGS" | ||||||
|   - export CCACHE_COMPRESS=true |   - export CCACHE_COMPRESS=true | ||||||
|   - cmake .. -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=$PWD/bin -DCPACK_PACKAGE_DIRECTORY=$PWD/package |   - cmake .. -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=$PWD/bin -DCPACK_PACKAGE_DIRECTORY=$PWD/package | ||||||
|       -DSRB2_ASSET_REQUIRED="${SRB2_ASSET_REQUIRED}" -DSRB2_ASSET_OPTIONAL="${SRB2_ASSET_OPTIONAL}" |       -DSRB2_ASSET_HASHED="${SRB2_ASSET_HASHED}" -DSRB2_ASSET_DOCS="${SRB2_ASSET_DOCS}" | ||||||
|       -DSRB2_ASSET_DOCS="${SRB2_ASSET_DOCS}" |       -DSRB2_ASSET_DIRECTORY="${SRB2_ASSET_DIRECTORY}" | ||||||
|       -DCPACK_PACKAGE_DESCRIPTION_SUMMARY="${PROGRAM_NAME}" |       -DCPACK_PACKAGE_DESCRIPTION_SUMMARY="${PROGRAM_NAME}" | ||||||
|       -DCPACK_PACKAGE_VENDOR="${PROGRAM_VENDOR}" |       -DCPACK_PACKAGE_VENDOR="${PROGRAM_VENDOR}" | ||||||
|       -DSRB2_SDL2_EXE_NAME="${PROGRAM_FILENAME}" |       -DSRB2_SDL2_EXE_NAME="${PROGRAM_FILENAME}" | ||||||
|  |  | ||||||
|  | @ -9,38 +9,29 @@ FUNCTION(PREPEND var prefix) | ||||||
|    SET(${var} "${listVar}" PARENT_SCOPE) |    SET(${var} "${listVar}" PARENT_SCOPE) | ||||||
| ENDFUNCTION(PREPEND) | ENDFUNCTION(PREPEND) | ||||||
| 
 | 
 | ||||||
| set(SRB2_ASSET_REQUIRED | set(SRB2_ASSET_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/installer" | ||||||
|  | 	CACHE STRING "Path to directory that contains all asset files for the installer.") | ||||||
|  | 
 | ||||||
|  | set(SRB2_ASSET_HASHED | ||||||
| "srb2.srb;\ | "srb2.srb;\ | ||||||
| player.dta;\ | player.dta;\ | ||||||
| rings.dta;\ | rings.dta;\ | ||||||
| zones.dta;\ | zones.dta;\ | ||||||
| patch.dta" | patch.dta" | ||||||
| 	CACHE STRING "Required asset files for packaging. No spaces between entries!" | 	CACHE STRING "Asset filenames to apply MD5 checks. No spaces between entries!" | ||||||
| ) | ) | ||||||
| 
 | 
 | ||||||
| set(SRB2_ASSET_DOCS | set(SRB2_ASSET_DOCS | ||||||
| "README.txt;\ | "README.txt;\ | ||||||
| LICENSE.txt;\ | LICENSE.txt;\ | ||||||
| LICENSE-3RD-PARTY.txt" | LICENSE-3RD-PARTY.txt" | ||||||
| 	CACHE STRING "Documentation files; will not fail if they do not exist. Packaged differently from optional assets. No spaces between entries!" | 	CACHE STRING "Documentation filenames. In OS X, these are packaged separately from other assets. No spaces between entries!" | ||||||
| ) | ) | ||||||
| 
 | 
 | ||||||
| set(SRB2_ASSET_OPTIONAL | PREPEND(SRB2_ASSET_DOCS ${SRB2_ASSET_DIRECTORY} ${SRB2_ASSET_DOCS}) | ||||||
| "music.dta" |  | ||||||
| 	CACHE STRING "Optional asset files. No spaces between entries!" |  | ||||||
| ) |  | ||||||
| 
 |  | ||||||
| # MD5 generation - Filename only, we don't append path to this |  | ||||||
| set(SRB2_ASSET_HASHED |  | ||||||
| 	${SRB2_ASSET_REQUIRED} |  | ||||||
| ) |  | ||||||
| 
 |  | ||||||
| PREPEND(SRB2_ASSET_REQUIRED ${CMAKE_CURRENT_SOURCE_DIR} ${SRB2_ASSET_REQUIRED}) |  | ||||||
| PREPEND(SRB2_ASSET_DOCS ${CMAKE_CURRENT_SOURCE_DIR} ${SRB2_ASSET_DOCS}) |  | ||||||
| PREPEND(SRB2_ASSET_OPTIONAL ${CMAKE_CURRENT_SOURCE_DIR} ${SRB2_ASSET_OPTIONAL}) |  | ||||||
| 
 | 
 | ||||||
| foreach(SRB2_ASSET ${SRB2_ASSET_HASHED}) | foreach(SRB2_ASSET ${SRB2_ASSET_HASHED}) | ||||||
| 	file(MD5 ${CMAKE_CURRENT_SOURCE_DIR}/${SRB2_ASSET} "SRB2_ASSET_${SRB2_ASSET}_HASH") | 	file(MD5 ${SRB2_ASSET_DIRECTORY}/${SRB2_ASSET} "SRB2_ASSET_${SRB2_ASSET}_HASH") | ||||||
| 	set(SRB2_ASSET_${SRB2_ASSET}_HASH ${SRB2_ASSET_${SRB2_ASSET}_HASH} PARENT_SCOPE) | 	set(SRB2_ASSET_${SRB2_ASSET}_HASH ${SRB2_ASSET_${SRB2_ASSET}_HASH} PARENT_SCOPE) | ||||||
| endforeach() | endforeach() | ||||||
| 
 | 
 | ||||||
|  | @ -48,27 +39,20 @@ endforeach() | ||||||
| 
 | 
 | ||||||
| if(${CMAKE_SYSTEM} MATCHES Darwin) | if(${CMAKE_SYSTEM} MATCHES Darwin) | ||||||
| 	get_target_property(outname SRB2SDL2 OUTPUT_NAME) | 	get_target_property(outname SRB2SDL2 OUTPUT_NAME) | ||||||
| 	install(FILES ${SRB2_ASSET_REQUIRED} | 	install(DIRECTORY "${SRB2_ASSET_DIRECTORY}/" | ||||||
| 		DESTINATION "${outname}.app/Contents/Resources" | 		DESTINATION "${outname}.app/Contents/Resources" | ||||||
| 	) | 	) | ||||||
| 	install(FILES ${SRB2_ASSET_OPTIONAL} |  | ||||||
| 		DESTINATION "${outname}.app/Contents/Resources" |  | ||||||
| 		OPTIONAL |  | ||||||
| 	) |  | ||||||
| 	install(FILES ${SRB2_ASSET_DOCS} | 	install(FILES ${SRB2_ASSET_DOCS} | ||||||
| 		DESTINATION . | 		DESTINATION . | ||||||
| 		OPTIONAL | 		OPTIONAL | ||||||
| 	) | 	) | ||||||
| else() | else() | ||||||
| 	install(FILES ${SRB2_ASSET_REQUIRED} | 	install(DIRECTORY "${SRB2_ASSET_DIRECTORY}/" | ||||||
| 		DESTINATION . | 		DESTINATION . | ||||||
| 	) | 	) | ||||||
| 	install(FILES ${SRB2_ASSET_OPTIONAL} | 	# Docs are assumed to be located in SRB2_ASSET_DIRECTORY, so don't install again | ||||||
| 		DESTINATION . | 	#install(FILES ${SRB2_ASSET_DOCS} | ||||||
| 		OPTIONAL | 	#	DESTINATION . | ||||||
| 	) | 	#	OPTIONAL | ||||||
| 	install(FILES ${SRB2_ASSET_DOCS} | 	#) | ||||||
| 		DESTINATION . |  | ||||||
| 		OPTIONAL |  | ||||||
| 	) |  | ||||||
| endif() | endif() | ||||||
|  |  | ||||||
|  | @ -47,55 +47,31 @@ RM	:= rm -rf | ||||||
| DIR	:= $(shell pwd) | DIR	:= $(shell pwd) | ||||||
| 
 | 
 | ||||||
| PACKAGE := $(shell cat $(DIR)/debian/control | grep 'Package:' | sed -e 's/Package: //g') | PACKAGE := $(shell cat $(DIR)/debian/control | grep 'Package:' | sed -e 's/Package: //g') | ||||||
| DATAFILES := ${ASSET_FILES_REQUIRED} | ARCHIVEPATH := ${ASSET_ARCHIVE_PATH} | ||||||
| DOCFILES := ${ASSET_FILES_DOCS} | ARCHIVEOPTIONALPATH := ${ASSET_ARCHIVE_OPTIONAL_PATH} | ||||||
| OPTIONALFILES := ${ASSET_FILES_OPTIONAL} |  | ||||||
| GETOPTIONALFILES := ${ASSET_FILES_OPTIONAL_GET} | GETOPTIONALFILES := ${ASSET_FILES_OPTIONAL_GET} | ||||||
| 
 | 
 | ||||||
| DATADIR	:= $(shell echo "${PACKAGE_INSTALL_PATH}" | sed -e 's/^\///') | DATADIR	:= $(shell echo "${PACKAGE_INSTALL_PATH}" | sed -e 's/^\///') | ||||||
| RESOURCEDIR := . | RESOURCEDIR := . | ||||||
|  | STAGINGDIR := $(RESOURCEDIR)/installer | ||||||
| WGET	:= wget -P $(RESOURCEDIR) -c -nc | WGET	:= wget -P $(RESOURCEDIR) -c -nc | ||||||
| 
 | 
 | ||||||
| build: | build: | ||||||
| 	$(MKDIR) $(DIR)/debian/tmp/$(DATADIR) | 	$(MKDIR) $(DIR)/debian/tmp/$(DATADIR) | ||||||
| 	> $(DIR)/debian/source/include-binaries | 	> $(DIR)/debian/source/include-binaries | ||||||
| 	# This will need to be updated every time SRB2 official version is |  | ||||||
| 	# Copy data files to their install locations, and add data files to include-binaries | 	# Copy data files to their install locations, and add data files to include-binaries | ||||||
| 	for file in $(DATAFILES); do \ | 	if [ ! -d $(STAGINGDIR) ]; then \ | ||||||
| 		if [ ! -f $(RESOURCEDIR)/${DEBFILEVAR} ]; then \ | 		mkdir -p "$(STAGINGDIR)"; \ | ||||||
| 			$(WGET) ${ASSET_BASE_PATH}/${DEBFILEVAR}; \ | 		$(WGET) $(ARCHIVEPATH); \ | ||||||
|  | 		7z x "$(RESOURCEDIR)/$(shell basename $(ARCHIVEPATH))" -aos; \ | ||||||
|  | 		if [ "$(GETOPTIONALFILES)" = "1" ]; then \ | ||||||
|  | 			$(WGET) $(ARCHIVEOPTIONALPATH); \ | ||||||
|  | 			7z x "$(RESOURCEDIR)/$(shell basename $(ARCHIVEOPTIONALPATH))" -aos; \ | ||||||
| 		fi; \ | 		fi; \ | ||||||
| 		if [ -f $(RESOURCEDIR)/${DEBFILEVAR} ]; then \ | 	fi | ||||||
| 			$(INSTALL) $(RESOURCEDIR)/${DEBFILEVAR} $(DIR)/debian/tmp/$(DATADIR)/${DEBFILEVAR}; \ | 	# Install asset directory and add asset file to include-binaries | ||||||
| 			echo $(RESOURCEDIR)/${DEBFILEVAR} >> $(DIR)/debian/source/include-binaries; \ | 	cp -vr "$(STAGINGDIR)/." "$(DIR)/debian/tmp/$(DATADIR)" | ||||||
| 		fi; \ | 	find "$(STAGINGDIR)" >> $(DIR)/debian/source/include-binaries | ||||||
| 		if [ ! -f $(DIR)/debian/tmp/$(DATADIR)/${DEBFILEVAR} ]; then \ |  | ||||||
| 			echo $(DIR)/debian/tmp/$(DATADIR)/${DEBFILEVAR} not found and could not be downloaded!; \ |  | ||||||
| 			return 1; \ |  | ||||||
| 		fi; \ |  | ||||||
| 	done |  | ||||||
| 	# Do the same for DOCFILES, but don't error out if not found |  | ||||||
| 	for file in $(DOCFILES); do \ |  | ||||||
| 		if [ ! -f $(RESOURCEDIR)/${DEBFILEVAR} ]; then \ |  | ||||||
| 			$(WGET) ${ASSET_BASE_PATH}/${DEBFILEVAR}; \ |  | ||||||
| 		fi; \ |  | ||||||
| 		if [ -f $(RESOURCEDIR)/${DEBFILEVAR} ]; then \ |  | ||||||
| 			$(INSTALL) $(RESOURCEDIR)/${DEBFILEVAR} $(DIR)/debian/tmp/$(DATADIR)/${DEBFILEVAR}; \ |  | ||||||
| 			echo $(RESOURCEDIR)/${DEBFILEVAR} >> $(DIR)/debian/source/include-binaries; \ |  | ||||||
| 		fi; \ |  | ||||||
| 	done |  | ||||||
| 	# Do the same for OPTIONALFILES if GETOPTIONALFILES == 1 |  | ||||||
| 	if [ "$(GETOPTIONALFILES)" = "1" ]; then \ |  | ||||||
| 		for file in $(OPTIONALFILES); do \ |  | ||||||
| 			if [ ! -f $(RESOURCEDIR)/${DEBFILEVAR} ]; then \ |  | ||||||
| 				$(WGET) ${ASSET_BASE_PATH}/${DEBFILEVAR}; \ |  | ||||||
| 			fi; \ |  | ||||||
| 			if [ -f $(RESOURCEDIR)/${DEBFILEVAR} ]; then \ |  | ||||||
| 				$(INSTALL) $(RESOURCEDIR)/${DEBFILEVAR} $(DIR)/debian/tmp/$(DATADIR)/${DEBFILEVAR}; \ |  | ||||||
| 				echo $(RESOURCEDIR)/${DEBFILEVAR} >> $(DIR)/debian/source/include-binaries; \ |  | ||||||
| 			fi; \ |  | ||||||
| 		done; \ |  | ||||||
| 	fi; |  | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| binary-indep: | binary-indep: | ||||||
|  |  | ||||||
|  | @ -28,10 +28,9 @@ | ||||||
| 
 | 
 | ||||||
| # Asset File Parameters | # Asset File Parameters | ||||||
| : ${ASSET_ARCHIVE_PATH:=https://github.com/mazmazz/SRB2/releases/download/SRB2_assets/SRB2-v2122-assets.7z} | : ${ASSET_ARCHIVE_PATH:=https://github.com/mazmazz/SRB2/releases/download/SRB2_assets/SRB2-v2122-assets.7z} | ||||||
| : ${ASSET_BASE_PATH:=https://github.com/mazmazz/SRB2/releases/download/SRB2_assets} | : ${ASSET_ARCHIVE_OPTIONAL_PATH:=https://github.com/mazmazz/SRB2/releases/download/SRB2_assets/SRB2-v2122-optional-assets.7z} | ||||||
| : ${ASSET_FILES_REQUIRED:=srb2.srb zones.dta player.dta rings.dta patch.dta} | : ${ASSET_FILES_HASHED:=srb2.srb zones.dta player.dta rings.dta patch.dta} | ||||||
| : ${ASSET_FILES_DOCS:=README.txt LICENSE.txt LICENSE-3RD-PARTY.txt} | : ${ASSET_FILES_DOCS:=README.txt LICENSE.txt LICENSE-3RD-PARTY.txt} | ||||||
| : ${ASSET_FILES_OPTIONAL:=music.dta} |  | ||||||
| : ${ASSET_FILES_OPTIONAL_GET:=0} | : ${ASSET_FILES_OPTIONAL_GET:=0} | ||||||
| 
 | 
 | ||||||
| # FTP Parameters | # FTP Parameters | ||||||
|  | @ -78,10 +77,9 @@ | ||||||
| # Export Asset and Package Parameters for envsubst templating | # Export Asset and Package Parameters for envsubst templating | ||||||
| 
 | 
 | ||||||
| export ASSET_ARCHIVE_PATH="${ASSET_ARCHIVE_PATH}" | export ASSET_ARCHIVE_PATH="${ASSET_ARCHIVE_PATH}" | ||||||
| export ASSET_BASE_PATH="${ASSET_BASE_PATH}" | export ASSET_ARCHIVE_OPTIONAL_PATH="${ASSET_ARCHIVE_OPTIONAL_PATH}" | ||||||
| export ASSET_FILES_REQUIRED="${ASSET_FILES_REQUIRED}" | export ASSET_FILES_HASHED="${ASSET_FILES_HASHED}" | ||||||
| export ASSET_FILES_DOCS="${ASSET_FILES_DOCS}" | export ASSET_FILES_DOCS="${ASSET_FILES_DOCS}" | ||||||
| export ASSET_FILES_OPTIONAL="${ASSET_FILES_OPTIONAL}" |  | ||||||
| export ASSET_FILES_OPTIONAL_GET="${ASSET_FILES_OPTIONAL_GET}" | export ASSET_FILES_OPTIONAL_GET="${ASSET_FILES_OPTIONAL_GET}" | ||||||
| 
 | 
 | ||||||
| export PACKAGE_NAME="${PACKAGE_NAME}" | export PACKAGE_NAME="${PACKAGE_NAME}" | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		
		Reference in a new issue
	
	 mazmazz
						mazmazz