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
41 lines
1.1 KiB
CMake
41 lines
1.1 KiB
CMake
list(APPEND JSON_SRC
|
|
"jsoncpp/src/lib_json/json_reader.cpp"
|
|
"jsoncpp/src/lib_json/json_value.cpp"
|
|
"jsoncpp/src/lib_json/json_writer.cpp"
|
|
)
|
|
|
|
list(APPEND JSON_HPP
|
|
"jsoncpp/include/json/config.h"
|
|
"jsoncpp/include/json/features.h"
|
|
"jsoncpp/include/json/forwards.h"
|
|
"jsoncpp/include/json/json.h"
|
|
"jsoncpp/include/json/reader.h"
|
|
"jsoncpp/include/json/value.h"
|
|
"jsoncpp/include/json/writer.h"
|
|
)
|
|
|
|
source_group("" FILES ${JSON_SRC} ${JSON_HPP})
|
|
|
|
add_library("jsoncpp" STATIC ${JSON_SRC} ${JSON_HPP})
|
|
|
|
set_property(TARGET "jsoncpp" PROPERTY FOLDER "External Libraries")
|
|
|
|
disable_project_warnings("jsoncpp")
|
|
|
|
target_include_directories("jsoncpp" PUBLIC "jsoncpp/include")
|
|
|
|
if(MSVC)
|
|
sm_add_compile_definition("jsoncpp" _CRT_SECURE_NO_WARNINGS)
|
|
elseif(APPLE)
|
|
set_target_properties("jsoncpp" PROPERTIES
|
|
XCODE_ATTRIBUTE_CLANG_CXX_LANGUAGE_STANDARD "gnu++14"
|
|
XCODE_ATTRIBUTE_CLANG_CXX_LIBRARY "libc++"
|
|
)
|
|
else() # Unix/Linux
|
|
sm_add_compile_flag("jsoncpp" "-std=gnu++11")
|
|
if (CMAKE_CXX_COMPILER MATCHES "clang")
|
|
sm_add_compile_flag("jsoncpp" "-stdlib=libc++")
|
|
endif()
|
|
endif()
|
|
|