Merge branch 'build_cmake' of https://github.com/TcT2k/wxWidgets
Add CMake-based build system. Merge the original branch without any changes except for resolving the conflict due to moving the contents of .travis.yml to a separate file by propagating the changes done in this file since then to the new script and rerunning ./build/update-setup-h and ./build/cmake/update_files.py to update the file lists changed in the meanwhile. Closes https://github.com/wxWidgets/wxWidgets/pull/330
This commit is contained in:
75
build/cmake/main.cmake
Normal file
75
build/cmake/main.cmake
Normal file
@@ -0,0 +1,75 @@
|
||||
#############################################################################
|
||||
# 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/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/install.cmake) # Install target 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(NOT wxBUILD_CUSTOM_SETUP_HEADER_PATH)
|
||||
# Write setup.h after all variables are available
|
||||
include(build/cmake/setup.cmake)
|
||||
endif()
|
||||
|
||||
if(UNIX)
|
||||
# Write wx-config
|
||||
include(build/cmake/config.cmake)
|
||||
endif()
|
||||
|
||||
# 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_CL_64)
|
||||
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()
|
||||
|
||||
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}
|
||||
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}"
|
||||
)
|
Reference in New Issue
Block a user