* macOS build fixes (#1773)
* macOS build fixes
Add missing headers
Threads_Pthreads: do not call pthread_setname_np() on macOS as it does not do
the same as on Linux
DebugStr() -> os_log()
* Make the project build with Makefiles on macOS
* Fix getting modifier key state on Mac (#1774)
We really need to clean up all Carbon calls here (many will go away when the
project switches to SDL2 for all platforms)
* Fix Xcode build; bump minimum version of macOS (#1775)
* Build fixes for the "Unix Makefiles" generator
Pass CMAKE_BUILD_TYPE to the external projects
* Fix indent
* Fix setting CFBundleExecutable value
* Improve handling of system libpng
Header mismatch can cause a crash, so force the non-system png.h
if WITH_SYSTEM_PNG=no
* Better handling of TRUE/FALSE with newer versions of jpeglib
* Add JPEG include directory
* `set_target_properties` can have multiple properties assigned in one go.
* Have version information be generated from CMake, not later plist preprocessing.
* Configure the plist file regardless of OS. This should be a safe command: following the example from the knut repository.
The old fashioned Info-StepMania.plist file can be considered deprecated
upon a full migration to CMake.
tl-dr: view the Build directory to see.
This is intended to replace the project files that we presently maintain
so that only a single set is needed instead of multiples.
The following setups were used for testing:
* Windows 8 and Visual Studio 2013 Desktop Express
* Windows 7 and Visual Studio 2012
* Mac OS X Mavericks and Xcode
* Ubuntu and makefiles
* Fedora 21 and makefiles
All three operating systems can generate projects, compile, link, and
run. Windows and Mac OS X users will find their compiled binary in the
same location as before, but Linux users will be surprised: it goes
straight into the root directory, along with a symlinked GtkModules.so
as appropriate. There is no more need for a manual symlinking step.
Known issues:
* At this time, MinGW likely does not work. Extra time will be needed.
* The WITH_JPEG option may go away, and we'll just always require it.
* Some linux libraries can use the system equivalents, but that is not up yet.
For more information, check out the Build directory.
ProductInfo.h used to contain both Family and Version information. This is no longer the case.
Family (StepMania) is now grabbed out of ProductInfo.h, and
Version (5.0.x) is now grabbed out of ver.h
project:
- Mac OS X 10.6 SDK is used.
- Architecture has been set to 32-bit. Otherwise, `MemoryCardDriverThreaded_MacOSX` and `HIDDevice` will not compile.
- Replaced the outdated `README` file with a new `README.md`.
libmad:
- Use FPM_64BIT instead of FPM_INTEL. Otherwise, it will not compile. Also, latest Xcode seems not to support `$(...)` expansion in defining macros. Instead, they are hardcoded in the build settings.
stepmania:
- Removed compiler flags `-finline-limit` and `-falign-loops=16`
This commit does a few things:
1. includes a new mkrelease script for OS X devs to bundle releases with
2. removes the old Perl scripts that sort of accomplished the same task
3. includes a README documenting how to use the new script
The old scripts were brittle and inefficient.
The new script is written in Ruby because it is what I'm familiar with and because OS X has shipped with Ruby since version 10.5.0.
project:
- Mac OS X 10.6 SDK is used.
- Architecture has been set to 32-bit. Otherwise, `MemoryCardDriverThreaded_MacOSX` and `HIDDevice` will not compile.
- Replaced the outdated `README` file with a new `README.md`.
libmad:
- Use FPM_64BIT instead of FPM_INTEL. Otherwise, it will not compile. Also, latest Xcode seems not to support `$(...)` expansion in defining macros. Instead, they are hardcoded in the build settings.
stepmania:
- Removed compiler flags `-finline-limit` and `-falign-loops=16`
This commit does a few things:
1. includes a new mkrelease script for OS X devs to bundle releases with
2. removes the old Perl scripts that sort of accomplished the same task
3. includes a README documenting how to use the new script
The old scripts were brittle and inefficient.
The new script is written in Ruby because it is what I'm familiar with and because OS X has shipped with Ruby since version 10.5.0.