mirror of
				https://git.suyu.dev/suyu/suyu
				synced 2025-11-03 16:39:01 -06:00 
			
		
		
		
	CMake: Use precompiled headers
This commit is contained in:
		@@ -82,8 +82,9 @@ if (MSVC)
 | 
			
		||||
        /wd4324 # 'struct_name': structure was padded due to __declspec(align())
 | 
			
		||||
    )
 | 
			
		||||
 | 
			
		||||
    if (USE_CCACHE)
 | 
			
		||||
    if (USE_CCACHE OR YUZU_USE_PRECOMPILED_HEADERS)
 | 
			
		||||
    # when caching, we need to use /Z7 to downgrade debug info to use an older but more cachable format
 | 
			
		||||
    # Precompiled headers are deleted if not using /Z7. See https://github.com/nanoant/CMakePCHCompiler/issues/21
 | 
			
		||||
        add_compile_options(/Z7)
 | 
			
		||||
    else()
 | 
			
		||||
        add_compile_options(/Zi)
 | 
			
		||||
@@ -151,6 +152,10 @@ else()
 | 
			
		||||
    endif()
 | 
			
		||||
endif()
 | 
			
		||||
 | 
			
		||||
if (YUZU_USE_PRECOMPILED_HEADERS)
 | 
			
		||||
    set(CMAKE_PCH_INSTANTIATE_TEMPLATES ON)
 | 
			
		||||
endif()
 | 
			
		||||
 | 
			
		||||
add_subdirectory(common)
 | 
			
		||||
add_subdirectory(core)
 | 
			
		||||
add_subdirectory(audio_core)
 | 
			
		||||
 
 | 
			
		||||
@@ -31,6 +31,7 @@ add_library(audio_core STATIC
 | 
			
		||||
    out/audio_out.h
 | 
			
		||||
    out/audio_out_system.cpp
 | 
			
		||||
    out/audio_out_system.h
 | 
			
		||||
    precompiled_headers.h
 | 
			
		||||
    renderer/adsp/adsp.cpp
 | 
			
		||||
    renderer/adsp/adsp.h
 | 
			
		||||
    renderer/adsp/audio_renderer.cpp
 | 
			
		||||
@@ -229,3 +230,7 @@ if(ENABLE_SDL2)
 | 
			
		||||
    target_link_libraries(audio_core PRIVATE SDL2)
 | 
			
		||||
    target_compile_definitions(audio_core PRIVATE HAVE_SDL2)
 | 
			
		||||
endif()
 | 
			
		||||
 | 
			
		||||
if (YUZU_USE_PRECOMPILED_HEADERS)
 | 
			
		||||
    target_precompile_headers(audio_core PRIVATE precompiled_headers.h)
 | 
			
		||||
endif()
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										12
									
								
								src/audio_core/precompiled_headers.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										12
									
								
								src/audio_core/precompiled_headers.h
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,12 @@
 | 
			
		||||
// SPDX-FileCopyrightText: 2022 yuzu Emulator Project
 | 
			
		||||
// SPDX-License-Identifier: GPL-2.0-or-later
 | 
			
		||||
 | 
			
		||||
#pragma once
 | 
			
		||||
 | 
			
		||||
#include <algorithm>
 | 
			
		||||
#include <chrono>
 | 
			
		||||
#include <memory>
 | 
			
		||||
 | 
			
		||||
#include <fmt/format.h>
 | 
			
		||||
 | 
			
		||||
#include "common/assert.h"
 | 
			
		||||
@@ -95,6 +95,7 @@ add_library(common STATIC
 | 
			
		||||
    param_package.h
 | 
			
		||||
    parent_of_member.h
 | 
			
		||||
    point.h
 | 
			
		||||
    precompiled_headers.h
 | 
			
		||||
    quaternion.h
 | 
			
		||||
    reader_writer_queue.h
 | 
			
		||||
    ring_buffer.h
 | 
			
		||||
@@ -183,3 +184,8 @@ else()
 | 
			
		||||
  target_link_libraries(common PRIVATE
 | 
			
		||||
    $<IF:$<TARGET_EXISTS:zstd::libzstd_shared>,zstd::libzstd_shared,zstd::libzstd_static>)
 | 
			
		||||
endif()
 | 
			
		||||
 | 
			
		||||
if (YUZU_USE_PRECOMPILED_HEADERS)
 | 
			
		||||
    target_precompile_headers(common PRIVATE precompiled_headers.h)
 | 
			
		||||
    set(CMAKE_PCH_INSTANTIATE_TEMPLATES ON)
 | 
			
		||||
endif()
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										12
									
								
								src/common/precompiled_headers.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										12
									
								
								src/common/precompiled_headers.h
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,12 @@
 | 
			
		||||
// SPDX-FileCopyrightText: 2022 yuzu Emulator Project
 | 
			
		||||
// SPDX-License-Identifier: GPL-2.0-or-later
 | 
			
		||||
 | 
			
		||||
#pragma once
 | 
			
		||||
 | 
			
		||||
#include <algorithm>
 | 
			
		||||
#include <chrono>
 | 
			
		||||
#include <memory>
 | 
			
		||||
 | 
			
		||||
#include <fmt/format.h>
 | 
			
		||||
 | 
			
		||||
#include "common/assert.h"
 | 
			
		||||
@@ -771,6 +771,7 @@ add_library(core STATIC
 | 
			
		||||
    memory.h
 | 
			
		||||
    perf_stats.cpp
 | 
			
		||||
    perf_stats.h
 | 
			
		||||
    precompiled_headers.h
 | 
			
		||||
    reporter.cpp
 | 
			
		||||
    reporter.h
 | 
			
		||||
    telemetry_session.cpp
 | 
			
		||||
@@ -825,3 +826,7 @@ if (ARCHITECTURE_x86_64 OR ARCHITECTURE_arm64)
 | 
			
		||||
    )
 | 
			
		||||
    target_link_libraries(core PRIVATE dynarmic)
 | 
			
		||||
endif()
 | 
			
		||||
 | 
			
		||||
if (YUZU_USE_PRECOMPILED_HEADERS)
 | 
			
		||||
    target_precompile_headers(core PRIVATE precompiled_headers.h)
 | 
			
		||||
endif()
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										14
									
								
								src/core/precompiled_headers.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										14
									
								
								src/core/precompiled_headers.h
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,14 @@
 | 
			
		||||
// SPDX-FileCopyrightText: 2022 yuzu Emulator Project
 | 
			
		||||
// SPDX-License-Identifier: GPL-2.0-or-later
 | 
			
		||||
 | 
			
		||||
#pragma once
 | 
			
		||||
 | 
			
		||||
#include <algorithm>
 | 
			
		||||
#include <chrono>
 | 
			
		||||
#include <memory>
 | 
			
		||||
 | 
			
		||||
#include <boost/container/flat_map.hpp> // used by service.h which is heavily included
 | 
			
		||||
#include <boost/intrusive/rbtree.hpp>   // used by k_auto_object.h which is heavily included
 | 
			
		||||
#include <fmt/format.h>
 | 
			
		||||
 | 
			
		||||
#include "common/assert.h"
 | 
			
		||||
@@ -4,6 +4,7 @@
 | 
			
		||||
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${PROJECT_SOURCE_DIR}/CMakeModules)
 | 
			
		||||
 | 
			
		||||
add_executable(yuzu-room
 | 
			
		||||
    precompiled_headers.h
 | 
			
		||||
    yuzu_room.cpp
 | 
			
		||||
    yuzu_room.rc
 | 
			
		||||
)
 | 
			
		||||
@@ -25,3 +26,7 @@ target_link_libraries(yuzu-room PRIVATE ${PLATFORM_LIBRARIES} Threads::Threads)
 | 
			
		||||
if(UNIX AND NOT APPLE)
 | 
			
		||||
    install(TARGETS yuzu-room)
 | 
			
		||||
endif()
 | 
			
		||||
 | 
			
		||||
if (YUZU_USE_PRECOMPILED_HEADERS)
 | 
			
		||||
    target_precompile_headers(yuzu-room PRIVATE precompiled_headers.h)
 | 
			
		||||
endif()
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										12
									
								
								src/dedicated_room/precompiled_headers.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										12
									
								
								src/dedicated_room/precompiled_headers.h
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,12 @@
 | 
			
		||||
// SPDX-FileCopyrightText: 2022 yuzu Emulator Project
 | 
			
		||||
// SPDX-License-Identifier: GPL-2.0-or-later
 | 
			
		||||
 | 
			
		||||
#pragma once
 | 
			
		||||
 | 
			
		||||
#include <algorithm>
 | 
			
		||||
#include <chrono>
 | 
			
		||||
#include <memory>
 | 
			
		||||
 | 
			
		||||
#include <fmt/format.h>
 | 
			
		||||
 | 
			
		||||
#include "common/assert.h"
 | 
			
		||||
@@ -34,6 +34,7 @@ add_library(input_common STATIC
 | 
			
		||||
    input_poller.h
 | 
			
		||||
    main.cpp
 | 
			
		||||
    main.h
 | 
			
		||||
    precompiled_headers.h
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
if (MSVC)
 | 
			
		||||
@@ -63,3 +64,7 @@ target_link_libraries(input_common PRIVATE usb)
 | 
			
		||||
 | 
			
		||||
create_target_directory_groups(input_common)
 | 
			
		||||
target_link_libraries(input_common PUBLIC core PRIVATE common Boost::boost)
 | 
			
		||||
 | 
			
		||||
if (YUZU_USE_PRECOMPILED_HEADERS)
 | 
			
		||||
    target_precompile_headers(input_common PRIVATE precompiled_headers.h)
 | 
			
		||||
endif()
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										12
									
								
								src/input_common/precompiled_headers.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										12
									
								
								src/input_common/precompiled_headers.h
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,12 @@
 | 
			
		||||
// SPDX-FileCopyrightText: 2022 yuzu Emulator Project
 | 
			
		||||
// SPDX-License-Identifier: GPL-2.0-or-later
 | 
			
		||||
 | 
			
		||||
#pragma once
 | 
			
		||||
 | 
			
		||||
#include <algorithm>
 | 
			
		||||
#include <chrono>
 | 
			
		||||
#include <memory>
 | 
			
		||||
 | 
			
		||||
#include <fmt/format.h>
 | 
			
		||||
 | 
			
		||||
#include "common/assert.h"
 | 
			
		||||
@@ -8,6 +8,7 @@ add_library(network STATIC
 | 
			
		||||
    network.h
 | 
			
		||||
    packet.cpp
 | 
			
		||||
    packet.h
 | 
			
		||||
    precompiled_headers.h
 | 
			
		||||
    room.cpp
 | 
			
		||||
    room.h
 | 
			
		||||
    room_member.cpp
 | 
			
		||||
@@ -23,3 +24,7 @@ if (ENABLE_WEB_SERVICE)
 | 
			
		||||
    target_compile_definitions(network PRIVATE -DENABLE_WEB_SERVICE)
 | 
			
		||||
    target_link_libraries(network PRIVATE web_service)
 | 
			
		||||
endif()
 | 
			
		||||
 | 
			
		||||
if (YUZU_USE_PRECOMPILED_HEADERS)
 | 
			
		||||
    target_precompile_headers(network PRIVATE precompiled_headers.h)
 | 
			
		||||
endif()
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										12
									
								
								src/network/precompiled_headers.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										12
									
								
								src/network/precompiled_headers.h
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,12 @@
 | 
			
		||||
// SPDX-FileCopyrightText: 2022 yuzu Emulator Project
 | 
			
		||||
// SPDX-License-Identifier: GPL-2.0-or-later
 | 
			
		||||
 | 
			
		||||
#pragma once
 | 
			
		||||
 | 
			
		||||
#include <algorithm>
 | 
			
		||||
#include <chrono>
 | 
			
		||||
#include <memory>
 | 
			
		||||
 | 
			
		||||
#include <fmt/format.h>
 | 
			
		||||
 | 
			
		||||
#include "common/assert.h"
 | 
			
		||||
@@ -230,6 +230,7 @@ add_library(shader_recompiler STATIC
 | 
			
		||||
    ir_opt/texture_pass.cpp
 | 
			
		||||
    ir_opt/verification_pass.cpp
 | 
			
		||||
    object_pool.h
 | 
			
		||||
    precompiled_headers.h
 | 
			
		||||
    profile.h
 | 
			
		||||
    program_header.h
 | 
			
		||||
    runtime_info.h
 | 
			
		||||
@@ -258,3 +259,7 @@ else()
 | 
			
		||||
endif()
 | 
			
		||||
 | 
			
		||||
create_target_directory_groups(shader_recompiler)
 | 
			
		||||
 | 
			
		||||
if (YUZU_USE_PRECOMPILED_HEADERS)
 | 
			
		||||
    target_precompile_headers(shader_recompiler PRIVATE precompiled_headers.h)
 | 
			
		||||
endif()
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										13
									
								
								src/shader_recompiler/precompiled_headers.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										13
									
								
								src/shader_recompiler/precompiled_headers.h
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,13 @@
 | 
			
		||||
// SPDX-FileCopyrightText: 2022 yuzu Emulator Project
 | 
			
		||||
// SPDX-License-Identifier: GPL-2.0-or-later
 | 
			
		||||
 | 
			
		||||
#pragma once
 | 
			
		||||
 | 
			
		||||
#include <algorithm>
 | 
			
		||||
#include <chrono>
 | 
			
		||||
#include <memory>
 | 
			
		||||
 | 
			
		||||
#include <fmt/format.h>
 | 
			
		||||
 | 
			
		||||
#include "common/assert.h"
 | 
			
		||||
#include "frontend/maxwell/translate/impl/impl.h"
 | 
			
		||||
@@ -11,6 +11,7 @@ add_executable(tests
 | 
			
		||||
    common/unique_function.cpp
 | 
			
		||||
    core/core_timing.cpp
 | 
			
		||||
    core/internal_network/network.cpp
 | 
			
		||||
    precompiled_headers.h
 | 
			
		||||
    tests.cpp
 | 
			
		||||
    video_core/buffer_base.cpp
 | 
			
		||||
    input_common/calibration_configuration_job.cpp
 | 
			
		||||
@@ -22,3 +23,7 @@ target_link_libraries(tests PRIVATE common core input_common)
 | 
			
		||||
target_link_libraries(tests PRIVATE ${PLATFORM_LIBRARIES} Catch2::Catch2 Threads::Threads)
 | 
			
		||||
 | 
			
		||||
add_test(NAME tests COMMAND tests)
 | 
			
		||||
 | 
			
		||||
if (YUZU_USE_PRECOMPILED_HEADERS)
 | 
			
		||||
    target_precompile_headers(tests PRIVATE precompiled_headers.h)
 | 
			
		||||
endif()
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										12
									
								
								src/tests/precompiled_headers.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										12
									
								
								src/tests/precompiled_headers.h
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,12 @@
 | 
			
		||||
// SPDX-FileCopyrightText: 2022 yuzu Emulator Project
 | 
			
		||||
// SPDX-License-Identifier: GPL-2.0-or-later
 | 
			
		||||
 | 
			
		||||
#pragma once
 | 
			
		||||
 | 
			
		||||
#include <algorithm>
 | 
			
		||||
#include <chrono>
 | 
			
		||||
#include <memory>
 | 
			
		||||
 | 
			
		||||
#include <fmt/format.h>
 | 
			
		||||
 | 
			
		||||
#include "common/assert.h"
 | 
			
		||||
@@ -84,6 +84,7 @@ add_library(video_core STATIC
 | 
			
		||||
    gpu_thread.h
 | 
			
		||||
    memory_manager.cpp
 | 
			
		||||
    memory_manager.h
 | 
			
		||||
    precompiled_headers.h
 | 
			
		||||
    pte_kind.h
 | 
			
		||||
    query_cache.h
 | 
			
		||||
    rasterizer_accelerated.cpp
 | 
			
		||||
@@ -300,3 +301,7 @@ endif()
 | 
			
		||||
if (ARCHITECTURE_x86_64 OR ARCHITECTURE_arm64)
 | 
			
		||||
    target_link_libraries(video_core PRIVATE dynarmic)
 | 
			
		||||
endif()
 | 
			
		||||
 | 
			
		||||
if (YUZU_USE_PRECOMPILED_HEADERS)
 | 
			
		||||
    target_precompile_headers(video_core PRIVATE precompiled_headers.h)
 | 
			
		||||
endif()
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										12
									
								
								src/video_core/precompiled_headers.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										12
									
								
								src/video_core/precompiled_headers.h
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,12 @@
 | 
			
		||||
// SPDX-FileCopyrightText: 2022 yuzu Emulator Project
 | 
			
		||||
// SPDX-License-Identifier: GPL-2.0-or-later
 | 
			
		||||
 | 
			
		||||
#pragma once
 | 
			
		||||
 | 
			
		||||
#include <algorithm>
 | 
			
		||||
#include <chrono>
 | 
			
		||||
#include <memory>
 | 
			
		||||
 | 
			
		||||
#include <fmt/format.h>
 | 
			
		||||
 | 
			
		||||
#include "common/assert.h"
 | 
			
		||||
@@ -4,6 +4,7 @@
 | 
			
		||||
add_library(web_service STATIC
 | 
			
		||||
    announce_room_json.cpp
 | 
			
		||||
    announce_room_json.h
 | 
			
		||||
    precompiled_headers.h
 | 
			
		||||
    telemetry_json.cpp
 | 
			
		||||
    telemetry_json.h
 | 
			
		||||
    verify_login.cpp
 | 
			
		||||
@@ -17,3 +18,7 @@ add_library(web_service STATIC
 | 
			
		||||
 | 
			
		||||
create_target_directory_groups(web_service)
 | 
			
		||||
target_link_libraries(web_service PRIVATE common network nlohmann_json::nlohmann_json httplib cpp-jwt)
 | 
			
		||||
 | 
			
		||||
if (YUZU_USE_PRECOMPILED_HEADERS)
 | 
			
		||||
    target_precompile_headers(web_service PRIVATE precompiled_headers.h)
 | 
			
		||||
endif()
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										12
									
								
								src/web_service/precompiled_headers.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										12
									
								
								src/web_service/precompiled_headers.h
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,12 @@
 | 
			
		||||
// SPDX-FileCopyrightText: 2022 yuzu Emulator Project
 | 
			
		||||
// SPDX-License-Identifier: GPL-2.0-or-later
 | 
			
		||||
 | 
			
		||||
#pragma once
 | 
			
		||||
 | 
			
		||||
#include <algorithm>
 | 
			
		||||
#include <chrono>
 | 
			
		||||
#include <memory>
 | 
			
		||||
 | 
			
		||||
#include <fmt/format.h>
 | 
			
		||||
 | 
			
		||||
#include "common/assert.h"
 | 
			
		||||
@@ -186,6 +186,7 @@ add_executable(yuzu
 | 
			
		||||
    multiplayer/state.cpp
 | 
			
		||||
    multiplayer/state.h
 | 
			
		||||
    multiplayer/validation.h
 | 
			
		||||
    precompiled_headers.h
 | 
			
		||||
    startup_checks.cpp
 | 
			
		||||
    startup_checks.h
 | 
			
		||||
    uisettings.cpp
 | 
			
		||||
@@ -405,3 +406,7 @@ endif()
 | 
			
		||||
if (ARCHITECTURE_x86_64 OR ARCHITECTURE_arm64)
 | 
			
		||||
    target_link_libraries(yuzu PRIVATE dynarmic)
 | 
			
		||||
endif()
 | 
			
		||||
 | 
			
		||||
if (YUZU_USE_PRECOMPILED_HEADERS)
 | 
			
		||||
    target_precompile_headers(yuzu PRIVATE precompiled_headers.h)
 | 
			
		||||
endif()
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										12
									
								
								src/yuzu/precompiled_headers.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										12
									
								
								src/yuzu/precompiled_headers.h
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,12 @@
 | 
			
		||||
// SPDX-FileCopyrightText: 2022 yuzu Emulator Project
 | 
			
		||||
// SPDX-License-Identifier: GPL-2.0-or-later
 | 
			
		||||
 | 
			
		||||
#pragma once
 | 
			
		||||
 | 
			
		||||
#include <algorithm>
 | 
			
		||||
#include <chrono>
 | 
			
		||||
#include <memory>
 | 
			
		||||
 | 
			
		||||
#include <fmt/format.h>
 | 
			
		||||
 | 
			
		||||
#include "common/assert.h"
 | 
			
		||||
@@ -24,6 +24,7 @@ add_executable(yuzu-cmd
 | 
			
		||||
    emu_window/emu_window_sdl2_gl.h
 | 
			
		||||
    emu_window/emu_window_sdl2_vk.cpp
 | 
			
		||||
    emu_window/emu_window_sdl2_vk.h
 | 
			
		||||
    precompiled_headers.h
 | 
			
		||||
    yuzu.cpp
 | 
			
		||||
    yuzu.rc
 | 
			
		||||
)
 | 
			
		||||
@@ -55,3 +56,7 @@ if (MSVC)
 | 
			
		||||
    include(CopyYuzuSDLDeps)
 | 
			
		||||
    copy_yuzu_SDL_deps(yuzu-cmd)
 | 
			
		||||
endif()
 | 
			
		||||
 | 
			
		||||
if (YUZU_USE_PRECOMPILED_HEADERS)
 | 
			
		||||
    target_precompile_headers(yuzu-cmd PRIVATE precompiled_headers.h)
 | 
			
		||||
endif()
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										12
									
								
								src/yuzu_cmd/precompiled_headers.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										12
									
								
								src/yuzu_cmd/precompiled_headers.h
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,12 @@
 | 
			
		||||
// SPDX-FileCopyrightText: 2022 yuzu Emulator Project
 | 
			
		||||
// SPDX-License-Identifier: GPL-2.0-or-later
 | 
			
		||||
 | 
			
		||||
#pragma once
 | 
			
		||||
 | 
			
		||||
#include <algorithm>
 | 
			
		||||
#include <chrono>
 | 
			
		||||
#include <memory>
 | 
			
		||||
 | 
			
		||||
#include <fmt/format.h>
 | 
			
		||||
 | 
			
		||||
#include "common/assert.h"
 | 
			
		||||
		Reference in New Issue
	
	Block a user