Commit Graph

70 Commits

Author SHA1 Message Date
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