From d6a284783ae3b22a22caf8ac0f4933d8124c1eb0 Mon Sep 17 00:00:00 2001 From: Kolya Kosenko Date: Tue, 27 Feb 2018 23:47:27 +0200 Subject: [PATCH 1/2] Fix wxGTK/Win32 CMake build --- build/cmake/functions.cmake | 37 ++++++++++++++++++++++++++--- build/cmake/lib/adv/CMakeLists.txt | 3 +++ build/cmake/lib/core/CMakeLists.txt | 6 ++++- build/cmake/options.cmake | 2 +- 4 files changed, 43 insertions(+), 5 deletions(-) diff --git a/build/cmake/functions.cmake b/build/cmake/functions.cmake index 9af05bd939..39e47f2ba4 100644 --- a/build/cmake/functions.cmake +++ b/build/cmake/functions.cmake @@ -202,8 +202,8 @@ function(wx_set_target_properties target_name is_base) PUBLIC ${wxTOOLKIT_INCLUDE_DIRS}) endif() - if (WXMSW) - set(WXMSW_LIBRARIES + if (WIN32) + set(WIN32_LIBRARIES kernel32 user32 gdi32 @@ -225,7 +225,38 @@ function(wx_set_target_properties target_name is_base) uxtheme ) target_link_libraries(${target_name} - PUBLIC ${WXMSW_LIBRARIES}) + PUBLIC ${WIN32_LIBRARIES}) + + if(WXGTK) + if(WXGTK4) + set(WXGTK_WIN32_LIBRARIES + libgtk-4.dll.a + libgdk-4.dll.a + ) + elseif(WXGTK3) + set(WXGTK_WIN32_LIBRARIES + libgtk-3.dll.a + libgdk-3.dll.a + ) + elseif(WXGTK2) + set(WXGTK_WIN32_LIBRARIES + gtk-win32-2.0.lib + gdk-win32-2.0.lib + ) + endif() + set(WXGTK_WIN32_LIBRARIES ${WXGTK_WIN32_LIBRARIES} + gio-2.0.lib + pangocairo-1.0.lib + gdk_pixbuf-2.0.lib + cairo.lib + pango-1.0.lib + gobject-2.0.lib + gthread-2.0.lib + glib-2.0.lib + ) + target_link_libraries(${target_name} + PUBLIC ${WXGTK_WIN32_LIBRARIES}) + endif() endif() if(wxTOOLKIT_LIBRARIES) diff --git a/build/cmake/lib/adv/CMakeLists.txt b/build/cmake/lib/adv/CMakeLists.txt index 9db332822c..3fd183975d 100644 --- a/build/cmake/lib/adv/CMakeLists.txt +++ b/build/cmake/lib/adv/CMakeLists.txt @@ -20,6 +20,9 @@ elseif(WXOSX_COCOA) elseif(WXGTK) wx_append_sources(ADV_FILES ADVANCED_GTK2) wx_append_sources(ADV_FILES ADVANCED_GTK_NATIVE) + if(WIN32) + wx_append_sources(ADV_FILES ADVANCED_GTK_WIN32) + endif() endif() if(UNIX AND NOT APPLE AND NOT WIN32) diff --git a/build/cmake/lib/core/CMakeLists.txt b/build/cmake/lib/core/CMakeLists.txt index 809b50b9b0..a47f517860 100644 --- a/build/cmake/lib/core/CMakeLists.txt +++ b/build/cmake/lib/core/CMakeLists.txt @@ -28,7 +28,11 @@ elseif(WXGTK) wx_append_sources(CORE_SRC GTK2_LOWLEVEL) wx_append_sources(CORE_SRC GTK2) - wx_append_sources(CORE_SRC XWIN_LOWLEVEL) + if(UNIX) + wx_append_sources(CORE_SRC XWIN_LOWLEVEL) + elseif(WIN32) + wx_append_sources(CORE_SRC GTK_WIN32) + endif() elseif(WXOSX_COCOA) wx_append_sources(CORE_SRC BASE_AND_GUI_OSX_COCOA) wx_append_sources(CORE_SRC OSX_LOWLEVEL) diff --git a/build/cmake/options.cmake b/build/cmake/options.cmake index b01db3261f..2ba39ec50e 100644 --- a/build/cmake/options.cmake +++ b/build/cmake/options.cmake @@ -342,7 +342,7 @@ wx_option(wxUSE_HOTKEY "use wxWindow::RegisterHotKey()") wx_option(wxUSE_JOYSTICK "use wxJoystick") wx_option(wxUSE_METAFILE "use wxMetaFile") wx_option(wxUSE_DRAGIMAGE "use wxDragImage") -if(WIN32) +if(WXMSW) wx_option(wxUSE_ACCESSIBILITY "enable accessibility support") endif() wx_option(wxUSE_UIACTIONSIMULATOR "use wxUIActionSimulator (experimental)") From eb3971c199bcd6f781cef52e167b7cb42c816aa5 Mon Sep 17 00:00:00 2001 From: Kolya Kosenko Date: Thu, 1 Mar 2018 01:16:06 +0200 Subject: [PATCH 2/2] Move GTK+/Win32 libraries list to toolkit.cmake file --- build/cmake/functions.cmake | 31 ------------------------------- build/cmake/toolkit.cmake | 29 +++++++++++++++++++++++++++++ 2 files changed, 29 insertions(+), 31 deletions(-) diff --git a/build/cmake/functions.cmake b/build/cmake/functions.cmake index 39e47f2ba4..7b900a00c5 100644 --- a/build/cmake/functions.cmake +++ b/build/cmake/functions.cmake @@ -226,37 +226,6 @@ function(wx_set_target_properties target_name is_base) ) target_link_libraries(${target_name} PUBLIC ${WIN32_LIBRARIES}) - - if(WXGTK) - if(WXGTK4) - set(WXGTK_WIN32_LIBRARIES - libgtk-4.dll.a - libgdk-4.dll.a - ) - elseif(WXGTK3) - set(WXGTK_WIN32_LIBRARIES - libgtk-3.dll.a - libgdk-3.dll.a - ) - elseif(WXGTK2) - set(WXGTK_WIN32_LIBRARIES - gtk-win32-2.0.lib - gdk-win32-2.0.lib - ) - endif() - set(WXGTK_WIN32_LIBRARIES ${WXGTK_WIN32_LIBRARIES} - gio-2.0.lib - pangocairo-1.0.lib - gdk_pixbuf-2.0.lib - cairo.lib - pango-1.0.lib - gobject-2.0.lib - gthread-2.0.lib - glib-2.0.lib - ) - target_link_libraries(${target_name} - PUBLIC ${WXGTK_WIN32_LIBRARIES}) - endif() endif() if(wxTOOLKIT_LIBRARIES) diff --git a/build/cmake/toolkit.cmake b/build/cmake/toolkit.cmake index edcf0ebe69..02f9982920 100644 --- a/build/cmake/toolkit.cmake +++ b/build/cmake/toolkit.cmake @@ -82,6 +82,35 @@ if(WXGTK) list(APPEND wxTOOLKIT_DEFINITIONS ${${gtk_lib}_DEFINITIONS}) list(APPEND wxTOOLKIT_DEFINITIONS __WXGTK__) set(wxTOOLKIT_VERSION ${${gtk_lib}_VERSION}) + + if(WIN32 AND MSVC) + if(WXGTK4) + list(APPEND wxTOOLKIT_LIBRARIES + libgtk-4.dll.a + libgdk-4.dll.a + ) + elseif(WXGTK3) + list(APPEND wxTOOLKIT_LIBRARIES + libgtk-3.dll.a + libgdk-3.dll.a + ) + elseif(WXGTK2) + list(APPEND wxTOOLKIT_LIBRARIES + gtk-win32-2.0 + gdk-win32-2.0 + ) + endif() + list(APPEND wxTOOLKIT_LIBRARIES + gio-2.0 + pangocairo-1.0 + gdk_pixbuf-2.0 + cairo + pango-1.0 + gobject-2.0 + gthread-2.0 + glib-2.0 + ) + endif() endif() if(APPLE)