Add support for GTK4 to CMake build too
Closes https://github.com/wxWidgets/wxWidgets/pull/1643
This commit is contained in:
46
build/cmake/modules/FindGTK4.cmake
Normal file
46
build/cmake/modules/FindGTK4.cmake
Normal file
@@ -0,0 +1,46 @@
|
|||||||
|
# - Try to find GTK+ 4
|
||||||
|
# Once done, this will define
|
||||||
|
#
|
||||||
|
# GTK4_FOUND - system has GTK+ 4.
|
||||||
|
# GTK4_INCLUDE_DIRS - the GTK+ 4. include directories
|
||||||
|
# GTK4_LIBRARIES - link these to use GTK+ 4.
|
||||||
|
#
|
||||||
|
# Copyright (C) 2012 Raphael Kubo da Costa <rakuco@webkit.org>
|
||||||
|
# Copyright (C) 2013 Igalia S.L.
|
||||||
|
#
|
||||||
|
# Redistribution and use in source and binary forms, with or without
|
||||||
|
# modification, are permitted provided that the following conditions
|
||||||
|
# are met:
|
||||||
|
# 1. Redistributions of source code must retain the above copyright
|
||||||
|
# notice, this list of conditions and the following disclaimer.
|
||||||
|
# 2. Redistributions in binary form must reproduce the above copyright
|
||||||
|
# notice, this list of conditions and the following disclaimer in the
|
||||||
|
# documentation and/or other materials provided with the distribution.
|
||||||
|
#
|
||||||
|
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDER AND ITS CONTRIBUTORS ``AS
|
||||||
|
# IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
|
||||||
|
# THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
||||||
|
# PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR ITS
|
||||||
|
# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
|
||||||
|
# EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
|
||||||
|
# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
|
||||||
|
# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
|
||||||
|
# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
|
||||||
|
# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
|
||||||
|
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
find_package(PkgConfig)
|
||||||
|
pkg_check_modules(GTK4 QUIET gtk4)
|
||||||
|
set(VERSION_OK TRUE)
|
||||||
|
if (GTK4_VERSION)
|
||||||
|
if (GTK4_FIND_VERSION_EXACT)
|
||||||
|
if (NOT("${GTK4_FIND_VERSION}" VERSION_EQUAL "${GTK4_VERSION}"))
|
||||||
|
set(VERSION_OK FALSE)
|
||||||
|
endif ()
|
||||||
|
else ()
|
||||||
|
if ("${GTK4_VERSION}" VERSION_LESS "${GTK4_FIND_VERSION}")
|
||||||
|
set(VERSION_OK FALSE)
|
||||||
|
endif ()
|
||||||
|
endif ()
|
||||||
|
endif ()
|
||||||
|
include(FindPackageHandleStandardArgs)
|
||||||
|
FIND_PACKAGE_HANDLE_STANDARD_ARGS(GTK4 DEFAULT_MSG GTK4_INCLUDE_DIRS GTK4_LIBRARIES VERSION_OK)
|
@@ -65,10 +65,16 @@ endif()
|
|||||||
|
|
||||||
if(WXGTK)
|
if(WXGTK)
|
||||||
# Add GTK version definitions
|
# Add GTK version definitions
|
||||||
foreach(gtk_version 1.2.7 2.0 2.10 2.18 2.20 3.0)
|
foreach(gtk_version 1.2.7 2.0 2.10 2.18 2.20 3.0 3.90.0)
|
||||||
if(wxTOOLKIT_VERSION VERSION_GREATER gtk_version)
|
if(wxTOOLKIT_VERSION VERSION_GREATER gtk_version)
|
||||||
string(REPLACE . "" gtk_version_dotless ${gtk_version})
|
if(gtk_version EQUAL 3.90.0)
|
||||||
set(__WXGTK${gtk_version_dotless}__ ON)
|
set(__WXGTK4__ ON)
|
||||||
|
elseif(gtk_version EQUAL 3.0)
|
||||||
|
set(__WXGTK3__ ON)
|
||||||
|
else()
|
||||||
|
string(REPLACE . "" gtk_version_dotless ${gtk_version})
|
||||||
|
set(__WXGTK${gtk_version_dotless}__ ON)
|
||||||
|
endif()
|
||||||
endif()
|
endif()
|
||||||
endforeach()
|
endforeach()
|
||||||
endif()
|
endif()
|
||||||
|
@@ -24,11 +24,11 @@ elseif(APPLE AND IPHONE)
|
|||||||
set(wxPLATFORM OSX)
|
set(wxPLATFORM OSX)
|
||||||
elseif(APPLE)
|
elseif(APPLE)
|
||||||
set(wxDEFAULT_TOOLKIT osx_cocoa)
|
set(wxDEFAULT_TOOLKIT osx_cocoa)
|
||||||
set(wxTOOLKIT_OPTIONS osx_cocoa gtk2 gtk3 qt)
|
set(wxTOOLKIT_OPTIONS osx_cocoa gtk2 gtk3 gtk4 qt)
|
||||||
set(wxPLATFORM OSX)
|
set(wxPLATFORM OSX)
|
||||||
elseif(UNIX)
|
elseif(UNIX)
|
||||||
set(wxDEFAULT_TOOLKIT gtk2)
|
set(wxDEFAULT_TOOLKIT gtk2)
|
||||||
set(wxTOOLKIT_OPTIONS gtk2 gtk3 motif qt)
|
set(wxTOOLKIT_OPTIONS gtk2 gtk3 gtk4 motif qt)
|
||||||
set(wxPLATFORM UNIX)
|
set(wxPLATFORM UNIX)
|
||||||
else()
|
else()
|
||||||
message(FATAL_ERROR "Unsupported platform")
|
message(FATAL_ERROR "Unsupported platform")
|
||||||
@@ -72,7 +72,9 @@ if(UNIX AND NOT APPLE AND NOT WIN32)
|
|||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(WXGTK)
|
if(WXGTK)
|
||||||
if(WXGTK3)
|
if(WXGTK4)
|
||||||
|
set(gtk_lib GTK4)
|
||||||
|
elseif(WXGTK3)
|
||||||
set(gtk_lib GTK3)
|
set(gtk_lib GTK3)
|
||||||
elseif(WXGTK2)
|
elseif(WXGTK2)
|
||||||
set(gtk_lib GTK2)
|
set(gtk_lib GTK2)
|
||||||
|
Reference in New Issue
Block a user