| # SPDX-FileCopyrightText: 2018 yuzu Emulator Project | |
| # SPDX-License-Identifier: GPL-2.0-or-later | |
| if (DEFINED ENV{AZURECIREPO}) | |
| set(BUILD_REPOSITORY $ENV{AZURECIREPO}) | |
| endif() | |
| if (DEFINED ENV{TITLEBARFORMATIDLE}) | |
| set(TITLE_BAR_FORMAT_IDLE $ENV{TITLEBARFORMATIDLE}) | |
| endif () | |
| if (DEFINED ENV{TITLEBARFORMATRUNNING}) | |
| set(TITLE_BAR_FORMAT_RUNNING $ENV{TITLEBARFORMATRUNNING}) | |
| endif () | |
| if (DEFINED ENV{DISPLAYVERSION}) | |
| set(DISPLAY_VERSION $ENV{DISPLAYVERSION}) | |
| endif () | |
| include(GenerateSCMRev) | |
| add_library(common STATIC | |
| address_space.cpp | |
| address_space.h | |
| algorithm.h | |
| alignment.h | |
| announce_multiplayer_room.h | |
| assert.cpp | |
| assert.h | |
| atomic_helpers.h | |
| atomic_ops.h | |
| bit_cast.h | |
| bit_field.h | |
| bit_set.h | |
| bit_util.h | |
| bounded_threadsafe_queue.h | |
| cityhash.cpp | |
| cityhash.h | |
| common_funcs.h | |
| common_precompiled_headers.h | |
| common_types.h | |
| concepts.h | |
| container_hash.h | |
| demangle.cpp | |
| demangle.h | |
| detached_tasks.cpp | |
| detached_tasks.h | |
| div_ceil.h | |
| dynamic_library.cpp | |
| dynamic_library.h | |
| elf.h | |
| error.cpp | |
| error.h | |
| expected.h | |
| fiber.cpp | |
| fiber.h | |
| fixed_point.h | |
| free_region_manager.h | |
| fs/file.cpp | |
| fs/file.h | |
| fs/fs.cpp | |
| fs/fs.h | |
| fs/fs_paths.h | |
| fs/fs_types.h | |
| fs/fs_util.cpp | |
| fs/fs_util.h | |
| fs/path_util.cpp | |
| fs/path_util.h | |
| hash.h | |
| heap_tracker.cpp | |
| heap_tracker.h | |
| hex_util.cpp | |
| hex_util.h | |
| host_memory.cpp | |
| host_memory.h | |
| input.h | |
| intrusive_red_black_tree.h | |
| literals.h | |
| logging/backend.cpp | |
| logging/backend.h | |
| logging/filter.cpp | |
| logging/filter.h | |
| logging/formatter.h | |
| logging/log.h | |
| logging/log_entry.h | |
| logging/text_formatter.cpp | |
| logging/text_formatter.h | |
| logging/types.h | |
| lz4_compression.cpp | |
| lz4_compression.h | |
| make_unique_for_overwrite.h | |
| math_util.h | |
| memory_detect.cpp | |
| memory_detect.h | |
| microprofile.cpp | |
| microprofile.h | |
| microprofileui.h | |
| multi_level_page_table.cpp | |
| multi_level_page_table.h | |
| nvidia_flags.cpp | |
| nvidia_flags.h | |
| overflow.h | |
| page_table.cpp | |
| page_table.h | |
| param_package.cpp | |
| param_package.h | |
| parent_of_member.h | |
| point.h | |
| precompiled_headers.h | |
| quaternion.h | |
| range_map.h | |
| range_mutex.h | |
| range_sets.h | |
| range_sets.inc | |
| reader_writer_queue.h | |
| ring_buffer.h | |
| ${CMAKE_CURRENT_BINARY_DIR}/scm_rev.cpp | |
| scm_rev.h | |
| scope_exit.h | |
| scratch_buffer.h | |
| settings.cpp | |
| settings.h | |
| settings_common.cpp | |
| settings_common.h | |
| settings_enums.h | |
| settings_input.cpp | |
| settings_input.h | |
| settings_setting.h | |
| slot_vector.h | |
| socket_types.h | |
| spin_lock.cpp | |
| spin_lock.h | |
| stb.cpp | |
| stb.h | |
| steady_clock.cpp | |
| steady_clock.h | |
| stream.cpp | |
| stream.h | |
| string_util.cpp | |
| string_util.h | |
| swap.h | |
| telemetry.cpp | |
| telemetry.h | |
| thread.cpp | |
| thread.h | |
| thread_queue_list.h | |
| thread_worker.h | |
| threadsafe_queue.h | |
| time_zone.cpp | |
| time_zone.h | |
| tiny_mt.h | |
| tree.h | |
| typed_address.h | |
| uint128.h | |
| unique_function.h | |
| uuid.cpp | |
| uuid.h | |
| vector_math.h | |
| virtual_buffer.cpp | |
| virtual_buffer.h | |
| wall_clock.cpp | |
| wall_clock.h | |
| zstd_compression.cpp | |
| zstd_compression.h | |
| ) | |
| if (YUZU_ENABLE_PORTABLE) | |
| add_compile_definitions(YUZU_ENABLE_PORTABLE) | |
| endif() | |
| if (WIN32) | |
| target_sources(common PRIVATE | |
| windows/timer_resolution.cpp | |
| windows/timer_resolution.h | |
| ) | |
| target_link_libraries(common PRIVATE ntdll) | |
| endif() | |
| if (NOT WIN32) | |
| target_sources(common PRIVATE | |
| signal_chain.cpp | |
| signal_chain.h | |
| ) | |
| endif() | |
| if(ANDROID) | |
| target_sources(common | |
| PUBLIC | |
| fs/fs_android.cpp | |
| fs/fs_android.h | |
| android/android_common.cpp | |
| android/android_common.h | |
| android/id_cache.cpp | |
| android/id_cache.h | |
| android/applets/software_keyboard.cpp | |
| android/applets/software_keyboard.h | |
| ) | |
| endif() | |
| if (UNIX AND NOT APPLE) | |
| target_sources(common PRIVATE | |
| linux/gamemode.cpp | |
| linux/gamemode.h | |
| ) | |
| target_link_libraries(common PRIVATE gamemode::headers) | |
| endif() | |
| if(ARCHITECTURE_x86_64) | |
| target_sources(common | |
| PRIVATE | |
| x64/cpu_detect.cpp | |
| x64/cpu_detect.h | |
| x64/cpu_wait.cpp | |
| x64/cpu_wait.h | |
| x64/native_clock.cpp | |
| x64/native_clock.h | |
| x64/rdtsc.cpp | |
| x64/rdtsc.h | |
| x64/xbyak_abi.h | |
| x64/xbyak_util.h | |
| ) | |
| target_link_libraries(common PRIVATE xbyak::xbyak) | |
| endif() | |
| if (HAS_NCE) | |
| target_sources(common | |
| PRIVATE | |
| arm64/native_clock.cpp | |
| arm64/native_clock.h | |
| ) | |
| endif() | |
| if (MSVC) | |
| target_compile_definitions(common PRIVATE | |
| # The standard library doesn't provide any replacement for codecvt yet | |
| # so we can disable this deprecation warning for the time being. | |
| _SILENCE_CXX17_CODECVT_HEADER_DEPRECATION_WARNING | |
| ) | |
| target_compile_options(common PRIVATE | |
| /we4242 # 'identifier': conversion from 'type1' to 'type2', possible loss of data | |
| /we4254 # 'operator': conversion from 'type1:field_bits' to 'type2:field_bits', possible loss of data | |
| /we4800 # Implicit conversion from 'type' to bool. Possible information loss | |
| ) | |
| else() | |
| set_source_files_properties(stb.cpp PROPERTIES COMPILE_OPTIONS "-Wno-implicit-fallthrough;-Wno-missing-declarations;-Wno-missing-field-initializers") | |
| endif() | |
| if (CMAKE_CXX_COMPILER_ID STREQUAL "Clang") | |
| target_compile_options(common PRIVATE | |
| -fsized-deallocation | |
| -Werror=unreachable-code-aggressive | |
| ) | |
| target_compile_definitions(common PRIVATE | |
| # Clang 14 and earlier have errors when explicitly instantiating Settings::Setting | |
| $<$<VERSION_LESS:$<CXX_COMPILER_VERSION>,15>:CANNOT_EXPLICITLY_INSTANTIATE> | |
| ) | |
| endif() | |
| target_link_libraries(common PUBLIC Boost::context Boost::headers fmt::fmt microprofile stb::headers Threads::Threads) | |
| target_link_libraries(common PRIVATE lz4::lz4 zstd::zstd LLVM::Demangle) | |
| if (ANDROID) | |
| # For ASharedMemory_create | |
| target_link_libraries(common PRIVATE android) | |
| endif() | |
| if (YUZU_USE_PRECOMPILED_HEADERS) | |
| target_precompile_headers(common PRIVATE precompiled_headers.h) | |
| endif() | |
| create_target_directory_groups(common) | |