summaryrefslogtreecommitdiff
path: root/CMakeLists.txt
AgeCommit message (Collapse)Author
2021-12-18cmake: enable VA-API on more Unix-like after 0be4e402e213Jan Beich
2021-12-15video_core/codecs: (re-spin) refactor ffmpeg searching and handlingliushuyu
2021-12-15Revert "video_core/codecs: refactor ffmpeg searching and handling in cmake"bunnei
2021-12-13ffmpeg: move the whole tree into externals/ffmpeg/ffmpeg ...liushuyu
* this resolves the todo items in the CMakeLists.txt * a version requirement check for ffmpeg is added to catch issues early * for future-proof reasons, nasm/yasm is now only required when build on x86/AMD64 systems
2021-12-13cmake: refactor ffmpeg searching and handling logic on Linuxliushuyu
2021-12-12Merge pull request #7527 from Tachi107/cubeb-result_ofbunnei
build: update cubeb and remove the result_of comment
2021-12-06input_common: Update SDL to 2.0.18Narr the Reg
2021-12-06build: update cubeb and remove the result_of commentAndrea Pappacoda
Cubeb doesn't use result_of anymore, it has been dropped in commit mozilla/cubeb@75d9d125ee655ef80f3bfcd97ae5a805931042b8
2021-11-25CMakeLists: Update fmt to 8.0.1Lioncash
Ensures that we're using the latest version of fmt.
2021-11-19Merge pull request #7273 from fpdotmonkey/submodule-checkout-command-on-new-linebunnei
Move the cmake submodule checkout command to a new line
2021-11-16CMakeLists: Update catch to 2.13.7Lioncash
Keeps the testing libraries up to date.
2021-11-12CMake: Enable VP8 ffmpeg decodersameerj
2021-11-02Move the cmake submodule checkout command to a new lineFletcher Porter
Presently, if you forget to initialize the git submodules before running cmake, there'll be a helpful message that reminds you to do so. However, on narrow terminals (e.g. 80 wide) there's a word wrap that includes a new line in the middle of the git command, precluding easy copy-paste. This moves the entire git command to its own line to avoid such tragedies. Before: ``` CMake Error at CMakeLists.txt:59 (message): Git submodule externals/inih/inih not found. Please run: git submodule update --init --recursive ``` After: ``` CMake Error at CMakeLists.txt:59 (message): Git submodule externals/inih/inih not found. Please run: git submodule update --init --recursive ```
2021-10-19cmake: Update conan for VS2022 supportameerj
2021-10-02CMakeLists: Update to Qt 5.15.2Morph
2021-09-29CMakeLists: Remove BoxCat build optionMorph
2021-09-28externals: Remove libzipMorph
2021-09-24CMakeLists: Update to clang format version 12ameerj
2021-09-18Fix "Unknown C standard control flag" warningAndrew Strelsky
2021-09-11Merge pull request #6846 from ameerj/nvdec-gpu-decodeFernando S
nvdec: Add GPU video decoding for all capable drivers and platforms
2021-08-16cmake: Add VDPAU and NVDEC support to FFmpeglat9nq
Adds {h264_,vp9_}{nvdec,vdpau} hwaccels.
2021-08-12Merge branch 'yuzu-emu:master' into fix-lan-playspholz
2021-08-12configuration: add option to select network interfacespholz
This commit renames the "Services" tab to "Network" and adds a combobox that allows the user to select the network interface that yuzu should use. This new setting is now used to get the local IP address in Network::GetHostIPv4Address. This prevents yuzu from selecting the wrong network interface and thus using the wrong IP address. The return type of Network::GetHostIPv4Adress has also been changed.
2021-08-12cmake: Always find LIBVA, update windows FFmpeg versionameerj
Allows the use of VAAPI gpu decoders on system installed ffmpeg as well.
2021-08-10externals: Update sdl2 to 2.0.16german77
2021-08-03nvdec: Implement VA-API hardware video acceleration (#6713)yzct12345
* nvdec: VA-API * Verify formatting * Forgot a semicolon for Windows * Clarify comment about AV_PIX_FMT_NV12 * Fix assert log spam from missing negation * vic: Remove forgotten debug code * Address lioncash's review * Mention VA-API is Intel/AMD * Address v1993's review * Hopefully fix CMakeLists style this time * vic: Improve cache locality * vic: Fix off-by-one error * codec: Async * codec: Forgot the GetValue() * nvdec: Address ameerj's review * codec: Fallback to CPU without VA-API support * cmake: Address lat9nq's review * cmake: Make VA-API optional * vaapi: Multiple GPU * Apply suggestions from code review Co-authored-by: Ameer J <52414509+ameerj@users.noreply.github.com> * nvdec: Address ameerj's review * codec: Use anonymous instead of static * nvdec: Remove enum and fix memory leak * nvdec: Address ameerj's review * codec: Remove preparation for threading Co-authored-by: Ameer J <52414509+ameerj@users.noreply.github.com>
2021-08-01Merge pull request #6565 from lat9nq/bundle-ffmpegAmeer J
cmake, ci: Build bundled FFmpeg with yuzu
2021-07-27Merge pull request #6753 from jbeich/libusbAmeer J
cmake: unbreak libusb detection on FreeBSD
2021-07-27cmake: don't use pkg-config directly with non-reference libusbJan Beich
CMake Error at externals/libusb/CMakeLists.txt:120 (add_library): Cannot find source file: libusb/libusb/core.c Tried extensions .c .C .c++ .cc .cpp .cxx .cu .mpp .m .M .mm .h .hh .h++ .hm .hpp .hxx .in .txx .f .F .for .f77 .f90 .f95 .f03 .ispc CMake Error at externals/libusb/CMakeLists.txt:120 (add_library): No SOURCES given to target: usb ld: error: undefined symbol: libusb_interrupt_transfer >>> referenced by gc_adapter.cpp >>> gc_adapter.cpp.o:(GCAdapter::Adapter::SendVibrations()) in archive src/input_common/libinput_common.a >>> referenced by gc_adapter.cpp >>> gc_adapter.cpp.o:(GCAdapter::Adapter::GetGCEndpoint(libusb_device*)) in archive src/input_common/libinput_common.a >>> referenced by gc_adapter.cpp >>> gc_adapter.cpp.o:(GCAdapter::Adapter::AdapterInputThread()) in archive src/input_common/libinput_common.a ld: error: undefined symbol: libusb_error_name >>> referenced by gc_adapter.cpp >>> gc_adapter.cpp.o:(GCAdapter::Adapter::SendVibrations()) in archive src/input_common/libinput_common.a ld: error: undefined symbol: libusb_control_transfer >>> referenced by gc_adapter.cpp >>> gc_adapter.cpp.o:(GCAdapter::Adapter::CheckDeviceAccess()) in archive src/input_common/libinput_common.a ld: error: undefined symbol: libusb_kernel_driver_active >>> referenced by gc_adapter.cpp >>> gc_adapter.cpp.o:(GCAdapter::Adapter::CheckDeviceAccess()) in archive src/input_common/libinput_common.a ld: error: undefined symbol: libusb_close >>> referenced by gc_adapter.cpp >>> gc_adapter.cpp.o:(GCAdapter::Adapter::CheckDeviceAccess()) in archive src/input_common/libinput_common.a >>> referenced by gc_adapter.cpp >>> gc_adapter.cpp.o:(GCAdapter::Adapter::ClearLibusbHandle()) in archive src/input_common/libinput_common.a >>> referenced by gc_adapter.cpp >>> gc_adapter.cpp.o:(GCAdapter::Adapter::Reset()) in archive src/input_common/libinput_common.a >>> referenced by gc_adapter.cpp >>> gc_adapter.cpp.o:(GCAdapter::Adapter::Setup()) in archive src/input_common/libinput_common.a >>> referenced by gc_adapter.cpp >>> gc_adapter.cpp.o:(GCAdapter::Adapter::AdapterScanThread()) in archive src/input_common/libinput_common.a ld: error: undefined symbol: libusb_detach_kernel_driver >>> referenced by gc_adapter.cpp >>> gc_adapter.cpp.o:(GCAdapter::Adapter::CheckDeviceAccess()) in archive src/input_common/libinput_common.a ld: error: undefined symbol: libusb_claim_interface >>> referenced by gc_adapter.cpp >>> gc_adapter.cpp.o:(GCAdapter::Adapter::CheckDeviceAccess()) in archive src/input_common/libinput_common.a ld: error: undefined symbol: libusb_get_config_descriptor >>> referenced by gc_adapter.cpp >>> gc_adapter.cpp.o:(GCAdapter::Adapter::GetGCEndpoint(libusb_device*)) in archive src/input_common/libinput_common.a ld: error: undefined symbol: libusb_release_interface >>> referenced by gc_adapter.cpp >>> gc_adapter.cpp.o:(GCAdapter::Adapter::ClearLibusbHandle()) in archive src/input_common/libinput_common.a >>> referenced by gc_adapter.cpp >>> gc_adapter.cpp.o:(GCAdapter::Adapter::Reset()) in archive src/input_common/libinput_common.a >>> referenced by gc_adapter.cpp >>> gc_adapter.cpp.o:(GCAdapter::Adapter::Setup()) in archive src/input_common/libinput_common.a >>> referenced by gc_adapter.cpp >>> gc_adapter.cpp.o:(GCAdapter::Adapter::AdapterScanThread()) in archive src/input_common/libinput_common.a ld: error: undefined symbol: libusb_init >>> referenced by gc_adapter.cpp >>> gc_adapter.cpp.o:(GCAdapter::Adapter::Adapter()) in archive src/input_common/libinput_common.a ld: error: undefined symbol: libusb_open_device_with_vid_pid >>> referenced by gc_adapter.cpp >>> gc_adapter.cpp.o:(GCAdapter::Adapter::Setup()) in archive src/input_common/libinput_common.a ld: error: undefined symbol: libusb_get_device >>> referenced by gc_adapter.cpp >>> gc_adapter.cpp.o:(GCAdapter::Adapter::Setup()) in archive src/input_common/libinput_common.a ld: error: undefined symbol: libusb_exit >>> referenced by gc_adapter.cpp >>> gc_adapter.cpp.o:(GCAdapter::Adapter::Reset()) in archive src/input_common/libinput_common.a
2021-07-19Merge pull request #6652 from lat9nq/cmd-vulkan-fixesbunnei
yuzu-cmd: Linux Vulkan fixes
2021-07-16emu_window_sdl2_vk: Use the generated SDL configlat9nq
On Linux, due to the way we include SDL2 as a submodule, it makes it difficult for us to specify which SDL_config.h we intended to include. Before, CMake would default to the dummy one included with SDL and ignore the generated one. This tells CMake to use the generated one. In addition, we define USING_GENERATED_CONFIG_H to throw an error in case the dummy config is used by accident. Fixes Vulkan not working on Linux yuzu-cmd.
2021-07-16cmake: Only search for Qt when we need tolat9nq
When YUZU_USE_BUNDLED_QT was specified on a system with a compliant Qt version installed, CMake configuration would cause an error due to mixing YUZU_USE_BUNDLED_QT with the system Qt. Solution is to only search for Qt when YUZU_USE_BUNDLED_QT is disabled.
2021-07-16cmake: Only use NO_CMAKE_SYSTEM_PATH when needed for Qtlat9nq
As-is causes issues with building yuzu using MinGW GCC on Linux-based machines. Only set the variable when needed. (I'm not quite sure how this was working before.)
2021-07-08cmake: Only copy pre-commit hook if .git directory existsReinUsesLisp
Allow the usage of git worktrees on yuzu.
2021-07-06cmake: Specify the compiler on autotools externalslat9nq
Enables CCache on externals if available.
2021-07-06cmake, ci: Build bundled FFmpeg with yuzulat9nq
Drops usage of CMAKE_DEPENDENT_OPTION to allow using YUZU_USE_BUNDLED_FFMPEG as an option on any platform. CI then now builds FFmpeg always, netting about 10 MB less used on the AppImage. Also somewhat fixes YUZU_USE_BUNDLED_QT so that it can be used even if CMake doesn't clean up its state after running the first find_package.
2021-06-30Merge pull request #6459 from lat9nq/ubuntu-fixesAmeer J
cmake: Improve Linux dependency checking for externals
2021-06-23externals: Update fmt to 8.0.0Lioncash
Keeps us up to date with the latest major release. Also allows compilers that support it to perform compile-time format string checking.
2021-06-13cmake: Check dependencies for Linux Qt packagelat9nq
Currently Qt will download whether or not the target system supports the package. Normally this isn't an issue since the package manager would work out the dependencies for us, but in this case we must make sure everything is in place before downloading the package. This checks for the package's requirements, as well as tries to provides hints as to what is required on some of the more cryptic dependencies.
2021-06-13cmake: Fix find_program usage for 3.15lat9nq
yuzu requires CMake 3.15 yet find_program was using REQUIRED, which is only available on 3.18 and later. Instead, we check for "<VAR>-NOTFOUND". In addition, check for additional requirements before building libusb or FFmpeg with autotools. Otherwise, CMake configuration will pass yet compilation will fail.
2021-06-03externals: libusb: Link libusb statically on Linuxlat9nq
Turns out that this is possible. Also addresses my own review comment.
2021-06-03cmake: General improvements to libusb linkinglat9nq
Delegates libusb external communication to externals/CMakeLists.txt Ensures an interface library `usb` for every pathway input_common just links to the `usb` library now externals/libusb/CMakeLists.txt sets variables to override SDL2's libusb finding Other minor cleanup
2021-06-03cmake: Use autotools to build libusb generally for GNUlat9nq
Building libusb was also broken on GCC (and maybe Clang) on our CMakeLists after upgrading to 1.0.24, but it was not being checked because our 18.04 container had libusb installed on it. This builds on the MinGW work from earlier and extends it to the rest of the GNU toolchains. In addition we make use of pkg-config when present to find libusb. pkg-config is preferrable because we can specify a minimum required version.
2021-05-31externals: libusb: Use autotools for MinGWlat9nq
After updating to 1.0.24, MinGW fails to build libusb as a result of numerous errors. So we build libusb their way and let them update the nontrivial stuff. This only applies to MinGW: the old path is still in use for Linux toolchains as well as MSVC. This will dynamically link libusb, since I hit build errors with the old way we used to resolve the conflict with SDL2.
2021-05-27cmake: Fix usage of CMAKE_DEPENDENT_OPTIONlat9nq
CMAKE_DEPENDENT_OPTION takes a value argument, but as a macro function it will read a variable name as the name and not the value. For YUZU_USE_BUNDLED_QT, ensure that we are reading the value of MSVC. For YUZU_ALLOW_SYSTEM_SDL2, CMAKE_DEPENDENT_OPTION is redundant here anyway as we don't use that path on any toolchain by default.
2021-05-26cmake: Download Qt binaries on Linux if neededlat9nq
If the local version of Qt is older than the minimum version required by yuzu, download a pre-built binary package from yuzu-emu/ext-linux-bin and build yuzu with it, instead. This also requires linking yuzu to the correct libraries after building it, and copying over the required binaries when building yuzu. This sets the Qt requirement to 5.12, which is intentionally behind the versions used by our toolchains since they are not all updated yet to 5.15.
2021-05-21CMakeLists: Update zstd to 1.5.0Lioncash
zstd 1.5.0 brings numerous performance improvements to the library, as can be seen here: https://github.com/facebook/zstd/releases/tag/v1.5.0
2021-05-09On Linux, build SDL2 from externals with HIDAPI supportv1993
2021-05-09externals: Update SDL to 107db2d8lat9nq
In light of 72a49c2bbcce46c24b6d8ee0592989a507dcd68a, the SDL submodule also needs updated. Updates to the same commit used by the SDL package in ext-windows-bin.
2021-05-08Update SDL2 to SDL2-2.0.15-prerelease.bunnei
- Improves native Switch JoyCon/Pro Controller support.