2025-07-24 18:52:21 +02:00
|
|
|
# SPDX-FileCopyrightText: Copyright 2025 Eden Emulator Project
|
|
|
|
# SPDX-License-Identifier: GPL-3.0-or-later
|
chore: make yuzu REUSE compliant
[REUSE] is a specification that aims at making file copyright
information consistent, so that it can be both human and machine
readable. It basically requires that all files have a header containing
copyright and licensing information. When this isn't possible, like
when dealing with binary assets, generated files or embedded third-party
dependencies, it is permitted to insert copyright information in the
`.reuse/dep5` file.
Oh, and it also requires that all the licenses used in the project are
present in the `LICENSES` folder, that's why the diff is so huge.
This can be done automatically with `reuse download --all`.
The `reuse` tool also contains a handy subcommand that analyzes the
project and tells whether or not the project is (still) compliant,
`reuse lint`.
Following REUSE has a few advantages over the current approach:
- Copyright information is easy to access for users / downstream
- Files like `dist/license.md` do not need to exist anymore, as
`.reuse/dep5` is used instead
- `reuse lint` makes it easy to ensure that copyright information of
files like binary assets / images is always accurate and up to date
To add copyright information of files that didn't have it I looked up
who committed what and when, for each file. As yuzu contributors do not
have to sign a CLA or similar I couldn't assume that copyright ownership
was of the "yuzu Emulator Project", so I used the name and/or email of
the commit author instead.
[REUSE]: https://reuse.software
Follow-up to b2eb10382941bef0914f4a0a4685b9033440aa9f
2022-05-15 02:06:02 +02:00
|
|
|
|
2025-07-24 18:52:21 +02:00
|
|
|
# SPDX-FileCopyrightText: 2018 yuzu Emulator Project SPDX-License-Identifier:
|
|
|
|
# GPL-2.0-or-later
|
|
|
|
|
|
|
|
if(DEFINED ENV{AZURECIREPO})
|
2019-11-05 21:37:27 -05:00
|
|
|
set(BUILD_REPOSITORY $ENV{AZURECIREPO})
|
2019-02-06 21:55:14 -03:00
|
|
|
endif()
|
2025-07-24 18:52:21 +02:00
|
|
|
if(DEFINED ENV{TITLEBARFORMATIDLE})
|
2019-10-05 00:09:49 -04:00
|
|
|
set(TITLE_BAR_FORMAT_IDLE $ENV{TITLEBARFORMATIDLE})
|
2025-07-24 18:52:21 +02:00
|
|
|
endif()
|
|
|
|
if(DEFINED ENV{TITLEBARFORMATRUNNING})
|
2019-10-05 00:09:49 -04:00
|
|
|
set(TITLE_BAR_FORMAT_RUNNING $ENV{TITLEBARFORMATRUNNING})
|
2025-07-24 18:52:21 +02:00
|
|
|
endif()
|
|
|
|
if(DEFINED ENV{DISPLAYVERSION})
|
2019-10-05 00:09:49 -04:00
|
|
|
set(DISPLAY_VERSION $ENV{DISPLAYVERSION})
|
2025-07-24 18:52:21 +02:00
|
|
|
endif()
|
2020-01-16 00:12:50 -07:00
|
|
|
|
2022-09-18 00:04:35 +02:00
|
|
|
include(GenerateSCMRev)
|
2014-04-23 18:43:57 -07:00
|
|
|
|
2025-07-24 18:52:21 +02:00
|
|
|
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
|
|
|
|
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
|
|
|
|
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
|
|
|
|
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
|
2025-08-11 22:27:29 +02:00
|
|
|
zstd_compression.h
|
|
|
|
)
|
2014-08-23 22:22:05 -03:00
|
|
|
|
2025-07-24 18:52:21 +02:00
|
|
|
if(YUZU_ENABLE_PORTABLE)
|
|
|
|
add_compile_definitions(YUZU_ENABLE_PORTABLE)
|
2023-09-06 18:53:39 -04:00
|
|
|
endif()
|
|
|
|
|
2025-07-24 18:52:21 +02:00
|
|
|
if(WIN32)
|
|
|
|
target_sources(common PRIVATE windows/timer_resolution.cpp
|
|
|
|
windows/timer_resolution.h)
|
2023-03-01 19:27:10 -05:00
|
|
|
target_link_libraries(common PRIVATE ntdll)
|
|
|
|
endif()
|
|
|
|
|
2025-07-24 18:52:21 +02:00
|
|
|
if(NOT WIN32)
|
|
|
|
target_sources(common PRIVATE signal_chain.cpp signal_chain.h)
|
2023-11-17 20:22:38 +02:00
|
|
|
endif()
|
|
|
|
|
2023-02-03 16:13:16 -08:00
|
|
|
if(ANDROID)
|
2025-07-24 18:52:21 +02:00
|
|
|
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)
|
2023-02-03 16:13:16 -08:00
|
|
|
endif()
|
|
|
|
|
2025-07-24 18:52:21 +02:00
|
|
|
if(LINUX AND NOT APPLE)
|
|
|
|
target_sources(common PRIVATE linux/gamemode.cpp linux/gamemode.h)
|
2023-11-03 15:41:16 +01:00
|
|
|
|
2023-11-03 19:27:08 +01:00
|
|
|
target_link_libraries(common PRIVATE gamemode::headers)
|
2023-11-03 15:41:16 +01:00
|
|
|
endif()
|
|
|
|
|
2015-08-14 22:29:08 -04:00
|
|
|
if(ARCHITECTURE_x86_64)
|
2025-07-24 18:52:21 +02:00
|
|
|
target_sources(
|
|
|
|
common
|
|
|
|
PRIVATE x64/cpu_detect.cpp
|
2015-08-12 00:19:20 -04:00
|
|
|
x64/cpu_detect.h
|
2023-03-21 21:28:38 -04:00
|
|
|
x64/cpu_wait.cpp
|
|
|
|
x64/cpu_wait.h
|
2020-02-09 16:53:22 -04:00
|
|
|
x64/native_clock.cpp
|
|
|
|
x64/native_clock.h
|
2023-04-22 22:55:03 -04:00
|
|
|
x64/rdtsc.cpp
|
|
|
|
x64/rdtsc.h
|
2020-05-30 10:55:27 +10:00
|
|
|
x64/xbyak_abi.h
|
2025-07-24 18:52:21 +02:00
|
|
|
x64/xbyak_util.h)
|
|
|
|
target_link_libraries(common PRIVATE xbyak::xbyak)
|
2015-07-21 19:49:33 -04:00
|
|
|
endif()
|
|
|
|
|
2025-07-24 18:52:21 +02:00
|
|
|
if(HAS_NCE)
|
|
|
|
target_sources(common PRIVATE arm64/native_clock.cpp arm64/native_clock.h)
|
2023-10-08 11:32:32 -04:00
|
|
|
endif()
|
|
|
|
|
2025-07-24 18:52:21 +02:00
|
|
|
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
|
2020-10-30 15:02:02 -04:00
|
|
|
)
|
2023-10-12 16:36:26 +02:00
|
|
|
else()
|
2025-07-24 18:52:21 +02:00
|
|
|
set_source_files_properties(
|
|
|
|
stb.cpp
|
|
|
|
PROPERTIES
|
|
|
|
COMPILE_OPTIONS
|
|
|
|
"-Wno-implicit-fallthrough;-Wno-missing-declarations;-Wno-missing-field-initializers"
|
|
|
|
)
|
2025-03-28 00:33:57 +01:00
|
|
|
|
|
|
|
# Get around GCC failing with intrinsics in Debug
|
2025-07-24 18:52:21 +02:00
|
|
|
if(CMAKE_CXX_COMPILER_ID STREQUAL "GNU" AND CMAKE_BUILD_TYPE MATCHES "Debug")
|
2025-03-28 00:33:57 +01:00
|
|
|
set_property(
|
|
|
|
SOURCE stb.cpp
|
|
|
|
APPEND
|
2025-07-24 18:52:21 +02:00
|
|
|
PROPERTY COMPILE_OPTIONS ";-O2")
|
2025-03-28 00:33:57 +01:00
|
|
|
endif()
|
2023-06-18 19:57:14 -04:00
|
|
|
endif()
|
|
|
|
|
2025-07-24 18:52:21 +02:00
|
|
|
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>
|
2020-10-30 15:02:02 -04:00
|
|
|
)
|
|
|
|
endif()
|
|
|
|
|
2025-08-14 20:30:30 +02:00
|
|
|
if (BOOST_NO_HEADERS)
|
|
|
|
target_link_libraries(common PUBLIC Boost::algorithm Boost::icl Boost::pool)
|
|
|
|
else()
|
|
|
|
target_link_libraries(common PUBLIC Boost::headers)
|
|
|
|
endif()
|
|
|
|
|
|
|
|
if (lz4_ADDED)
|
|
|
|
target_include_directories(common PRIVATE ${lz4_SOURCE_DIR}/lib)
|
|
|
|
endif()
|
|
|
|
|
|
|
|
target_link_libraries(common PUBLIC fmt::fmt stb::headers Threads::Threads)
|
|
|
|
target_link_libraries(common PRIVATE lz4::lz4 LLVM::Demangle)
|
|
|
|
|
|
|
|
if (TARGET libzstd_static)
|
|
|
|
target_link_libraries(common PRIVATE libzstd_static)
|
|
|
|
else()
|
|
|
|
target_link_libraries(common PRIVATE zstd)
|
|
|
|
endif()
|
2022-11-22 18:38:23 -05:00
|
|
|
|
2025-07-24 18:52:21 +02:00
|
|
|
if(ANDROID)
|
|
|
|
# For ASharedMemory_create
|
|
|
|
target_link_libraries(common PRIVATE android)
|
2023-03-16 15:00:34 -04:00
|
|
|
endif()
|
|
|
|
|
2025-07-24 18:52:21 +02:00
|
|
|
if(YUZU_USE_PRECOMPILED_HEADERS)
|
|
|
|
target_precompile_headers(common PRIVATE precompiled_headers.h)
|
2022-11-22 18:38:23 -05:00
|
|
|
endif()
|
2024-01-26 15:29:04 +00:00
|
|
|
|
|
|
|
create_target_directory_groups(common)
|