557be7cf1b
* Use XRandR 1.2 to set fullscreen resolution for single output Squash of roothorick's PR #497 (also includes Kyzentun's CMake changes from PR #716) * Cherry-pick json c++1x stuff (b9e3d7174e) * Cherry-pick c++11 support from 5bba5c0038 and 9f8b045309 * rework Linux (X11) fullscreen, improve display-related Graphics Options Implement option to select between monitors for exclusive fullscreen mode on X11 (using XRandR 1.2), or use a fullscreen borderless window. Reimplement resolution/refresh rate/display mode-related option rows using Lua, update choices dynamically so only known-good groupings of resolution/refresh rate/aspect ratio can be selected. Minimally update Windows/MacOS LowLevelWindow implementations to support changes made for Linux side. Fullscreen Borderless Window/multi monitor support from X11 not implemented for those in this commit. * allow forcibly disabling xinerama use on Linux When libXinerama is available, SM tries to use it to find the proper monitor indexes to use to set _NET_WM_FULLSCREEN_MONITORS (on borderless fullscreen). xfwm4 seems to assume that monitors are numbered in increasing order from left to right (rather than using the Xinerama-assigned numbers), so _NET_WM_FULLSCREEN_MONITORS misbehaves on Xfce. This commit bypasses use of libXinerama, and instead forces SM to induce fullscreen on the desired monitor in the backup, hacky way: remove all window hints, move window to desired monitor, then add _NET_WM_STATE_FULLSCREEN hint. This works on mutter and Xfce. * Remove multiple warnings on redundant define. This used to be hard-coded due to pthread related items, but now it's dynamically determined. * fix _fallback menu behavior for unrecognized aspect ratios * Fix error recreating existing FS texture * Bump deployment target to 10.7 to use libc++ on XCode 8 * Add explicit casts to please clang * Update changelog
73 lines
3.6 KiB
CMake
73 lines
3.6 KiB
CMake
# Prep options that are needed for each platform.
|
|
|
|
# This option allows for networking support with StepMania.
|
|
option(WITH_NETWORKING "Build with networking support." ON)
|
|
|
|
# This option quiets warnings that are a part of external projects.
|
|
option(WITH_EXTERNAL_WARNINGS "Build with warnings for all components, not just StepMania." OFF)
|
|
|
|
# This option is not yet working, but will likely default to ON in the future.
|
|
option(WITH_LTO "Build with Link Time Optimization (LTO)/Whole Program Optimization." OFF)
|
|
|
|
# This option handles if we use SSE2 processing.
|
|
option(WITH_SSE2 "Build with SSE2 Optimizations." ON)
|
|
|
|
# This option may go away in the future: if it does, JPEG will always be required.
|
|
option(WITH_JPEG "Build with JPEG Image Support." ON)
|
|
|
|
# Turn this on to set this to a specific release mode.
|
|
option(WITH_FULL_RELEASE "Build as a proper, full release." OFF)
|
|
|
|
# Turn this on to compile tomcrypt with no assembly data. This is a portable mode.
|
|
option(WITH_PORTABLE_TOMCRYPT "Build with assembly/free tomcrypt, making it portable." ON)
|
|
|
|
# Turn this on to not use the ROLC assembly featurs of tomcrypt.
|
|
# If WITH_PORTABLE_TOMCRYPT is ON, this will automatically have no effect.
|
|
option(WITH_NO_ROLC_TOMCRYPT "Build without the ROLC assembly instructions for tomcrypt. (Ignored by Apple builds)" OFF)
|
|
|
|
# Turn this option off to not use the GPL exclusive components.
|
|
option(WITH_GPL_LIBS "Build with GPL libraries." ON)
|
|
|
|
# Turn this option off to disable using WAV files with the game.
|
|
# Note that it is recommended to keep this on.
|
|
option(WITH_WAV "Build with WAV Support." ON)
|
|
|
|
# Turn this option off to disable using MP3 files with the game.
|
|
option(WITH_MP3 "Build with MP3 Support." ON)
|
|
|
|
# Turn this option off to disable using OGG files with the game.
|
|
option(WITH_OGG "Build with OGG/Vorbis Support." ON)
|
|
|
|
# Turn this option on to log every segment added or removed.
|
|
option(WITH_LOGGING_TIMING_DATA "Build with logging all Add and Erase Segment calls." OFF)
|
|
|
|
if(NOT MSVC)
|
|
# Turn this option off to disable using FFMEPG.
|
|
option(WITH_FFMPEG "Build with FFMPEG." ON)
|
|
# Change this number to utilize a different number of jobs for building FFMPEG.
|
|
option(WITH_FFMPEG_JOBS "Build FFMPEG with this many jobs." 2)
|
|
else()
|
|
# Turn this option on to enable using the Texture Font Generator.
|
|
option(WITH_TEXTURE_GENERATOR "Build with the Texture Font Generator. Ensure the MFC library is installed." OFF)
|
|
# Turn this option off to use dynamic linking instead of static linking.
|
|
option(WITH_STATIC_LINKING "Build StepMania with static linking." ON)
|
|
endif()
|
|
|
|
if(WIN32)
|
|
option(WITH_MINIMAID "Build with Minimaid Lights Support." ON)
|
|
# Developer only option: connect to IRC to report the result. Only use with build servers.
|
|
option(WITH_IRC_POST_HOOK "Report via IRC of the success afterwards." OFF)
|
|
elseif(LINUX)
|
|
# Builder beware: later versions of ffmpeg may break!
|
|
option(WITH_SYSTEM_FFMPEG "Build with the system's FFMPEG, disabled build with bundled's FFMPEG" OFF)
|
|
option(WITH_CRYSTALHD_DISABLED "Build FFMPEG without Crystal HD support." OFF)
|
|
option(WITH_MINIMAID "Build with Minimaid Lights Support." ON)
|
|
option(WITH_TTY "Build with Linux TTY Input Support." OFF)
|
|
option(WITH_PROFILING "Build with Profiling Support." OFF)
|
|
option(WITH_GLES2 "Build with OpenGL ES 2.0 Support." ON)
|
|
option(WITH_GTK2 "Build with GTK2 Support." ON)
|
|
option(WITH_PARALLEL_PORT "Build with Parallel Lights I/O Support." OFF)
|
|
option(WITH_CRASH_HANDLER "Build with Crash Handler Support." ON)
|
|
option(WITH_XINERAMA "Build using libXinerama to query for monitor numbers (if available)." ON)
|
|
endif()
|