This project is mirrored from https://*****@github.com/libretro/vbam-libretro.git.
Pull mirroring updated .
- 22 Oct, 2017 2 commits
-
-
Zach Bacon authored
Still have much more to do.
-
Zach Bacon authored
-
- 17 Oct, 2017 1 commit
-
-
Rafael Kitover authored
This may speed things up a little in some places, or maybe not, but should be safe as few if any users are likely to be using a CPU without SSE2.
-
- 12 Oct, 2017 5 commits
-
-
Rafael Kitover authored
Add POST_BUILD commands on Mac to codesign the `.app` and make a zip file from it. Also add xz/liblzma dist to `tools/osx/builder` because something apparently wants liblzma.
-
Rafael Kitover authored
Refactor the code in `tools/osx/builder` somewhat and make it cleaner. Move a few table processing loops into functions to make things less ugly. Delete dists not listed in the table (e.g. when they are updated) and when a dist is re-downloaded, delete the tree and the target file to force a rebuild. Use number version for gettext instead of `-latest`. Specify full dist target, e.g. `lib/libfoo.a` instead of just `libfoo.a`.
-
Rafael Kitover authored
Add `tools/osx/builder`, a POSIX sh script to build all dependant libraries as static, targetted to OS X 10.7, and build the project with them (also targetted to OS X 10.7.) ffmpeg currently does not link, as recording functionality is currently non-functional anyway, this will be fixed later. MISC: - set WORKING_DIRECTORY and ERROR_QUIET for all git commands, for the cases when the build directory is not under the git checkout - #include <cerrno> in ConfigManager.cpp as it uses errno - change `build*` in `.gitignore` to `build/*` so that files starting with "build" are not affected
-
Rafael Kitover authored
If git tags are not available, set the version and revision by finding the first version tag in `CHANGELOG.md` of the form ``` ``` Where N.N.N is the number version (number of components can vary) and the revision (as speicified by -REV) is optional. TODO: support named revision without a version number of the form `[REV]`.
-
Zach Bacon authored
Gonna try and keep this up to date as often as possible.
-
- 10 Oct, 2017 1 commit
-
-
Rafael Kitover authored
Run just one `git tag` command instead of two (with tags and refs) and break it into the form [tag0, ref0, tag1, ref1, ...]. Iterate over the list with two counters for tag and ref.
-
- 08 Oct, 2017 1 commit
-
-
Rafael Kitover authored
Fix `cmake/GitTagVersion.cmake` to not throw errors when in a shallow git clone, or any git clone that has no tags. And when either git or git tag version info is not available, set the version variables to the defaults, which are: ``` VERSION = '2.0.0' REVISION = 'unknown' VERSION_RELEASE = 0 ```
-
- 07 Oct, 2017 1 commit
-
-
Rafael Kitover authored
To get the version, find the last tag in git tag of the form "v2.0.0" or "2.0.0". If this is the last tag and the current commit matches the ref of this tag, the revision will be empty. In the case that the current commit is not tagged with a version, to get the revision, use the short sha unless the current commit is tagged with something that is not a version string, e.g. "feature-foo", in which case the revision will be "feature-foo". If the current commit is tagged as e.g. "v2.0.1-foo" or "2.0.1-foo" then the version will be "2.0.1" and the revision will be "foo". Tags of this form are also checked when finding the current version. This is all done in cmake. If there is no git detected, the version will be "2.0.0" and the revision will be "unknown".
-
- 06 Oct, 2017 1 commit
-
-
Rafael Kitover authored
On Debian-based distributions, people sometimes have bad sources in apt, e.g. PPAs that no longer exist, or mirrors that no longer work, etc.. In these cases, `apt-get update` will still likely fetch the main distribution package lists, which is what we need, but return a non-zero exit code. Change `./installdeps` to not abort on non-zero exit status from `apt-get -qq update`.
-
- 23 Sep, 2017 1 commit
-
-
Rafael Kitover authored
Change one instance of a dummy local variable to a C++11 temporary via CLASS{param}.
-
- 22 Sep, 2017 2 commits
-
-
Rafael Kitover authored
64 bit MinGW (e.g. msys2 64 bit) produces a binary that immediately segfaults when built with LTO. Make ENABLE_LTO default to OFF on 64 bit MinGW (32 bit will still default to ON.)
-
ZachBacon authored
* Allows the SDL binary to be installed if it's cross compiled from within linux or macOS for windows for packaging purposes.
-
- 21 Sep, 2017 1 commit
-
-
Rafael Kitover authored
On SoundSDL destructor and `reset()`, there was a deadlock with Linux pthreads, it happened sometimes that the reader thread would call `SDL_SemWait(data_available)` while `deinit()` would destroy the semaphore and the `SDL_SemWait()` would end up waiting forever on a null semaphore. Change the sequencing of deinit() to prevent this from happening, set `initialized = false` at the beginning of the sequence to prevent subsequent entries into the reader callback, and add an SDL_Delay(100) between the final `SDL_SemPost()` and `SDL_UnlockMutex()`s and the `SDL_DestroySemaphore()` and `SDL_DestroyMutex()`s to allow a running reader to complete with a valid mutex and semaphores before they are destroyed and the thread is joined. Resetting the sound system also sometimes triggers a memory corruption bug, but that's a separate issue.
-
- 19 Sep, 2017 3 commits
-
-
Rafael Kitover authored
We were setting the app icon based on the 256x256 xpm icon in the xrc, and this triggered a bug where the app-specific icon in Windows volume settings was huge: https://stackoverflow.com/questions/17949693/windows-volume-mixer-icon-size-is-too-large/46310786#46310786 Adapt the code from that SO question to use Windows-specific code to load and scale the icon appropriately using a Vista+ API, and fall back to the normal Wx icon loading mechanism on XP. Also generate a nice new `vbam.ico` Windows icon file based on the `.svg` using the app from: https://iconverticons.com
-
Rafael Kitover authored
Use the `cmake` `ProcessorCount` module to determine the number of CPU threads, and set the `-flto` flag for gcc to `-flto=${num_cpus}` if the number of CPU threads is detected and is greater than `1`. clang does not support this.
-
Rafael Kitover authored
Use `git submodule update --remote --recursive` instead of `git submodule update --init --recursive` so that the latest version of the repo is always installed. Run the command from cmake instead of throwing an error if the submodule is not checked out. Only throw an error if the checkout failed or the source tree is not a git checkout. Don't add the `mingw-xaudio` include directory if using MSVC. Remove the submodule check from src/wx/CMakeLists.txt, having it in the main CMakeLists.txt is enough.
-
- 18 Sep, 2017 2 commits
-
-
Rafael Kitover authored
Remove the "generated with doctoc" title from the README.md table of contents. Need to run `doctoc --notitle`.
-
Rafael Kitover authored
Note that LTO now defaults to ON, and ENABLE_ASM does not turn on ENABLE_ASM_CORE. Trim the wxLogDebug() section. Titlecase headings. Generate a TOC with `doctoc`.
-
- 17 Sep, 2017 1 commit
-
-
Rafael Kitover authored
gcc lto wrapper commands such as `gcc-ar` will segfault with some versions of gcc 7.x when called via an absolute path, see: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80717 Generalize the mechanism for compiling a small C program on the host (currently used for bin2c for Wx resources) and use it to wrap the gcc wrappers in a little executable that prepends their dirname to PATH and runs them with `execvp()`. Make LTO default to ON again, except on win32 with gcc < 7, because those toolchains produce broken binaries with LTO enabled. Also add `-ffat-lto-objects` to compiler flags for gcc when LTO is enabled, this will increase the chances that the LTO build will succeed even if there are issues with the binutils wrappers. Clang does not support this.
-
- 14 Sep, 2017 1 commit
-
-
Rafael Kitover authored
Most projects nowadays call the project specific cmake scripts directory just `cmake/` and we will do so as well.
-
- 13 Sep, 2017 1 commit
-
-
Rafael Kitover authored
Fix building with wx 2.8 by rewriting some more string related code. Replace all calls to .c_str() with .mb_str(). Remove some of the .c_str()/.mb_str() calls where the target is already wxString. Move the split()/enum_idx() functions from opts.cpp into str_split()/vec_find() in strutils.h/strutils.cpp for use in other files. Replace the C-style string parsing code in a couple of places in wxvbam.cpp for processing possible command line options by splitting on '='. Also replace a couple of places that use pointer arithmetic in widgets/joyedit.cpp and widgets/keyedit.cpp with wxString methods.
-
- 12 Sep, 2017 2 commits
-
-
Rafael Kitover authored
When calling find_package(wxWidgets ...) allow the first call to fail because the OpenGL library may not be found. A subsequent call without listing the OpenGL library is done with REQUIRED. And if the OpenGL library is not found, skip the OpenGL compile test. When cross-compiling (e.g. with mxe or other mingw packages) skip the wx ABI compatibility run tests. When choosing which minhook lib to link to the wx ABI compat run test program, check for 64 bit but fallback to 32 bit just in case.
-
Rafael Kitover authored
Fix some syntax errors and extraneous output in fedora_installdeps(). "Fix" the 32 bit deps installer to try to ignore file conflicts between i686 and host rpms, by first using rpm --force to install the 32 bit rpms and then overwriting them with the host ones using --force as well. This is hackish and fragile, but there aren't any good alternatives right now.
-
- 10 Sep, 2017 3 commits
-
-
Rafael Kitover authored
When Wx is built with --enable-stl, wxString to wxChar*/char* implicit conversions and vice-versa no longer work. Change all wxChar* data members to wxString and change all pointer arithmetic code (mostly in opts.cpp, cmdevents.cpp and widgets/joyedit.cpp) to use wxString methods instead. Also make mostly minor changes in various other files for all of this to work.
-
Rafael Kitover authored
Use either the 32 bit or 64 bit MinHook trampoline static lib for the Wx ABI tests, depending on the detected arch of the host/target.
-
Rafael Kitover authored
Fix error dialog boxes popping up when the Wx ABI compat tests are run from cmake. Wx 3.x is hardcoded to use MessageBox for wxLogFatalError(), even in a console app, so use the minhook trampoline lib (added to dependencies) to hook the Win32 API MessageBoxW and MessageBoxA (the second just in case) so that no error dialogs pop up. Details here: https://www.codeproject.com/Articles/44326/MinHook-The-Minimalistic-x-x-API-Hooking-Libra
-
- 08 Sep, 2017 1 commit
-
-
Rafael Kitover authored
Include `wx/wxprec.h` (precompiled header first in test programs to possibly make the tests slightly faster. For the ABI compat check, set a variable for the test program instead of listing it twice.
-
- 04 Sep, 2017 1 commit
-
-
Rafael Kitover authored
Following some suggestions from @ArtiiP, first check if there are no issues without an -fabi-version flag, and then instead of incrementing from 0, decrement from 15 to find the highest working ABI version. This is very slow if the needed ABI version is 2 for example, but not much to do about that for the time being.
-
- 03 Sep, 2017 1 commit
-
-
Rafael Kitover authored
Start checking the ABI version at -fabi-version=0, which is the default, and if that succeeds don't set the flag at all. This will allow the code to work properly if and when Wx removes the ABI check alltogether.
-
- 02 Sep, 2017 2 commits
-
-
Rafael Kitover authored
Break command line argument processing and OS detection off into functions called from `main()`. Remove all references to cairo. For fink, install the SFML package I made instead of turning off link.
-
Rafael Kitover authored
In 4e665ae0 I hardcoded -fabi-version=2 for g++ flags, and @ArtiiP pointed out that this is wrong, because Wx may be compiled with other ABI versions. Add cmake check_cxx_source_runs() tests to determine the correct ABI version flag to use with Wx.
-
- 01 Sep, 2017 1 commit
-
-
Rafael Kitover authored
Use the g++ `-fabi-version=2` compiler option, as suggested by @ArtiiP to fix problems similar to: ``` Fatal Error: Mismatch between the program and library build versions detected. The library used 3.0 (wchar_t,compiler with C++ ABI 1002,wx containers,compatible with 2.8), and your program used 3.0 (wchar_t,compiler with C++ ABI 1009,wx containers,compatible with 2.8). Aborted ``` Turn LTO off by default until I fix it for newer gcc/binutils, currently with gcc7 ar segfaults linking vbamcore.
-
- 31 Aug, 2017 1 commit
-
-
Rafael Kitover authored
Replace the hardcoded `make -j8` command in the build instructions with a `-j` parameter that is the number of the host's CPUs minus one. Subtracting 1 is done to reduce chances of overloading the host. If the value is `1`, then don't print the `-j` flag at all.
-
- 30 Aug, 2017 1 commit
-
-
Rafael Kitover authored
This flags breaks the build on e.g. ARM, so only use it when a PC architecture (x86 or amd64) has been detected. Thanks to ZachBacon for spotting this.
-
- 28 Aug, 2017 2 commits
-
-
-
Zach Bacon authored
from the xrc.
-
- 27 Aug, 2017 1 commit
-
-
Rafael Kitover authored
ConfigManager does not use any version info, but is part of libvbamcore, so removing the `#include` makes rebuilds after git changes much much faster. Remove the AutoBuild.h includes from ConfigManager.cpp and SDL.cpp (the SDL port) because the information in that file does not seem to be used and it also includes version.h, forcing those files to rebuild unnecessarily.
-