summaryrefslogtreecommitdiffstats
path: root/CMakeLists.txt (unfollow)
Commit message (Collapse)AuthorFilesLines
2021-04-22cmake: Download Boost if inadequate local versionlat9nq1-1/+19
Building SDL2 from externals is incompatible with Conan's version of libiconv, a requirement of Conan's Boost package. Solution is to use the same Boost package in use by the linux-fresh container. This tells CMake to download boost_1_75_0.tar.xz from yuzu-emu/ext-linux-bin at CMake's configuration step, much the same way Qt and FFmpeg are downloaded for Windows. Also makes DownloadExternals.cmake cross-platform. Although the CMake code is not entirely specific to Linux, only Linux has Boost libraries available at ext-linux-bin, whereas there is no equivalent Boost package for Windows at ext-windows-bin. caveat emptor
2021-04-21cmake: Suppress SDL2 not found warninglat9nq1-1/+1
If SDL2 is not found, the error is handled by falling back to externals. No need spill the full warning at the find_package if it's going to be handled later, so add QUIET to it.
2021-04-21cmake: Allow FFmpeg external usage and cleanuplat9nq1-6/+5
Sets find_package(FFmpeg) to QUIET instead of REQUIRED. This allows using the FFmpeg external in cases where there is no suitable installed version of FFmpeg. Also fixes a bug where multiple CMake configures causes FFmpeg_LIBRARIES to concatenate on itself, producing cyclical dependencies. Unsets the variable before building it in the foreach loop. Fixes FFmpeg_INCLUDE_DIR not including the headers generated at run time.
2021-04-18cmake: Use SDL 2.0.14 and fix CMake scope issuelat9nq1-4/+4
Forces using SDL 2.0.14. Upgrades the SDL external to that version. Adds a message when switching to the external. Fixes an error where input_common only links to SDL when SDL2_FOUND is set, but externals/CMakeLists cannot set that variable to the required scope. Switch to using ENABLE_SDL2, which we can use since we now include the SDL source.
2021-04-17externals: Add SDL 2.0.12lat9nq1-9/+11
Since Bintray is (soon to be) no more, there needs to be a way to acquire SDL2. Since 20.04's version is older than our minimum required version (2.0.12), add it as an external.
2021-04-16cmake: Remove use of bintray for externals.bunnei1-40/+36
- Bintray will be deprecated on May 1st 2021 (https://bintray.com/) - We were previously using this for Qt (non-Windows) and SDL. - I've moved to bundled SDL on Windows.
2021-04-08externals: Search for shared opus installation.Markus Wick1-0/+2
We had used conan for opus before, but there was a bug in the AVX detection. However we still had the Findopus.cmake file within the repository, but not used. This patch reenables the Findopus helper and prefer the system wide installation of opus.
2021-02-10cmake: Update FFmpeg to 4.3.1lat9nq1-1/+1
Download FFmpeg package version 4.3.1. Uses a file defined within the package to determine with DLLs to copy. Also corrects a submodule name.
2021-02-09cmake: Revert FFmpeg 4.3.1 update for Windows buildsameerj1-1/+1
The new 4.3.1 externals build seems to not be compatible with yuzu. This also fixes an oversight when renaming CMake variables.
2021-02-06CMakeLists: Use bundled FFmpeg as a fallbacklat9nq1-13/+29
Sets YUZU_USE_BUNDLED_FFMPEG as a CMake dependent option that is OFF on Linux and ON for WIN32 targets. If FFmpeg is not found when YUZU_USE_BUNDLED_FFMPEG is OFF, the bundled module/binaries are used instead. Reverts earlier changes to FindFFmpeg a bit, mostly to keep parity with it's Citra version a bit. Now _FFmpeg_ALL_COMPONENTS lists all components. We overwrite FFmpeg_LIBRARIES and FFmpeg_INCLUDE_DIR after using the module.
2021-02-06CMakeLists: Update to FFmpeg 4.3.1 for WIN32lat9nq1-1/+1
Minimal binaries go brrrrrrr
2021-02-06CMakeLists: Fixes for linux-freshlat9nq1-1/+13
Tells CMake to look for either nasm or yasm as it is required to build FFmpeg. Avoids a compile-time error by checking for it during configuration. Adds a workaround for Ubuntu Bionic's old version of make not communicating jobserver details properly.
2021-02-05CMake: Port citra-emu/citra FindFFmpeg.cmakelat9nq1-39/+43
Also renames related CMake variables to match both the Find*FFmpeg* and variables defined within the file. Fixes odd errors produced by the old FindFFmpeg. Citra's FindFFmpeg is slightly modified here: adds Citra's copyright at the beginning, renames FFmpeg_INCLUDES to FFmpeg_INCLUDE_DIR, disables a few components in _FFmpeg_ALL_COMPONENTS, and adds the missing avutil component to the comment above.
2021-02-05CMake: Implement YUZU_USE_BUNDLED_FFMPEGlat9nq1-10/+102
For Linux, instructs CMake to use the FFmpeg submodule in externals. This is HEAVILY based on our usage of the late Unicorn. Minimal change to MSVC as it uses the yuzu-emu/ext-windows-bin. MinGW now targets the same ext-windows-bin libraries as MSVC for FFmpeg. Adds FFMPEG_LIBRARIES to WIN32 and simplifies video_core/CMakeLists.txt a bit.
2021-01-21Bump conan SDL2 version to 2.0.14Valeri1-1/+1
Update conan package version used for building. A couple of new joystick-related functions might pose interest to yuzu's input system. Some sort of LED management have been added, but it doesn't seem to support leds used for player number indication JoyCons/ProCons use.
2021-01-07CMakeLists: Disable YUZU_ENABLE_BOXCAT if ENABLE_WEB_SERVICE is disabledlat9nq1-2/+6
Boxcat is a web service but is still enabled if ENABLE_WEB_SERVICE is disabled during the CMake stage, which causes compilation issues with either missing headers or missing libraries. This disables YUZU_ENABLE_BOXCAT regardless of the input if ENABLE_WEB_SERVICE is disabled.
2021-01-03Update zstd to v1.4.8FearlessTobi1-1/+1
Co-Authored-By: Vitor K <29167336+vitor-k@users.noreply.github.com>
2020-12-25cmake: Always enable VulkanReinUsesLisp1-2/+0
Removes the unnecesary burden of maintaining separate #ifdef paths and allows us sharing generic Vulkan code across APIs.
2020-12-16cmake/conan: Conditionally add target Boost::contextlat9nq1-6/+17
Addresses an issue with the two competing versions of Conan's Boost package that are currently floating around. Adds the Boost::context target only if it's recognized by CMake as a target.
2020-12-13cmake: Fix generating CMake configs and linking with Boostlat9nq1-1/+16
Fixes regression by 761206cf81b271f7f4dd6a167a120325b760dbf3, causing yuzu to not build on Linux with any version of Boost except a cached 1.73 Conan version from before about a day ago. Moves the Boost requirement out of the `REQUIRED_LIBS` psuedo-2D-array for Conan to instead be manually configured, using Conan as a fallback solution if the system does not meet our requirements. Requires any update from the linux-fresh container in order to build. **DO NOT MERGE** until someone with the MSVC toolchain can verify this works there, too.
2020-12-07CMakeLists,network: Create YUZU_UNIX macro to replace __unix__comex1-0/+3
__unix__ is not predefined on Apple platforms even though they are Unix.
2020-11-08externals: Update fmt to 7.1.2Lioncash1-1/+1
Updates to the latest bugfix release of fmt.
2020-11-04core: Remove usage of unicornLioncash1-77/+0
Unicorn long-since lost most of its use, due to dynarmic gaining support for handling most instructions. At this point any further issues encountered should be used to make dynarmic better. This also allows us to remove our dependency on Python.
2020-10-27externals: auto detect system OpenSSLliushuyu1-2/+0
2020-10-27web_backend: fix a regression introduced in 39c8d18liushuyu1-0/+2
* A regression was in 39c8d18 and token verification function was broken. * The reason being `httplib` now requires OpenSSL 1.1+ API while LibreSSL 2.x provided OpenSSL 1.0 compatible API. * The bundled LibreSSL has been updated to 3.2.2 so it now provides OpenSSL 1.1 compatible API now. * Also the path hint has been added so that it will find the correct path to the CA certs on *nix systems. * An option is provided so that *nix system distributions/providers can use their own SSL implementations when compiling Yuzu/Citra to (hopefully) complies with their maintenance guidelines. * LURLParse is also removed since `httplib` can handle `scheme:host:port` string itself now.
2020-10-27video_core: NVDEC Implementationameerj1-0/+14
This commit aims to implement the NVDEC (Nvidia Decoder) functionality, with video frame decoding being handled by the FFmpeg library. The process begins with Ioctl commands being sent to the NVDEC and VIC (Video Image Composer) emulated devices. These allocate the necessary GPU buffers for the frame data, along with providing information on the incoming video data. A Submit command then signals the GPU to process and decode the frame data. To decode the frame, the respective codec's header must be manually composed from the information provided by NVDEC, then sent with the raw frame data to the ffmpeg library. Currently, H264 and VP9 are supported, with VP9 having some minor artifacting issues related mainly to the reference frame composition in its uncompressed header. Async GPU is not properly implemented at the moment. Co-Authored-By: David <25727384+ogniK5377@users.noreply.github.com>
2020-10-26externals: Update fmt to 7.1.0Lioncash1-1/+1
Keeps the used version of the library up to date.
2020-09-09cmake: Update to Qt 5.12.8Morph1-1/+1
2020-08-14CMakeLists: Update fmt to 7.0.3Lioncash1-1/+1
Keeps the library up to date and fixes a few bugs
2020-08-09General: Tidy up clang-format warningsLioncash1-1/+1
2020-07-28CMakeLists: Update boost to 1.73Lioncash1-1/+1
Keeps the library up to date.
2020-07-28CMakeLists: Update catch to 2.13Lioncash1-1/+1
Keeps the library up to date
2020-07-28CMakeLists: Update zstd to 1.4.5Lioncash1-1/+1
Keeps the library version up to date.
2020-07-28CMakeFiles: Update json to 3.8.0Lioncash1-1/+1
Keeps the tracked version of the library up to date.
2020-07-18yuzu: Port translation support from CitraFearlessTobi1-0/+5
Co-Authored-By: Weiyi Wang <wwylele@gmail.com>
2020-07-13CMakeLists: Enable usage of C++20 on LinuxLioncash1-3/+3
This also fixes building on Linux with C++20, so we can enable it across the board for all OSes that we officially support.
2020-07-12CMakeLists: Correct boost asio disabling define nameLioncash1-1/+1
Previously the name of the define was missing the BOOST_ prefix.
2020-07-12CMakeLists: Disable concepts in boost asioLioncash1-0/+2
2020-07-11CMakeLists: Do not search for system libusb on macOSMerryMage1-3/+4
2020-07-11CMakeLists: Make use of /std:c++latest on MSVCLioncash1-2/+9
Provides the buildbot with one builder that is always tracking the latest version of the C++ standard, allowing us to progressively rectify our code and amend any differences between standards over time instead of waiting for a complete standard change, potentially breaking a lot of code all at once.
2020-07-10CMakeLists: Update fmt to 7.0.1Lioncash1-1/+1
Keeps the package up to date with the latest major release of fmt. This version brings in quite a bit of improvements, such as code size reduction, etc.
2020-07-10CMakeLists: Use lower-case command namesLioncash1-1/+1
Our convention uses lower-case command names, so this is just a consistency change.
2020-07-10cmake: Fix libusb builds breakingDavid Marcec1-0/+1
2020-07-09cmake: pass libusb include directory as wellJan Beich1-0/+1
In file included from src/input_common/gcadapter/gc_adapter.cpp:8: src/./input_common/gcadapter/gc_adapter.h:11:10: fatal error: 'libusb.h' file not found #include <libusb.h> ^~~~~~~~~~
2020-07-07cmake: unbreak system libusb supportJan Beich1-2/+4
Reference libusb doesn't support DragonFly and FreeBSD because those ship a different libusb implementation (supports 0.1, 1.0, 2.0 API). ld: error: undefined symbol: usbi_backend >>> referenced by core.c >>> core.c.o:(usbi_alloc_device) in archive externals/libusb/libusb.a ld: error: undefined symbol: usbi_backend >>> referenced by core.c >>> core.c.o:(usbi_alloc_device) in archive externals/libusb/libusb.a ld: error: undefined symbol: usbi_backend >>> referenced by core.c >>> core.c.o:(libusb_has_capability) in archive externals/libusb/libusb.a ld: error: undefined symbol: usbi_backend >>> referenced by core.c >>> core.c.o:(libusb_has_capability) in archive externals/libusb/libusb.a ld: error: undefined symbol: usbi_backend >>> referenced by core.c >>> core.c.o:(libusb_has_capability) in archive externals/libusb/libusb.a ld: error: undefined symbol: usbi_backend >>> referenced by core.c >>> core.c.o:(usbi_connect_device) in archive externals/libusb/libusb.a ld: error: undefined symbol: usbi_backend >>> referenced by core.c >>> core.c.o:(usbi_disconnect_device) in archive externals/libusb/libusb.a ld: error: undefined symbol: usbi_backend >>> referenced by core.c >>> core.c.o:(libusb_get_device_list) in archive externals/libusb/libusb.a ld: error: undefined symbol: usbi_backend >>> referenced by core.c >>> core.c.o:(libusb_get_device_list) in archive externals/libusb/libusb.a ld: error: undefined symbol: usbi_backend >>> referenced by core.c >>> core.c.o:(libusb_unref_device) in archive externals/libusb/libusb.a ld: error: undefined symbol: usbi_backend >>> referenced by core.c >>> core.c.o:(libusb_unref_device) in archive externals/libusb/libusb.a ld: error: undefined symbol: usbi_write >>> referenced by core.c >>> core.c.o:(usbi_signal_event) in archive externals/libusb/libusb.a ld: error: undefined symbol: usbi_read >>> referenced by core.c >>> core.c.o:(usbi_clear_event) in archive externals/libusb/libusb.a ld: error: undefined symbol: usbi_backend >>> referenced by core.c >>> core.c.o:(libusb_wrap_sys_device) in archive externals/libusb/libusb.a ld: error: undefined symbol: usbi_backend >>> referenced by core.c >>> core.c.o:(libusb_wrap_sys_device) in archive externals/libusb/libusb.a ld: error: undefined symbol: usbi_backend >>> referenced by core.c >>> core.c.o:(libusb_wrap_sys_device) in archive externals/libusb/libusb.a ld: error: undefined symbol: usbi_backend >>> referenced by core.c >>> core.c.o:(libusb_open) in archive externals/libusb/libusb.a ld: error: undefined symbol: usbi_backend >>> referenced by core.c >>> core.c.o:(libusb_open) in archive externals/libusb/libusb.a ld: error: undefined symbol: usbi_read >>> referenced by core.c >>> core.c.o:(libusb_close) in archive externals/libusb/libusb.a ld: error: undefined symbol: usbi_write >>> referenced by core.c >>> core.c.o:(libusb_close) in archive externals/libusb/libusb.a ld: error: too many errors emitted, stopping now (use -error-limit=0 to see all errors) c++: error: linker command failed with exit code 1 (use -v to see invocation)
2020-07-02cmake: stop linking against QGL after c6a0ab979239Jan Beich1-2/+2
2020-07-01externals: Track opus as submodule instead of using conanDavid Marcec1-2/+0
Supersedes #4068 see for details.
2020-06-30cmake: depend on WebEngine with system QtJan Beich1-0/+3
CMake Error at src/yuzu/CMakeLists.txt:7 (add_executable): Target "yuzu" links to target "Qt5::WebEngineCore" but the target was not found. Perhaps a find_package() call is missing for an IMPORTED target, or an ALIAS target is missing?
2020-06-22Singleton GC Adapter class, remove globals, fix naming conventionAmeer1-0/+6
Fix clang formatting Manual fix for configure_input_player formatting Add missing lib usb cmake command
2020-06-17externals: Revert to libressl, as build is broken with find_package(OpenSSL). (#4093)bunnei1-10/+0
* externals: Revert to libressl, as build is broken with find_package(OpenSLL). * fixup! externals: Revert to libressl, as build is broken with find_package(OpenSLL). * fixup! externals: Revert to libressl, as build is broken with find_package(OpenSLL).
2020-06-01Update CMakeLists.txtbunnei1-1/+1
2020-05-31Update CMakeLists.txtbunnei1-1/+1
2020-05-09Mark the opus version check as broken.Markus Wick1-0/+1
2020-05-08Replace externals with Conan (#3735)James Rowe1-70/+217
* Remove git submodules that will be loaded through conan * Move custom Find modules to their own folder * Use conan for downloading missing external dependencies * CI: Change the yuzu source folder user to the user that the containers run on * Attempt to remove dirty mingw build hack * Install conan on the msvc build * Only set release build type when using not using multi config generator * Re-add qt bundled to workaround an issue with conan qt not downloading prebuilt binaries * Add workaround for submodules that use legacy CMAKE variables * Re-add USE_BUNDLED_QT on the msvc build bot
2020-04-19cmake: Silence -Werror=implicit-fallthrough in SDL2 headersJan Beich1-1/+1
In file included from src/input_common/sdl/sdl_impl.cpp:16: In file included from /usr/local/include/SDL2/SDL.h:32: In file included from /usr/local/include/SDL2/SDL_main.h:25: /usr/local/include/SDL2/SDL_stdinc.h:445:9: error: unannotated fall-through between switch labels [-Werror,-Wimplicit-fallthrough] case 3: *_p++ = _val; /* fallthrough */ ^ /usr/local/include/SDL2/SDL_stdinc.h:445:9: note: insert '[[fallthrough]];' to silence this warning case 3: *_p++ = _val; /* fallthrough */ ^ [[fallthrough]]; /usr/local/include/SDL2/SDL_stdinc.h:445:9: note: insert 'break;' to avoid fall-through case 3: *_p++ = _val; /* fallthrough */ ^ break; /usr/local/include/SDL2/SDL_stdinc.h:446:9: error: unannotated fall-through between switch labels [-Werror,-Wimplicit-fallthrough] case 2: *_p++ = _val; /* fallthrough */ ^ /usr/local/include/SDL2/SDL_stdinc.h:446:9: note: insert '[[fallthrough]];' to silence this warning case 2: *_p++ = _val; /* fallthrough */ ^ [[fallthrough]]; /usr/local/include/SDL2/SDL_stdinc.h:446:9: note: insert 'break;' to avoid fall-through case 2: *_p++ = _val; /* fallthrough */ ^ break; /usr/local/include/SDL2/SDL_stdinc.h:447:9: error: unannotated fall-through between switch labels [-Werror,-Wimplicit-fallthrough] case 1: *_p++ = _val; /* fallthrough */ ^ /usr/local/include/SDL2/SDL_stdinc.h:447:9: note: insert '[[fallthrough]];' to silence this warning case 1: *_p++ = _val; /* fallthrough */ ^ [[fallthrough]]; /usr/local/include/SDL2/SDL_stdinc.h:447:9: note: insert 'break;' to avoid fall-through case 1: *_p++ = _val; /* fallthrough */ ^ break; 3 errors generated.
2020-02-17fix CMake build errors for certain SDL2 installationsBrian Clinkenbeard1-1/+7
2020-02-11use config mode for finding SDL2 with CMakeBrian Clinkenbeard1-5/+6
2020-01-23Input: UDP Client to provide motion and touch controlsfearlessTobi1-0/+7
An implementation of the cemuhook motion/touch protocol, this adds the ability for users to connect several different devices to citra to send direct motion and touch data to citra. Co-Authored-By: jroweboy <jroweboy@gmail.com>
2019-12-06Ignore git-related files in cmake for EA tarballsJake Merdich1-2/+5
This fixes the early-access builds on Windows (tested on EA 58). Cmake was previously looking for git-related files that were stripped out of the early access builds and failing; check if those exist before reading them.
2019-09-30cmake: Add cmake option to build Boxcat backendZach Hilman1-0/+2
Default enabled
2019-06-29Revert "CMake: Get Git submodule dependencies via CMake (#2474)"Tobias1-12/+16
This reverts commit 5cef446f42e698a524c6c3240fedb0031f8e5694.
2019-06-20CMake: Get Git submodule dependencies via CMake (#2474)Frederic L1-16/+12
* CMake: Get Git submodule dependencies via CMake * CMakeLists: Fixed unintentional line break * travis: Bring parity between linux-mingw and linux build script * CMakeLists: Fixed typo in error message
2019-05-15CMakeLists: Handle VS 2019 in a less annoying mannerLioncash1-3/+3
VS 2019 is binary compatible with VS 2017, so we can safely use the prebuilt libraries for VS 2017 with VS 2019. This makes it less annoying to build yuzu with the most up to date toolchain.
2019-04-07fix clang-format target when using a path with spaces on windowskhang061-1/+1
2019-03-18CMakeLists: Raise minimum Boost requirement to 1.66.0MerryMage1-2/+2
Required due to bugfix in boost for changed template resolving rules in GCC 7.3.0 in C++17 mode
2019-03-17CMakeLists: Move compilation flags into the src directoryLioncash1-79/+9
We generally shouldn't be hijacking CMAKE_CXX_FLAGS, etc as a means to append flags to the targets, since this adds the compilation flags to everything, including our externals, which can result in weird issues and makes the build hierarchy fragile. Instead, we want to just apply these compilation flags to our targets, and let those managing external libraries to properly specify their compilation flags. This also results in us not getting as many warnings, as we don't raise the warning level on every external target.
2019-03-16CMakeLists: Remove now-unnecessary GCC special-casingLioncash1-8/+2
This issue has since been fixed in newer versions of Boost, so we don't need to worry about this anymore.
2019-02-12cmake: Add Vulkan optionReinUsesLisp1-0/+2
2019-02-07gl_shader_disk_cache: Invalidate shader cache changes with CMake hashReinUsesLisp1-13/+0
2018-12-31Update Qt MSVC external to 5.12.0Zach Hilman1-1/+1
2018-12-28cmake: Add USE_QT_WEB_ENGINE flag and update build systemZach Hilman1-0/+6
2018-11-13GDBStub improvements:Hedges1-1/+1
- Add FPU support - Fix access to TLS Fix clang-format.
2018-10-23CMakeLists: Remove EMU_ARCH_BITS definitionLioncash1-4/+0
This was only ever used by the now-removed memory_util functions. Also, given we don't plan to support 32-bit architectures, this is just a leftover from citra at this point.
2018-10-23cmake: mingw also needs _FILE_OFFSET_BITS=64Weiyi Wang1-1/+1
2018-10-20CMakeLists: Use PROJECT_SOURCE_DIR instead of CMAKE_SOURCE_DIRLioncash1-19/+19
This is more localized to what we want to enforce directory-wise with the project. CMAKE_SOURCE_DIR indicates the root of the source tree, but this would cause the wrong behavior if someone included yuzu as part of a larger buildsystem (for whatever reason). Instead, we want to use the directory where the "project(yuzu)" command was declared as the root path reference.
2018-10-02string_util: unify UTF8<->UTF16 conversion to codecvtWeiyi Wang1-8/+0
2018-10-02Review comments -part 4fearlessTobi1-7/+0
2018-10-02Port web_service from CitrafearlessTobi1-0/+11
2018-09-25CMake: Remove superfluous CMAKE_RUNTIME_OUTPUT_DIRECTORY assignmentspycrab1-2/+0
2018-09-22Port citra-emu/citra#4214: "Set citra-qt project as default StartUp Project in Visual Studio"fearlessTobi1-2/+6
2018-09-19travis: running mingw build on travis citech4me1-4/+13
This commit also fixed a broken cmake dependency with unicorn
2018-09-12Update CMakeLists.txtFrederic Laing1-0/+3
Set yuzu project as default StartUp Project in Visual Studio
2018-08-29Show game compatibility within yuzufearlessTobi1-0/+13
2018-08-15CMakeLists: Add architecture detection for AArch64Lioncash1-0/+2
We already have an equivalent in place for the 32-bit ARM architecture, so we should also have one for the newer 64-bit ARM architecture as well.
2018-08-12externals: Update to SDL2-2.0.8.bunnei1-1/+1
2018-08-12CMakeLists: lowercase find_library usageLioncash1-1/+1
The rest of the CMake script uses lowercase for commands (which is the general CMake style), making it more consistent with surrounding code.
2018-08-12CMakeLists: Change MSVC14 variable to MSVC_VERSIONLioncash1-5/+5
Use of the MSVC14 variable is discouraged in the CMake documentation (which makes sense, since MSVC_VERSION is the more general appliable variable).
2018-07-31audio_core: Implement Sink and SinkStream interfaces with cubeb.bunnei1-0/+2
2018-06-23Revert "Use Ninja for MSVC AppVeyor builds" (#584)bunnei1-1/+1
2018-06-05Drop /std:c++latest from MSVC command lineMichał Janiszewski1-1/+1
CMake already sets it to version 17 in all cases
2018-03-21CMake: Set EMU_ARCH_BITS in CMakeLists.txtN00byKing1-0/+3
2018-01-26Fix typo for dependent optionsJames Rowe1-1/+1
2018-01-26Install Linux icon in hicolor instead of pixmapsKAMiKAZOW1-1/+1
hicolor is the preferred location for applications. See https://specifications.freedesktop.org/icon-theme-spec/icon-theme-spec-latest.html#directory_layout Same as https://github.com/citra-emu/citra/pull/3007
2018-01-21CMakeLists: Fix unicorn build for macOS developers with x86_64-only systemsMerryMage1-1/+1
Some of us do not have any i386 libraries required to build x86-32 universal libraries.
2018-01-21CMakeLists: Do not look for system Unicorn by defaultMerryMage1-2/+5
Since we use a custom build of unicorn it doesn't make much sense to look for the system version, unless the user explicitly wants to override this.
2018-01-21CMake: Conditionally turn on bundled libs for MSVCJames Rowe1-2/+5
Removes the annoying step when generating sln for MSVC where you have to click an extra checkbox after the first generate fails by using a conditional option. The USE_BUNDLED options will be off by default, but if the enable_lib option is enabled and the toolset is msvc, they are turned ON.
2018-01-20CMake: Add a custom clang format targetJames Rowe1-0/+47
Checks to see if clang-format can be found, and if it is, sets up a custom target that will run against the src dir and auto formats all files. In MSVC, this is a project, and in Makefiles, its a make target
2018-01-20Port citra #3352 to yuzu (#103)River City Ransomware1-8/+11
* Port citra #3352 to yuzu This change allows non x86_64 architectures to compile yuzu by skipping the building of dynarmic * Fixed clang-format errors * fixes more clang-format errors
2018-01-18CMakeLists: Derive the source directory grouping from targets themselvesLioncash1-2/+4
Removes the need to store to separate SRC and HEADER variables, and then construct the target in most cases.
2018-01-17Update qtRiver City Ransomware1-1/+1
Updates qt from 5.7 to 5.10.0, fixing some errors relating to setting the process dpi
2018-01-16CMake: Override PYTHON environment variable for libunicornspycrab1-1/+3
2018-01-16Build: Automagically handle unicornJames Rowe1-45/+47
On MSVC if unicorn isn't found, fallback to bundled unicorn On everything else, fallback to building unicorn in externals Also fixes loading unicorn in msvc
2018-01-16Build: Add unicorn as a submodule and build it if neededJames Rowe1-0/+25
Adds a cmake custom target that will build unicorn on first compile and uses this in the build scripts as well. Updates Appveyor and Travis build scripts to work with the new unicorn build, and updates the paths to all of the different artifacts.
2018-01-15rename CITRA to YUZUSimonx221-6/+6
2018-01-15CMake: Output binaries to bin/spycrab1-0/+3
2018-01-15fixed build for gcc c++17 / boost.icl incompatibilityHarry Prevor1-0/+6
2018-01-15fixed build for gcc c++17 / boost.icl incompatibilityHarry Prevor1-0/+6
2018-01-14Fix compilation on case-sensitive OSXRobin Lambertz1-1/+1
When compiling on a case-sensitive filesystem on OSX, cmake doesn't find the FindUnicorn file, because it looks for Findunicorn.cmake. We should uses the correct case to avoid this issue.
2018-01-13Add new icons and fix up the linux paths for installJames Rowe1-15/+3
2018-01-13Massive removal of unused modulesJames Rowe1-22/+1
2018-01-13CMakeLists: Use C++ 17.bunnei1-2/+2
2018-01-09cmake: Use LIBUNICORN_* on Windows.bunnei1-2/+2
2018-01-09fix macos buildMerryMage1-2/+2
2018-01-04externals: Use unicorn DLL instead of static lib.bunnei1-2/+3
2018-01-04unicorn: Use for arm interface on Windows.bunnei1-0/+31
2017-09-11Build: Enable SSL in mingw by linking against WinSSLJames Rowe1-18/+10
The mingw builds aren't submitting telemetry because the curl library they are linked against is configured to use openSSL and openSSL looks for the certificates in the users home folder. This keeps it from contacting web services because it can't communicate over SSL. This commit adds a download in mingw builds that will download a precompiled curl for mingw linked against winssl and sspi.
2017-09-03Add manifestDaMan1-2/+2
2017-08-04common: Add build timestamp to scm_rev.bunnei1-1/+8
2017-07-23tests: Add tests for vaddMerryMage1-1/+1
2017-07-16CMakeLists: Check that all submodules are presentMerryMage1-0/+15
2017-07-12web_service: Add CMake flag to enable.bunnei1-0/+5
2017-06-25Set global definition WIN32_LEAN_AND_MEAN (#2807)B3n301-0/+2
Set definition WIN32_LEAN_AND_MEAN to avoid windows.h including a lot of libs that are usually not used.
2017-06-17CMake: Set MSVC flags for improved C++ standards conformanceYuri Kunde Schlesner1-3/+6
This makes the compiler stricter and also enables small optimizations.
2017-05-28CMake: Re-organize root CMakeLists.txt fileYuri Kunde Schlesner1-56/+78
Separates the file into sections and re-orders things to fit in them
2017-05-28CMake: Move definitions of externals to the CMakeLists in that directoryYuri Kunde Schlesner1-26/+5
2017-05-28CMake: Create INTERFACE targets for microprofile and nihstroYuri Kunde Schlesner1-2/+6
2017-05-28CMake: Add SoundTouch include path to target propertyYuri Kunde Schlesner1-0/+2
2017-05-28CMake: Use target properties to add inih include pathsYuri Kunde Schlesner1-3/+1
2017-05-28CMake: Define an interface target for SDL2 definitionsYuri Kunde Schlesner1-0/+7
2017-05-28CMake: Remove CITRA_QT_LIBS varYuri Kunde Schlesner1-1/+0
This used to be required to support both Qt4 and Qt5, but we dropped Qt4 so it's not needed anymore.
2017-05-28CMake: Stop using FindOpenGL, which seems to not be required anymoreYuri Kunde Schlesner1-3/+0
2017-05-28CMake: Use append instead of set to modify listYuri Kunde Schlesner1-1/+1
2017-05-28CMake: Use IMPORTED target for BoostYuri Kunde Schlesner1-6/+8
2017-05-28CMake: Use IMPORTED target for libpngYuri Kunde Schlesner1-5/+3
2017-05-27Add the fmt string formatting libraryYuri Kunde Schlesner1-0/+1
More info at http://fmtlib.net/ This commit was based on @jroweboy's work on his spdlog branch, but with modifications.
2017-02-05Fix Microprofile in MinGW (#2530)Fernando Sahmkow1-2/+0
2017-01-22Removed unused and outdated external qhexeditKloen1-5/+0
2017-01-05Change deploy to use github releases instead, but only for the citra-nightly repoJames Rowe1-5/+0
2016-12-31Add deploy to bintray for builds to masterJames Rowe1-0/+5
2016-12-15Externals: Add XbyakYuri Kunde Schlesner1-0/+2
2016-12-13CMakeLists: Autodetect clang and only then use libc++Jeffrey Pfau1-2/+4
2016-12-11Modularization of copy_msvc_libraries cmake functfreiro1-0/+1
Created a new folder in Citra's root called CMakeModules that should contain cmake functions used by the various CMakeLists.txt.
2016-12-05Disable Microprofile on Mingw buildsJames1-0/+3
This fixes a crash when starting games
2016-11-30Appending PLATFORM_LIBRARIES instead of redefining themfreiro1-3/+3
2016-11-30WINVER definition moved to CMake and cleanupfreiro1-8/+8
2016-11-26Add man documentationJames1-0/+12
Includes both SDL and QT frontends
2016-11-22Move to SDL2-2.0.5freiro1-1/+1
2016-11-14Add mingw compile supportJames Rowe1-1/+10
2016-10-28build: don't install freedesktop.org metadata for SDL2-only buildsJan Beich1-1/+1
Citra SDL2 doesn't have a launcher, and citra.desktop tries to execute citra-qt which is N/A unless built with ENABLE_QT. Limiting installed files to one of the options also makes it easier to split them into separate non-conflicting packages downstream.
2016-10-28build: add default install for DragonFly, Solaris, etc.Jan Beich1-1/+1
2016-10-28build: clock_gettime() is in libc on BSDsJan Beich1-1/+1
2016-10-28build: libc may not provide iconv() on UnixJan Beich1-3/+10
/usr/bin/ld: ../common/libcommon.a(string_util.cpp.o): undefined reference to symbol 'libiconv_open'
2016-10-28common: convert to standard stat()/fstat() interfacesAnthony J. Bentley1-0/+9
Most modern Unix environments use 64-bit off_t by default: OpenBSD, FreeBSD, OS X, and Linux libc implementations such as Musl. glibc is the lone exception; it can default to 32 bits but this is configurable by setting _FILE_OFFSET_BITS. Avoiding the stat64()/fstat64() interfaces is desirable because they are nonstandard and not implemented on many systems (including OpenBSD and FreeBSD), and using 64 bits for stat()/fstat() is either the default or trivial to set up.
2016-09-15dynarmic: Add new submodule.bunnei1-0/+3
2016-09-15CMakeLists: Set Boost_INCLUDE_DIR.bunnei1-4/+3
2016-09-01Revert "MSVC: Add RelWithDebInfo and removing debugging from Release."bunnei1-11/+7
2016-09-01MSVC: Add RelWithDebInfo and removing debugging from Release.James Rowe1-7/+11
This should reduce build size on windows from roughly 12MB compressed to 7MB
2016-08-16qt: Use 5.7 on Windows.bunnei1-1/+1
2016-08-05CMake: Fix for QT 5.7 overwriting -std=c++1y flagJames Rowe1-4/+6
In QT 5.7 they added a new check for CXX features which appends a minimum required standard to the CXX_FLAGS. Because we were writing the flag directly previously, cmake assumed it needed to add a c++11 flag to the build. This tells cmake to use c++14 on every build.
2016-07-23Remove the -msse4.1 on ¬MSVC.Emmanuel Gil Peyrot1-5/+0
This option makes the generated binary crash with an illegal instruction when the target CPU doesn’t support the SSE4.1 extension (see #1968), with no noticeable performance increase compared to a generic build.
2016-06-17CMakeLists: Drop support for Qt 4Lioncash1-11/+2
2016-05-19Tests: Run tests on CIMerryMage1-0/+2
2016-05-07AudioCore: SDL2 SinkMerryMage1-0/+3
2016-04-28Externals: Add soundtouchMerryMage1-0/+3
2016-04-24CMakeLists: Use imported version of Threads::ThreadsSam Spilsbury1-3/+5
This requires bumping up to a minimum of CMake 3.1. The benefit of using the imported target is that you can switch to the -pthread compiler flag on request, which may be necessary for some systems if available.
2016-04-23CMakeLists: Use CMAKE_THREAD_LIBS_INITSam Spilsbury1-2/+4
2016-04-03CMakeFiles: Compile as C++14Lioncash1-1/+1
2016-03-02Dependencies: Remove GLFW, Add SDL2MerryMage1-17/+12
citra: Remove GLFW, Add SDL2 FindSDL2: Do not CACHE SDL2_* variables if library is not found EmuWindow_SDL2: Set minimal client area at initialisation time EmuWindow_SDL2: Corrections EmuWindow_SDL2: Fix no decorations on startup on OS X cmake: windows_copy_files
2015-11-12Enable RTTI on Windows builds.Tony Wasserka1-2/+1
2015-09-14CMake: Silence more MSVC "deprecation" warningsYuri Kunde Schlesner1-1/+1
2015-09-09CMake: Make all cache options appear even in case of errorsYuri Kunde Schlesner1-5/+7
The `option` commands have been moved to the top of the file, so that the relevant options are registered in the CMake cache even if one of the required libraries is not found. This solves an ergonomic problem when using bundled libraries where you have to first download GLFW before being able to select the option to also download Qt.
2015-09-09CMake: Point binary downloads to new official repoYuri Kunde Schlesner1-1/+1
2015-09-09CMake: Remove support for QTDIR environment variableYuri Kunde Schlesner1-8/+2
Using this variable is problematic is the user has several versions of Qt installed on their system. There is no way to know ahead of time if the Qt version pointed to by QTDIR matches the toolchain that is being targeted. The Qt installation path can still be easily specified if it's not found by CMake by setting the Qt5_DIR cache variable after the initial configuration run, so this shouldn't present an usability issue.
2015-09-09CMake: Don't complain when Boost isn't found in the system.Yuri Kunde Schlesner1-1/+1
2015-09-09CMake: Use HINTS option instead of modifying CMAKE_PREFIX_PATH for QtYuri Kunde Schlesner1-4/+11
2015-09-09CMake: Add option to download Qt and GLFW binaries over HTTPYuri Kunde Schlesner1-45/+41
2015-09-09CMake: Fix architecture detection on MSVCYuri Kunde Schlesner1-5/+31
CMAKE_SYSTEM_ARCHICTETURE always returns the *host* not target arch when using the MSVC generators. (CMake bugs 15170 and 14342.)
2015-08-30Replace the previous OpenGL loader with a glad-generated 3.3 oneYuri Kunde Schlesner1-0/+1
The main advantage of switching to glad from glLoadGen is that, apart from being actively maintained, it supports a customizable entrypoint loader function, which makes it possible to also support OpenGL ES.
2015-08-25Integrate the MicroProfile profiling libraryYuri Kunde Schlesner1-0/+1
This brings goodies such as a configurable user interface and multi-threaded timeline view.
2015-08-18Fix building under MinGWdarkf1-1/+2
2015-08-16Rename ARCHITECTURE_X64 definition to ARCHITECTURE_x86_64.bunnei1-13/+14
2015-08-15Common: Ported over Dolphin's code for x86 CPU capability detection.bunnei1-2/+13
2015-07-28Enable linker optimizations in MSVC Release buildsYuri Kunde Schlesner1-1/+1
Apparently /DEBUG implicitly disables linker optimizations. This explicitly re-enables them, giving a 40% reduction in binary sizes and a very slight runtime speed improvement.
2015-07-14Fix permissions in pre-commit hookJSFernandes1-2/+1
2015-07-12Implement new argument parsing using getopt and add the corresponding library to externalsGreg Wicks1-0/+4
2015-07-09CMake: Fix Debug build configuration in MSVCYuri Kunde Schlesner1-15/+17
Debug was missing compiler flags, causing MSVC to default it to building with optimizations enabled (making for a not very useful binary for actual debugging...). Additionally, the variables were re-organized to remove some redundancy, the old Release build type was removed, and RelWithDebInfo was renamed to take its place instead.
2015-06-09force no-tab/trailing spaces with git hookLectem1-0/+7
Remove unneeded stuff from pre-commit script The check against an empty commit was not needed (it is only a security for the 1st commit after git init). It could also possibly pose problems because of the redirection to /dev/null on some windows systems. newline at EOF & fixed indent
2015-05-29Remove every trailing whitespace from the project (but externals).Emmanuel Gil Peyrot1-2/+2
2015-05-25Update bundled GLFW to 3.1.1Yuri Kunde Schlesner1-1/+1
It may be necessary to fix the CMake paths manually for an exsting CMake cache after this change.
2015-05-13Install a .desktop file to make citra-qt launchable from DE menus.Emmanuel Gil Peyrot1-0/+13
2015-05-07Common: Remove many unnecessary cross-platform compatibility macrosYuri Kunde Schlesner1-2/+5
2015-03-26Updated the copy commands to run on post_build and use generator expressions to simplify the code as wellJames Rowe1-8/+8
2015-03-26Changes to bring the previous commits in line with the comments on thepull request. Made the debug build a true debug build with no optimizxations and the RelWithDebInfo is what it says it is too. Changed the copying of the dlls to the build directories to happen at configuration time instead of build timeJames Rowe1-5/+6
2015-03-26More changes to the CMakeFiles for better MSVC compatibility. Added in the RelWithDebInfo target and setup copying the Qt 5 Dlls to the output directories.James Rowe1-2/+2
2015-03-26Small changes to the CMake file to make windows build easierJames Rowe1-7/+13
2015-01-19CMake: Inform the user when architecture auto-detection failsYuri Kunde Schlesner1-2/+8
2015-01-13CMake: Fix wrong filename in messageYuri Kunde Schlesner1-1/+1
2015-01-12Fix building on MinGWdarkf1-0/+6
2015-01-10CMake: Consistently set _DEBUG and NDEBUG in all platformsYuri Kunde Schlesner1-1/+5
2015-01-10Fix Windows buildbunnei1-1/+1
2015-01-09Cleanup: Remove redundant /Oi flagchinhodado1-2/+1
`/Oi` is included in `/Ox` already
2015-01-09Looks like that might be needed on OSX after allJohannes Ekberg1-6/+2
2015-01-09Use -pthread where and only where neededJohannes Ekberg1-1/+5
Passing -pthread to GCC as a flag makes it both link to libpthread, and make C standard library routines reentrant. This makes the additional explicit links unnecessary. Additionally, on OSX, this is the default behavior, and clang will print a message about it being unused if it's present there.
2015-01-09Link Cocoa, IOKit and CoreVideo on OSXJohannes Ekberg1-3/+4
These are implicitly linked by Xcode, but with this, you can also build it with any other generator, which does not have this behavior. CoreFoundation is included as a part of Cocoa (which is an umbrella framework), and Cocoa is generally recommended to link against, rather than its individual components (CoreFoundation, Foundation, libobjc, ...).
2015-01-09Generic PLATFORM_LIBRARIES varJohannes Ekberg1-0/+6
This both reduces redundancy in add_executable definitions, and makes it easier to link additional libraries. In particular, extra libraries are needed on OSX - see next commit.
2015-01-09CMake: Enable VS parallel builds for a good reduction in compile timesYuri Kunde Schlesner1-1/+2
This enables the /MP compiler flag, which parallelizes builds of by distributing compilation of individual object files across workes processes, instead of being limited to per-project parallelism. Reduces the time for a full compile from 72 s to 45 s on my machine.
2014-12-29CMake: Require Boost 1.57.0 (fixes Travis OS X)Yuri Kunde Schlesner1-2/+2
2014-12-22CMake: Silence PNG not found errorYuri Kunde Schlesner1-2/+4
Hopefully this will make people stop thinking it's a hard dependency.
2014-12-22CMake: Use improved optimization flags on MSVCYuri Kunde Schlesner1-0/+19
While not having a noticeable effect on CPU-bound applications, this change gives an about 30-50% increase in performance for games using the GPU.
2014-12-20Add nihstro (a 3DS shader tools suite) as a submodule.Tony Wasserka1-0/+2
2014-12-20Remove C++14/1y requirementYuri Kunde Schlesner1-2/+1
2014-12-16Switch to C++14 to use std::make_uniqueYuri Kunde Schlesner1-1/+2
2014-12-15Clean up CMake library specificationYuri Kunde Schlesner1-4/+1
The X11 libraries don't need to be specified when doing dynamic linking
2014-12-07Integrate Boost into build system and perform a trivial cleanup in vertex_shader.cpp.Tony Wasserka1-0/+8
2014-12-02CMake: Place all the built files in BUILD_DIR/bin/<Configuration> when compiling with MSVCSubv1-0/+2
2014-10-08Added configuration file system.archshift1-1/+5
Uses QSettings on citra-qt, and inih on citra-cli.
2014-09-03Removed the need for X11 on OS Xarchshift1-1/+4
It only causes issues when someone (who doesn't need it) doesn't have it.
2014-09-01CMake cleanupYuri Kunde Schlesner1-46/+99
Several cleanups to the buildsystem: - Do better factoring of common libs between platforms. - Add support to building on Windows. - Remove Qt4 support. - Re-sort file lists and add missing headers.
2014-09-01Replace GLEW with a glLoadGen loader.Yuri Kunde Schlesner1-2/+0
This should fix the GL loading errors that occur in some drivers due to the use of deprecated functions by GLEW. Side benefits are more accurate auto-completion (deprecated function and symbols don't exist) and faster pointer loading (less entrypoints to load). In addition it removes an external library depency, simplifying the build system a bit and eliminating one set of binary libraries for Windows.
2014-08-25Pica: Add support for dumping textures.Tony Wasserka1-0/+5
2014-08-19Add Qt5 option. Use Qt5 by default.Sacha1-13/+26
2014-08-18CMake CleanupSacha1-1/+1
2014-05-20* Remove -fpermissivePhillip Stephens1-1/+1
2014-05-20CMakeLists: Fixed GLEW include var name, compile flag varsarchshift1-5/+5
After adding FindGLEW.cmake to externals, the variable call for the GLEW include path needed to be revised. Append flags on OSX, rather than overwrite them. I realized that GCC_COMPILE_FLAGS was changed to CMAKE_CXX_FLAGS mistakenly, so both were changed to a more platform-independent name.
2014-05-20CMakeLists: rename HEADS, improved commentsarchshift1-3/+2
Changes for clarity of comments, removed redundant compiler flags.
2014-05-19Indent fixesarchshift1-1/+1
2014-05-17Indent fixesarchshift1-1/+1
2014-05-17Added FindGLEW to cmake-modulesarchshift1-1/+1
2014-05-01Support for C++11 on OSXarchshift1-3/+2
2014-05-01A bit of Cmake lovearchshift1-4/+7
2014-04-30Some more experimentationarchshift1-1/+5
2014-04-29IT'S ALIVE!archshift1-2/+9
2014-04-25Fixed CMake's import of GLFW.Thomas Edvalson1-0/+2
2014-04-24removed "COVERAGE_" from "GCC_COVERAGE_COMPILE_FLAGS"bunnei1-2/+2
2014-04-24fixes to scm_rev generation to make it conistent with windows buildbunnei1-0/+1
2014-04-24added scm rev generation on Linux/cmakebunnei1-0/+6
2014-04-23fixes to build on linuxbunnei1-0/+3
2014-04-10fixed a bunch of errors in CMakeListsbunnei1-8/+1
2014-04-10updated CMakeListsbunnei1-3/+1
2013-09-26renamed from citrus to citraShizZy1-2/+2
2013-09-14renamed project to 'citrus'ShizZy1-3/+2
2013-08-30adding initial project layoutShizZy1-0/+49