Commit Graph

362 Commits

Author SHA1 Message Date
Jonathan Li 5a5dc7f67f cmake: Fix issue with Harfbuzz not being found 2020-05-09 17:58:19 +01:00
arcum42 5c60f66890
Fix various cmake issues (#3352)
* Change the minimum cmake version to a range. Uses the new policies of the newer versions if you are on them, taking care of CMP0054.

* Grab a newer version of FindHarfBuzz.cmake from Webkit that fixes the cmake warning the earlier one was giving.

* Add in -ftime-trace as an option on build.sh.

* Precompile PrecompiledHeader.h if you are using cmake 3.16+ and GCC. (Currently disabled on clang due to compilation issues.)

* Check if target_precompile_headers exists rather than by version.

Co-authored-by: scribam <scribam@users.noreply.github.com>
2020-05-07 08:32:34 -07:00
orbea 84d090e2fd
spu2-x: Make portaudio an optional dependency. (#3110)
* spu2-x: Make portaudio an optional dependency.

v2: Fix crash in the audio settings with SDL1 and without portaudio.

* cmake: Add PORTAUDIO_API to disable portaudio support.
2020-05-07 08:31:48 -07:00
Jonathan Li fa096cfce0 cmake: Change FreeBSD wx-config path 2019-10-07 01:39:32 +01:00
orbea d92e4343e3 cmake: Fix build with cmake-3.5.2. (#3117) 2019-09-21 18:00:52 -07:00
Hamish e2d8992310 GSdx: Enable OpenCL on Linux (#3099) 2019-09-11 17:59:33 -07:00
arcum42 014753894a Get rid of extremely spammy warnings when compiling as debug. 2019-08-24 18:47:49 -07:00
arcum42 d048baf503 pango: reenable harfbuzz check, but don't fail if it isn't there. Revisit once travis builds have pango 1.44 in them. 2019-08-24 15:50:02 -07:00
arcum42 74e6c437f2 Add option not to build dev9ghzdrk. 2019-08-23 15:31:46 -07:00
arcum42 7679dcf469 clang: Get rid of a number of warnings. I don't need pages of warnings that things clearly marked in the code as deprecated are deprecated, and I doubt I'll be worrying about those overloaded functions any time soon. 2019-08-23 14:40:33 -07:00
arcum42 33571dda42 Comment out the fix for the moment, since Travis hates me. 2019-08-17 21:23:18 -07:00
arcum42 0db14df070 One more try here. Make harfbuzz optional instead of required for the moment, and worry about travis once it's on distributions with pango 1.44+. 2019-08-17 21:04:46 -07:00
arcum42 eda1ab44ac Add harfbuzz as a dependency to play nice with pango 1.44+. 2019-08-17 20:33:14 -07:00
arcum42 fc35de02f2
build.sh and cmake plugin code cleanup (#2953)
* Refactor build.sh. Restructure finding plugins. Remove legacy code. Add --clean-plugins option. Document --no-trans option.

Don't do setcap if dev9ghzdrk isn't being built. List dependencies if they are missing. Remove code related to zerospu2, and misc plugins we aren't building. Minor message changes.
2019-07-04 19:49:11 -07:00
Shanoah Alkire 43981f5981 Add warning on gcc 9. 2019-06-18 21:24:30 -07:00
Alessandro Vetere 61b984a6c1 BuildParameters.cmake: fix typo 2019-06-18 21:28:57 +02:00
Christian Kenny 3296ade983 Plugins: Remove PADSSSPSX and xpad. 2019-03-11 23:34:47 +01:00
arcum42 c58acd1105
Remove CDVDPeops and PeopsSPU2. (#2792) 2019-01-03 19:55:03 -08:00
lightningterror 062d141cf1 cmake: Re add the -mxsave flag to compiler flags.
The warnings issue should be resolved now thanks to arcum.
Fixes compiling issues on some systems/distros using gcc 8.2+
Idea by turtleli.

Also add -mfxsr flag suggested by Gregory.
2019-01-02 23:45:23 +01:00
Shanoah Alkire 67a6f31b88 Properly escape the period in Translation.cmake. 2019-01-02 00:01:00 -08:00
Shanoah Alkire 43fa7cd6c6 Skip over translation files with .git in the path when building pcsx2 with cmake. Fixes an intermittant cmake build error about duplicate rules. 2018-12-31 23:02:34 -08:00
Shanoah Alkire a97bc2309a Take care of a cmake 3.11 deprecation warning when finding OpenGL. 2018-12-26 22:00:03 -08:00
lightningterror 9c0bbfec1f Revert "cmake: Add -mxsave flag to ARCH_FLAG in BuildParameters."
gcc complained about "Wno-packed-not-aligned" and "Wno-class-memaccess"
flags so I won't bother with it, the warnings can be fixed properly
but for now I'll just revert the previous commit.
2018-12-27 06:20:26 +01:00
lightningterror 752dbdefd2 cmake: Add -mxsave flag to ARCH_FLAG in BuildParameters.
A couple of users reported compilation issues using gcc 8.2+ on some
machines/distros on github and discord and adding the -mxsave flag
suggested by turtleli seems to fix the issue.

Fixes #2669
2018-12-27 04:55:50 +01:00
Daniel Nowak da1eb056a3 Add network capability for Linux (#2586) 2018-10-02 21:37:34 -07:00
Jonathan Li b84a2cfaf6 cmake: Add -mxsave flag to compiler flags
Fixes compilation when using GCC8.2 to compile a non-native build.

Fixes #2554.
2018-08-16 08:33:57 +01:00
Jonathan Li 61406a4349 cmake: Fix GSdx EGL build libX11-xcb linkage issue
Prevents a XGetXCBConnection undefined symbol error.
2018-05-31 01:02:26 +01:00
Jonathan Li 41c49faa81 cmake: Improve wxWidgets and SDL linkage check
If wxWidgets is linked to SDL, check what version it's actually linked
against instead of assuming it's linked to SDL1.2 (which isn't true on
Fedora 27).
2018-02-13 12:26:00 +01:00
orbea 49cd6bc782 cmake: Don't print a git describe error with shallow clones. 2018-01-10 15:09:59 +01:00
Gregory Hainaut 7d75a73105 cmake: blacklist GCC 7.0 and GCC 7.1 (based on a small testcase)
GCC bug => https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80799

Close #1937
2017-06-29 14:51:50 +02:00
Gregory Hainaut 53b2fdf31c linux: requires liblzma (xz) to build GSdx 2017-05-21 23:45:35 +02:00
Gregory Hainaut 05763b3669 cmake: better gcc + gsdx integration
Only set fabi-version on older GCC (5.0 and below)
Disable broken optimization for GCC7+ (until we find a better solution)
2017-05-11 23:14:06 +02:00
Gregory Hainaut 9b0b325339 cmake: search /usr/bin/wx-config32 (for arch users...)
issue #1933
2017-05-08 09:53:46 +02:00
Gregory Hainaut 41990a6402 cmake: create the macro add_custom_glib_res to handle resources 2017-04-28 11:27:19 +02:00
Gregory Hainaut b2a2a3ace1 cmake: update "check these lib..." strings
wx 3.10 is the minimum
sdl2 too for onepad
a recent glew/gtk2 version is enough
2017-04-23 10:59:33 +02:00
Gregory Hainaut ef3435441f onepad: create a legacy version for SDL1
The legacy version is the version 1.3

The new version is the version 2.0. It would be based on SDL2 only

Distribution information.
If you link wxWidget with SDL, you will need to be sure it is SDL2 or upgrade.

You can build wxWidget with SDL2 with the following trick

export SDL_CONFIG=/usr/bin/sdl2-config
./configure --with-sdl .....
2017-04-19 19:02:36 +02:00
Gregory Hainaut c232f90d6e cmake: add an option to enable openCL
Note: nothing work
2017-02-08 19:42:54 +01:00
Jonathan Li 03acb22212 plugins: Remove cdvdlinuz
Superseded by PCSX2 internal ISO reader and cdvdGigaherz.
2017-01-20 00:04:14 +00:00
Jonathan Li 9b110d8c3c plugins: Remove CDVDisoEFP
Superseded by PCSX2 internal ISO reader and cdvdGigaherz.
2017-01-20 00:04:14 +00:00
Jonathan Li cb64cb6abe plugins: Remove CDVDiso
Superseded by PCSX2 internal ISO reader.
2017-01-20 00:04:14 +00:00
Jonathan Li 6aef44271e plugins: Remove CDVDolio
Superseded by PCSX2 internal ISO reader and cdvdGigaherz.
2017-01-20 00:04:14 +00:00
Gregory Hainaut ecd00d377a Merge pull request #1729 from np511/master
Extend LTO support and remove warnings
2017-01-04 17:03:38 +01:00
np511 f55f3b94a1 Removes LTO warnings and sets -flto=number of cores. 2017-01-03 15:45:24 -05:00
Jason Brown b8a84d170a Added OSD Manager which depends on FreeType2. Added functions into GSDeviceOGL to render OSD and a point shader. 2017-01-03 10:43:56 +01:00
Jonathan Li afe86a5f66 cmake: Only use -fprofile-dir when PGO is used
It stops clang from warning that '-fprofile-dir' is not supported.
2016-12-10 21:51:21 +00:00
np511 b9d57843eb Adds PGO support. Profile data is stored in a folder called profile
in the top-level source directory. The build folder should NOT be
transferred between computers when PGO is used, though I don't
see why anyone would be doing so anyway.

Also adds support for PGO and LTO to the build.sh script.
2016-12-10 11:26:16 +01:00
Gregory Hainaut 0453e5cad8 cmake: improve vtune integration
Year is included in the path so search in order 2018/2017/2016

Not ideal but at least all logic is inside the FindVtune module
2016-12-09 09:28:19 +01:00
np511 46fb6e9b48 Fixes LTO flags. Disables the use of the "gold" linker as a few plugins fail to compile with "gold" and "gold" is not used outside of LTO currently anyway. 2016-11-22 16:10:25 -05:00
Gregory Hainaut dc85989553 cmake: only enable SSE2 on x64 build
SW will generate AVX code anyway
2016-11-20 23:27:13 +01:00
Gregory Hainaut d58e43edbf gsdx linux: plug vtune as Windows 2016-11-19 17:00:32 +01:00
Gregory Hainaut 8b4da69861 cmake: always define avx on 64 bits build 2016-11-19 17:00:32 +01:00
Gregory Hainaut 5596f69c0e pcsx2 gui: use git desribe as version name
Shorter than date and give all the useful info

Require windows test

close #1043
2016-11-08 22:44:39 +01:00
Gregory Hainaut d3a748ce3a cmake: drop CDVDlinuz and CDVDiso
You can use cdvdGigaherz on linux now

close #464
close #465
2016-11-08 19:58:44 +01:00
Jonathan Li a283e95fed cmake: Add cdvdgigaherz and dependencies
Only new dependency is libudev.
2016-11-07 00:08:23 +00:00
Gregory Hainaut 4ebe739b44 pcsx2: remove various unused variable
Warning can be reenabled on GCC

A warning isn't fixed as potentially the code is wrong
../pcsx2/gui/MemoryCardFolder.cpp: In member function ‘void FolderMemoryCard::FlushFileEntries(u32, u32, const wxString&, MemoryCardFileMetadataReference*)’:
../pcsx2/gui/MemoryCardFolder.cpp:1027:10: warning: unused variable ‘filenameCleaned’ [-Wunused-variable]
     bool filenameCleaned = FileAccessHelper::CleanMemcardFilename( cleanName );
2016-09-10 00:09:05 +02:00
Gregory Hainaut 8fe65ec371 cmake: add -Wextra warning on GCC
Add 3 new warnings (first one must be fixed I think)

pcsx2/gui/MessageBoxes.cpp: In copy constructor ‘BaseMessageBoxEvent::BaseMessageBoxEvent(const BaseMessageBoxEvent&)’:
pcsx2/gui/MessageBoxes.cpp:62:1: warning: base class ‘class pxActionEvent’ should be explicitly initialized in the copy constructor [-Wextra]
 BaseMessageBoxEvent::BaseMessageBoxEvent( const BaseMessageBoxEvent& event )

plugins/GSdx/GSPng.cpp: In function ‘bool GSPng::SaveFile(const string&, GSPng::Format, uint8*, uint8*, int, int, int, int, bool, bool)’:
/home/gregory/playstation/emulateur/pcsx2_merge/plugins/GSdx/GSPng.cpp:64:14: warning: variable ‘success’ might be clobbered by ‘longjmp’ or ‘vfork’ [-Wclobbered]
         bool success = false;
              ^
plugins/GSdx/GSPng.cpp:44:58: warning: argument ‘image’ might be clobbered by ‘longjmp’ or ‘vfork’ [-Wclobbered]
     bool SaveFile(const string& file, Format fmt, uint8* image, uint8* row,
2016-08-12 19:30:14 +02:00
Gregory Hainaut 11cdb070c0 cmake: use only sse2 flag for ICC
Default is pentium4
2016-07-29 15:00:52 +02:00
Gregory Hainaut 64e8e02f54 cmake: add Intel's ICC compiler support
Full of compilations errors and warnings
2016-07-28 10:36:40 +02:00
František Zatloukal 2c74ff1e54 Degrade GTK3 Fatal Error to Warning 2016-07-13 02:08:14 +02:00
Gregory Hainaut 4318b83414 cmake: lilypad requires wx library 2016-06-19 09:49:49 +02:00
Gregory Hainaut d33bdc7da1 cmake: drop the now useless -no-integrated-as option
close #303
2016-05-26 19:40:02 +02:00
Jonathan Li d2e5c32c83 cmake: Disable SuperVU for non-Linux OS
Doesn't work on FreeBSD, would be annoying to port.
2016-05-21 23:26:19 +01:00
Jonathan Li e23b6e3484 cmake: Setup FreeBSD 2016-05-20 22:31:30 +01:00
Jonathan Li 3a274e85f0 cmake:onepad: Add wxWidgets to dependencies 2016-05-18 22:56:59 +01:00
Gregory Hainaut 156f1b70c3 cmake: disable avx2+ on debug build
Gdb (7.7.1) doesn't support it properly.
2016-05-17 19:33:12 +02:00
Gregory Hainaut 5b68415173 cmake: add an alternate wx-config path for Fedora 24
Fix #1296
2016-04-17 17:14:51 +02:00
Gregory Hainaut 1208dbe8c7 cmake: add an option to build the new legacy GSdx plugin
+ bump the new one to 1.1.0 (to ease reporting)
2016-04-07 21:46:42 +02:00
Gregory Hainaut ee08a6fc53 Merge pull request #1270 from PCSX2/monolithic-build
Monolithic build
2016-04-03 11:20:07 +02:00
Gregory Hainaut eec3d02737 cmake: fix prof build
It was a dev build actually...
2016-04-02 00:56:41 +02:00
Gregory Hainaut 1bd8113f66 cmake: add various option to disable plugin support 2016-03-30 10:19:54 +02:00
orbea 72699bc988 MAN_DIR added 2016-03-20 23:02:59 -07:00
Jonathan Li 97215008c9 ci|cmake|debian: Remove png++ build dependencies
GSdx now uses libpng directly. png++ is now unused, so let's remove it.
2016-03-02 22:57:15 +00:00
Jonathan Li 87dcfbc645 gsdx-png: Use libpng directly instead of via png++
v2: Increase compression to maximum
v3: Add zlib to GSdx build dependencies
v4: Reduce memory usage
2016-03-02 22:48:54 +00:00
Gregory Hainaut 1db5e0c0bf cmake: create a prof build type
It is the same as a release build but with the debug symbol and the
frame pointer.
2016-02-21 16:24:47 +01:00
Gregory Hainaut a66c911fed cmake: factorize debug/dev define 2016-02-21 16:17:10 +01:00
Gregory Hainaut 8987ca61a1 cmake: Og for debug build + extra debug information (ggdb3)
GSdx is utterly slow on debug build. -Og enable a couple of debugger-friendly optimization.
2016-02-21 16:05:00 +01:00
Gregory Hainaut 253e801f51 linux: enable float operation on SSE unit
Potentially faster and requires to flush denormal float to 0
2016-02-09 18:24:12 +01:00
Gregory Hainaut 3329bc1748 linux: drop wx2.8 support. Only 3.0 is supported
Close #1152
2016-01-30 12:48:35 +01:00
Gregory Hainaut 9bcd9f0a73 cmake: onepad require gtk 2016-01-14 19:26:55 +01:00
Gregory Hainaut dd097fe361 cmake: clang, please compile my code quietly 2016-01-09 22:57:43 +01:00
Gregory Hainaut fbffa507b8 cmake: fix linux case
Close #1094
2016-01-09 12:15:29 +01:00
Gregory Hainaut 74db92bee4 Merge pull request #978 from juhalaukkanen/apple_osx_master_merge
OSX 32bit build
2016-01-08 20:09:37 +01:00
Juha Laukkanen c72400e927 Darwin/OSX - spu2x apple build with portaudio only.
OSX compilation fix: spu2x: Windows & Linux
2015-12-02 05:01:12 +02:00
Juha Laukkanen b56197d30b Darwin/OSX - cmake which enables apple build and hopefully won't break Linux build.
OSX compilation fix: librt & not wxgl (yet).
2015-12-02 05:00:55 +02:00
Gregory Hainaut 3cefa54789 linux build: enable mfxsr option
Honestly GCC could have enabled it with sse.

Fix #1012
2015-12-01 18:52:59 +01:00
Gregory Hainaut a46204ef9e cmake: add a USE_LTO option
Note: nothing work so don't use it.
2015-11-20 17:36:03 +01:00
Juha Laukkanen be720b96c1 Added OSX Darwin v13+ cmake files. 2015-11-17 19:25:12 +02:00
Gregory Hainaut 837b62d5e8 cmake: add an option to control PGO 2015-11-14 09:48:53 +01:00
Gregory Hainaut 82520555b3 cmake: reduce warning level on strict-overflow
It is quite verbose
2015-11-02 07:44:11 +01:00
Gregory Hainaut b07621f1a1 cmake: drop ASAN workaround
It was used to mask stack issues. It seems to be fixed with previous commits.

I managed to boot a game without any crash ^^
2015-10-23 22:17:14 +02:00
Gregory Hainaut ffdc914c71 linux: SDL2
For older distribution you can still use SDL1.2

./build.sh ... --sdl12 ...
or
cmake ... -DSDL2_API=FALSE ...

Note: there is a hard dependency between WxWidget and SDL. If Wx is linked against
SDL1.2, you must use SDL1.2. Crashes are expected otherwise.
2015-10-21 22:35:38 +02:00
Jonathan Li 2c2c61920e cmake: Don't add -std=c++11 to CMAKE_C_FLAGS
Fixes a cmake detection problem when compiling with clang (3.7.0 in my
case). clang outputs the error "Invalid argument '-std=c++11' not allowed
with 'C/ObjC'", which causes lzma, Xext and other things to be
considered "not found".
2015-09-21 20:45:50 +01:00
Gregory Hainaut 67c3587c0b cmake: fatal error if miss dependencies in package mode
+ don't install lilypad in package mode (not ready for distribution)
2015-08-10 08:49:55 +02:00
Miguel A. Colón Vélez ddc9c394a2 Don't use O2 in the Debug Build. 2015-08-08 22:10:40 -04:00
nE0sIghT e1272dc2f9 Use global compiler optimization flags instead of defining them for every plugin/binary 2015-08-08 16:25:17 +03:00
Gregory Hainaut bf7ae3a53e Merge pull request #744 from micove/Cmake_Options
Linux: Add Cmake Options
2015-08-08 09:37:53 +02:00
Gregory Hainaut 99d81868fc cmake: use -ggdb instead of -g
Enable all gdb extensions for debug
2015-08-08 09:16:20 +02:00
Miguel A. Colón Vélez 0d344605e1 Use glibc for strcmp and memcmp.
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=43052
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=59048
.
The bug is 5+ years old with no fix in sight.
Mesa did some test that showed 50% improvement and enabled it by default.
http://lists.freedesktop.org/archives/mesa-dev/2011-June/009078.html
.
It could also be coded but glibc version has mmx, sse2, and sse4 support.
2015-08-07 05:04:19 -04:00
Miguel A. Colón Vélez 1db74162e6 Update the gcc version requirements.
It no longer builds with 4.6 and 4.7 since it requires features from 4.8.
Start using c++11 since we no longer support 4.5 & 4.6.
2015-08-07 05:03:37 -04:00
Miguel A. Colón Vélez 8a87981d94 Add options to not install optional files. 2015-08-07 02:39:39 -04:00