Use find_program() to check for the existance of wx-config-gtk4, then
wx-config-gtk3 and finally wx-config, instead of calling find_package()
for each separately, FindwxWidgets module does not like being called
multiple times, it screws up some cache variables.
unset(VAR PARENT_SCOPE CACHE FORCE)
seemed to work on my version of cmake on gentoo, but does not work on
other versions.
Rewrite the function as a macro and use the syntax:
unset(VAR CACHE)
instead.
Don't eselect the wxwidgets installation for gentoo because the user may
have their own preferred version and the default should be set correctly
for the only installation.
Clear FindwxWidgets module variables from the cache after each
unsuccessful try with WX_CONFIG_EXECUTABLE set, otherwise the succeeding
find_package(wxWidgets) call with WX_CONFIG_EXECUTABLE unset will fail,
as it does with cmake on gentoo.
Replace fontconfig gperf bug workaround patch with the one worked out in
the upstream bugzilla report.
Bump wxWidgets version up to current sha to fix an incompatibility with
mingw.
Bump freetype2 and fontconfig versions.
Add patch to fix a gperf bug that causes an error in the fontconfig
build to fontconfig (.gperf file must not have blank lines.)
Add -lintl -liconv to extra libs for fontconfig.
Remove usage of RETRO_MEMORY_RTC - not required since real-time clock is always updated and is using current time and not ingame time.
Add some more rom info to logs during loading
Gb,gbc and sgb enhanced version of roms and savestates working. Bios loading for gb/gbc works too. No save ram / battery handling yet.
Fix offset and pitch issues with vba rendering and when borders are enabled.
Some people are reporting stuttering, and @retro-wertz tested both
DrawArea() and Refresh() on wxgtk3 under xorg and found that the
Refresh() method produces more stuttering.
Change the compile check for wxgtk2 to a runtime check for wayland, and
use Refresh() under Wayland only.
Update mingw cmake toolchain files to work-around a bug in cmake where
find_program() would return the current working directory instead of the
executable path if CMAKE_C_COMPILER and related are passed on the
command line.
Fix $CC/$CC_ORIG and $CXX/$CXX_ORIG handling for the core and
mingw-cross (_ORIG is without ccache.)
ccache can apparently cause issues when building openssl, as I've
noticed on Mac OS 10.13, save the original values of $CC and $CXX and
pass them to make when building openssl.
For the most part, save types should now be identified during rom loading and then allow libretro to correctly use flash or eeprom save types and save size.
Make mac builder use -m32 in CFLAGS etc. to produce a 32 bit binary
targetting 10.7 (Lion.) This provides the greatest backward
compatibility for older macs, and also allows for asm filters.
Fix an issue with m4 on 10.13 using a patch from macports.
Support `-pX` patch level args in DIST_PATCHES in builder.
Fix an issue with bison on 10.13 by bumping the version to 3.0.5.
Build libxslt `--without-crypto` so that it doesn't try to link the brew
libgcrypt.
Invoke cmake for dists with -DCMAKE_C_COMPILER_LAUNCHER=ccache and
-DCMAKE_CXX_COMPILER_LAUNCHER=ccache to use ccache, and set
CMAKE_C_COMPILER and CMAKE_CXX_COMPILER to the actual compilers not
prefixed by ccache.
When checking for ccache in vbam cmake code, check that
CMAKE_CXX_COMPILER_LAUNCHER and CMAKE_C_COMPILER_LAUNCHER were not
already defined (generally on the command line.)
Remove align attributes from sections in 2xSaImmx.asm, macho format on
mac does not support this and the filter works fine without them.
In the Quartz2D renderer, pass the NSRect view.bounds through
NSRectToCGRect when calling CGContextDrawImage(), this is necessary for
the 32 bit API.
Bump openssl to 1.0.2o.
Bump libxml2 to 2.9.8.
Update URL for urw fonts, and improve the dist downloading/unpacking
code to handle URLs that do not contain the filename (for .tar.gz and
.zip as identified by `file`.)
Change post-build for harfbuzz from `rebuild_dist freetype;` to
`rebuild_dist freetype --with-harfbuzz=yes;` as it was supposed to have
been.
Build cmake itself with --parallel and --enable-ccache.
Silence errors from killed jobs due to tmp directory being gone.
Write a couple of string functions, rtrim() and gsub().
Make path_exists() handle globs with spaces in them, by escaping the
space.
Use --host and --build args to autoconf configure to "cross-compile" for
32 bits, this is necessary for some dists, and does not work for others,
remove it for dists where it does not work.
Add COMMAND_MODE=unix2003 to the build environment, this is necessary to
fix some build errors, why I have no clue, found it on stackoverflow.
Pass -Wl,-no_compact_unwind in LDFLAGS to openssl, this is necessary for
32 bits.
Force sfml to compile as 32 bit, it normally does not allow this.
Remove shared-mime-info from this build, it's not necessary for anything
and there are issues XML::Parser linked to our expat and brew perl that
need to be resolved.
Implement the recommendations described in issue #255 by @zzazzdzz:
- Check bounds when reading ELF program header sections.
- Skip reading ELF section headers if the string table pointer is NULL.
- Increase the buffer size for dissassembled instructions in the
dissassembly view and pass the buffer size to the disArm() and
disThumb() functions so that rudimentary bounds checking can be done.
Also add the constants WORK_RAM_SIZE and ROM_SIZE to reduce incidence of
magic numbers and make the code a bit cleaner.
Move the `cache: directories: "$HOME/.ccache"` key from the top of the
file into each specific job, otherwise it does not seem to have an
effect as a global option.
Use a matrix of 4 jobs, linux (ubuntu trusty), mingw i686, mingw x86-64
and mac.
Automatically detect ccache in the cmake config and cache the
`~/.ccache` directory for faster rebuilds.
Instructions for ccache in cmake are here:
https://stackoverflow.com/a/24305849
Change build status badge in README.md to Travis.