mirror of
				https://github.com/PabloMK7/citra.git
				synced 2025-10-31 05:40:04 +00:00 
			
		
		
		
	build: Fix Qt installer build script. (#6938)
This commit is contained in:
		
							parent
							
								
									cab0ad50f0
								
							
						
					
					
						commit
						9e898bca06
					
				
					 3 changed files with 30 additions and 19 deletions
				
			
		|  | @ -1,4 +1,5 @@ | ||||||
| # To use this as a script, make sure you pass in the variables BASE_DIR, SRC_DIR, BUILD_DIR, and TARGET_FILE | # To use this as a script, make sure you pass in the variables BASE_DIR, SRC_DIR, BUILD_DIR, and TARGET_FILE | ||||||
|  | cmake_minimum_required(VERSION 3.15) | ||||||
| 
 | 
 | ||||||
| if(WIN32) | if(WIN32) | ||||||
|     set(PLATFORM "windows") |     set(PLATFORM "windows") | ||||||
|  | @ -12,7 +13,8 @@ endif() | ||||||
| 
 | 
 | ||||||
| list(APPEND CMAKE_MODULE_PATH "${BASE_DIR}/CMakeModules") | list(APPEND CMAKE_MODULE_PATH "${BASE_DIR}/CMakeModules") | ||||||
| include(DownloadExternals) | include(DownloadExternals) | ||||||
| download_qt(tools_ifw QT_PREFIX) | download_qt(tools_ifw) | ||||||
|  | get_external_prefix(qt QT_PREFIX) | ||||||
| 
 | 
 | ||||||
| file(GLOB_RECURSE INSTALLER_BASE "${QT_PREFIX}/**/installerbase*") | file(GLOB_RECURSE INSTALLER_BASE "${QT_PREFIX}/**/installerbase*") | ||||||
| file(GLOB_RECURSE BINARY_CREATOR "${QT_PREFIX}/**/binarycreator*") | file(GLOB_RECURSE BINARY_CREATOR "${QT_PREFIX}/**/binarycreator*") | ||||||
|  |  | ||||||
|  | @ -1,31 +1,38 @@ | ||||||
| 
 | 
 | ||||||
| # This function downloads Qt using aqt. | # This function downloads Qt using aqt. The path of the downloaded content will be added to the CMAKE_PREFIX_PATH. | ||||||
| # Params: | # Params: | ||||||
| #   target: Qt dependency to install. Specify a version number to download Qt, or "tools_(name)" for a specific build tool. | #   target: Qt dependency to install. Specify a version number to download Qt, or "tools_(name)" for a specific build tool. | ||||||
| #   prefix_var: Name of a variable which will be set with the path to the extracted contents. |  | ||||||
| function(download_qt target) | function(download_qt target) | ||||||
|  |     if (target MATCHES "tools_.*") | ||||||
|  |         set(DOWNLOAD_QT_TOOL ON) | ||||||
|  |     else() | ||||||
|  |         set(DOWNLOAD_QT_TOOL OFF) | ||||||
|  |     endif() | ||||||
|  | 
 | ||||||
|     # Determine installation parameters for OS, architecture, and compiler |     # Determine installation parameters for OS, architecture, and compiler | ||||||
|     if (WIN32) |     if (WIN32) | ||||||
|         set(host "windows") |         set(host "windows") | ||||||
|         set(type "desktop") |         set(type "desktop") | ||||||
|         if (MINGW) |         if (NOT DOWNLOAD_QT_TOOL) | ||||||
|             set(arch "win64_mingw") |             if (MINGW) | ||||||
|             set(arch_path "mingw_64") |                 set(arch "win64_mingw") | ||||||
|         elseif (MSVC) |                 set(arch_path "mingw_64") | ||||||
|             if ("arm64" IN_LIST ARCHITECTURE) |             elseif (MSVC) | ||||||
|                 set(arch_path "msvc2019_arm64") |                 if ("arm64" IN_LIST ARCHITECTURE) | ||||||
|             elseif ("x86_64" IN_LIST ARCHITECTURE) |                     set(arch_path "msvc2019_arm64") | ||||||
|                 set(arch_path "msvc2019_64") |                 elseif ("x86_64" IN_LIST ARCHITECTURE) | ||||||
|  |                     set(arch_path "msvc2019_64") | ||||||
|  |                 else() | ||||||
|  |                     message(FATAL_ERROR "Unsupported bundled Qt architecture. Enable USE_SYSTEM_QT and provide your own.") | ||||||
|  |                 endif() | ||||||
|  |                 set(arch "win64_${arch_path}") | ||||||
|             else() |             else() | ||||||
|                 message(FATAL_ERROR "Unsupported bundled Qt architecture. Enable USE_SYSTEM_QT and provide your own.") |                 message(FATAL_ERROR "Unsupported bundled Qt toolchain. Enable USE_SYSTEM_QT and provide your own.") | ||||||
|             endif() |             endif() | ||||||
|             set(arch "win64_${arch_path}") |  | ||||||
|         else() |  | ||||||
|             message(FATAL_ERROR "Unsupported bundled Qt toolchain. Enable USE_SYSTEM_QT and provide your own.") |  | ||||||
|         endif() |         endif() | ||||||
|     elseif (APPLE) |     elseif (APPLE) | ||||||
|         set(host "mac") |         set(host "mac") | ||||||
|         if (IOS) |         if (IOS AND NOT DOWNLOAD_QT_TOOL) | ||||||
|             set(type "ios") |             set(type "ios") | ||||||
|             set(arch "ios") |             set(arch "ios") | ||||||
|             set(arch_path "ios") |             set(arch_path "ios") | ||||||
|  | @ -45,8 +52,8 @@ function(download_qt target) | ||||||
|     get_external_prefix(qt base_path) |     get_external_prefix(qt base_path) | ||||||
|     file(MAKE_DIRECTORY "${base_path}") |     file(MAKE_DIRECTORY "${base_path}") | ||||||
| 
 | 
 | ||||||
|     if (target MATCHES "tools_.*") |     if (DOWNLOAD_QT_TOOL) | ||||||
|         set(prefix "${base_path}") |         set(prefix "${base_path}/Tools") | ||||||
|         set(install_args install-tool --outputdir ${base_path} ${host} desktop ${target}) |         set(install_args install-tool --outputdir ${base_path} ${host} desktop ${target}) | ||||||
|     else() |     else() | ||||||
|         set(prefix "${base_path}/${target}/${arch_path}") |         set(prefix "${base_path}/${target}/${arch_path}") | ||||||
|  | @ -63,7 +70,7 @@ function(download_qt target) | ||||||
|         if (WIN32) |         if (WIN32) | ||||||
|             set(aqt_path "${base_path}/aqt.exe") |             set(aqt_path "${base_path}/aqt.exe") | ||||||
|             file(DOWNLOAD |             file(DOWNLOAD | ||||||
|                 https://github.com/miurahr/aqtinstall/releases/download/v3.1.4/aqt.exe |                 https://github.com/miurahr/aqtinstall/releases/download/v3.1.7/aqt.exe | ||||||
|                 ${aqt_path} SHOW_PROGRESS) |                 ${aqt_path} SHOW_PROGRESS) | ||||||
|             execute_process(COMMAND ${aqt_path} ${install_args} |             execute_process(COMMAND ${aqt_path} ${install_args} | ||||||
|                     WORKING_DIRECTORY ${base_path}) |                     WORKING_DIRECTORY ${base_path}) | ||||||
|  |  | ||||||
							
								
								
									
										2
									
								
								dist/installer/CMakeLists.txt
									
										
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								dist/installer/CMakeLists.txt
									
										
									
									
										vendored
									
									
								
							|  | @ -13,6 +13,8 @@ set(BUILD_DIR "${CMAKE_BINARY_DIR}/installer") | ||||||
| set(DIST_DIR "${BUILD_DIR}/dist") | set(DIST_DIR "${BUILD_DIR}/dist") | ||||||
| set(TARGET_FILE "${DIST_DIR}/citra-setup-${PLATFORM}") | set(TARGET_FILE "${DIST_DIR}/citra-setup-${PLATFORM}") | ||||||
| 
 | 
 | ||||||
|  | file(MAKE_DIRECTORY "${BUILD_DIR}" "${DIST_DIR}") | ||||||
|  | 
 | ||||||
| # Adds a custom target that will run the BuildInstaller.cmake file | # Adds a custom target that will run the BuildInstaller.cmake file | ||||||
| # CMake can't just run a cmake function as a custom command, so this is a way around it. | # CMake can't just run a cmake function as a custom command, so this is a way around it. | ||||||
| # Calls the cmake command and runs a cmake file in "scripting" mode passing in variables with -D | # Calls the cmake command and runs a cmake file in "scripting" mode passing in variables with -D | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue