Commit graph

236 commits

Author SHA1 Message Date
KAMiKAZOW
f0fa4a6691 Install Linux icon in hicolor instead of pixmaps
hicolor is the preferred location for applications. See https://specifications.freedesktop.org/icon-theme-spec/icon-theme-spec-latest.html#directory_layout
2017-10-15 08:39:48 +02:00
James Rowe
709c89a1d8 Installer: Converted the build scripts to cmake and added an "installer" target 2017-09-28 10:46:05 -06:00
James Rowe
9e847b7549 Build: Enable SSL in mingw by linking against WinSSL
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-11 09:10:17 -06:00
DaMan
40505bc4fc Add manifest 2017-09-02 20:08:11 -04:00
bunnei
f44a1e0291 common: Add build timestamp to scm_rev. 2017-08-03 20:10:37 -04:00
MerryMage
a08edd67eb tests: Add tests for vadd 2017-07-23 12:29:51 +01:00
MerryMage
9ca6728217 CMakeLists: Check that all submodules are present 2017-07-16 19:52:05 +01:00
bunnei
33b012e86b web_service: Add CMake flag to enable. 2017-07-11 18:33:41 -04:00
B3n30
6ba089fafb Set global definition WIN32_LEAN_AND_MEAN (#2807)
Set definition WIN32_LEAN_AND_MEAN to avoid windows.h including a lot of libs that are usually not used.
2017-06-24 17:38:16 -07:00
Yuri Kunde Schlesner
2ef7450465 CMake: Set MSVC flags for improved C++ standards conformance
This makes the compiler stricter and also enables small optimizations.
2017-06-17 12:21:26 -07:00
Yuri Kunde Schlesner
9a08160ae5 CMake: Re-organize root CMakeLists.txt file
Separates the file into sections and re-orders things to fit in them
2017-05-27 23:45:55 -07:00
Yuri Kunde Schlesner
c211368734 CMake: Move definitions of externals to the CMakeLists in that directory 2017-05-27 23:33:14 -07:00
Yuri Kunde Schlesner
d736cca848 CMake: Create INTERFACE targets for microprofile and nihstro 2017-05-27 22:34:52 -07:00
Yuri Kunde Schlesner
74afcd5328 CMake: Add SoundTouch include path to target property 2017-05-27 22:09:28 -07:00
Yuri Kunde Schlesner
cb49df156d CMake: Use target properties to add inih include paths 2017-05-27 21:59:02 -07:00
Yuri Kunde Schlesner
776cb91785 CMake: Define an interface target for SDL2 definitions 2017-05-27 21:38:49 -07:00
Yuri Kunde Schlesner
34b6c8bd88 CMake: Remove CITRA_QT_LIBS var
This used to be required to support both Qt4 and Qt5, but we dropped Qt4
so it's not needed anymore.
2017-05-27 20:53:39 -07:00
Yuri Kunde Schlesner
089baa04e8 CMake: Stop using FindOpenGL, which seems to not be required anymore 2017-05-27 20:48:00 -07:00
Yuri Kunde Schlesner
d6ff5c6f75 CMake: Use append instead of set to modify list 2017-05-27 20:44:51 -07:00
Yuri Kunde Schlesner
0f563111a2 CMake: Use IMPORTED target for Boost 2017-05-27 20:44:51 -07:00
Yuri Kunde Schlesner
4660bc1c78 CMake: Use IMPORTED target for libpng 2017-05-27 20:44:51 -07:00
Yuri Kunde Schlesner
a06220682c Add the fmt string formatting library
More info at http://fmtlib.net/

This commit was based on @jroweboy's work on his spdlog branch, but with
modifications.
2017-05-27 14:26:02 -07:00
Fernando Sahmkow
d8af401b2c Fix Microprofile in MinGW (#2530) 2017-02-04 15:36:38 -08:00
Kloen
abc5c134a3 Removed unused and outdated external qhexedit 2017-01-22 18:46:48 +01:00
James Rowe
0a6ca01991 Change deploy to use github releases instead, but only for the citra-nightly repo 2017-01-04 20:53:46 -07:00
James Rowe
b03e7bf28f Add deploy to bintray for builds to master 2016-12-31 13:54:51 -05:00
bunnei
d30d6f81aa Merge pull request #2303 from freiro/citra-qt_missing_sdl2_dll
Copy SDL2.dll when compiling citra-qt with msvc
2016-12-16 11:35:55 -05:00
Yuri Kunde Schlesner
17fccb8c5d Externals: Add Xbyak 2016-12-14 20:06:08 -08:00
Jeffrey Pfau
07ab936f12 CMakeLists: Autodetect clang and only then use libc++ 2016-12-13 09:41:55 -08:00
freiro
031fc3a460 Modularization of copy_msvc_libraries cmake funct
Created a new folder in Citra's root called CMakeModules that should
contain cmake functions used by the various CMakeLists.txt.
2016-12-11 15:36:34 +01:00
Yuri Kunde Schlesner
5a3ed81d9a Merge pull request #2202 from j-selby/man-docs
Add man documentation
2016-12-08 22:02:04 -08:00
James
61687840bc Disable Microprofile on Mingw builds
This fixes a crash when starting games
2016-12-05 13:10:14 +11:00
freiro
35e979f041 Appending PLATFORM_LIBRARIES instead of redefining them 2016-11-30 16:28:21 +01:00
freiro
0c22e52f52 WINVER definition moved to CMake and cleanup 2016-11-30 15:47:09 +01:00
James
e5f8df8088 Add man documentation
Includes both SDL and QT frontends
2016-11-26 13:48:00 +11:00
freiro
9ca3a2d461 Move to SDL2-2.0.5 2016-11-22 09:16:04 +01:00
James Rowe
c3ea6f4ddb Add mingw compile support 2016-11-13 23:50:46 -07:00
Jan Beich
8b833d3a97 build: don't install freedesktop.org metadata for SDL2-only builds
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-27 23:28:30 +00:00
Jan Beich
2240cb2eb0 build: add default install for DragonFly, Solaris, etc. 2016-10-27 23:28:30 +00:00
Jan Beich
52da9de5c4 build: clock_gettime() is in libc on BSDs 2016-10-27 23:28:30 +00:00
Jan Beich
48b6c98d31 build: libc may not provide iconv() on Unix
/usr/bin/ld: ../common/libcommon.a(string_util.cpp.o): undefined reference to symbol 'libiconv_open'
2016-10-27 23:28:30 +00:00
Anthony J. Bentley
26af2b644c common: convert to standard stat()/fstat() interfaces
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-10-27 23:28:30 +00:00
bunnei
1ea1affe0a dynarmic: Add new submodule. 2016-09-15 17:49:25 -04:00
bunnei
8410e7891c CMakeLists: Set Boost_INCLUDE_DIR. 2016-09-15 17:49:21 -04:00
bunnei
a71d6cc040 Revert "MSVC: Add RelWithDebInfo and removing debugging from Release." 2016-09-01 17:06:34 -04:00
James Rowe
8b685c4308 MSVC: Add RelWithDebInfo and removing debugging from Release.
This should reduce build size on windows from roughly 12MB compressed to 7MB
2016-08-31 20:45:38 -06:00
bunnei
33d17d0b62 qt: Use 5.7 on Windows. 2016-08-15 22:52:15 -04:00
James Rowe
a976c2e3ba CMake: Fix for QT 5.7 overwriting -std=c++1y flag
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-08-04 17:16:16 -06:00
Emmanuel Gil Peyrot
e09e683720 Remove the -msse4.1 on ¬MSVC.
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-07-23 17:10:32 +01:00
Lioncash
d5f5aeeab8 CMakeLists: Drop support for Qt 4 2016-06-17 10:48:40 -04:00
MerryMage
87de1ca968 Tests: Run tests on CI 2016-05-19 19:28:08 +01:00
MerryMage
920d2cf41d AudioCore: SDL2 Sink 2016-05-07 11:32:48 +01:00
MerryMage
27ce3b3f51 Externals: Add soundtouch 2016-04-28 13:33:14 +01:00
Sam Spilsbury
df81fa11fc CMakeLists: Use imported version of Threads::Threads
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-24 23:39:25 +08:00
Sam Spilsbury
d051bd3032 CMakeLists: Use CMAKE_THREAD_LIBS_INIT 2016-04-23 11:48:58 +08:00
Lioncash
5ef90464a1 CMakeFiles: Compile as C++14 2016-04-03 15:45:41 -04:00
MerryMage
ba2a54a9dd Dependencies: Remove GLFW, Add SDL2
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
2016-03-02 14:09:02 +00:00
Tony Wasserka
5f567a8229 Enable RTTI on Windows builds. 2015-11-12 16:07:49 +01:00
Yuri Kunde Schlesner
f226365f55 CMake: Silence more MSVC "deprecation" warnings 2015-09-14 17:39:51 -03:00
Yuri Kunde Schlesner
6cec330103 CMake: Make all cache options appear even in case of errors
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-08 20:16:34 -03:00
Yuri Kunde Schlesner
9e52aaa01d CMake: Point binary downloads to new official repo 2015-09-08 19:35:15 -03:00
Yuri Kunde Schlesner
70d0d8890a CMake: Remove support for QTDIR environment variable
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-08 19:35:14 -03:00
Yuri Kunde Schlesner
fdb0f8203e CMake: Don't complain when Boost isn't found in the system. 2015-09-08 19:35:13 -03:00
Yuri Kunde Schlesner
2eec2c156b CMake: Use HINTS option instead of modifying CMAKE_PREFIX_PATH for Qt 2015-09-08 19:35:12 -03:00
Yuri Kunde Schlesner
078969bdd0 CMake: Add option to download Qt and GLFW binaries over HTTP 2015-09-08 19:35:12 -03:00
Yuri Kunde Schlesner
eb26a1941e CMake: Fix architecture detection on MSVC
CMAKE_SYSTEM_ARCHICTETURE always returns the *host* not target arch
when using the MSVC generators. (CMake bugs 15170 and 14342.)
2015-09-08 19:35:11 -03:00
Yuri Kunde Schlesner
a1a5570e97 Replace the previous OpenGL loader with a glad-generated 3.3 one
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-30 08:45:56 -03:00
Yuri Kunde Schlesner
0fcabd2b11 Integrate the MicroProfile profiling library
This brings goodies such as a configurable user interface and
multi-threaded timeline view.
2015-08-24 22:16:28 -03:00
darkf
e053d30bf7 Fix building under MinGW 2015-08-17 22:21:14 -07:00
bunnei
b39c053785 Rename ARCHITECTURE_X64 definition to ARCHITECTURE_x86_64. 2015-08-15 18:03:27 -04:00
bunnei
4d51792285 Common: Ported over Dolphin's code for x86 CPU capability detection. 2015-08-15 17:33:44 -04:00
Yuri Kunde Schlesner
12f78c2ba6 Enable linker optimizations in MSVC Release builds
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-28 14:32:29 -03:00
JSFernandes
256eb24777 Fix permissions in pre-commit hook 2015-07-14 00:58:18 +01:00
Greg Wicks
9930ef72dd Implement new argument parsing using getopt and add the corresponding library to externals 2015-07-12 15:49:23 -04:00
Yuri Kunde Schlesner
a24a0fbd8a CMake: Fix Debug build configuration in MSVC
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-07-09 16:10:08 -03:00
Yuri Kunde Schlesner
772ef097ea Merge pull request #839 from Lectem/whitespacepolicy
Enforce the "no tab, use spaces" policy with a pre-commit hook.
2015-06-21 14:21:02 -07:00
Lectem
85183a702a force no-tab/trailing spaces with git hook
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-06-09 19:59:39 +02:00
Emmanuel Gil Peyrot
b1503b2020 Remove every trailing whitespace from the project (but externals). 2015-05-29 21:59:29 +01:00
Yuri Kunde Schlesner
33c57361a9 Update bundled GLFW to 3.1.1
It may be necessary to fix the CMake paths manually for an exsting CMake
cache after this change.
2015-05-25 00:42:21 -03:00
Yuri Kunde Schlesner
a188e0fa57 Merge pull request #675 from jroweboy/windows-build-fixes
Windows build fixes
2015-05-14 20:55:58 -07:00
Emmanuel Gil Peyrot
d0ee89e2fe Install a .desktop file to make citra-qt launchable from DE menus. 2015-05-13 19:48:06 +02:00
Yuri Kunde Schlesner
bf12f270b3 Common: Remove many unnecessary cross-platform compatibility macros 2015-05-06 23:50:08 -03:00
James Rowe
5b9a5493c5 Updated the copy commands to run on post_build and use generator expressions to simplify the code as well 2015-03-26 04:04:24 -06:00
James Rowe
2d7008f03c Changes 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 time 2015-03-26 04:04:23 -06:00
James Rowe
4a7e21eb58 More changes to the CMakeFiles for better MSVC compatibility. Added in the RelWithDebInfo target and setup copying the Qt 5 Dlls to the output directories. 2015-03-26 04:04:22 -06:00
James Rowe
fa79b3f4f4 Small changes to the CMake file to make windows build easier 2015-03-26 04:04:22 -06:00
bunnei
a9b3f29b90 Merge pull request #483 from yuriks/cmake-fix
CMake: Inform the user when architecture auto-detection fails
2015-02-03 12:42:46 -05:00
Yuri Kunde Schlesner
8c39324333 CMake: Inform the user when architecture auto-detection fails 2015-01-19 19:40:43 -02:00
Yuri Kunde Schlesner
555c82739e CMake: Fix wrong filename in message 2015-01-13 17:47:32 -02:00
darkf
67c644e317 Fix building on MinGW 2015-01-11 20:22:08 -08:00
Yuri Kunde Schlesner
57503df97f CMake: Consistently set _DEBUG and NDEBUG in all platforms 2015-01-10 18:42:24 -02:00
bunnei
e213f91373 Fix Windows build 2015-01-10 12:32:28 -05:00
bunnei
e7d2118858 Merge pull request #342 from uppfinnarn/master
Build improvements
2015-01-10 02:03:07 -05:00
chinhodado
f689e97380 Cleanup: Remove redundant /Oi flag
`/Oi` is included in `/Ox` already
2015-01-09 10:59:01 -05:00
Johannes Ekberg
b027f7fe15 Looks like that might be needed on OSX after all 2015-01-09 15:50:47 +01:00
Johannes Ekberg
d7ad14ae20 Use -pthread where and only where needed
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-09 15:50:46 +01:00
Johannes Ekberg
1351819810 Link Cocoa, IOKit and CoreVideo on OSX
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-09 15:50:46 +01:00
Johannes Ekberg
7d7ab70279 Generic PLATFORM_LIBRARIES var
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-09 15:50:46 +01:00
Yuri Kunde Schlesner
f983d955f9 CMake: Enable VS parallel builds for a good reduction in compile times
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.
2015-01-09 12:42:35 -02:00
Yuri Kunde Schlesner
da04976437 CMake: Require Boost 1.57.0 (fixes Travis OS X) 2014-12-29 02:08:10 -02:00
bunnei
949d95659e Merge pull request #275 from yuriks/cmake-clean
Clean up CMake library specification
2014-12-22 11:11:37 -05:00
Yuri Kunde Schlesner
361735e7fe CMake: Silence PNG not found error
Hopefully this will make people stop thinking it's a hard dependency.
2014-12-21 21:26:52 -02:00
Yuri Kunde Schlesner
ed8f32f03e CMake: Use improved optimization flags on MSVC
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-21 21:26:51 -02:00
Tony Wasserka
056a8f9dfa Add nihstro (a 3DS shader tools suite) as a submodule. 2014-12-20 18:06:55 +01:00
Yuri Kunde Schlesner
98a9aba46f Remove C++14/1y requirement 2014-12-20 03:45:02 -02:00
Yuri Kunde Schlesner
731b31fe97 Switch to C++14 to use std::make_unique 2014-12-16 01:08:14 -02:00
Yuri Kunde Schlesner
06f31e8b47 Clean up CMake library specification
The X11 libraries don't need to be specified when doing dynamic linking
2014-12-15 19:34:17 -02:00
Tony Wasserka
4d4572c697 Integrate Boost into build system and perform a trivial cleanup in vertex_shader.cpp. 2014-12-07 23:52:17 +01:00
Subv
8712c9dcd6 CMake: Place all the built files in BUILD_DIR/bin/<Configuration> when compiling with MSVC 2014-12-01 18:48:27 -05:00
archshift
e6594f9f53 Added configuration file system.
Uses QSettings on citra-qt, and inih on citra-cli.
2014-10-07 15:09:37 -07:00
archshift
051b162add Removed the need for X11 on OS X
It only causes issues when someone (who doesn't need it) doesn't have it.
2014-09-02 23:32:15 -07:00
Yuri Kunde Schlesner
45976da975 CMake cleanup
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-01 18:06:30 -03:00
Yuri Kunde Schlesner
478289140d Replace GLEW with a glLoadGen loader.
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-09-01 17:41:56 -03:00
Tony Wasserka
c4691b784b Pica: Add support for dumping textures. 2014-08-25 22:03:18 +02:00
Sacha
90f23020f5 Add Qt5 option. Use Qt5 by default. 2014-08-19 21:34:00 +10:00
Sacha
b7ecc9543a CMake Cleanup 2014-08-18 14:35:44 +10:00
Phillip Stephens
8bfd32e854 * Remove -fpermissive 2014-05-19 20:48:14 -07:00
archshift
9216c96f48 CMakeLists: Fixed GLEW include var name, compile flag vars
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-19 16:42:34 -07:00
archshift
403e4bf837 CMakeLists: rename HEADS, improved comments
Changes for clarity of comments, removed redundant compiler flags.
2014-05-19 15:19:36 -07:00
archshift
71b8789803 Indent fixes 2014-05-19 13:51:59 -07:00
archshift
603ef89dad Indent fixes 2014-05-17 12:54:38 -07:00
archshift
1e729e7cae Added FindGLEW to cmake-modules 2014-05-16 23:03:10 -07:00
archshift
7817d6c79a Support for C++11 on OSX 2014-04-30 23:47:38 -07:00
archshift
a7f3ed003d A bit of Cmake love 2014-04-30 16:56:47 -07:00
archshift
52377cf0d2 Some more experimentation 2014-04-29 19:27:01 -07:00
archshift
5a9c2ce5ea IT'S ALIVE! 2014-04-28 19:40:39 -07:00
Thomas Edvalson
c51e4822b1 Fixed CMake's import of GLFW. 2014-04-25 10:50:25 -04:00
bunnei
15dacc4d3f removed "COVERAGE_" from "GCC_COVERAGE_COMPILE_FLAGS" 2014-04-24 14:42:03 -04:00
bunnei
80a040ac77 fixes to scm_rev generation to make it conistent with windows build 2014-04-23 19:13:00 -07:00
bunnei
4405a53cf3 added scm rev generation on Linux/cmake 2014-04-23 18:43:57 -07:00
bunnei
7a136b8a84 fixes to build on linux 2014-04-22 19:42:29 -07:00
bunnei
9527fc74ad fixed a bunch of errors in CMakeLists 2014-04-09 20:28:43 -07:00
bunnei
6b83509a7e updated CMakeLists 2014-04-09 23:09:05 -04:00
ShizZy
8bb0c457bc renamed from citrus to citra 2013-09-26 17:34:48 -04:00
ShizZy
b8ca09160b renamed project to 'citrus' 2013-09-13 18:11:14 -04:00
ShizZy
27474060e1 adding initial project layout 2013-08-29 23:35:09 -04:00