CMake: fix and add more options

Don't overwrite options in setup.cmake.
Align text in summary message.

Always set wxUSE_XRC to values of wxUSE_XRC, same as in setup.h.
Disable wxUSE_XRC when expat is disabled.
This commit is contained in:
Maarten Bent
2018-01-27 14:28:23 +01:00
parent 90369e9632
commit e6b9b571ab
4 changed files with 56 additions and 48 deletions

View File

@@ -119,18 +119,24 @@ set(wxUSE_STD_DEFAULT ON)
if(wxUSE_UNICODE)
set(wxUSE_WCHAR_T ON)
endif()
if(wxUSE_EXPAT)
set(wxUSE_XML ON)
else()
set(wxUSE_XML OFF)
if(NOT wxUSE_EXPAT)
set(wxUSE_XRC OFF)
endif()
set(wxUSE_XML ${wxUSE_XRC})
if(wxUSE_CONFIG)
set(wxUSE_CONFIG_NATIVE ON)
endif()
if(DEFINED wxUSE_OLE AND wxUSE_OLE)
set(wxUSE_OLE_AUTOMATION ON)
set(wxUSE_ACTIVEX ON)
endif()
if(DEFINED wxUSE_GRAPHICS_DIRECT2D AND NOT wxUSE_GRAPHICS_CONTEXT)
set(wxUSE_GRAPHICS_DIRECT2D OFF)
endif()
if(wxUSE_OPENGL)
set(wxUSE_GLCANVAS ON)
endif()
if(wxUSE_THREADS)
@@ -138,22 +144,11 @@ if(wxUSE_THREADS)
endif()
if(wxUSE_GUI)
# Constants for GUI
set(wxUSE_COMMON_DIALOGS ON)
if(wxUSE_TASKBARICON)
set(wxUSE_TASKBARICON_BALLOONS ON)
endif()
if(WIN32 AND wxUSE_METAFILE)
# this one should probably be made separately configurable
set(wxUSE_ENH_METAFILE ON)
endif()
if(wxUSE_IMAGE)
set(wxUSE_WXDIB ON)
endif()
if(wxUSE_OPENGL)
find_package(OpenGL)
if(NOT OPENGL_FOUND)

View File

@@ -67,9 +67,9 @@ wx_print_thirdparty_library_summary()
message(STATUS "Configured wxWidgets ${wxVERSION} for ${CMAKE_SYSTEM}
Min OS Version required at runtime: ${wxREQUIRED_OS_DESC}
Which GUI toolkit should wxWidgets use?: ${wxBUILD_TOOLKIT} ${wxTOOLKIT_VERSION}
Which GUI toolkit should wxWidgets use? ${wxBUILD_TOOLKIT} ${wxTOOLKIT_VERSION}
Should wxWidgets be compiled into single library? ${wxBUILD_MONOLITHIC}
Should wxWidgets be linked as a shared library? ${wxBUILD_SHARED}
Should wxWidgets support Unicode? ${wxUSE_UNICODE}
What level of wxWidgets compatibility should be enabled? ${wxBUILD_COMPATIBILITY}"
What wxWidgets compatibility level should be used? ${wxBUILD_COMPATIBILITY}"
)

View File

@@ -47,11 +47,13 @@ wx_dependent_option(wxUSE_STD_CONTAINERS "use standard C++ container classes" OF
wx_option(wxUSE_UNICODE "compile with Unicode support (NOT RECOMMENDED to be turned off)")
if(NOT WIN32)
wx_option(wxUSE_UNICODE_UTF8 "use UTF-8 representation for strings (Unix only)" OFF)
wx_dependent_option(wxUSE_UNICODE_UTF8_LOCALE "only support UTF-8 locales in UTF-8 build (Unix only)" ON "wxUSE_UNICODE_UTF8" OFF)
wx_dependent_option(wxUSE_UTF8_LOCALE_ONLY "only support UTF-8 locales in UTF-8 build (Unix only)" ON "wxUSE_UNICODE_UTF8" OFF)
endif()
wx_option(wxUSE_COMPILER_TLS "enable use of compiler TLS support")
wx_option(wxUSE_VISIBILITY "use of ELF symbols visibility")
wx_option(wxUSE_UNSAFE_WXSTRING_CONV "provide unsafe implicit conversions in wxString to const char* or std::string")
wx_option(wxUSE_REPRODUCIBLE_BUILD "enable reproducable build" OFF)
# ---------------------------------------------------------------------------
# external libraries
@@ -70,10 +72,6 @@ wx_option(wxUSE_INTL "use internationalization system")
wx_option(wxUSE_XLOCALE "use x-locale support (requires wxLocale)")
wx_option(wxUSE_CONFIG "use wxConfig (and derived) classes")
wx_option(wxUSE_PROTOCOL "use wxProtocol and derived classes")
wx_option(wxUSE_PROTOCOL_FTP "use wxFTP (requires wxProtocol")
wx_option(wxUSE_PROTOCOL_HTTP "use wxHTTP (requires wxProtocol")
wx_option(wxUSE_PROTOCOL_FILE "use wxFileProto class (requires wxProtocol")
wx_option(wxUSE_SOCKETS "use socket/network classes")
wx_option(wxUSE_IPV6 "enable IPv6 support in wxSocket")
if(WIN32)
@@ -163,6 +161,7 @@ wx_option(wxUSE_MS_HTML_HELP "use MS HTML Help (win32)")
wx_option(wxUSE_HTML "use wxHTML sub-library")
wx_option(wxUSE_WXHTML_HELP "use wxHTML-based help")
wx_option(wxUSE_XRC "use XRC resources sub-library")
wx_option(wxUSE_XML "use the xml library (overruled by wxUSE_XRC)")
wx_option(wxUSE_AUI "use AUI docking library")
wx_option(wxUSE_PROPGRID "use wxPropertyGrid library")
wx_option(wxUSE_RIBBON "use wxRibbon library")
@@ -170,16 +169,19 @@ wx_option(wxUSE_STC "use wxStyledTextCtrl library")
wx_option(wxUSE_CONSTRAINTS "use layout-constraints system")
wx_option(wxUSE_LOGGUI "use standard GUI logger")
wx_option(wxUSE_LOGWINDOW "use wxLogWindow")
wx_option(wxUSE_LOGDIALOG "use wxLogDialog")
wx_option(wxUSE_LOG_DIALOG "use wxLogDialog")
wx_option(wxUSE_MDI "use multiple document interface architecture")
wx_option(wxUSE_MDI_ARCHITECTURE "use docview architecture with MDI")
wx_option(wxUSE_MEDIACTRL "use wxMediaCtrl class")
wx_option(wxUSE_RICHTEXT "use wxRichTextCtrl")
wx_option(wxUSE_POSTSCRIPT "use wxPostscriptDC device context (default for gtk+)")
wx_option(wxUSE_AFM_FOR_POSTSCRIPT "in wxPostScriptDC class use AFM (adobe font metrics) file for character widths")
wx_option(wxUSE_PRINTING_ARCHITECTURE "use printing architecture")
wx_option(wxUSE_SVG "use wxSVGFileDC device context")
wx_option(wxUSE_WEBKIT "use wxWebKitCtrl (Mac-only, use wxWebView instead)")
wx_option(wxUSE_WEBVIEW "use wxWebView library")
if(APPLE)
wx_option(wxUSE_WEBKIT "use wxWebKitCtrl (Mac-only, use wxWebView instead)")
endif()
# wxDC is implemented in terms of wxGraphicsContext in wxOSX so the latter
# can't be disabled, don't even provide an option to do it
@@ -187,8 +189,18 @@ if(APPLE)
set(wxUSE_GRAPHICS_CONTEXT ON)
else()
wx_option(wxUSE_GRAPHICS_CONTEXT "use graphics context 2D drawing API")
if (WIN32 AND (NOT MSVC OR MSVC_VERSION LESS 1600))
wx_option(wxUSE_GRAPHICS_DIRECT2D "enable Direct2D graphics context" OFF)
endif()
endif()
if(WXGTK)
set(wxUSE_CAIRO_DEFAULT ON)
else()
set(wxUSE_CAIRO_DEFAULT OFF)
endif()
wx_option(wxUSE_CAIRO "enable Cairo graphics context" ${wxUSE_CAIRO_DEFAULT})
# ---------------------------------------------------------------------------
# IPC &c
# ---------------------------------------------------------------------------
@@ -291,7 +303,7 @@ wx_option(wxUSE_TREELISTCTRL "use wxTreeListCtrl class")
# common dialogs
# ---------------------------------------------------------------------------
wx_option(wxUSE_COMMONDLGS "use all common dialogs")
wx_option(wxUSE_COMMON_DIALOGS "use all common dialogs")
wx_option(wxUSE_ABOUTDLG "use wxAboutBox")
wx_option(wxUSE_CHOICEDLG "use wxChoiceDialog")
wx_option(wxUSE_COLOURDLG "use wxColourDialog")
@@ -323,11 +335,18 @@ wx_option(wxUSE_JOYSTICK "use wxJoystick")
wx_option(wxUSE_METAFILE "use wxMetaFile")
wx_option(wxUSE_DRAGIMAGE "use wxDragImage")
if(WIN32)
wx_option(wxUSE_ACCESSIBILITY "enable accessibility support" ON)
wx_option(wxUSE_ACCESSIBILITY "enable accessibility support")
endif()
wx_option(wxUSE_UIACTIONSIMULATOR "use wxUIActionSimulator (experimental)")
wx_option(wxUSE_DC_TRANSFORM_MATRIX "use wxDC::SetTransformMatrix and related")
wx_option(wxUSE_WEBVIEW_WEBKIT "use wxWebView WebKit backend")
# TODO: wxUSE_WEBVIEW_WEBKIT2
if(WIN32 OR APPLE)
set(wxUSE_PRIVATE_FONTS_DEFAULT ON)
else()
set(wxUSE_PRIVATE_FONTS_DEFAULT OFF)
endif()
wx_option(wxUSE_PRIVATE_FONTS "use fonts not installed on the system" ${wxUSE_PRIVATE_FONTS_DEFAULT})
# ---------------------------------------------------------------------------
# support for image formats that do not rely on external library
@@ -341,19 +360,31 @@ wx_option(wxUSE_TGA "use tga images (TGA file format)")
wx_option(wxUSE_IFF "use iff images (IFF file format)")
wx_option(wxUSE_PNM "use pnm images (PNM file format)")
wx_option(wxUSE_XPM "use xpm images (XPM file format)")
wx_option(wxUSE_ICO_CUR "_cur use Windows ICO and CUR formats")
wx_option(wxUSE_ICO_CUR "use Windows ICO and CUR formats")
# ---------------------------------------------------------------------------
# wxMSW-only options
# ---------------------------------------------------------------------------
if(WIN32)
wx_option(wxUSE_ACTIVEX " enable wxActiveXContainer class (Win32 only)")
wx_option(wxUSE_CRASHREPORT "enable wxCrashReport::Generate() to create mini dumps (Win32 only)")
wx_option(wxUSE_DC_CACHEING "cache temporary wxDC objects (Win32 only)")
wx_option(wxUSE_POSTSCRIPT_ARCHITECTURE_IN_MSW "use PS printing in wxMSW (Win32 only)")
wx_option(wxUSE_NATIVE_PROGRESSDLG "use native progress dialog implementation")
wx_option(wxUSE_NATIVE_STATUSBAR "use native statusbar implementation)")
wx_option(wxUSE_OWNER_DRAWN "use owner drawn controls (Win32)")
wx_option(wxUSE_POSTSCRIPT_ARCHITECTURE_IN_MSW "use PS printing in wxMSW (Win32 only)")
wx_option(wxUSE_TASKBARICON_BALLOONS "enable wxTaskBarIcon::ShowBalloon() method (Win32 only)")
wx_option(wxUSE_UXTHEME "enable support for Windows XP themed look (Win32 only)")
wx_option(wxUSE_DIB "use wxDIB class (Win32 only)")
wx_option(wxUSE_WEBVIEW_IE "use wxWebView IE backend (Win32 only)")
wx_option(wxUSE_WXDIB "use wxDIB class (Win32 only)")
if(MSVC_VERSION GREATER 1600 AND NOT CMAKE_VS_PLATFORM_TOOLSET MATCHES "_xp$")
set(wxUSE_WINRT_DEFAULT ON)
else()
set(wxUSE_WINRT_DEFAULT OFF)
endif()
wx_option(wxUSE_WINRT "enable WinRT support" ${wxUSE_WINRT_DEFAULT})
endif()
# this one is not really MSW-specific but it exists mainly to be turned off

View File

@@ -471,24 +471,6 @@ endif() # CMAKE_USE_PTHREADS_INIT
check_symbol_exists(localtime_r time.h HAVE_LOCALTIME_R)
check_symbol_exists(gmtime_r time.h HAVE_GMTIME_R)
if(WXMSW)
set(wxUSE_WEBVIEW_IE ON)
elseif(WXGTK OR APPLE)
set(wxUSE_WEBVIEW_WEBKIT ON)
endif()
if(MSVC)
set(wxUSE_GRAPHICS_CONTEXT ON)
endif()
if(MSVC_VERSION GREATER 1600 AND NOT CMAKE_VS_PLATFORM_TOOLSET MATCHES "_xp$")
set(wxUSE_WINRT ON)
endif()
if(wxUSE_OPENGL)
set(wxUSE_GLCANVAS ON)
endif()
# ---------------------------------------------------------------------------
# Checks for typedefs
# ---------------------------------------------------------------------------