wxWidgets/build/cmake/main.cmake
Vadim Zeitlin 109ae40aed Merge branch 'cmake-gtk-printing' of https://github.com/MaartenBent/wxWidgets
CMake: Add GTK Printing support.

And show the extra toolkit options in the CMake summary, fix using
libnotify and gnomevfs with gtk3 and fix some unused parameter warnings
when using gtk2 or gtk3 on Windows.

See #22745, #22762.

(cherry picked from commit d9a78be16c95ec9b6877cda93d2446b711cc3d4e)
2022-09-03 23:40:00 +02:00

93 lines
3.2 KiB
CMake

#############################################################################
# Name: build/cmake/main.cmake
# Purpose: Main CMake file
# Author: Tobias Taschner
# Created: 2016-09-20
# Copyright: (c) 2016 wxWidgets development team
# Licence: wxWindows licence
#############################################################################
list(APPEND CMAKE_MODULE_PATH "${wxSOURCE_DIR}/build/cmake/modules")
include(build/cmake/files.cmake) # Files list
include(build/cmake/source_groups.cmake) # Source group definitions
include(build/cmake/functions.cmake) # wxWidgets functions
include(build/cmake/toolkit.cmake) # Platform/toolkit settings
include(build/cmake/options.cmake) # User options
include(build/cmake/init.cmake) # Init various global build vars
include(build/cmake/pch.cmake) # Precompiled header support
add_subdirectory(build/cmake/lib libs)
add_subdirectory(build/cmake/utils utils)
if(wxBUILD_SAMPLES)
add_subdirectory(build/cmake/samples samples)
endif()
if(wxBUILD_TESTS)
enable_testing()
add_subdirectory(build/cmake/tests tests)
endif()
if(wxBUILD_DEMOS)
add_subdirectory(build/cmake/demos demos)
endif()
if(wxBUILD_BENCHMARKS)
add_subdirectory(build/cmake/benchmarks benchmarks)
endif()
if(NOT wxBUILD_CUSTOM_SETUP_HEADER_PATH)
# Write setup.h after all variables are available
include(build/cmake/setup.cmake)
endif()
if(WIN32_MSVC_NAMING)
include(build/cmake/build_cfg.cmake)
endif()
if(NOT MSVC)
# Write wx-config
include(build/cmake/config.cmake)
endif()
# Install target support
include(build/cmake/install.cmake)
# Determine minimum required OS at runtime
set(wxREQUIRED_OS_DESC "${CMAKE_SYSTEM_NAME} ${CMAKE_SYSTEM_PROCESSOR}")
if(MSVC OR MINGW OR CYGWIN)
# Determine based on used toolkit
if(MINGW OR CYGWIN OR (MSVC_VERSION LESS 1700) OR (CMAKE_VS_PLATFORM_TOOLSET MATCHES "_xp$") )
# Visual Studio < 2012 and MinGW always create XP compatible binaries
# XP Toolset is required since VS 2012
set(wxREQUIRED_OS_DESC "Windows XP / Windows Server 2003")
else()
set(wxREQUIRED_OS_DESC "Windows Vista / Windows Server 2008")
endif()
if(CMAKE_SIZEOF_VOID_P EQUAL 8)
wx_string_append(wxREQUIRED_OS_DESC " (x64 Edition)")
endif()
elseif(APPLE AND NOT IPHONE)
if(DEFINED CMAKE_OSX_DEPLOYMENT_TARGET)
set(wxREQUIRED_OS_DESC "macOS ${CMAKE_OSX_DEPLOYMENT_TARGET}")
endif()
endif()
# Print configuration summary
wx_print_thirdparty_library_summary()
if(wxTOOLKIT_EXTRA)
string(REPLACE ";" ", " wxTOOLKIT_DESC "${wxTOOLKIT_EXTRA}")
set(wxTOOLKIT_DESC "with support for: ${wxTOOLKIT_DESC}")
endif()
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} ${wxTOOLKIT_DESC}
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 wxWidgets compatibility level should be used? ${wxBUILD_COMPATIBILITY}"
)