Commit Graph

558 Commits

Author SHA1 Message Date
Ignaz Forster b6246a7ba4 Fix compilation in path with spaces
Compilation with the default settings failed when downloading PCSX2 into
a directory with spaces somewhere in its path:
* In CompileGResources.cmake the paths had been escaped already, resulting
  in double escaping the strings (i.e. embedding them in quotes _and_
  escaping spaces with a backslash. cmake wasn't able to parse the line
  any more.
* In pcsx2/CMakeLists.txt the paths were not escaped, but also not
  embedded in quotes, resulting in an invalid Bash command.
This commit fixes these cases (but is neither a review to find all cases
or making sure other characters such as a newline character would work).
2021-03-02 22:39:26 +00:00
lightningterror 87eb7f1e1f build-linux: Remove EXTRA_PLUGINS flag.
There are no extra plugins.
2021-02-23 16:45:47 +01:00
Romain TISSERAND 7295837135
Build: Drop GSnull plugim
Fixes #4242
2021-02-23 09:19:06 +00:00
TellowKrinkle 91e8e0d33c macOS:i18n: Include translations in app bundle 2021-01-25 18:33:47 -06:00
orbea 44b700a6fd cmake: Use GNUInstallDirs. 2020-12-23 01:04:26 +01:00
lightningterror 6a7648d2b0
misc: Cleanup remaining pad stuff from merge. (#4014) 2020-12-18 00:48:33 +01:00
Gauvain 'GovanifY' Roussel-Tarbouriech 1703e9f8d9 PAD: more work on resources compilation, linker issues left 2020-12-17 09:38:21 +01:00
Gauvain 'GovanifY' Roussel-Tarbouriech 69e837c1ea PAD: initial merge relatively complete, linker issues left 2020-12-17 09:38:21 +01:00
Gauvain 'GovanifY' Roussel-Tarbouriech 01b210f42a PAD: remove initial references 2020-12-17 09:38:21 +01:00
TellowKrinkle 56b0026160 macOS:cmake: build plugins directly to app bundle
Copying them afterwards ended up in the wrong order with Xcode's code signing, causing unsigned plugins to get copied, which would break the later step of signing the whole bundle
2020-12-06 14:02:43 -06:00
TellowKrinkle 790e0a8327 macOS: Fix things broken by plugin merges 2020-12-06 14:02:43 -06:00
TellowKrinkle 16750c19ce cmake: Fix build on newer macOS 2020-12-06 14:02:43 -06:00
Tellow Krinkle 7fa6740710 GSdx: Fix issues on macOS
Note: Doesn't add the ability to make windows, so GSdx won't actually play games on macOS with this
2020-12-06 14:02:43 -06:00
arcum42 99b8168ea8
Only search for yaml-cpp if asked to. (#3975) 2020-12-06 11:39:25 -08:00
Tyler Wilding 6e47834e8a Dep/CMake: Add yaml-cpp support to CMake 2020-11-30 04:22:17 -05:00
orbea 3b073343cc Fix build without pulseaudio. 2020-11-29 01:45:20 -05:00
GovanifY 047599e12c
CMake: fix generation due to warnings treated as errors (#3948) 2020-11-27 07:57:28 -08:00
arcum42@gmail.com c25ae58c6f Disable a few warnings. 2020-11-21 10:29:32 -08:00
arcum42 9d4337b7eb
[USB+] Clean up Warnings (#3930)
* Suppress hardening warning spam for the moment. Get rid of a multi-line comment warning.

* Resolve a bunch of warnings about unused variables, unused labels, and sign mismatches.

* Deal with various possibly unused variables.

* Rearrange member variables to match initialization order.

* Move [[maybe_unused]] to a separate line in one spot to make it easier to read.
2020-11-15 04:37:58 -08:00
Shanoah Alkire 20c8a11925 Okay, the USB dialogs that were merged are written in Gtk 2, causing lots of deprecation warnings if you compile with Gtk 3. I'm just going to suppress all of those for the moment until they can be dealt with properly. 2020-11-13 20:42:18 -08:00
Gauvain 'GovanifY' Roussel-Tarbouriech e2a72b2798 USB: initial merge finally complete 2020-11-11 13:34:16 +00:00
Gauvain 'GovanifY' Roussel-Tarbouriech 2788198b75 3rdparty: add libsamplerate cmake defs 2020-11-11 13:34:16 +00:00
Gauvain 'GovanifY' Roussel-Tarbouriech 9dd0ef681d USB: remove initial references for merge 2020-11-11 13:34:16 +00:00
Yuri Konotopov 64010cf797
Support build with system fmt (#3838)
Signed-off-by: Yuri Konotopov <ykonotopov@gnome.org>
2020-11-08 16:28:43 -08:00
lightningterror 306681bc93 misc: Remove merged plugins leftover stuff. 2020-11-06 21:36:04 +01:00
Jonathan Li dca272e12d cmake: Specify the gtk version being used with wx
Fixes potential compilation issues due to gtk3 and gtk2 being used at
the same time.
2020-11-05 15:20:42 +00:00
Gauvain 'GovanifY' Roussel-Tarbouriech ca8bf22423 DEV9: add back configure GUI 2020-10-31 16:35:38 +00:00
Gauvain 'GovanifY' Roussel-Tarbouriech f430a63312 DEV9: initial work on merge, removing references 2020-10-31 16:35:38 +00:00
arcum42 540c69897e
Loosen up wxwidget version restrictions. Default to Gtk 3. Cleanup. (#3832)
* Remove version and platform checks for wxwidgets. It's probably better to find *something* rather then fail because you have 3.1.2 and the build was looking for 3.0 when both work.

* Build gtk 3 by default. Replace gtk 3 flag with one for gtk 2.

* Remove two unused cmake modules.

* Forgot to change a description in build.sh.
2020-10-29 22:30:03 -07:00
Yuri Konotopov 48bff06202
Added cmake options to bypass setcap execution. (#3840)
This call became a problem with distributions (eg Gentoo GNU/Linux) that
builds PCSX2 in sandboxed environment which disallows setcap execution.

Signed-off-by: Yuri Konotopov <ykonotopov@gnome.org>
2020-10-29 22:25:41 -07:00
Gauvain 'GovanifY' Roussel-Tarbouriech b8c3bd4fae SPU2: remove initial plugin references 2020-10-04 00:13:36 +01:00
Ty 5858f72748
Bump up C++ version to c++17 for gcc & clang (#3746)
Use target_compile_features to enforce c++17 standard
2020-09-29 10:30:03 -04:00
Gauvain 'GovanifY' Roussel-Tarbouriech 0fdef7b7d7 FW: removing initial references 2020-09-19 22:38:32 +01:00
Gauvain 'GovanifY' Roussel-Tarbouriech c4fa3e3304 CDVD: polishing rebase and fixing nullptr bug 2020-09-19 01:37:43 +01:00
Filjo Abraham 029461c5ae CDVD: merging and removing remnants of plugin 2020-09-19 01:37:43 +01:00
lightningterror 8cdd823671 build.sh/cmake: Remove OPENCL_API flag. 2020-09-18 20:04:11 +02:00
TellowKrinkle a1bf677514 cmake: Don't add xsave flag 2020-09-01 09:28:31 -04:00
TellowKrinkle 91326e1d93 cmake: Remove x86-64 warnings
It's supported now
2020-08-24 16:20:09 -05:00
lightningterror 0939c6302e cmake/linux: Remove zerogs zerospu build environments. 2020-08-23 05:27:22 +02:00
lightningterror f6c138ca7e
Goodbye, old friend... Remove zzogl from master branch (#3614)
* cmake: Remove zzogl from cmake.

* cmake/build: Remove GLSL_API and EGL_API flags.

Only used in zzogl.

* linux various: Remove zzogl.

* sln: Remove zzogl from old plugins solution.

* zzogl: Remove source files.

* debian: Exclude zzogl from copyright.

* linux various: Remove glsl2h.pl

Used only in zzogl?

* linux various: Remove zzogl code from validate_glsl.sh

* debian: Remove zzogl mentions in create built tarball.

* gitignore: Remove zzogl paths.
2020-08-21 20:41:45 -07:00
lightningterror 35fa2253dd cmake/linux various: Remove remaining traces of GSdx legacy. 2020-08-20 15:34:20 +02:00
tellowkrinkle 4f56db9f18
Fix codegen on x86-64 (#3512)
Fix codegen on x86-64

Part 1 of the changes being worked on in #3451

Makes x86emitter emit the x86-64 machine code you would expect it to

Also adds some unit tests to verify that things are working
2020-08-19 09:19:28 +01:00
Hamish 8816f4bf0d
GSdx: Remove GLX in favor of EGL (#3562) 2020-08-09 04:39:56 +01:00
arcum42 2b115d031e
Remove superVU. (#3386)
* Remove superVU, as well as the VUClipFlagHack, which was SuperVU only.
2020-05-24 19:08:12 -07:00
tellowkrinkle f9771c38a6
macOS fixes (#3357)
* macOS compile

* Fix memprotect error on macOS

* Fix semaphore wait + thread cancel on macOS

* Fix timedlock timeout calculation

* spu2-x macOS

* onepad macOS support

* Add MacOS game controller db

* Disable onepad_legacy on macOS

* Fix spu2-x configuration crashes

* Make recompiler work on 32-bit macOS

* Use dylib extension for plugins on macOS

* Make app bundle on macOS

* Use git info for Info.plist version
2020-05-23 23:19:47 -07:00
arcum42 c8c27cbfd1 Bump up the minimum cmake version slightly, and make older versions happy with the regex in FindHarfbuzz.cmake. 2020-05-19 22:15:47 -07:00
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
Miguel A. Colón Vélez 2c05426db1 Only check for EGL if using EGL_API.
Missed this one.
2015-07-27 19:19:47 -04:00
Miguel A. Colón Vélez 41cc153bff Only check for the needed dependencies.
Helpful for dropping dependencies package dependencies.
- Git only needed if there is a .git folder
- bzip2 only needed by CDVDiso
- CG/GLEW was for zerogs and ZZogl
- jpeg was for ZZogl
.
I also added that EGL_API is also for GSdx in option comment.
2015-07-27 18:54:04 -04:00
Miguel A. Colón Vélez 83a4b37bcf Add an option to disable the inclusion of the build date.
Debian has a goal to make reproducible builds therefore make it an
option instead of distro specific.
.
I added an "OR openSusE" to not "break" the old openSUSE behavior but ideally
they should just use -DDISABLE_BUILD_DATE=TRUE instead.
.
The old -DopenSUSE is not used for anything else so I removed it.
2015-07-27 14:00:47 -04:00
Gregory Hainaut 9ffb76798d cmake: fix an old regression with CMAKE_BUILD_STRIP option
Fix issue #673
2015-07-24 19:26:16 +02:00
Gregory Hainaut 979ea92754 gsdx: make png++ optional
Some distributions (Fedora) doesn't have a png++ package...
2015-06-04 20:22:05 +02:00
Gregory Hainaut 8d6d8067fd linux: rename everything. It is PCSX2 is uppercase letter
Sorry for all maintainers that will need to upgrade their packages
2015-05-18 10:04:23 +02:00
Gregory Hainaut 5c046180a1 cmake: properly add detection of lzma
Code is 100% optional.

Code will allow be enabled if lzma-dev is installed at compile time
2015-05-17 22:08:10 +02:00
Gregory Hainaut 8cd533304c gsdx: new dependency on linux => png++
Note: it is only header file that wrap the standard png (which was
already mandatory for wx/sdl)
2015-05-16 12:47:28 +02:00
Gregory Hainaut 88a714327a linux-zzogl: don't build anymore zzogl by default
Sadly, no time to maintain it neither to improve it.

Note: I think new openGL 4.x feature would make the plugin faster

Anyway, now GSdx-ogl is probably better than zzogl
2015-05-14 17:38:42 +02:00
Gregory Hainaut cb6e8a7d6a gsdx-linux: Don't enable EGL by default
I was hoping that EGL become a standard much more faster. Currently it is an useless dep
so let's disable it by default.
2015-05-11 15:33:40 +02:00
Gregory Hainaut 286fe4db8c cmake/gsdx: check png++ is installed to support png image
Otherwise fallback to bmp file
2015-05-11 11:32:13 +02:00
Gregory Hainaut 797e3d81da cmake: CheckLib allow to search only include
Some libraries doesn't have any .so file
2015-05-11 11:28:09 +02:00
Gregory Hainaut 335695bd0e purge GLES from GSdx !
mobile will use vulkan (or any new API) anyway
2015-05-01 20:02:17 +02:00
Gregory Hainaut b68270ded1 Merge pull request #448 from PCSX2/lilypad-linux-port
Lilypad linux port
Basic support of Keyboard and Joystick

No gui to configure anything. Not well tested yet.
2015-03-01 16:52:23 +01:00
Gregory Hainaut fb100e05f2 cmake: improve previous commit
Avoid to set -m32 two times

Fix issue #463
2015-02-27 10:02:38 +01:00
Gregory Hainaut b5612ec622 cmake: always set -m32 for 32 bits build
It fixes cross-compilition issue when users/env set CC/CXX variables
2015-02-22 22:17:38 +01:00
Gregory Hainaut 7985f5114c cmake: enable lilypad
I manage to have x/start button working with 0/1 key. Here the reference configuration.

[General\ Settings]
Force\ Cursor\ Hide=0
Mouse\ Unfocus=0
Background=0
Multiple\ Bindings=0
DirectInput\ Game\ Devices=0
XInput=0
DualShock\ 3=0
Multitap\ 1=0
Multitap\ 2=0
Escape\ Fullscreen\ Hack=0
Disable\ Screen\ Saver=0
Logging=0
Save\ State\ in\ Title=0
GH2=0
Turbo\ Key\ Hack=0
Vista\ Volume=0
Close\ Hacks=0
Keyboard\ Mode=16
Mouse\ Mode=0
Volume=0
[Pad\ 0\ 0]
Mode=1
Auto\ Analog=0
[Pad\ 0\ 1]
Mode=1
Auto\ Analog=0
[Pad\ 0\ 2]
Mode=1
Auto\ Analog=0
[Pad\ 0\ 3]
Mode=1
Auto\ Analog=0
[Pad\ 1\ 0]
Mode=1
Auto\ Analog=0
[Pad\ 1\ 1]
Mode=1
Auto\ Analog=0
[Pad\ 1\ 2]
Mode=1
Auto\ Analog=0
[Pad\ 1\ 3]
Mode=1
Auto\ Analog=0
[Device\ 0]
Display\ Name=displayName
Instance\ ID=instanceID
Product\ ID=deviceID
API=16
Type=1
Binding 0=0x00040030, 0, 31, 65536, 0, 0, 0
Binding 1=0x00040031, 0, 19, 65536, 0, 0, 0
Binding 2=0x00040002, 0, 50, 65536, 0, 0, 0
Binding 3=0x00040003, 0, 51, 65536, 0, 0, 0
Binding 4=0x00040004, 0, 52, 65536, 0, 0, 0
Binding 5=0x00040005, 0, 53, 65536, 0, 0, 0
Binding 6=0x00040006, 0, 54, 65536, 0, 0, 0
Binding 7=0x00040007, 0, 55, 65536, 0, 0, 0
Binding 8=0x00040008, 0, 56, 65536, 0, 0, 0
Binding 9=0x00040009, 0, 57, 65536, 0, 0, 0
Binding 10=0x0004000C, 0, 58, 65536, 0, 0, 0
Binding 11=0x0004000D, 0, 59, 65536, 0, 0, 0
Binding 12=0x0004000E, 0, 60, 65536, 0, 0, 0
Binding 13=0x0004000F, 0, 61, 65536, 0, 0, 0
Binding 14=0x00200010, 0, 62, 65536, 0, 0, 1
Binding 15=0x00200011, 0, 63, 65536, 0, 0, 1
Binding 16=0x01020012, 0, 33, 65536, 0, 0, 13172
Binding 17=0x02020012, 0, 35, 65536, 0, 0, 13172
Binding 18=0x02020014, 0, 39, 65536, 0, 0, 13172
Binding 19=0x02020015, 0, 38, 65536, 0, 0, 13172
2015-02-20 23:05:21 +01:00
Gregory Hainaut 2471306fc4 cmake: actually onepad requires X11 2015-02-20 23:05:21 +01:00
Gregory Hainaut c5e6013d75 Merge pull request #419 from PCSX2/64-bit-crashes-fix
64 bit crashes fix
2015-01-17 12:08:24 +01:00
Miguel A. Colón Vélez f160c39814 Remove dead code from cmake/ApiValidation.cmake. 2015-01-12 02:54:49 -05:00
Miguel A. Colón Vélez 90c4322fc5 Remove check for wxrc since it's not needed. 2015-01-09 07:44:26 -05:00
Miguel A. Colón Vélez 3b83d6d302 Make FindwxWidgets find the correct version/toolkit via wx-config.
WX_vs_SDL() is still needed.
2015-01-09 07:18:16 -05:00
Miguel A. Colón Vélez cc9b6fa5a4 Search for wx-config-3.0 and wxrc-3.0.
The comment made it look as an arch-only thing which was misleading.
.
Gentoo uses
wx-config-3.0 and wxrc-3.0
2015-01-08 22:27:16 -05:00
Miguel A. Colón Vélez f392493245 Don't assume .git exists just because git is installed.
find_package(Git) is done in SearchForStuff it could be deleted over there
but it fits better there. The only thing this line did was saying git was
not found for a second time since if it was found then it never triggered.
.
Check for the existance of .git to avoid
fatal: Not a git repository (or any of the parent directories): .git
2015-01-06 21:14:10 -05:00
Gregory Hainaut b03162747c sVU: add an option to remove it
The goal is to reduce the burden for new architecture port.

Patch is mostly inspired from 3kinox initial patch. The diff are
*/ used ifdef instead of raw removal
*/ gui don't rely on UseMicroVU* option
*/ completely remove sVU_micro.* file
2015-01-06 23:45:43 +01:00
Gregory Hainaut 678c8a5cd6 cmake: validate wx api
checks wx-config version is compatible with the one requested by the user (wx 2.8 or wx 3.0 with WX28_API option)
2015-01-06 21:55:33 +01:00
Gregory Hainaut a0d54df522 Merge pull request #415 from micove/build-cleanup
Improve build system.
2015-01-06 21:36:24 +01:00
Gregory Hainaut e447ffc8b2 cmake: fix asan on 64 bits 2015-01-05 23:45:37 +01:00
Miguel A. Colón Vélez 305942c78b Rely on the user specifying WX28_API. 2015-01-04 15:08:12 -05:00
Gregory Hainaut 90d27bf5f6 cmake: try to validate the user option
* GTK3_API requires a wxWidget that support it too
=> avoid complexe compilation error
* SDL2_API requires a wxWidget without SDL support (wxUSE_LIBSDL = 0)
=> avoid run time  crash

SDL check hypothesis: wx is linked against SDL1.2 and not SDL2. It would need to be improved on a distant future
2015-01-04 20:43:26 +01:00
Gregory Hainaut 0346da2fa0 cmake: both zzogl and gsdx require gtk
Actually everything require GTK
2015-01-04 19:54:05 +01:00
Miguel A. Colón Vélez 8440d263cd Respect the CC and CXX environment variables when cross building. 2015-01-04 00:56:47 -05:00
Miguel A. Colón Vélez e23e2ac327 Rely on clang autodetection instead of user input. 2015-01-03 22:07:16 -05:00
Miguel A. Colón Vélez 6e28a8e694 Update the archlinux wx fix.
This fixes it for build.sh and when not using build.sh (packaging).
.
Also fix native 32bit build which should also be broken and attempt to
predict the future and fix it for lib32-wx3.0. Worst case the filenames
have to be fixed which is trivial.
.
When wx2.8 support is dropped then only the lib32-wx3.0 IF should remain.
When crosscompilation support gets dropped then the first IF gets deleted
unless we also dropped wx2.8 support then everything gets deleted.
2015-01-03 22:00:47 -05:00
Miguel A. Colón Vélez c2cba0d4ae Quick regression fix for SDL2 detection.
I only had to add "PATH_SUFFIXES SDL2".
.
include is superfluous
SDL2-2.0 is a distro specific convenience symlink. Use the correct one
as before.
.
I probably did this as an artificial way of disabling pkgconfig when cross
compiling and before disabling pkgconfig for all cross compiling but it's
wrong. I thought I had fixed this already.
2015-01-03 14:51:04 +01:00
Miguel A. Colón Vélez be1842f4e9 Detect clang and automatically set USE_CLANG.
User may forget or not know about -DUSE_CLANG=TRUE. It could probably
be always autodetected instead of requiring user input.
.
Trivial wording changes to compiler_version.
2015-01-03 14:51:04 +01:00
Miguel A. Colón Vélez c8c22cf6a0 Notify about cross build option upon failure.
Tell the user to use CMAKE_TOOLCHAIN_FILE upon failure.
.
Cleanup detectOperatingSystem. Should be the same but adding
GNU and kFreeBSD from Debian and filtering out pre OS X Apple.
.
libaio is linux only. Also check for the correct header since
aio.h is the POSIX one. Both are in /usr/include/ anyway.
Only build core if (Linux AND NOT AIO_FOUND) == false.
.
Use Unix for GTK and X11. Macs has gtk-quartzs and xquartz or native X11.
*BSD, linux, etc should have both.
2015-01-03 14:51:04 +01:00
Miguel A. Colón Vélez b42c9defb1 Avoid PKG_CONFIG_PATH issues.
Even before this pull request it was required to set PKG_CONFIG_PATH
when cross compiling since pkg-config always searches for native
libraries. This would require to backup an already existing ENV
variable if present, detect the distro specific place the pkgconfig folder is,
and restore the original ENV variable if it was present. Cmake as shown in:
.
http://www.cmake.org/gitweb?p=cmake.git;a=commitdiff;h=3df51470
.
added support for this but requires CMAKE_MINIMUM_REQUIRED_VERSION as 3.1
which is kind of strict since it was released 10 days ago.
.
To avoid the ugliness let just avoid pkg-config when cross compiling. This
means only EGL, SDL2 and GTK3 have to be updated since the rest work w/o
pkg-config.
- EGL is fixed with PR #409
- SDL2 is fixed here and it's trivial.
- GTK3 is non-trivial. For this one use pkg-config for native builds since
  the .pc file is kept up to date automatically. For cross compilation
  use the provided FindGTK3 which I made by using the sed documented
  inside the file and updating the dependencies for GTK3. Since I checked
  each and every single .pc file to make sure they are up to date this
  should have the same behaviour as pkg-config. Prefer the .pc files for
  native builds since it does not need to be manually updated and when
  the native 64bit port gets finished all the cross compile options should
  be removed which is quite easy since most of the code got moved to the
  CMAKE_TOOLCHAIN_FILE.
Note:
Cmake Modules are BSD-3-clause therefore GPL compatible.
2015-01-03 14:51:04 +01:00
Miguel A. Colón Vélez bed7a4f92e Be really strict about dependencies.
The obtained binaries before and after this commit are identical (sha1sum)
when compiled in Debian/Ubuntu/Fedora/ArchLinux.
.
The linker will always pick the 32bit libraries the only thing this does is
make sure we have all the 32bit dependencies installed. Basically we avoid
detecting the 64bit libraries and telling the users the 32bit libraries were
found. We always link with 32bit libraries therefore this avoids having to
wait 5-10min to just be told -lXXX is missing.
.
The only thing really needed are
set(CMAKE_LIBRARY_ARCHITECTURE "../lib32")
set(CMAKE_LIBRARY_ARCHITECTURE ".")
.
which basically ensures we don't pick 64bit headers since
CMAKE_LIBRARY_ARCHITECTURE always gets tested first and for some reason
FindGTK2 test searches lib64 first then lib32/lib. These values are hardcoded.
Right now these arch specific headers are not used but can't say this will
always be true.
.
FIND_LIBRARY_USE_LIB64_PATHS is not needed for native builds and it's covered
by CMAKE_SYSTEM_IGNORE_PATH.
.
NOTE:
We filter out lib32 because multilib is not compatible with multiarch.
2015-01-03 14:51:04 +01:00
Miguel A. Colón Vélez 553536f9cb Fix build in Fedora and print a confimation of cross compilation.
- Fedora only needs --arch if cross compiling.
  + It's only used to select libdir so i386=i686=i986
- Messages are nice to debug build logs.
.
Everything seems to work unless some other distro broke. Other
distros need to add CMAKE_TOOLCHAIN_FILE or --cross-multilib if
they cross compiled amd64 -> i686.
2015-01-03 14:51:04 +01:00
Miguel A. Colón Vélez b03ca5fcf4 Include some rather simple CMAKE_TOOLCHAIN_FILE.
- Update the build.sh and fix some typos.
  + Don't add the OSX ones because I have not tested them and it won't
    even build anyway due to the libaio dependency. Needs to use POSIX AIO
    or something else.
- They are rather simple and all the magic happens in two lines.
  + First line tells cmake to get ready to compile FOR linux or darwin.
    It also sets CMAKE_CROSSCOMPILING to true which is the only way to
    let cmake known that we are using stuff not from the host.
  + CMAKE_C_COMPILER/CMAKE_CXX_COMPILER are basically used to detect
    the architecture of the target. Since I used generic cc/c++ the
    hardcoded -m32 is needed to ensure we get TARGET=i386. Also
    since I hardcode -m32 and use c++/cc it's to be noted that
    we can only do i386->i386 (trivial), amd64 -> i386, and x32->i386.
    .
    Using something like i586-linux-gnu-{gcc,g++} would also work and
    enable arm -> i386, etc but it's infeasible and impractical to do all
    the combinations. File is simple enough that a distro or user can
    create their own and cross compiling is rather tedious compared
    to using a chroot to compile it.
- I tested it in Debian with "dpkg-buildpackage -ai386" but installing the
  build dependencies was rather tedious.
2015-01-03 14:51:04 +01:00
Miguel A. Colón Vélez d6d06d243c Begin cleaning up the cross build code.
http://www.vtk.org/Wiki/CMake_Cross_Compiling
http://www.cmake.org/cmake/help/v3.0/manual/cmake-toolchains.7.html
.
The official way that cmake does cross compiling is via the use of a
CMAKE_TOOLCHAIN_FILE. This has to be given by the user and can't be
included from within a Cmake file since setting up the toolchain has
to be the first thing that happens.
.
After the file is given and validated cmake behaves nicely and all the
workarounds and hacks are not really needed anymore.
.
The consequence of this change is that without this file cmake will
try to build for the HOST architecture as expected and with the file
it will build for the TARGET architecture of the given toolchain. Due to
this remove 64BIT_BUILD_DONT_WORK and just ERROR out if the user tries
in the same way as before.
2015-01-03 14:51:04 +01:00
Miguel A. Colón Vélez 8ea0766773 Use TargetArch to correctly detect the target.
Currently crosscompiling was broken since we detected the cpu of the host
not of the target. Building arm -> i386, i386->amd64, etc resulted in
interesting stuff.
.
CMAKE_HOST_SYSTEM_PROCESSOR and CMAKE_SYSTEM_PROCESSOR should have done this
but they are incredibly broken and unreliable. I use
CMAKE_HOST_SYSTEM_PROCESSOR just to retain the format of the old message
and is not used for critical stuff so it does not matter.
.
This code also allows scalability so that if one day in the very distant
and unlikely future the x86/x86_64 specific code gets made portable
by replacing asm/MMX/SSE*/AVX/etc code with generic/portable code then
it also would work on all architectures.
.
For *BSD/OS X it probably would need to use POSIX AIO instead of linux
specific libaio but that is a different issue.
.
Error out the x86_64 builds.
Also the 64BIT_BUILD_DONT_WORK option became obsolete more info in following
commit.
2015-01-03 14:51:04 +01:00
Miguel A. Colón Vélez e548ada1e9 Disable the use of multiple architectures in darwin.
- Update copyright due to incoming changes.
- Don't support universal binaries until they actually work therefore
  only allow 1 architecture in CMAKE_OSX_ARCHITECTURES.
- Don't allow an empty ARCH list.
  We probably asked for ppc or ppc64 w/o support for it.
2015-01-03 14:51:04 +01:00
Miguel A. Colón Vélez b18b0fdf28 Add TargetArch.cmake.
For now just dump the original and add the BSD-2-Clause.
.
It's GPL compatible so it's okay.
.
I was writting one myself but found this one and it handles apple
which I did not consider since I can't test it.
2015-01-03 14:51:04 +01:00
Miguel A. Colón Vélez 6dd3094802 Fix the rare case in which EGL is not found.
EGL sometimes is not found. Checklib 1st does
.
string(TOLOWER ${lib} lower_lib)
pkg_search_module(${var} QUIET ${lower_lib})
.
Therefore this part should be equivalent since we always compare lower.
.
This part seems to not find anything and then it does.
.
find_library(${var}_LIBRARIES ${lib})
.
Here it also does not find anything since it tries to find libegl
while the library is called libEGL therefore I changed the name to upper.
to avoid
_internal_message("-- ${lib} not found (miss lib)")
.
It could fail in the unlikely event that someone renamed libEGL to libegl.
This bug is triggered when you combine crosscompiling from amd64 to
i386 with Debian multiarch paths. For other distros it should work with
pkg_search_module normally.
2014-12-24 11:41:04 -05:00
Gregory Hainaut d00666a4d9 cmake: regression to select SDL/GTK + 64bits fix 2014-12-22 19:31:32 +01:00
Gregory Hainaut 0c17d67fa5 cmake: add a new option to select the doc path in package mode
DOC_DIR_COMPILATION=/usr/share/doc/pcsx2

close issue #402
2014-12-21 16:51:41 +01:00
Gregory Hainaut dc1cd3eb25 cmake: forbid user to use experimental flags
Namely GTK3_API and 64BIT_BUILD_DONT_WORK

The former was barely tested and doesn't compile with standard wx
The latter doesn't work at all

Note: I was very close to disable SDL2 too.  If wxWidget was built with
SDL1 support it will crash
2014-12-21 10:46:33 +01:00
Gregory Hainaut 1f54bb73aa cmake: enable some aggressive warning
Allow to track strict aliasing issue and overflow
2014-12-20 13:43:25 +01:00
Gregory Hainaut 66d7aa75e2 cmake: move -DNDEBUG to global option 2014-12-20 13:43:25 +01:00
Gregory Hainaut 63ba78b664 remove zzogl-pg-cg
superseeded by zzogl-pg
2014-12-13 12:28:37 +01:00
Gregory Hainaut 800262fc14 cmake: add a new GTK3.0 option
Thanks #micove for the patch
2014-12-10 22:07:48 +01:00
Gregory Hainaut 0a4f9e43d9 cmake: clean sdl management
* sdl is mandatory for spu2x
* cmake will include either /usr/include/SDL or /usr/include/SDL2 so no
  need to add extra ifdef
2014-12-07 21:06:21 +01:00
Gregory Hainaut 9e8b0b59ba cmake: remove a duplicated line 2014-12-07 12:47:35 +01:00
Gregory Hainaut c945aead54 cmake: better support of SDL2
Description: Building with SDL2_API=TRUE is incomplete
 SDL_FOUND does not imply SDL2_FOUND
 Use check_libs for detection
 Only include ${SDL_INCLUDE_DIR} when needed
 Use SDL2_LIBRARIES
Author: Miguel A. Colón Vélez

Gregory: add back SDL_BUILDING_LIBRARY
2014-12-07 12:19:14 +01:00
Gregory Hainaut 4b6632edf4 linux: use wx3.0 by default
+ Wx3.0 fixes various issue on linux (better sizing of box)
+ Debian doesn't provide wx2.8 anymore. Ubuntu will probably follow soon (close issue #342)

If you want to use wx2.8:
* Either you remove wx3.0 from your system
* Either you use the cmake option -DWX28_API=TRUE

Please don't hesitate to report any regresions.
2014-12-06 19:59:32 +01:00
3kinox 06f53b2689 use -fabi_version=6 only for GSdx, solve bug with wxwidget
reenable avx build for GSdx
2014-11-11 15:55:31 +01:00
Gregory Hainaut ec1da2805c pcsx2/GSdx: disable AVX for the moment on linux
I need to check carefully the consequence of ABI change. So far wx is very unhappy!

Fatal Error: Mismatch between the program and library build versions detected.
The library used 2.8 (no debug,Unicode,compiler with C++ ABI 1002,wx containers,compatible with 2.6),
and your program used 2.8 (no debug,Unicode,compiler with C++ ABI 1006,wx containers,compatible with 2.6).
2014-11-09 15:45:54 +01:00
Gregory Hainaut 679fa65b84 cmake: By default optimize for current arch
Note: it requires GCC 4.7. Otherwise use -DDISABLE_ADVANCE_SIMD=OFF to restore
previous behavior. It will impact Ubuntu precise (12.04)
2014-10-26 14:47:35 +01:00
nE0sIghT 7f57692ee3 Use cmake variable "BIN_DIR" for binaries installation 2014-09-27 22:26:42 +04:00
Gregory Hainaut 5b3f031654 cmake: fix commit f3a50a01a7
* link common with c lib (required for gold linker)
* fix the macro to properly set the library variable
  => use the variable instead to hardcoded value
2014-09-24 09:02:56 +02:00
Johannes Obermayr 9fd2f3dd8a Don't use build date on openSUSE.
Fixes RPMLINT warning:
pcsx2.i586: W: file-contains-date-and-time /usr/bin/pcsx2
Your file uses  __DATE and __TIME__ this causes the package to rebuild when not needed
2014-09-17 22:37:34 +02:00
Johannes Obermayr 7b1d3ba7ea Do commits 2bc2047 and f287754 the right way ... 2014-09-16 19:11:11 +02:00
Johannes Obermayr 2bc2047770 cmake: Fix RPATH/RUNPATH issue with openSuse wxWidgets libdir.
Gregory: Add an if clause to only change the rpath on openSuse

For me it doesn't follow the FHS => http://www.tldp.org/HOWTO/HighQuality-Apps-HOWTO/fhs.html
2014-09-14 13:12:26 +02:00
Gregory Hainaut 9c81272278 cmake: oups forget to change the usage of 64BIT_BUILD variable 2014-09-13 14:22:41 +02:00
Gregory Hainaut e101a1d77a linux build: let's be clear that 64 bit is not supported
* rename the cmake option to 64BIT_BUILD_DONT_WORK
* add --64-bit-dont-work to build.sh
2014-09-12 20:10:14 +02:00
Gregory Hainaut b9fba8005a cmake: failed to get git version
* add a fallback when the git version can't be fetched

Close issue #122
2014-09-10 14:19:50 +02:00
uyjulian e8d13090b0 Look for GLESv3 header instead of GLESv2 header 2014-09-05 20:16:50 +02:00
uyjulian f3a50a01a7 cmake: Use previous macros in CMakeLists.txt files
Gregory: add a c lib for zzogl-pg-cg replayer
2014-09-05 20:16:23 +02:00
uyjulian 1290d0b1a3 Remove unneeded comments 2014-09-05 20:14:09 +02:00
uyjulian 82dfed1512 Remove unneeded Check*.cmake 2014-09-05 20:14:09 +02:00
uyjulian 53e57766c9 Use CheckLib for some libs 2014-09-05 20:14:09 +02:00
uyjulian dde94da94f Add cleaner svnrev.h code, add macros 2014-09-05 20:14:09 +02:00
uyjulian 5f4fc4701f Add CheckLib.cmake 2014-09-05 20:14:08 +02:00
Gregory Hainaut bf52a4c737 build.sh: allow to replace build directory by a symlink
Use case: redirect the build into a ramdisk (less write on sdd and potentially faster io)
2014-09-02 21:21:46 +02:00
aga c963e0b62b "!64BIT_BUILD" is a variable name. Changed to "NOT 64BIT_BUILD" which is
the negation of the 64BIT_BUILD variable defined in
BuildParameters.cmake.
2014-08-16 12:00:50 -06:00
Gregory Hainaut 86152668c3 cmake: install mo file into Langs/id_code instead of Langs/id_code/LC_MESSAGES
Therefore it uses the same locations as windows.
2014-08-03 14:43:08 +02:00
Gregory Hainaut 61088b71c6 cmake: gcc warning management
* disable unused value warning (don't like the syntax 0&&)
* remove -Wno-ignored-attributes (c option). It replaces gcc warning
    by an unsupported option warning...
2014-08-03 14:43:08 +02:00
Gregory Hainaut cc0b9bbca9 cmake: drop gtk workaround for ubuntu 10.10
Note: remove also FIND_LIBRARY_USE_LIB64_PATHS that is alredy set in build parameter
2014-07-30 09:21:49 +02:00
Gregory Hainaut f38c6d0995 Merge pull request #142 from Sonicadvance1/fPIC_x86_64
Enable -fPIC on x86_64.
2014-07-30 00:01:08 +02:00
Gregory Hainaut 0706564215 remove sparsehash from 3rdparty
small deps but the less the merrier

Note: could someone check windows builds :p
2014-07-29 21:06:31 +02:00
Gregory Hainaut d09fee90ad wx3.0: add cmake support (2.8 by default)
use ./build.sh --wx30 for wx3.0
2014-07-29 20:45:43 +02:00
Ryan Houdek 8c07d4e7b9 Enable -fPIC on x86_64.
-fPIC is required on x86_64 for shared libraries.
This allows the compilation to get farther in to plugin compiling.
2014-07-26 03:08:35 -05:00
Ryan Houdek a1a0ed0563 Support _M_X86[_32/_64] on Linux.
These go hand in hand with PR #109 but for Linux as well.

These are much more useful defines than what other compilers give us.
2014-07-14 23:58:02 -05:00
Gregory Hainaut f85a4c0467 clang: don't use clang asm tool
-no-integrated-as fixes most of the asm issue :)
2014-07-14 13:58:06 +02:00
Gregory Hainaut c60fefa1a6 gcc: support address sanitizer 2014-07-12 19:57:26 +02:00
Gregory Hainaut 8c03d50421 cmake: remove a specific warning for clang 2014-07-12 16:04:57 +02:00
Gregory Hainaut f401f817ed cmake: sdl opt typo + clean warning management
Add back a lots of warning in the core!
2014-07-12 12:59:23 +02:00
Ryan Houdek 1f188b2610 Remove -march argument on x86_64 build option.
GCC doesn't support pentium4 as a arch target for x86_64. It complains that the architecture doesn't support x86_64
Which to be fair the first few models didn't support 64bit.
Just remove the architecture setting since there isn't a need for it.
2014-07-11 14:32:17 -05:00
Gregory Hainaut 1dba4aceca cmake: reduce a bit cmake syntax cluttering 2014-07-05 15:08:39 +02:00
Gregory Hainaut e8b3532658 cmake: clean main file and option
Move build configuration from CMakeLists to cmake/BuildParameters.cmake where it belongs
Use option syntax for on/off option
Complete a bit previous commit to force all 64bits path detections (likely done by cmake)
2014-07-05 14:54:56 +02:00
Ryan Houdek 35979bb5a6 Add a CMake compile time option for building a 64bit binary.
By default the cmake build will still cross compile a 32bit binary and spout a message about it if not enabled.
This doesn't fix the 64bit build issues, just makes it easier for someone to test 64bit builds in the future.
Look towards a bright future instead of a dark and gloomy past
2014-07-05 05:09:17 -05:00
nE0sIghT 66785be691 Fix Cg find for Gentoo amd64 2014-05-18 22:51:09 +04:00
Gregory Hainaut b7536ca94b zzogl: gcc warning fix
Let's hope variadic macro work on visual

cmake: reenable various warning. With previous fixes it just a matter of a couple of warnings
2014-05-03 10:37:58 +02:00
Gregory Hainaut c37d9c10f7 cmake: git compilation issue + useless warning message
* avoid compilation failure when git -C isn't supported
* don't print missing dependency when EXTRA_PLUGINS isn't activated
* sed /endif(.*)/endif/ because I don't like it
2014-04-17 20:26:16 +02:00
Gregory Hainaut ca8c5b041d cmake: drop sparsehash_new module
It was a workaround for a buggy version of the lib.
2014-04-12 10:25:40 +02:00
Gregory Hainaut 414ce3589a cmake: new option -DEXTRA_PLUGINS=TRUE|FALSE
--extra for ./build.sh script

By default only build the pricipal plugin: GSdx|zzogl/spu2-x/onepad/UsbNull/Dev9Null

Extra plugins are: GsNull|zzogl-cg/Spu2Null|zerospu/PadNull

The purpose is to improve compilation time on linux
2014-04-11 09:18:31 +02:00
Gregory Hainaut 605afeff74 cmake: enable -g for debug/dev build
otherwise it is a PITA on gdb
2014-04-06 11:43:40 +02:00
Roel Aaij 9d1840e37a Fix out of tree build.
Tell git to look in the source dir for the repository.
2014-03-30 16:59:29 +02:00
Gregory Hainaut 390245806a cmake: sed /PROJECT_SOURCE_DIR/CMAKE_SOURCE_DIR/
The former depends on the project command. Whereas the latter is the true absolute path
of the project
2014-03-30 16:36:02 +02:00
Gregory Hainaut 22e02b545e cmake: fatal error when path contains some parenthesis 2014-03-30 16:36:02 +02:00
Gregory Hainaut 70d1719b7d cmake: handle gracefully wxwidget 3.0-dev
1/ print a nice message
2/ replace 3.0 to 2.8 so it could still compile on system that both version
   are installed but wrongly configured
2014-03-26 11:37:49 +01:00
Gregory Hainaut 30ba964f9d fix visual studio compilation 2014-03-25 18:35:02 +01:00