|
|
|
@ -5,241 +5,240 @@ |
|
|
|
# GPL-2.0-or-later |
|
|
|
|
|
|
|
if(DEFINED ENV{AZURECIREPO}) |
|
|
|
set(BUILD_REPOSITORY $ENV{AZURECIREPO}) |
|
|
|
set(BUILD_REPOSITORY $ENV{AZURECIREPO}) |
|
|
|
endif() |
|
|
|
if(DEFINED ENV{TITLEBARFORMATIDLE}) |
|
|
|
set(TITLE_BAR_FORMAT_IDLE $ENV{TITLEBARFORMATIDLE}) |
|
|
|
set(TITLE_BAR_FORMAT_IDLE $ENV{TITLEBARFORMATIDLE}) |
|
|
|
endif() |
|
|
|
if(DEFINED ENV{TITLEBARFORMATRUNNING}) |
|
|
|
set(TITLE_BAR_FORMAT_RUNNING $ENV{TITLEBARFORMATRUNNING}) |
|
|
|
set(TITLE_BAR_FORMAT_RUNNING $ENV{TITLEBARFORMATRUNNING}) |
|
|
|
endif() |
|
|
|
if(DEFINED ENV{DISPLAYVERSION}) |
|
|
|
set(DISPLAY_VERSION $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_ops.h |
|
|
|
bit_field.h |
|
|
|
bit_util.h |
|
|
|
bounded_threadsafe_queue.h |
|
|
|
cityhash.cpp |
|
|
|
cityhash.h |
|
|
|
common_funcs.h |
|
|
|
common_types.h |
|
|
|
concepts.h |
|
|
|
container_hash.h |
|
|
|
demangle.cpp |
|
|
|
demangle.h |
|
|
|
detached_tasks.cpp |
|
|
|
detached_tasks.h |
|
|
|
device_power_state.cpp |
|
|
|
device_power_state.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 |
|
|
|
multi_level_page_table.cpp |
|
|
|
multi_level_page_table.h |
|
|
|
overflow.h |
|
|
|
page_table.cpp |
|
|
|
page_table.h |
|
|
|
param_package.cpp |
|
|
|
param_package.h |
|
|
|
parent_of_member.h |
|
|
|
point.h |
|
|
|
quaternion.h |
|
|
|
range_map.h |
|
|
|
range_mutex.h |
|
|
|
range_sets.h |
|
|
|
range_sets.inc |
|
|
|
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.h |
|
|
|
stb.cpp |
|
|
|
stb.h |
|
|
|
steady_clock.cpp |
|
|
|
steady_clock.h |
|
|
|
stream.cpp |
|
|
|
stream.h |
|
|
|
string_util.cpp |
|
|
|
string_util.h |
|
|
|
swap.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 |
|
|
|
fs/ryujinx_compat.h fs/ryujinx_compat.cpp |
|
|
|
fs/symlink.h fs/symlink.cpp |
|
|
|
) |
|
|
|
common STATIC |
|
|
|
address_space.cpp |
|
|
|
address_space.h |
|
|
|
algorithm.h |
|
|
|
alignment.h |
|
|
|
announce_multiplayer_room.h |
|
|
|
assert.cpp |
|
|
|
assert.h |
|
|
|
atomic_ops.h |
|
|
|
bit_field.h |
|
|
|
bit_util.h |
|
|
|
bounded_threadsafe_queue.h |
|
|
|
cityhash.cpp |
|
|
|
cityhash.h |
|
|
|
common_funcs.h |
|
|
|
common_types.h |
|
|
|
concepts.h |
|
|
|
container_hash.h |
|
|
|
demangle.cpp |
|
|
|
demangle.h |
|
|
|
detached_tasks.cpp |
|
|
|
detached_tasks.h |
|
|
|
device_power_state.cpp |
|
|
|
device_power_state.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 |
|
|
|
multi_level_page_table.cpp |
|
|
|
multi_level_page_table.h |
|
|
|
overflow.h |
|
|
|
page_table.cpp |
|
|
|
page_table.h |
|
|
|
param_package.cpp |
|
|
|
param_package.h |
|
|
|
parent_of_member.h |
|
|
|
point.h |
|
|
|
quaternion.h |
|
|
|
range_map.h |
|
|
|
range_mutex.h |
|
|
|
range_sets.h |
|
|
|
range_sets.inc |
|
|
|
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.h |
|
|
|
stb.cpp |
|
|
|
stb.h |
|
|
|
steady_clock.cpp |
|
|
|
steady_clock.h |
|
|
|
stream.cpp |
|
|
|
stream.h |
|
|
|
string_util.cpp |
|
|
|
string_util.h |
|
|
|
swap.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 |
|
|
|
fs/ryujinx_compat.h fs/ryujinx_compat.cpp |
|
|
|
fs/symlink.h fs/symlink.cpp) |
|
|
|
|
|
|
|
if(WIN32) |
|
|
|
target_sources(common PRIVATE windows/timer_resolution.cpp |
|
|
|
windows/timer_resolution.h) |
|
|
|
target_link_libraries(common PRIVATE ntdll) |
|
|
|
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) |
|
|
|
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/multiplayer/multiplayer.cpp |
|
|
|
android/multiplayer/multiplayer.h |
|
|
|
android/applets/software_keyboard.cpp |
|
|
|
android/applets/software_keyboard.h) |
|
|
|
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/multiplayer/multiplayer.cpp |
|
|
|
android/multiplayer/multiplayer.h |
|
|
|
android/applets/software_keyboard.cpp |
|
|
|
android/applets/software_keyboard.h) |
|
|
|
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) |
|
|
|
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) |
|
|
|
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 |
|
|
|
) |
|
|
|
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") |
|
|
|
set_source_files_properties( |
|
|
|
stb.cpp |
|
|
|
PROPERTIES |
|
|
|
COMPILE_OPTIONS |
|
|
|
"-Wno-implicit-fallthrough;-Wno-missing-declarations;-Wno-missing-field-initializers") |
|
|
|
|
|
|
|
# Get around GCC failing with intrinsics in Debug |
|
|
|
if(CXX_GCC AND CMAKE_BUILD_TYPE MATCHES "Debug") |
|
|
|
set_property( |
|
|
|
SOURCE stb.cpp |
|
|
|
APPEND |
|
|
|
PROPERTY COMPILE_OPTIONS ";-O2") |
|
|
|
endif() |
|
|
|
# Get around GCC failing with intrinsics in Debug |
|
|
|
if(CXX_GCC AND CMAKE_BUILD_TYPE MATCHES "Debug") |
|
|
|
set_property( |
|
|
|
SOURCE stb.cpp |
|
|
|
APPEND |
|
|
|
PROPERTY COMPILE_OPTIONS ";-O2") |
|
|
|
endif() |
|
|
|
endif() |
|
|
|
|
|
|
|
if(CXX_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>) |
|
|
|
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() |
|
|
|
|
|
|
|
if (BOOST_NO_HEADERS) |
|
|
|
@ -258,8 +257,8 @@ target_link_libraries(common PUBLIC fmt::fmt stb::headers Threads::Threads) |
|
|
|
target_link_libraries(common PRIVATE lz4::lz4 LLVM::Demangle zstd::zstd) |
|
|
|
|
|
|
|
if(ANDROID) |
|
|
|
# For ASharedMemory_create |
|
|
|
target_link_libraries(common PRIVATE android) |
|
|
|
# For ASharedMemory_create |
|
|
|
target_link_libraries(common PRIVATE android) |
|
|
|
endif() |
|
|
|
|
|
|
|
create_target_directory_groups(common) |