Use gtk3 for nativefiledialog

Rational: gtk2 is not maintained anymore and the change was simple.

- Update of nativefiledialog/CMakeLists.txt in order to detect and use
  gtk3
- Updated a few files referencing gtk2, especially:
  - github workflow: I tested that the apt-get update works on ubuntu
    18.03 in a docker container
  - Readme.

This was tested in the following nixpkgs PR: https://github.com/NixOS/nixpkgs/pull/107878
This commit is contained in:
Guillaume Bouchard 2020-12-29 15:06:41 +01:00
parent dfa36e0fa7
commit f30addc70d
3 changed files with 8 additions and 6 deletions

View File

@ -146,7 +146,7 @@ jobs:
shell: bash
run: |
sudo apt-get update
sudo apt-get -y install cmake ninja-build ccache libsdl2-dev libgtk2.0-dev qtbase5-dev qtbase5-dev-tools qtbase5-private-dev qt5-default qttools5-dev
sudo apt-get -y install cmake ninja-build ccache libsdl2-dev libgtk-3-dev qtbase5-dev qtbase5-dev-tools qtbase5-private-dev qt5-default qttools5-dev
- name: Compile build
shell: bash

View File

@ -172,7 +172,8 @@ Requirements:
Requirements (Debian/Ubuntu package names):
- CMake (`cmake`)
- SDL2 (`libsdl2-dev`)
- GTK2.0 for file selector (`libgtk2.0-dev`)
- GTK3.0 for file selector (`libgtk-3-dev`)
- pkgconfig (`pkg-config`)
- Qt 5 (`qtbase5-dev`, `qtbase5-private-dev`, `qtbase5-dev-tools`, `qttools5-dev`)
- Optional for faster building: Ninja (`ninja-build`)

View File

@ -14,12 +14,13 @@ if(WIN32)
elseif(APPLE)
target_sources(nativefiledialog PRIVATE src/nfd_cocoa.m)
else()
find_package(GTK2 2.6 COMPONENTS gtk)
if(GTK2_FOUND)
FIND_PACKAGE(PkgConfig REQUIRED)
PKG_CHECK_MODULES(GTK3 REQUIRED gtk+-3.0)
if(GTK3_FOUND)
message("Using GTK for nativefiledialog")
target_sources(nativefiledialog PRIVATE src/nfd_gtk.c)
target_include_directories(nativefiledialog PRIVATE ${GTK2_INCLUDE_DIRS})
target_link_libraries(nativefiledialog PRIVATE ${GTK2_LIBRARIES})
target_include_directories(nativefiledialog PRIVATE ${GTK3_INCLUDE_DIRS})
target_link_libraries(nativefiledialog PRIVATE ${GTK3_LIBRARIES})
else()
message(WARNING "Unknown platform for nativefiledialog")
endif()