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 01cf05bc75b1e47beb08937439f3ed9339e7b254
2022-05-15 03:06:02 +03:00
|
|
|
# SPDX-FileCopyrightText: 2018 yuzu Emulator Project
|
|
|
|
# SPDX-License-Identifier: GPL-2.0-or-later
|
|
|
|
|
2016-12-13 02:01:48 +03:00
|
|
|
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${PROJECT_SOURCE_DIR}/CMakeModules)
|
|
|
|
|
2021-08-08 18:34:43 +03:00
|
|
|
# Credits to Samantas5855 and others for this function.
|
2021-02-14 11:20:41 +03:00
|
|
|
function(create_resource file output filename)
|
|
|
|
# Read hex data from file
|
|
|
|
file(READ ${file} filedata HEX)
|
|
|
|
# Convert hex data for C compatibility
|
|
|
|
string(REGEX REPLACE "([0-9a-f][0-9a-f])" "0x\\1," filedata ${filedata})
|
|
|
|
# Write data to output file
|
|
|
|
set(RESOURCES_DIR "${PROJECT_BINARY_DIR}/dist" PARENT_SCOPE)
|
|
|
|
file(WRITE "${PROJECT_BINARY_DIR}/dist/${output}" "const unsigned char ${filename}[] = {${filedata}};\nconst unsigned ${filename}_size = sizeof(${filename});\n")
|
|
|
|
endfunction()
|
|
|
|
|
2018-01-18 03:37:34 +03:00
|
|
|
add_executable(yuzu-cmd
|
|
|
|
config.cpp
|
|
|
|
config.h
|
|
|
|
default_ini.h
|
|
|
|
emu_window/emu_window_sdl2.cpp
|
|
|
|
emu_window/emu_window_sdl2.h
|
2020-01-21 22:40:53 +03:00
|
|
|
emu_window/emu_window_sdl2_gl.cpp
|
|
|
|
emu_window/emu_window_sdl2_gl.h
|
2022-11-28 04:37:37 +03:00
|
|
|
emu_window/emu_window_sdl2_null.cpp
|
|
|
|
emu_window/emu_window_sdl2_null.h
|
2020-12-25 02:22:07 +03:00
|
|
|
emu_window/emu_window_sdl2_vk.cpp
|
|
|
|
emu_window/emu_window_sdl2_vk.h
|
2022-11-23 02:38:23 +03:00
|
|
|
precompiled_headers.h
|
2018-01-18 03:37:34 +03:00
|
|
|
yuzu.cpp
|
|
|
|
yuzu.rc
|
|
|
|
)
|
2014-08-24 05:22:05 +04:00
|
|
|
|
2018-01-18 03:37:34 +03:00
|
|
|
create_target_directory_groups(yuzu-cmd)
|
2013-09-27 01:34:48 +04:00
|
|
|
|
2018-01-12 05:21:20 +03:00
|
|
|
target_link_libraries(yuzu-cmd PRIVATE common core input_common)
|
2022-11-25 21:35:46 +03:00
|
|
|
target_link_libraries(yuzu-cmd PRIVATE inih::INIReader glad)
|
2015-06-23 03:59:00 +03:00
|
|
|
if (MSVC)
|
2018-01-12 05:21:20 +03:00
|
|
|
target_link_libraries(yuzu-cmd PRIVATE getopt)
|
2015-06-23 03:59:00 +03:00
|
|
|
endif()
|
2022-12-04 18:59:58 +03:00
|
|
|
target_link_libraries(yuzu-cmd PRIVATE ${PLATFORM_LIBRARIES} Threads::Threads)
|
2014-05-01 03:56:25 +04:00
|
|
|
|
2021-02-14 11:20:41 +03:00
|
|
|
create_resource("../../dist/yuzu.bmp" "yuzu_cmd/yuzu_icon.h" "yuzu_icon")
|
|
|
|
target_include_directories(yuzu-cmd PRIVATE ${RESOURCES_DIR})
|
|
|
|
|
2022-12-06 02:44:52 +03:00
|
|
|
target_link_libraries(yuzu-cmd PRIVATE SDL2::SDL2 Vulkan::Headers)
|
2021-07-16 04:02:00 +03:00
|
|
|
|
2016-10-10 08:58:05 +03:00
|
|
|
if(UNIX AND NOT APPLE)
|
2022-03-27 16:09:03 +03:00
|
|
|
install(TARGETS yuzu-cmd)
|
2015-08-30 09:37:42 +03:00
|
|
|
endif()
|
2016-03-01 20:24:18 +03:00
|
|
|
|
2022-12-24 05:39:59 +03:00
|
|
|
if(WIN32)
|
|
|
|
# compile as a win32 gui application instead of a console application
|
|
|
|
if(MSVC)
|
|
|
|
set_target_properties(yuzu-cmd PROPERTIES LINK_FLAGS_RELEASE "/SUBSYSTEM:WINDOWS /ENTRY:mainCRTStartup")
|
|
|
|
elseif(MINGW)
|
|
|
|
set_target_properties(yuzu-cmd PROPERTIES LINK_FLAGS_RELEASE "-Wl,--subsystem,windows")
|
|
|
|
endif()
|
|
|
|
endif()
|
|
|
|
|
2016-03-01 20:24:18 +03:00
|
|
|
if (MSVC)
|
2018-01-14 02:49:16 +03:00
|
|
|
include(CopyYuzuSDLDeps)
|
|
|
|
copy_yuzu_SDL_deps(yuzu-cmd)
|
2016-03-01 20:24:18 +03:00
|
|
|
endif()
|
2022-11-23 02:38:23 +03:00
|
|
|
|
|
|
|
if (YUZU_USE_PRECOMPILED_HEADERS)
|
|
|
|
target_precompile_headers(yuzu-cmd PRIVATE precompiled_headers.h)
|
|
|
|
endif()
|