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).
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
* 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.
* 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.
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>
* 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.
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
* 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
* 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>
* 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.
* 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.
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.
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.
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
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).
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 .....
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.
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 );
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,
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.
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".
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.
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.