Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 3 additions & 1 deletion CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -165,7 +165,9 @@ Code formatting must abide by the [.clang-format](https://github.com/mupen64/mup

Failure to comply will fail the check-format workflow.

Naming must abide by the [.clang-tidy](https://github.com/mupen64/mupen64-rr-lua/blob/master/.clang-tidy) file provided in the repository root.
Naming must abide by the [.clang-tidy](https://github.com/mupen64/mupen64-rr-lua/blob/master/.clang-tidy) file provided in the repository root, except for the `Views.Qt6` module, where they should follow Qt conventions.

CMake targets must remain

# Merge/Release Checklist

Expand Down
8 changes: 4 additions & 4 deletions src/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ SPDX-License-Identifier: GPL-2.0-or-later
add_subdirectory(Common)

function(mupen64rr_reuse_common_pch target)
target_precompile_headers("${target}" REUSE_FROM Mupen64RR.Common)
target_precompile_headers("${target}" REUSE_FROM Mupen64RR_Common)
endfunction()
# core API and headers
add_subdirectory(Core)
Expand Down Expand Up @@ -49,11 +49,11 @@ if (MUPEN64RR_BUILD_WIN32)

add_subdirectory(Common.Win32)

add_library(Mupen64RR.Views.Win32.Headers INTERFACE
add_library(Mupen64RR_Views_Win32_Headers INTERFACE
"Views.Win32/include/Views.Win32/ZESpec.h"
)
target_compile_features(Mupen64RR.Views.Win32.Headers INTERFACE cxx_std_26)
target_include_directories(Mupen64RR.Views.Win32.Headers INTERFACE "Views.Win32/include")
target_compile_features(Mupen64RR_Views_Win32_Headers INTERFACE cxx_std_26)
target_include_directories(Mupen64RR_Views_Win32_Headers INTERFACE "Views.Win32/include")

# BUNDLED PLUGINS
# ============================
Expand Down
22 changes: 11 additions & 11 deletions src/Common.Views/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ Copyright (c) 2026, Mupen64 Organization (https://github.com/mupen64)
SPDX-License-Identifier: GPL-2.0-or-later
]===]

add_library(Mupen64RR.Common.Views STATIC
add_library(Mupen64RR_Common_Views STATIC
"include/Common.Views/App.hpp"
"include/Common.Views/Config.hpp"
"include/Common.Views/Hotkey.hpp"
Expand All @@ -26,21 +26,21 @@ add_library(Mupen64RR.Common.Views STATIC
)

if (WIN32)
target_sources(Mupen64RR.Common.Views PRIVATE
target_sources(Mupen64RR_Common_Views PRIVATE
"include/Common.Views/WinFFmpegEncoder.hpp"
"include/Common.Views/WinVFWEncoder.hpp"
"WinFFmpegEncoder.cpp"
"WinVFWEncoder.cpp"
)
endif()

mupen64rr_reuse_common_pch(Mupen64RR.Common.Views)
target_compile_features(Mupen64RR.Common.Views PUBLIC cxx_std_23)
target_include_directories(Mupen64RR.Common.Views PUBLIC include)
mupen64rr_reuse_common_pch(Mupen64RR_Common_Views)
target_compile_features(Mupen64RR_Common_Views PUBLIC cxx_std_23)
target_include_directories(Mupen64RR_Common_Views PUBLIC include)

target_link_libraries(Mupen64RR.Common.Views PUBLIC
Mupen64RR.Common
Mupen64RR.Core.Headers
target_link_libraries(Mupen64RR_Common_Views PUBLIC
Mupen64RR_Common
Mupen64RR_Core_Headers
vendor::xxhash64
vendor::mini
vendor::microlru
Expand All @@ -53,14 +53,14 @@ target_link_libraries(Mupen64RR.Common.Views PUBLIC
)

if (WIN32)
target_link_libraries(Mupen64RR.Common.Views PUBLIC vfw32)
target_link_libraries(Mupen64RR_Common_Views PUBLIC vfw32)
endif()

if (NOT WIN32)
target_link_libraries(Mupen64RR.Common.Views PUBLIC PkgConfig::libsafec)
target_link_libraries(Mupen64RR_Common_Views PUBLIC PkgConfig::libsafec)
endif()

target_compile_definitions(Mupen64RR.Common.Views PUBLIC
target_compile_definitions(Mupen64RR_Common_Views PUBLIC
NOMINMAX
MINI_CASE_SENSITIVE
)
8 changes: 4 additions & 4 deletions src/Common.Win32/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -3,14 +3,14 @@ Copyright (c) 2026, Mupen64 Organization (https://github.com/mupen64)

SPDX-License-Identifier: GPL-2.0-or-later
]===]
add_library(Mupen64RR.Common.Win32 INTERFACE
add_library(Mupen64RR_Common_Win32 INTERFACE
"include/Common.Win32/Common.hpp"
"include/Common.Win32/WinFilePicker.hpp"
"include/Common.Win32/JoystickControl.hpp"
"include/Common.Win32/SettingsListView.hpp"
"include/Common.Win32/ResizeAnchor.hpp"
)
target_compile_features(Mupen64RR.Common.Win32 INTERFACE cxx_std_26)
target_include_directories(Mupen64RR.Common.Win32 INTERFACE include)
target_compile_features(Mupen64RR_Common_Win32 INTERFACE cxx_std_26)
target_include_directories(Mupen64RR_Common_Win32 INTERFACE include)

target_compile_definitions(Mupen64RR.Common.Win32 INTERFACE NOMINMAX)
target_compile_definitions(Mupen64RR_Common_Win32 INTERFACE NOMINMAX)
14 changes: 7 additions & 7 deletions src/Common/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ Copyright (c) 2026, Mupen64 Organization (https://github.com/mupen64)
SPDX-License-Identifier: GPL-2.0-or-later
]===]

add_library(Mupen64RR.Common STATIC
add_library(Mupen64RR_Common STATIC
"CommonPCH.cpp"
"include/Common/Assert.hpp"
"include/Common/CommonPCH.hpp"
Expand All @@ -15,16 +15,16 @@ add_library(Mupen64RR.Common STATIC
"include/Common/VersionNameHelpers.hpp"
"include/Common/FNV1A.hpp"
)
target_compile_features(Mupen64RR.Common PUBLIC cxx_std_26)
target_include_directories(Mupen64RR.Common PUBLIC
target_compile_features(Mupen64RR_Common PUBLIC cxx_std_26)
target_include_directories(Mupen64RR_Common PUBLIC
include
"${CMAKE_CURRENT_SOURCE_DIR}/../../vendor/xxhash64"
)
target_precompile_headers(Mupen64RR.Common PRIVATE
target_precompile_headers(Mupen64RR_Common PRIVATE
"${CMAKE_CURRENT_SOURCE_DIR}/include/Common/CommonPCH.hpp"
)

target_link_libraries(Mupen64RR.Common PUBLIC
target_link_libraries(Mupen64RR_Common PUBLIC
libdeflate::libdeflate_$<IF:$<TARGET_EXISTS:libdeflate::libdeflate_static>,static,shared>
PkgConfig::lz4
vendor::xxhash64
Expand All @@ -33,7 +33,7 @@ target_link_libraries(Mupen64RR.Common PUBLIC

# only MSVCRT implements C11 Annex K, libsafec is needed on other platforms
if (NOT WIN32)
target_link_libraries(Mupen64RR.Common PUBLIC PkgConfig::libsafec)
target_link_libraries(Mupen64RR_Common PUBLIC PkgConfig::libsafec)
endif()

target_compile_definitions(Mupen64RR.Common PUBLIC NOMINMAX)
target_compile_definitions(Mupen64RR_Common PUBLIC NOMINMAX)
18 changes: 9 additions & 9 deletions src/Core.Tests/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -9,31 +9,31 @@ if (NOT BUILD_TESTING)
return()
endif()

add_executable(Mupen64RR.Core.Tests
add_executable(Mupen64RR_Core_Tests
"Common.hpp"

"PluginAPITests.cpp"
"IOUtilsTests.cpp"
"VCRTests.cpp"
"VRTests.cpp"
)
mupen64rr_copy_vcpkg_deps(Mupen64RR.Core.Tests)
mupen64rr_reuse_common_pch(Mupen64RR.Core.Tests)
target_compile_features(Mupen64RR.Core.Tests PRIVATE cxx_std_26)
set_target_properties(Mupen64RR.Core.Tests PROPERTIES
mupen64rr_copy_vcpkg_deps(Mupen64RR_Core_Tests)
mupen64rr_reuse_common_pch(Mupen64RR_Core_Tests)
target_compile_features(Mupen64RR_Core_Tests PRIVATE cxx_std_26)
set_target_properties(Mupen64RR_Core_Tests PROPERTIES
OUTPUT_NAME "Core.Tests"
RUNTIME_OUTPUT_DIRECTORY "${MUPEN64RR_TEST_OUT_DIR}"
PDB_OUTPUT_DIRECTORY "${MUPEN64RR_TEST_OUT_DIR}"
)
target_link_libraries(Mupen64RR.Core.Tests PRIVATE
target_link_libraries(Mupen64RR_Core_Tests PRIVATE
Catch2::Catch2WithMain
Mupen64RR.Core._TestIncludes
Mupen64RR_Core__TestIncludes
)

# Skip running tests when cross-compiling between OSes.
if(NOT CMAKE_CROSSCOMPILING)
catch_discover_tests(Mupen64RR.Core.Tests)
catch_discover_tests(Mupen64RR_Core_Tests)
else()
message(STATUS "Cross-compiling: skipping test discovery for Mupen64RR.Core.Tests (run manually on target)")
message(STATUS "Cross-compiling: skipping test discovery for Mupen64RR_Core_Tests (run manually on target)")
endif()
endblock()
42 changes: 21 additions & 21 deletions src/Core/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -4,16 +4,16 @@ Copyright (c) 2026, Mupen64 Organization (https://github.com/mupen64)
SPDX-License-Identifier: GPL-2.0-or-later
]===]

add_library(Mupen64RR.Core.Headers INTERFACE
add_library(Mupen64RR_Core_Headers INTERFACE
"include/m64rr/API.hpp"
"include/m64rr/Plugin.hpp"
"include/m64rr/Types.hpp"
)
target_compile_features(Mupen64RR.Core.Headers INTERFACE cxx_std_26)
target_include_directories(Mupen64RR.Core.Headers INTERFACE "include")
target_link_libraries(Mupen64RR.Core.Headers INTERFACE Mupen64RR.Common)
target_compile_features(Mupen64RR_Core_Headers INTERFACE cxx_std_26)
target_include_directories(Mupen64RR_Core_Headers INTERFACE "include")
target_link_libraries(Mupen64RR_Core_Headers INTERFACE Mupen64RR_Common)

add_library(Mupen64RR.Core STATIC
add_library(Mupen64RR_Core STATIC
"Core.hpp"
"Alloc.hpp"
"Cheats.hpp"
Expand Down Expand Up @@ -76,31 +76,31 @@ add_library(Mupen64RR.Core STATIC

"R4300/VCR.cpp"
)
mupen64rr_reuse_common_pch(Mupen64RR.Core)
target_compile_features(Mupen64RR.Core PUBLIC cxx_std_26)
set_target_properties(Mupen64RR.Core PROPERTIES
mupen64rr_reuse_common_pch(Mupen64RR_Core)
target_compile_features(Mupen64RR_Core PUBLIC cxx_std_26)
set_target_properties(Mupen64RR_Core PROPERTIES
OUTPUT_NAME Core
)
target_include_directories(Mupen64RR.Core PUBLIC "include")
target_include_directories(Mupen64RR.Core PRIVATE ".")
target_link_libraries(Mupen64RR.Core PRIVATE
target_include_directories(Mupen64RR_Core PUBLIC "include")
target_include_directories(Mupen64RR_Core PRIVATE ".")
target_link_libraries(Mupen64RR_Core PRIVATE
libdeflate::libdeflate_$<IF:$<TARGET_EXISTS:libdeflate::libdeflate_static>,static,shared>
PkgConfig::lz4
vendor::aladdin-md5
)
target_link_libraries(Mupen64RR.Core PUBLIC
Mupen64RR.Common
Mupen64RR.Core.Headers
target_link_libraries(Mupen64RR_Core PUBLIC
Mupen64RR_Common
Mupen64RR_Core_Headers
)
if(CMAKE_CXX_COMPILER_ID MATCHES "Clang")
target_compile_options(Mupen64RR.Core PRIVATE -Werror=nonportable-include-path)
target_compile_options(Mupen64RR_Core PRIVATE -Werror=nonportable-include-path)
endif()



# options: disable dynarec
if (${MUPEN64RR_ENABLE_DYNAREC})
target_compile_definitions(Mupen64RR.Core PRIVATE "MUPEN64RR_ENABLE_DYNAREC")
target_compile_definitions(Mupen64RR_Core PRIVATE "MUPEN64RR_ENABLE_DYNAREC")
#[=[
Select the dynarec backend by target architecture.
x86-64 -> R4300/x86_64 (x86-64 recompiler)
Expand Down Expand Up @@ -131,7 +131,7 @@ if (${MUPEN64RR_ENABLE_DYNAREC})
endif()
message(STATUS "Compiling dynarec: ${dynarec_dir}")

target_sources(Mupen64RR.Core PRIVATE
target_sources(Mupen64RR_Core PRIVATE
"${dynarec_dir}/Assemble.hpp"
"${dynarec_dir}/Gcop1Helpers.hpp"
"${dynarec_dir}/RegCache.hpp"
Expand All @@ -157,8 +157,8 @@ endif()
add_compile_definitions(NOMINMAX)

# FOR TESTING ONLY. DO NOT USE OTHERWISE.
add_library(Mupen64RR.Core._TestIncludes INTERFACE)
target_link_libraries(Mupen64RR.Core._TestIncludes INTERFACE
Mupen64RR.Core
add_library(Mupen64RR_Core__TestIncludes INTERFACE)
target_link_libraries(Mupen64RR_Core__TestIncludes INTERFACE
Mupen64RR_Core
)
target_include_directories(Mupen64RR.Core._TestIncludes INTERFACE "../" "./")
target_include_directories(Mupen64RR_Core__TestIncludes INTERFACE "../" "./")
10 changes: 4 additions & 6 deletions src/Lua.TestLib/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -4,15 +4,13 @@ Copyright (c) 2026, Mupen64 Organization (https://github.com/mupen64)
SPDX-License-Identifier: GPL-2.0-or-later
]===]

add_library(Mupen64RR.Lua.TestLib MODULE "main.cpp")
mupen64rr_reuse_common_pch(Mupen64RR.Lua.TestLib)
target_compile_features(Mupen64RR.Lua.TestLib PRIVATE cxx_std_26)
set_target_properties(Mupen64RR.Lua.TestLib PROPERTIES
add_library(Mupen64RR_Lua_TestLib MODULE "main.cpp")
target_compile_features(Mupen64RR_Lua_TestLib PRIVATE cxx_std_26)
set_target_properties(Mupen64RR_Lua_TestLib PROPERTIES
OUTPUT_NAME "luatestlib"
LIBRARY_OUTPUT_DIRECTORY "${MUPEN64RR_TEST_OUT_DIR}"
PDB_OUTPUT_DIRECTORY "${MUPEN64RR_TEST_OUT_DIR}"
)
target_link_libraries(Mupen64RR.Lua.TestLib PRIVATE
target_link_libraries(Mupen64RR_Lua_TestLib PRIVATE
Lua::Lua
Mupen64RR.Common
)
10 changes: 5 additions & 5 deletions src/Plugins.Common.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -7,12 +7,12 @@ SPDX-License-Identifier: GPL-2.0-or-later
#

# Common Win32 plugin dependencies.
add_library(Mupen64RR.Plugins.Common INTERFACE)
target_link_libraries(Mupen64RR.Plugins.Common INTERFACE
Mupen64RR.Common
Mupen64RR.Core.Headers
add_library(Mupen64RR_Plugins_Common INTERFACE)
target_link_libraries(Mupen64RR_Plugins_Common INTERFACE
Mupen64RR_Common
Mupen64RR_Core_Headers
)
target_compile_definitions(Mupen64RR.Plugins.Common INTERFACE
target_compile_definitions(Mupen64RR_Plugins_Common INTERFACE
PLUGIN_WITH_CALLBACKS
"VERSION_SUFFIX=\"${MUPEN64RR_VERSION_SUFFIX}\""
"$<$<BOOL:${MUPEN64RR_NIGHTLY}>:NIGHTLY>"
Expand Down
12 changes: 6 additions & 6 deletions src/Plugins.DummyAudio/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -4,18 +4,18 @@ Copyright (c) 2026, Mupen64 Organization (https://github.com/mupen64)
SPDX-License-Identifier: GPL-2.0-or-later
]===]

add_library(Mupen64RR.Plugins.DummyAudio STATIC
add_library(Mupen64RR_Plugins_DummyAudio STATIC
"Main.cpp"
)
target_compile_features(Mupen64RR.Plugins.DummyAudio PRIVATE cxx_std_26)
set_target_properties(Mupen64RR.Plugins.DummyAudio PROPERTIES
target_compile_features(Mupen64RR_Plugins_DummyAudio PRIVATE cxx_std_26)
set_target_properties(Mupen64RR_Plugins_DummyAudio PROPERTIES
OUTPUT_NAME "NoAudio"
LIBRARY_OUTPUT_DIRECTORY "${MUPEN64RR_PLUGIN_OUT_DIR}"
PDB_OUTPUT_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}"
)
mupen64rr_reuse_common_pch(Mupen64RR.Plugins.DummyAudio)
target_link_libraries(Mupen64RR.Plugins.DummyAudio PRIVATE Mupen64RR.Plugins.Common)
target_compile_definitions(Mupen64RR.Plugins.DummyAudio PRIVATE
mupen64rr_reuse_common_pch(Mupen64RR_Plugins_DummyAudio)
target_link_libraries(Mupen64RR_Plugins_DummyAudio PRIVATE Mupen64RR_Plugins_Common)
target_compile_definitions(Mupen64RR_Plugins_DummyAudio PRIVATE
M64RRGetMetadata=M64RRBuiltinNoAudioGetMetadata
M64RRProcessEvent=M64RRBuiltinNoAudioProcessEvent
)
12 changes: 6 additions & 6 deletions src/Plugins.DummyInput/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -4,18 +4,18 @@ Copyright (c) 2026, Mupen64 Organization (https://github.com/mupen64)
SPDX-License-Identifier: GPL-2.0-or-later
]===]

add_library(Mupen64RR.Plugins.DummyInput STATIC
add_library(Mupen64RR_Plugins_DummyInput STATIC
"Main.cpp"
)
target_compile_features(Mupen64RR.Plugins.DummyInput PRIVATE cxx_std_26)
set_target_properties(Mupen64RR.Plugins.DummyInput PROPERTIES
target_compile_features(Mupen64RR_Plugins_DummyInput PRIVATE cxx_std_26)
set_target_properties(Mupen64RR_Plugins_DummyInput PROPERTIES
OUTPUT_NAME "NoInput"
LIBRARY_OUTPUT_DIRECTORY "${MUPEN64RR_PLUGIN_OUT_DIR}"
PDB_OUTPUT_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}"
)
mupen64rr_reuse_common_pch(Mupen64RR.Plugins.DummyInput)
target_link_libraries(Mupen64RR.Plugins.DummyInput PRIVATE Mupen64RR.Plugins.Common)
target_compile_definitions(Mupen64RR.Plugins.DummyInput PRIVATE
mupen64rr_reuse_common_pch(Mupen64RR_Plugins_DummyInput)
target_link_libraries(Mupen64RR_Plugins_DummyInput PRIVATE Mupen64RR_Plugins_Common)
target_compile_definitions(Mupen64RR_Plugins_DummyInput PRIVATE
M64RRGetMetadata=M64RRBuiltinNoInputGetMetadata
M64RRProcessEvent=M64RRBuiltinNoInputProcessEvent
)
12 changes: 6 additions & 6 deletions src/Plugins.DummyVideo/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -4,18 +4,18 @@ Copyright (c) 2026, Mupen64 Organization (https://github.com/mupen64)
SPDX-License-Identifier: GPL-2.0-or-later
]===]

add_library(Mupen64RR.Plugins.DummyVideo STATIC
add_library(Mupen64RR_Plugins_DummyVideo STATIC
"Main.cpp"
)
target_compile_features(Mupen64RR.Plugins.DummyVideo PRIVATE cxx_std_26)
set_target_properties(Mupen64RR.Plugins.DummyVideo PROPERTIES
target_compile_features(Mupen64RR_Plugins_DummyVideo PRIVATE cxx_std_26)
set_target_properties(Mupen64RR_Plugins_DummyVideo PROPERTIES
OUTPUT_NAME "NoVideo"
LIBRARY_OUTPUT_DIRECTORY "${MUPEN64RR_PLUGIN_OUT_DIR}"
PDB_OUTPUT_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}"
)
mupen64rr_reuse_common_pch(Mupen64RR.Plugins.DummyVideo)
target_link_libraries(Mupen64RR.Plugins.DummyVideo PRIVATE Mupen64RR.Plugins.Common)
target_compile_definitions(Mupen64RR.Plugins.DummyVideo PRIVATE
mupen64rr_reuse_common_pch(Mupen64RR_Plugins_DummyVideo)
target_link_libraries(Mupen64RR_Plugins_DummyVideo PRIVATE Mupen64RR_Plugins_Common)
target_compile_definitions(Mupen64RR_Plugins_DummyVideo PRIVATE
M64RRGetMetadata=M64RRBuiltinNoVideoGetMetadata
M64RRProcessEvent=M64RRBuiltinNoVideoProcessEvent
)
Loading