This project is mirrored from https://*****@github.com/libretro/vbam-libretro.git. Pull mirroring updated .
  1. 22 Oct, 2017 3 commits
  2. 17 Oct, 2017 1 commit
  3. 12 Oct, 2017 5 commits
    • Rafael Kitover's avatar
      automate codesign/zip for mac build, add xz dep · afb1cd3d
      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.
      afb1cd3d
    • Rafael Kitover's avatar
      mac builder refactor/improvements · 5e633984
      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`.
      5e633984
    • Rafael Kitover's avatar
      add mac release builder script · d7ff2afb
      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
      d7ff2afb
    • Rafael Kitover's avatar
      read version info from CHANGELOG.md if no git · 46486381
      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]`.
      46486381
    • Zach Bacon's avatar
      Add a changelog · 30b6ecf1
      Zach Bacon authored
      Gonna try and keep this up to date as often as possible.
      30b6ecf1
  4. 10 Oct, 2017 1 commit
    • Rafael Kitover's avatar
      refactor/cleanup GitTagVersion.cmake · 55fa9c69
      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.
      55fa9c69
  5. 08 Oct, 2017 1 commit
    • Rafael Kitover's avatar
      fix error and version info in shallow git clones · 52439cee
      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
      ```
      52439cee
  6. 07 Oct, 2017 1 commit
    • Rafael Kitover's avatar
      read version and subversion info from Git · f5379ab8
      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".
      f5379ab8
  7. 06 Oct, 2017 1 commit
    • Rafael Kitover's avatar
      deps: don't check result of apt-get update #154 · 9c06c318
      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`.
      9c06c318
  8. 23 Sep, 2017 1 commit
    • Rafael Kitover's avatar
      minor code cleanup · 1fc09663
      Rafael Kitover authored
      Change one instance of a dummy local variable to a C++11 temporary via
      CLASS{param}.
      1fc09663
  9. 22 Sep, 2017 2 commits
    • Rafael Kitover's avatar
      default LTO to OFF on 64 bit MinGW · f069f0c0
      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.)
      f069f0c0
    • ZachBacon's avatar
      Added executable extension · 75ef0aa2
      ZachBacon authored
      * Allows the SDL binary to be installed if it's cross compiled from
      within linux or macOS for windows for packaging purposes.
      75ef0aa2
  10. 21 Sep, 2017 1 commit
    • Rafael Kitover's avatar
      fix deadlock in SoundSDL::deinit() #139 #130 · e9a86c54
      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.
      e9a86c54
  11. 19 Sep, 2017 3 commits
    • Rafael Kitover's avatar
      fix huge app icon in Win volume settings #149 #121 · 3d792457
      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
      3d792457
    • Rafael Kitover's avatar
      use num cpu cores to parallelize LTO link with gcc · de89bd05
      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.
      de89bd05
    • Rafael Kitover's avatar
      improve win32 dependencies git submodule handling · 268c6384
      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.
      268c6384
  12. 18 Sep, 2017 2 commits
    • Rafael Kitover's avatar
      remove doctoc title from README.md TOC · d3351a75
      Rafael Kitover authored
      Remove the "generated with doctoc" title from the README.md table of
      contents.
      
      Need to run `doctoc --notitle`.
      d3351a75
    • Rafael Kitover's avatar
      update README.md · 42fb76bf
      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`.
      42fb76bf
  13. 17 Sep, 2017 1 commit
    • Rafael Kitover's avatar
      work around gcc lto wrappers bug with gcc 7.x · 7f1fec88
      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.
      7f1fec88
  14. 14 Sep, 2017 1 commit
  15. 13 Sep, 2017 1 commit
    • Rafael Kitover's avatar
      restore wx 2.8 compat, improve string processing · 02b3defc
      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.
      02b3defc
  16. 12 Sep, 2017 2 commits
    • Rafael Kitover's avatar
      cmake: wx and cross compiling fixes · fa9afa4e
      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.
      fa9afa4e
    • Rafael Kitover's avatar
      installdeps: fedora fixes, including m32 · 5691ac0c
      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.
      5691ac0c
  17. 10 Sep, 2017 3 commits
  18. 08 Sep, 2017 1 commit
    • Rafael Kitover's avatar
      minor improvements for Wx compile tests · 42f6c446
      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.
      42f6c446
  19. 04 Sep, 2017 1 commit
    • Rafael Kitover's avatar
      improve wx GCC ABI check #142 · ceef480e
      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.
      ceef480e
  20. 03 Sep, 2017 1 commit
    • Rafael Kitover's avatar
      improve Wx GCC ABI check #142 · b1937fe9
      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.
      b1937fe9
  21. 02 Sep, 2017 2 commits
    • Rafael Kitover's avatar
      installdeps: minor refactoring/cleanup · 4b1c9b4e
      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.
      4b1c9b4e
    • Rafael Kitover's avatar
      compile/run test to detect Wx ABI version #142 · 2ad20461
      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.
      2ad20461
  22. 01 Sep, 2017 1 commit
    • Rafael Kitover's avatar
      use -fabi-version=2 for GCC, turn off LTO #142 · 4e665ae0
      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.
      4e665ae0
  23. 31 Aug, 2017 1 commit
    • Rafael Kitover's avatar
      installdeps: use -j$(nproc) not -j8 in info #146 · 1a27f813
      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.
      1a27f813
  24. 30 Aug, 2017 1 commit
  25. 28 Aug, 2017 2 commits