diff --git a/ports/gtk3/CMakeLists.txt b/ports/gtk3/CMakeLists.txt new file mode 100644 index 00000000000000..b2846f3dadcc8c --- /dev/null +++ b/ports/gtk3/CMakeLists.txt @@ -0,0 +1,184 @@ +cmake_minimum_required(VERSION 3.0) +project(gtk+ C) + +configure_file(config.h.win32 ${CMAKE_CURRENT_SOURCE_DIR}/config.h COPYONLY) +configure_file(gdk/gdkconfig.h.win32_broadway ${CMAKE_CURRENT_SOURCE_DIR}/gdk/gdkconfig.h COPYONLY) + +set(GLIB_LIB_SUFFIX 2.0) +set(PANGO_LIB_SUFFIX 1.0) +set(ATK_LIB_SUFFIX 1.0) +set(GDK_PIXBUF_LIB_SUFFIX 2.0) +if(CMAKE_BUILD_TYPE STREQUAL Debug) + set(CAIRO_LIB_SUFFIX d) +endif() + +if (WIN32) + # Set utf-8 charset to avoid compile error C2001 + set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /utf-8") +endif() + +# find dependencies +# glib +find_path(GLIB_INCLUDE_DIR NAMES glib.h PATH_SUFFIXES glib-${GLIB_LIB_SUFFIX}) +find_path(GLIBCONFIG_INCLUDE_DIR NAMES glibconfig.h HINTS ${CMAKE_PREFIX_PATH}/lib ${CMAKE_PREFIX_PATH}/debug/lib PATH_SUFFIXES glib-${GLIB_LIB_SUFFIX} glib-${GLIB_LIB_SUFFIX}/include) +find_library(GLIB_GLIB_LIBRARY glib-${GLIB_LIB_SUFFIX}) +find_library(GLIB_GIO_LIBRARY gio-${GLIB_LIB_SUFFIX}) +find_library(GLIB_GMODULE_LIBRARY gmodule-${GLIB_LIB_SUFFIX}) +find_library(GLIB_GOBJECT_LIBRARY gobject-${GLIB_LIB_SUFFIX}) +set(GLIB_LIBRARIES ${GLIB_GLIB_LIBRARY} ${GLIB_GIO_LIBRARY} ${GLIB_GMODULE_LIBRARY} ${GLIB_GOBJECT_LIBRARY}) + + +# pango +find_path(PANGO_INCLUDE_DIR NAMES pango/pango.h PATH_SUFFIXES pango-${PANGO_LIB_SUFFIX}) +find_path(HB_INCLUDE_DIR NAMES hb.h PATH_SUFFIXES harfbuzz) +find_library(PANGO_LIBRARY pango-${PANGO_LIB_SUFFIX}) +find_library(PANGO_CAIRO_LIBRARY NAMES pangocairo-${PANGO_LIB_SUFFIX} pangowin32-${PANGO_LIB_SUFFIX}) +set(PANGO_LIBRARIES ${PANGO_LIBRARY} ${PANGO_CAIRO_LIBRARY}) +# cairo +find_library(CAIRO_LIBRARY cairo) +find_library(CAIRO_GOBJECT_LIBRARY cairo-gobject) +set(CAIRO_LIBRARIES ${CAIRO_LIBRARY} ${CAIRO_GOBJECT_LIBRARY}) +find_path(CAIRO_INCLUDE_DIR NAMES cairo.h PATH_SUFFIXES cairo) + +# atk +find_path(ATK_INCLUDE_DIR NAMES atk/atk.h PATH_SUFFIXES atk-${ATK_LIB_SUFFIX}) +find_library(ATK_LIBRARY atk-${ATK_LIB_SUFFIX}) + +# gdk-pixbuf +find_path(GDK_PIXBUF_INCLUDE_DIR NAMES gdk-pixbuf/gdk-pixbuf.h PATH_SUFFIXES gdk-pixbuf-${GDK_PIXBUF_LIB_SUFFIX}) +find_library(GDK_PIXBUF_LIBRARY gdk_pixbuf-${GDK_PIXBUF_LIB_SUFFIX}) + +# epoxy +find_path(EPOXY_INCLUDE_DIR epoxy/common.h) +find_library(EPOXY_LIBRARY epoxy) + +# gettext +find_path(LIBINTL_INCLUDE_DIR libintl.h) +message(STATUS "Found libintl.h in ${LIBINTL_INCLUDE_DIR}") +# find_library(LIBINTL_LIBRARY NAMES intl libintl preloadable_libintl HINTS /user/lib) + +set(GTK_REQUIRED_LIBRARIES + ${LIBINTL_LIBRARY} + ${EPOXY_LIBRARY} + ${GLIB_LIBRARIES} + ${CAIRO_LIBRARIES} + ${PANGO_LIBRARIES} + ${GDK_PIXBUF_LIBRARY} + ${ATK_LIBRARY} +) + +set(GTK_REQUIRED_INCLUDE_DIR + ${LIBINTL_INCLUDE_DIR} + ${EPOXY_INCLUDE_DIR} + ${GLIB_INCLUDE_DIR} + ${GLIBCONFIG_INCLUDE_DIR} + ${GDK_PIXBUF_INCLUDE_DIR} + ${CAIRO_INCLUDE_DIR} + ${PANGO_INCLUDE_DIR} + ${HB_INCLUDE_DIR} + ${ATK_INCLUDE_DIR} +) + +# defines expected by all modules +add_definitions( + -DHAVE_CONFIG_H + -DG_DISABLE_SINGLE_INCLUDES + -DATK_DISABLE_SINGLE_INCLUDES + -DGDK_PIXBUF_DISABLE_SINGLE_INCLUDES + -DGTK_DISABLE_SINGLE_INCLUDES + -D_USE_MATH_DEFINES) + +add_definitions(-DG_ENABLE_DEBUG) +if(CMAKE_BUILD_TYPE STREQUAL Debug) + add_definitions(-DG_ENABLE_CONSISTENCY_CHECKS) +else() + add_definitions(-DG_DISABLE_CAST_CHECKS) +endif() + +macro(extract_vcproj_sources VC_PROJECT OUT_VAR) + file(READ ${VC_PROJECT} ${VC_PROJECT}-CONTENTS) + STRING(REPLACE "\n" ";" ${VC_PROJECT}-CONTENTS "${${VC_PROJECT}-CONTENTS}") # split by lines + foreach(LINE ${${VC_PROJECT}-CONTENTS}) + if(LINE MATCHES "") + string(REPLACE "" "" LINE ${LINE}) + string(STRIP ${LINE} LINE) + file(TO_CMAKE_PATH ${LINE} LINE) + list(APPEND ${OUT_VAR} ${LINE}) + endif() + endforeach() +endmacro() + +# build 'win32' gdk backend +extract_vcproj_sources(build/win32/vs14/gdk3-win32.vcxproj GDK_WIN32_SOURCES) +add_library(gdk-3-win32 STATIC ${GDK_WIN32_SOURCES}) +target_compile_definitions(gdk-3-win32 PRIVATE + GDK_COMPILATION G_LOG_DOMAIN="Gdk" INSIDE_GDK_WIN32) +target_include_directories(gdk-3-win32 PRIVATE . ./gdk ./gdk/win32 ${GTK_REQUIRED_INCLUDE_DIR}) + +# build 'broadway' gdk backend +extract_vcproj_sources(build/win32/vs14/gdk3-broadway.vcxproj GDK_BROADWAY_SOURCES) +add_library(gdk-3-broadway STATIC ${GDK_BROADWAY_SOURCES}) +target_compile_definitions(gdk-3-broadway PRIVATE + GDK_COMPILATION G_LOG_DOMAIN="Gdk") +target_include_directories(gdk-3-broadway PRIVATE . ./gdk ./gdk/broadway ${GTK_REQUIRED_INCLUDE_DIR}) + +macro(gtk_add_module MODULE_NAME) + add_library(${MODULE_NAME} ${ARGN}) + target_include_directories(${MODULE_NAME} PRIVATE . ./gdk ./gtk ${GTK_REQUIRED_INCLUDE_DIR}) + target_link_libraries(${MODULE_NAME} ${GTK_REQUIRED_LIBRARIES}) + set_target_properties(${MODULE_NAME} PROPERTIES + ARCHIVE_OUTPUT_NAME ${MODULE_NAME}.0) + install(TARGETS ${MODULE_NAME} RUNTIME DESTINATION bin ARCHIVE DESTINATION lib LIBRARY DESTINATION lib) +endmacro() + +extract_vcproj_sources(build/win32/vs14/gdk-3.vcxproj GDK_SOURCES) +gtk_add_module(gdk-3 ${GDK_SOURCES}) +target_compile_definitions(gdk-3 PRIVATE GDK_COMPILATION) +target_include_directories(gdk-3 PRIVATE ./gdk/win32 ./gdk/broadway) +target_link_libraries(gdk-3 gdk-3-win32 gdk-3-broadway winmm dwmapi setupapi imm32 ws2_32) + +extract_vcproj_sources(build/win32/vs14/gtk-3.vcxproj GTK_SOURCES) +set_source_files_properties(gtk/inspector/visual.c PROPERTIES COMPILE_FLAGS "/FImath.h") +gtk_add_module(gtk-3 ${GTK_SOURCES}) +target_compile_definitions(gtk-3 PRIVATE + GTK_COMPILATION + G_LOG_DOMAIN="Gtk" + GTK_HOST="i686-pc" + GTK_PRINT_BACKENDS="file" + GTK_PRINT_BACKEND_ENABLE_UNSUPPORTED + INCLUDE_IM_am_et + INCLUDE_IM_cedilla + INCLUDE_IM_cyrillic_translit + INCLUDE_IM_ime + INCLUDE_IM_inuktitut + INCLUDE_IM_ipa + INCLUDE_IM_multipress + INCLUDE_IM_thai + INCLUDE_IM_ti_er + INCLUDE_IM_ti_et + INCLUDE_IM_viqr + GTK_LIBDIR="/dummy/lib" + GTK_DATADIR="/dummy/share" + GTK_DATA_PREFIX="/dummy" + GTK_SYSCONFDIR="/dummy/etc" + MULTIPRESS_CONFDIR="/dummy/etc/gtk-3.0" + MULTIPRESS_LOCALEDIR="/dummy/share/locale" + GTK_VERSION="${GTK_VERSION}/etc" + GTK_BINARY_VERSION="3.0.0/etc" + GDK_DISABLE_DEPRECATED + ISOLATION_AWARE_ENABLED) +target_link_libraries(gtk-3 gdk-3 winspool comctl32 imm32) +target_compile_options(gtk-3 PRIVATE "/wd4828" PRIVATE "/wd4244" PRIVATE "/wd4305" PRIVATE "/wd4018") + +extract_vcproj_sources(build/win32/vs14/gailutil-3.vcxproj GAILUTIL_SOURCES) +gtk_add_module(gailutil-3 ${GAILUTIL_SOURCES}) +target_compile_definitions(gailutil-3 PRIVATE GTK_DISABLE_DEPRECATED GDK_DISABLE_DEPRECATED) +target_link_libraries(gailutil-3 gtk-3 gdk-3) +set_target_properties(gailutil-3 PROPERTIES + LINK_FLAGS \"/DEF:${CMAKE_CURRENT_SOURCE_DIR}/libgail-util/gailutil.def\") + +if(NOT GTK_SKIP_HEADERS) + set(CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmake) + include(install_headers) +endif() diff --git a/ports/gtk3/cmake/install_headers.cmake b/ports/gtk3/cmake/install_headers.cmake new file mode 100644 index 00000000000000..ca2a273e44473e --- /dev/null +++ b/ports/gtk3/cmake/install_headers.cmake @@ -0,0 +1,376 @@ +install(FILES gdk/win32/gdkwin32.h DESTINATION include/gdk) +install(FILES gdk/gdk.h DESTINATION include/gdk) +install(FILES gdk/gdk-autocleanup.h DESTINATION include/gdk) +install(FILES gdk/gdkapplaunchcontext.h DESTINATION include/gdk) +install(FILES gdk/gdkcairo.h DESTINATION include/gdk) +install(FILES gdk/gdkcursor.h DESTINATION include/gdk) +install(FILES gdk/gdkdevice.h DESTINATION include/gdk) +install(FILES gdk/gdkdevicepad.h DESTINATION include/gdk) +install(FILES gdk/gdkdevicetool.h DESTINATION include/gdk) +install(FILES gdk/gdkdevicemanager.h DESTINATION include/gdk) +install(FILES gdk/gdkdisplay.h DESTINATION include/gdk) +install(FILES gdk/gdkdisplaymanager.h DESTINATION include/gdk) +install(FILES gdk/gdkdnd.h DESTINATION include/gdk) +install(FILES gdk/gdkdrawingcontext.h DESTINATION include/gdk) +install(FILES gdk/gdkevents.h DESTINATION include/gdk) +install(FILES gdk/gdkframetimings.h DESTINATION include/gdk) +install(FILES gdk/gdkglcontext.h DESTINATION include/gdk) +install(FILES gdk/gdkkeys.h DESTINATION include/gdk) +install(FILES gdk/gdkkeysyms.h DESTINATION include/gdk) +install(FILES gdk/gdkkeysyms-compat.h DESTINATION include/gdk) +install(FILES gdk/gdkmain.h DESTINATION include/gdk) +install(FILES gdk/gdkmonitor.h DESTINATION include/gdk) +install(FILES gdk/gdkpango.h DESTINATION include/gdk) +install(FILES gdk/gdkframeclock.h DESTINATION include/gdk) +install(FILES gdk/gdkpixbuf.h DESTINATION include/gdk) +install(FILES gdk/gdkprivate.h DESTINATION include/gdk) +install(FILES gdk/gdkproperty.h DESTINATION include/gdk) +install(FILES gdk/gdkrectangle.h DESTINATION include/gdk) +install(FILES gdk/gdkrgba.h DESTINATION include/gdk) +install(FILES gdk/gdkscreen.h DESTINATION include/gdk) +install(FILES gdk/gdkseat.h DESTINATION include/gdk) +install(FILES gdk/gdkselection.h DESTINATION include/gdk) +install(FILES gdk/gdktestutils.h DESTINATION include/gdk) +install(FILES gdk/gdkthreads.h DESTINATION include/gdk) +install(FILES gdk/gdktypes.h DESTINATION include/gdk) +install(FILES gdk/gdkvisual.h DESTINATION include/gdk) +install(FILES gdk/gdkwindow.h DESTINATION include/gdk) +install(FILES gdk/deprecated/gdkcolor.h DESTINATION include/gdk/deprecated) +install(FILES gdk/gdkconfig.h DESTINATION include/gdk) +install(FILES gdk/gdkenumtypes.h DESTINATION include/gdk) +install(FILES gdk/gdkversionmacros.h DESTINATION include/gdk) +install(FILES gdk/win32/gdkwin32cursor.h DESTINATION include/gdk/win32) +install(FILES gdk/win32/gdkwin32display.h DESTINATION include/gdk/win32) +install(FILES gdk/win32/gdkwin32displaymanager.h DESTINATION include/gdk/win32) +install(FILES gdk/win32/gdkwin32dnd.h DESTINATION include/gdk/win32) +install(FILES gdk/win32/gdkwin32glcontext.h DESTINATION include/gdk/win32) +install(FILES gdk/win32/gdkwin32keys.h DESTINATION include/gdk/win32) +install(FILES gdk/win32/gdkwin32misc.h DESTINATION include/gdk/win32) +install(FILES gdk/win32/gdkwin32monitor.h DESTINATION include/gdk/win32) +install(FILES gdk/win32/gdkwin32screen.h DESTINATION include/gdk/win32) +install(FILES gdk/win32/gdkwin32window.h DESTINATION include/gdk/win32) +install(FILES gtk/gtk.h DESTINATION include/gtk) +install(FILES gtk/gtk-autocleanups.h DESTINATION include/gtk) +install(FILES gtk/gtkx.h DESTINATION include/gtk) +install(FILES gtk/gtkx-autocleanups.h DESTINATION include/gtk) +install(FILES gtk/gtk-a11y.h DESTINATION include/gtk) +install(FILES gtk/gtkaboutdialog.h DESTINATION include/gtk) +install(FILES gtk/gtkaccelgroup.h DESTINATION include/gtk) +install(FILES gtk/gtkaccellabel.h DESTINATION include/gtk) +install(FILES gtk/gtkaccelmap.h DESTINATION include/gtk) +install(FILES gtk/gtkaccessible.h DESTINATION include/gtk) +install(FILES gtk/gtkactionable.h DESTINATION include/gtk) +install(FILES gtk/gtkactionbar.h DESTINATION include/gtk) +install(FILES gtk/gtkadjustment.h DESTINATION include/gtk) +install(FILES gtk/gtkappchooser.h DESTINATION include/gtk) +install(FILES gtk/gtkappchooserbutton.h DESTINATION include/gtk) +install(FILES gtk/gtkappchooserdialog.h DESTINATION include/gtk) +install(FILES gtk/gtkappchooserwidget.h DESTINATION include/gtk) +install(FILES gtk/gtkapplication.h DESTINATION include/gtk) +install(FILES gtk/gtkapplicationwindow.h DESTINATION include/gtk) +install(FILES gtk/gtkaspectframe.h DESTINATION include/gtk) +install(FILES gtk/gtkassistant.h DESTINATION include/gtk) +install(FILES gtk/gtkbbox.h DESTINATION include/gtk) +install(FILES gtk/gtkbin.h DESTINATION include/gtk) +install(FILES gtk/gtkbindings.h DESTINATION include/gtk) +install(FILES gtk/gtkborder.h DESTINATION include/gtk) +install(FILES gtk/gtkbox.h DESTINATION include/gtk) +install(FILES gtk/gtkbuilder.h DESTINATION include/gtk) +install(FILES gtk/gtkbuildable.h DESTINATION include/gtk) +install(FILES gtk/gtkbutton.h DESTINATION include/gtk) +install(FILES gtk/gtkcalendar.h DESTINATION include/gtk) +install(FILES gtk/gtkcellarea.h DESTINATION include/gtk) +install(FILES gtk/gtkcellareacontext.h DESTINATION include/gtk) +install(FILES gtk/gtkcellareabox.h DESTINATION include/gtk) +install(FILES gtk/gtkcelleditable.h DESTINATION include/gtk) +install(FILES gtk/gtkcelllayout.h DESTINATION include/gtk) +install(FILES gtk/gtkcellrenderer.h DESTINATION include/gtk) +install(FILES gtk/gtkcellrendereraccel.h DESTINATION include/gtk) +install(FILES gtk/gtkcellrenderercombo.h DESTINATION include/gtk) +install(FILES gtk/gtkcellrendererpixbuf.h DESTINATION include/gtk) +install(FILES gtk/gtkcellrendererprogress.h DESTINATION include/gtk) +install(FILES gtk/gtkcellrendererspin.h DESTINATION include/gtk) +install(FILES gtk/gtkcellrendererspinner.h DESTINATION include/gtk) +install(FILES gtk/gtkcellrenderertext.h DESTINATION include/gtk) +install(FILES gtk/gtkcellrenderertoggle.h DESTINATION include/gtk) +install(FILES gtk/gtkcellview.h DESTINATION include/gtk) +install(FILES gtk/gtkcheckbutton.h DESTINATION include/gtk) +install(FILES gtk/gtkcheckmenuitem.h DESTINATION include/gtk) +install(FILES gtk/gtkclipboard.h DESTINATION include/gtk) +install(FILES gtk/gtkcolorbutton.h DESTINATION include/gtk) +install(FILES gtk/gtkcolorchooser.h DESTINATION include/gtk) +install(FILES gtk/gtkcolorchooserwidget.h DESTINATION include/gtk) +install(FILES gtk/gtkcolorchooserdialog.h DESTINATION include/gtk) +install(FILES gtk/gtkcolorutils.h DESTINATION include/gtk) +install(FILES gtk/gtkcombobox.h DESTINATION include/gtk) +install(FILES gtk/gtkcomboboxtext.h DESTINATION include/gtk) +install(FILES gtk/gtkcontainer.h DESTINATION include/gtk) +install(FILES gtk/gtkcssprovider.h DESTINATION include/gtk) +install(FILES gtk/gtkcsssection.h DESTINATION include/gtk) +install(FILES gtk/gtkdebug.h DESTINATION include/gtk) +install(FILES gtk/gtkdialog.h DESTINATION include/gtk) +install(FILES gtk/gtkdnd.h DESTINATION include/gtk) +install(FILES gtk/gtkdragdest.h DESTINATION include/gtk) +install(FILES gtk/gtkdragsource.h DESTINATION include/gtk) +install(FILES gtk/gtkdrawingarea.h DESTINATION include/gtk) +install(FILES gtk/gtkeditable.h DESTINATION include/gtk) +install(FILES gtk/gtkentry.h DESTINATION include/gtk) +install(FILES gtk/gtkentrybuffer.h DESTINATION include/gtk) +install(FILES gtk/gtkentrycompletion.h DESTINATION include/gtk) +install(FILES gtk/gtkenums.h DESTINATION include/gtk) +install(FILES gtk/gtkeventbox.h DESTINATION include/gtk) +install(FILES gtk/gtkeventcontroller.h DESTINATION include/gtk) +install(FILES gtk/gtkexpander.h DESTINATION include/gtk) +install(FILES gtk/gtkfilechooser.h DESTINATION include/gtk) +install(FILES gtk/gtkfilechooserbutton.h DESTINATION include/gtk) +install(FILES gtk/gtkfilechooserdialog.h DESTINATION include/gtk) +install(FILES gtk/gtkfilechoosernative.h DESTINATION include/gtk) +install(FILES gtk/gtkfilechooserwidget.h DESTINATION include/gtk) +install(FILES gtk/gtkfilefilter.h DESTINATION include/gtk) +install(FILES gtk/gtkfixed.h DESTINATION include/gtk) +install(FILES gtk/gtkflowbox.h DESTINATION include/gtk) +install(FILES gtk/gtkfontbutton.h DESTINATION include/gtk) +install(FILES gtk/gtkfontchooser.h DESTINATION include/gtk) +install(FILES gtk/gtkfontchooserdialog.h DESTINATION include/gtk) +install(FILES gtk/gtkfontchooserwidget.h DESTINATION include/gtk) +install(FILES gtk/gtkframe.h DESTINATION include/gtk) +install(FILES gtk/gtkgesture.h DESTINATION include/gtk) +install(FILES gtk/gtkgesturedrag.h DESTINATION include/gtk) +install(FILES gtk/gtkgesturelongpress.h DESTINATION include/gtk) +install(FILES gtk/gtkgesturemultipress.h DESTINATION include/gtk) +install(FILES gtk/gtkgesturepan.h DESTINATION include/gtk) +install(FILES gtk/gtkgesturerotate.h DESTINATION include/gtk) +install(FILES gtk/gtkgesturesingle.h DESTINATION include/gtk) +install(FILES gtk/gtkgestureswipe.h DESTINATION include/gtk) +install(FILES gtk/gtkgesturezoom.h DESTINATION include/gtk) +install(FILES gtk/gtkglarea.h DESTINATION include/gtk) +install(FILES gtk/gtkgrid.h DESTINATION include/gtk) +install(FILES gtk/gtkheaderbar.h DESTINATION include/gtk) +install(FILES gtk/gtkicontheme.h DESTINATION include/gtk) +install(FILES gtk/gtkiconview.h DESTINATION include/gtk) +install(FILES gtk/gtkimage.h DESTINATION include/gtk) +install(FILES gtk/gtkimcontext.h DESTINATION include/gtk) +install(FILES gtk/gtkimcontextinfo.h DESTINATION include/gtk) +install(FILES gtk/gtkimcontextsimple.h DESTINATION include/gtk) +install(FILES gtk/gtkimmodule.h DESTINATION include/gtk) +install(FILES gtk/gtkimmulticontext.h DESTINATION include/gtk) +install(FILES gtk/gtkinfobar.h DESTINATION include/gtk) +install(FILES gtk/gtkinvisible.h DESTINATION include/gtk) +install(FILES gtk/gtklabel.h DESTINATION include/gtk) +install(FILES gtk/gtklayout.h DESTINATION include/gtk) +install(FILES gtk/gtklevelbar.h DESTINATION include/gtk) +install(FILES gtk/gtklinkbutton.h DESTINATION include/gtk) +install(FILES gtk/gtklistbox.h DESTINATION include/gtk) +install(FILES gtk/gtkliststore.h DESTINATION include/gtk) +install(FILES gtk/gtklockbutton.h DESTINATION include/gtk) +install(FILES gtk/gtkmain.h DESTINATION include/gtk) +install(FILES gtk/gtkmenu.h DESTINATION include/gtk) +install(FILES gtk/gtkmenubar.h DESTINATION include/gtk) +install(FILES gtk/gtkmenubutton.h DESTINATION include/gtk) +install(FILES gtk/gtkmenuitem.h DESTINATION include/gtk) +install(FILES gtk/gtkmenushell.h DESTINATION include/gtk) +install(FILES gtk/gtkmenutoolbutton.h DESTINATION include/gtk) +install(FILES gtk/gtkmessagedialog.h DESTINATION include/gtk) +install(FILES gtk/gtkmodelbutton.h DESTINATION include/gtk) +install(FILES gtk/gtkmodules.h DESTINATION include/gtk) +install(FILES gtk/gtkmountoperation.h DESTINATION include/gtk) +install(FILES gtk/gtknativedialog.h DESTINATION include/gtk) +install(FILES gtk/gtknotebook.h DESTINATION include/gtk) +install(FILES gtk/gtkoffscreenwindow.h DESTINATION include/gtk) +install(FILES gtk/gtkorientable.h DESTINATION include/gtk) +install(FILES gtk/gtkoverlay.h DESTINATION include/gtk) +install(FILES gtk/gtkpadcontroller.h DESTINATION include/gtk) +install(FILES gtk/gtkpagesetup.h DESTINATION include/gtk) +install(FILES gtk/gtkpaned.h DESTINATION include/gtk) +install(FILES gtk/gtkpapersize.h DESTINATION include/gtk) +install(FILES gtk/gtkplacessidebar.h DESTINATION include/gtk) +install(FILES gtk/gtkplug.h DESTINATION include/gtk) +install(FILES gtk/gtkpopover.h DESTINATION include/gtk) +install(FILES gtk/gtkpopovermenu.h DESTINATION include/gtk) +install(FILES gtk/gtkprintcontext.h DESTINATION include/gtk) +install(FILES gtk/gtkprintoperation.h DESTINATION include/gtk) +install(FILES gtk/gtkprintoperationpreview.h DESTINATION include/gtk) +install(FILES gtk/gtkprintsettings.h DESTINATION include/gtk) +install(FILES gtk/gtkprogressbar.h DESTINATION include/gtk) +install(FILES gtk/gtkradiobutton.h DESTINATION include/gtk) +install(FILES gtk/gtkradiomenuitem.h DESTINATION include/gtk) +install(FILES gtk/gtkradiotoolbutton.h DESTINATION include/gtk) +install(FILES gtk/gtkrange.h DESTINATION include/gtk) +install(FILES gtk/gtkrecentchooser.h DESTINATION include/gtk) +install(FILES gtk/gtkrecentchooserdialog.h DESTINATION include/gtk) +install(FILES gtk/gtkrecentchoosermenu.h DESTINATION include/gtk) +install(FILES gtk/gtkrecentchooserwidget.h DESTINATION include/gtk) +install(FILES gtk/gtkrecentfilter.h DESTINATION include/gtk) +install(FILES gtk/gtkrecentmanager.h DESTINATION include/gtk) +install(FILES gtk/gtkrender.h DESTINATION include/gtk) +install(FILES gtk/gtkrevealer.h DESTINATION include/gtk) +install(FILES gtk/gtkscale.h DESTINATION include/gtk) +install(FILES gtk/gtkscalebutton.h DESTINATION include/gtk) +install(FILES gtk/gtkscrollable.h DESTINATION include/gtk) +install(FILES gtk/gtkscrollbar.h DESTINATION include/gtk) +install(FILES gtk/gtkscrolledwindow.h DESTINATION include/gtk) +install(FILES gtk/gtksearchbar.h DESTINATION include/gtk) +install(FILES gtk/gtksearchentry.h DESTINATION include/gtk) +install(FILES gtk/gtkselection.h DESTINATION include/gtk) +install(FILES gtk/gtkseparator.h DESTINATION include/gtk) +install(FILES gtk/gtkseparatormenuitem.h DESTINATION include/gtk) +install(FILES gtk/gtkseparatortoolitem.h DESTINATION include/gtk) +install(FILES gtk/gtksettings.h DESTINATION include/gtk) +install(FILES gtk/gtkshortcutlabel.h DESTINATION include/gtk) +install(FILES gtk/gtkshortcutsgroup.h DESTINATION include/gtk) +install(FILES gtk/gtkshortcutssection.h DESTINATION include/gtk) +install(FILES gtk/gtkshortcutsshortcut.h DESTINATION include/gtk) +install(FILES gtk/gtkshortcutswindow.h DESTINATION include/gtk) +install(FILES gtk/gtkshow.h DESTINATION include/gtk) +install(FILES gtk/gtkstacksidebar.h DESTINATION include/gtk) +install(FILES gtk/gtksizegroup.h DESTINATION include/gtk) +install(FILES gtk/gtksizerequest.h DESTINATION include/gtk) +install(FILES gtk/gtksocket.h DESTINATION include/gtk) +install(FILES gtk/gtkspinbutton.h DESTINATION include/gtk) +install(FILES gtk/gtkspinner.h DESTINATION include/gtk) +install(FILES gtk/gtkstack.h DESTINATION include/gtk) +install(FILES gtk/gtkstackswitcher.h DESTINATION include/gtk) +install(FILES gtk/gtkstatusbar.h DESTINATION include/gtk) +install(FILES gtk/gtkstylecontext.h DESTINATION include/gtk) +install(FILES gtk/gtkstyleprovider.h DESTINATION include/gtk) +install(FILES gtk/gtkswitch.h DESTINATION include/gtk) +install(FILES gtk/gtktestutils.h DESTINATION include/gtk) +install(FILES gtk/gtktextattributes.h DESTINATION include/gtk) +install(FILES gtk/gtktextbuffer.h DESTINATION include/gtk) +install(FILES gtk/gtktextbufferrichtext.h DESTINATION include/gtk) +install(FILES gtk/gtktextchild.h DESTINATION include/gtk) +install(FILES gtk/gtktextdisplay.h DESTINATION include/gtk) +install(FILES gtk/gtktextiter.h DESTINATION include/gtk) +install(FILES gtk/gtktextmark.h DESTINATION include/gtk) +install(FILES gtk/gtktexttag.h DESTINATION include/gtk) +install(FILES gtk/gtktexttagtable.h DESTINATION include/gtk) +install(FILES gtk/gtktextview.h DESTINATION include/gtk) +install(FILES gtk/gtktogglebutton.h DESTINATION include/gtk) +install(FILES gtk/gtktoggletoolbutton.h DESTINATION include/gtk) +install(FILES gtk/gtktoolbar.h DESTINATION include/gtk) +install(FILES gtk/gtktoolbutton.h DESTINATION include/gtk) +install(FILES gtk/gtktoolitem.h DESTINATION include/gtk) +install(FILES gtk/gtktoolitemgroup.h DESTINATION include/gtk) +install(FILES gtk/gtktoolpalette.h DESTINATION include/gtk) +install(FILES gtk/gtktoolshell.h DESTINATION include/gtk) +install(FILES gtk/gtktooltip.h DESTINATION include/gtk) +install(FILES gtk/gtktreednd.h DESTINATION include/gtk) +install(FILES gtk/gtktreemodel.h DESTINATION include/gtk) +install(FILES gtk/gtktreemodelfilter.h DESTINATION include/gtk) +install(FILES gtk/gtktreemodelsort.h DESTINATION include/gtk) +install(FILES gtk/gtktreeselection.h DESTINATION include/gtk) +install(FILES gtk/gtktreesortable.h DESTINATION include/gtk) +install(FILES gtk/gtktreestore.h DESTINATION include/gtk) +install(FILES gtk/gtktreeview.h DESTINATION include/gtk) +install(FILES gtk/gtktreeviewcolumn.h DESTINATION include/gtk) +install(FILES gtk/gtktypes.h DESTINATION include/gtk) +install(FILES gtk/gtkviewport.h DESTINATION include/gtk) +install(FILES gtk/gtkvolumebutton.h DESTINATION include/gtk) +install(FILES gtk/gtkwidget.h DESTINATION include/gtk) +install(FILES gtk/gtkwidgetpath.h DESTINATION include/gtk) +install(FILES gtk/gtkwindow.h DESTINATION include/gtk) +install(FILES gtk/gtkwindowgroup.h DESTINATION include/gtk) +install(FILES gtk/gtktextlayout.h DESTINATION include/gtk) +install(FILES gtk/gtktypebuiltins.h DESTINATION include/gtk) +install(FILES gtk/gtkversion.h DESTINATION include/gtk) +install(FILES gtk/a11y/gtk-a11y-autocleanups.h DESTINATION include/gtk/a11y) +install(FILES gtk/a11y/gtkarrowaccessible.h DESTINATION include/gtk/a11y) +install(FILES gtk/a11y/gtkbooleancellaccessible.h DESTINATION include/gtk/a11y) +install(FILES gtk/a11y/gtkbuttonaccessible.h DESTINATION include/gtk/a11y) +install(FILES gtk/a11y/gtkcellaccessible.h DESTINATION include/gtk/a11y) +install(FILES gtk/a11y/gtkcellaccessibleparent.h DESTINATION include/gtk/a11y) +install(FILES gtk/a11y/gtkcheckmenuitemaccessible.h DESTINATION include/gtk/a11y) +install(FILES gtk/a11y/gtkcomboboxaccessible.h DESTINATION include/gtk/a11y) +install(FILES gtk/a11y/gtkcontaineraccessible.h DESTINATION include/gtk/a11y) +install(FILES gtk/a11y/gtkcontainercellaccessible.h DESTINATION include/gtk/a11y) +install(FILES gtk/a11y/gtkentryaccessible.h DESTINATION include/gtk/a11y) +install(FILES gtk/a11y/gtkexpanderaccessible.h DESTINATION include/gtk/a11y) +install(FILES gtk/a11y/gtkflowboxaccessible.h DESTINATION include/gtk/a11y) +install(FILES gtk/a11y/gtkflowboxchildaccessible.h DESTINATION include/gtk/a11y) +install(FILES gtk/a11y/gtkframeaccessible.h DESTINATION include/gtk/a11y) +install(FILES gtk/a11y/gtkiconviewaccessible.h DESTINATION include/gtk/a11y) +install(FILES gtk/a11y/gtkimageaccessible.h DESTINATION include/gtk/a11y) +install(FILES gtk/a11y/gtkimagecellaccessible.h DESTINATION include/gtk/a11y) +install(FILES gtk/a11y/gtklabelaccessible.h DESTINATION include/gtk/a11y) +install(FILES gtk/a11y/gtklevelbaraccessible.h DESTINATION include/gtk/a11y) +install(FILES gtk/a11y/gtklinkbuttonaccessible.h DESTINATION include/gtk/a11y) +install(FILES gtk/a11y/gtklistboxaccessible.h DESTINATION include/gtk/a11y) +install(FILES gtk/a11y/gtklistboxrowaccessible.h DESTINATION include/gtk/a11y) +install(FILES gtk/a11y/gtklockbuttonaccessible.h DESTINATION include/gtk/a11y) +install(FILES gtk/a11y/gtkmenuaccessible.h DESTINATION include/gtk/a11y) +install(FILES gtk/a11y/gtkmenubuttonaccessible.h DESTINATION include/gtk/a11y) +install(FILES gtk/a11y/gtkmenuitemaccessible.h DESTINATION include/gtk/a11y) +install(FILES gtk/a11y/gtkmenushellaccessible.h DESTINATION include/gtk/a11y) +install(FILES gtk/a11y/gtknotebookaccessible.h DESTINATION include/gtk/a11y) +install(FILES gtk/a11y/gtknotebookpageaccessible.h DESTINATION include/gtk/a11y) +install(FILES gtk/a11y/gtkpanedaccessible.h DESTINATION include/gtk/a11y) +install(FILES gtk/a11y/gtkpopoveraccessible.h DESTINATION include/gtk/a11y) +install(FILES gtk/a11y/gtkprogressbaraccessible.h DESTINATION include/gtk/a11y) +install(FILES gtk/a11y/gtkradiobuttonaccessible.h DESTINATION include/gtk/a11y) +install(FILES gtk/a11y/gtkradiomenuitemaccessible.h DESTINATION include/gtk/a11y) +install(FILES gtk/a11y/gtkrangeaccessible.h DESTINATION include/gtk/a11y) +install(FILES gtk/a11y/gtkrenderercellaccessible.h DESTINATION include/gtk/a11y) +install(FILES gtk/a11y/gtkscaleaccessible.h DESTINATION include/gtk/a11y) +install(FILES gtk/a11y/gtkscalebuttonaccessible.h DESTINATION include/gtk/a11y) +install(FILES gtk/a11y/gtkscrolledwindowaccessible.h DESTINATION include/gtk/a11y) +install(FILES gtk/a11y/gtkspinbuttonaccessible.h DESTINATION include/gtk/a11y) +install(FILES gtk/a11y/gtkspinneraccessible.h DESTINATION include/gtk/a11y) +install(FILES gtk/a11y/gtkstatusbaraccessible.h DESTINATION include/gtk/a11y) +install(FILES gtk/a11y/gtkstackaccessible.h DESTINATION include/gtk/a11y) +install(FILES gtk/a11y/gtkswitchaccessible.h DESTINATION include/gtk/a11y) +install(FILES gtk/a11y/gtktextcellaccessible.h DESTINATION include/gtk/a11y) +install(FILES gtk/a11y/gtktextviewaccessible.h DESTINATION include/gtk/a11y) +install(FILES gtk/a11y/gtktogglebuttonaccessible.h DESTINATION include/gtk/a11y) +install(FILES gtk/a11y/gtktoplevelaccessible.h DESTINATION include/gtk/a11y) +install(FILES gtk/a11y/gtktreeviewaccessible.h DESTINATION include/gtk/a11y) +install(FILES gtk/a11y/gtkwidgetaccessible.h DESTINATION include/gtk/a11y) +install(FILES gtk/a11y/gtkwindowaccessible.h DESTINATION include/gtk/a11y) +install(FILES gtk/deprecated/gtkactivatable.h DESTINATION include/gtk/deprecated) +install(FILES gtk/deprecated/gtkaction.h DESTINATION include/gtk/deprecated) +install(FILES gtk/deprecated/gtkactiongroup.h DESTINATION include/gtk/deprecated) +install(FILES gtk/deprecated/gtkalignment.h DESTINATION include/gtk/deprecated) +install(FILES gtk/deprecated/gtkarrow.h DESTINATION include/gtk/deprecated) +install(FILES gtk/deprecated/gtkcolorsel.h DESTINATION include/gtk/deprecated) +install(FILES gtk/deprecated/gtkcolorseldialog.h DESTINATION include/gtk/deprecated) +install(FILES gtk/deprecated/gtkfontsel.h DESTINATION include/gtk/deprecated) +install(FILES gtk/deprecated/gtkgradient.h DESTINATION include/gtk/deprecated) +install(FILES gtk/deprecated/gtkhandlebox.h DESTINATION include/gtk/deprecated) +install(FILES gtk/deprecated/gtkhbbox.h DESTINATION include/gtk/deprecated) +install(FILES gtk/deprecated/gtkhbox.h DESTINATION include/gtk/deprecated) +install(FILES gtk/deprecated/gtkhpaned.h DESTINATION include/gtk/deprecated) +install(FILES gtk/deprecated/gtkhscale.h DESTINATION include/gtk/deprecated) +install(FILES gtk/deprecated/gtkhscrollbar.h DESTINATION include/gtk/deprecated) +install(FILES gtk/deprecated/gtkhseparator.h DESTINATION include/gtk/deprecated) +install(FILES gtk/deprecated/gtkhsv.h DESTINATION include/gtk/deprecated) +install(FILES gtk/deprecated/gtkiconfactory.h DESTINATION include/gtk/deprecated) +install(FILES gtk/deprecated/gtkimagemenuitem.h DESTINATION include/gtk/deprecated) +install(FILES gtk/deprecated/gtkmisc.h DESTINATION include/gtk/deprecated) +install(FILES gtk/deprecated/gtknumerableicon.h DESTINATION include/gtk/deprecated) +install(FILES gtk/deprecated/gtkradioaction.h DESTINATION include/gtk/deprecated) +install(FILES gtk/deprecated/gtkrc.h DESTINATION include/gtk/deprecated) +install(FILES gtk/deprecated/gtkrecentaction.h DESTINATION include/gtk/deprecated) +install(FILES gtk/deprecated/gtkstatusicon.h DESTINATION include/gtk/deprecated) +install(FILES gtk/deprecated/gtkstock.h DESTINATION include/gtk/deprecated) +install(FILES gtk/deprecated/gtkstyle.h DESTINATION include/gtk/deprecated) +install(FILES gtk/deprecated/gtkstyleproperties.h DESTINATION include/gtk/deprecated) +install(FILES gtk/deprecated/gtksymboliccolor.h DESTINATION include/gtk/deprecated) +install(FILES gtk/deprecated/gtktable.h DESTINATION include/gtk/deprecated) +install(FILES gtk/deprecated/gtktearoffmenuitem.h DESTINATION include/gtk/deprecated) +install(FILES gtk/deprecated/gtkthemingengine.h DESTINATION include/gtk/deprecated) +install(FILES gtk/deprecated/gtktoggleaction.h DESTINATION include/gtk/deprecated) +install(FILES gtk/deprecated/gtkuimanager.h DESTINATION include/gtk/deprecated) +install(FILES gtk/deprecated/gtkvbbox.h DESTINATION include/gtk/deprecated) +install(FILES gtk/deprecated/gtkvbox.h DESTINATION include/gtk/deprecated) +install(FILES gtk/deprecated/gtkvscale.h DESTINATION include/gtk/deprecated) +install(FILES gtk/deprecated/gtkvscrollbar.h DESTINATION include/gtk/deprecated) +install(FILES gtk/deprecated/gtkvseparator.h DESTINATION include/gtk/deprecated) +install(FILES gtk/deprecated/gtkvpaned.h DESTINATION include/gtk/deprecated) +install(FILES libgail-util/gailmisc.h DESTINATION include/libgail-util) +install(FILES libgail-util/gailtextutil.h DESTINATION include/libgail-util) +install(FILES libgail-util/gail-util.h DESTINATION include/libgail-util) +install(FILES gdk/broadway/gdkbroadway.h DESTINATION include/gdk) +install(FILES gdk/broadway/gdkbroadwaydisplay.h DESTINATION include/gdk/broadway) +install(FILES gdk/broadway/gdkbroadwaywindow.h DESTINATION include/gdk/broadway) +install(FILES gdk/broadway/gdkbroadwaycursor.h DESTINATION include/gdk/broadway) +install(FILES gdk/broadway/gdkbroadwaymonitor.h DESTINATION include/gdk/broadway) +install(FILES gdk/broadway/gdkbroadwayvisual.h DESTINATION include/gdk/broadway) diff --git a/ports/gtk3/portfile.cmake b/ports/gtk3/portfile.cmake new file mode 100644 index 00000000000000..27a42fce1b0c4b --- /dev/null +++ b/ports/gtk3/portfile.cmake @@ -0,0 +1,34 @@ +set(GTK_VERSION 3.22.19) +set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/gtk+-${GTK_VERSION}) +vcpkg_download_distfile(ARCHIVE + URLS "https://ftp.gnome.org/pub/gnome/sources/gtk+/3.22/gtk+-${GTK_VERSION}.tar.xz" + FILENAME "gtk+-${GTK_VERSION}.tar.xz" + SHA512 c83198794433ee6eb29f8740d59bd7056cd36808b4bff1a99563ab1a1742e6635dab4f2a8be33317f74d3b336f0d1adc28dd91410da056b50a08c215f184dce2) + +vcpkg_extract_source_archive(${ARCHIVE}) +file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH}) +file(COPY ${CMAKE_CURRENT_LIST_DIR}/cmake DESTINATION ${SOURCE_PATH}) + +# generate sources using python script installed with glib +if(NOT EXISTS ${SOURCE_PATH}/gtk/gtkdbusgenerated.h OR NOT EXISTS ${SOURCE_PATH}/gtk/gtkdbusgenerated.c) + vcpkg_find_acquire_program(PYTHON3) + set(GLIB_TOOL_DIR ${CURRENT_INSTALLED_DIR}/tools/glib) + + vcpkg_execute_required_process( + COMMAND ${PYTHON3} ${GLIB_TOOL_DIR}/gdbus-codegen --interface-prefix org.Gtk. --c-namespace _Gtk --generate-c-code gtkdbusgenerated ./gtkdbusinterfaces.xml + WORKING_DIRECTORY ${SOURCE_PATH}/gtk + LOGNAME source-gen) +endif() + +vcpkg_cmake_configure( + SOURCE_PATH ${SOURCE_PATH} + OPTIONS + -DGTK_VERSION=${GTK_VERSION} + OPTIONS_DEBUG + -DGTK_SKIP_HEADERS=ON) + +vcpkg_cmake_install() +vcpkg_copy_pdbs() + +file(COPY ${SOURCE_PATH}/COPYING DESTINATION ${CURRENT_PACKAGES_DIR}/share/gtk) +file(RENAME ${CURRENT_PACKAGES_DIR}/share/gtk/COPYING ${CURRENT_PACKAGES_DIR}/share/gtk/copyright) diff --git a/ports/gtk3/vcpkg.json b/ports/gtk3/vcpkg.json new file mode 100644 index 00000000000000..a091dc6d865be1 --- /dev/null +++ b/ports/gtk3/vcpkg.json @@ -0,0 +1,42 @@ +{ + "name": "gtk3", + "version": "3.22.19", + "description": "Portable library for creating graphical user interfaces.", + "homepage": "https://www.gtk.org/", + "license": "LGPL-2.0-only", + "dependencies": [ + "atk", + { + "name": "cairo", + "default-features": false, + "features": [ + "gobject" + ] + }, + { + "name": "cairo", + "default-features": false, + "features": [ + "x11" + ], + "platform": "linux" + }, + "gdk-pixbuf", + "gettext", + "glib", + { + "name": "glib", + "host": true + }, + "libepoxy", + "pango", + { + "name": "vcpkg-cmake", + "host": true + }, + { + "name": "vcpkg-cmake-config", + "host": true + } + ] +} diff --git a/versions/baseline.json b/versions/baseline.json index cb140f1378b07a..637baa9c171a2a 100644 --- a/versions/baseline.json +++ b/versions/baseline.json @@ -2672,6 +2672,10 @@ "baseline": "4.6.0", "port-version": 0 }, + "gtk3": { + "baseline": "3.22.19", + "port-version": 0 + }, "gtkmm": { "baseline": "4.6.0", "port-version": 0 diff --git a/versions/g-/gtk3.json b/versions/g-/gtk3.json new file mode 100644 index 00000000000000..1ffae3383e6597 --- /dev/null +++ b/versions/g-/gtk3.json @@ -0,0 +1,9 @@ +{ + "versions": [ + { + "git-tree": "6c253e1857e8042f489ca75da087a1e39292121a", + "version": "3.22.19", + "port-version": 0 + } + ] +}