From 76617ddb1e2236202a922c43caf1b22f1477b806 Mon Sep 17 00:00:00 2001 From: Maarten Bent Date: Sat, 20 Jan 2018 00:27:02 +0100 Subject: [PATCH 1/5] CMake: Add missing OpenGL files in GTK build --- build/cmake/files.cmake | 10 ++++++++++ build/cmake/lib/gl/CMakeLists.txt | 2 ++ build/files | 8 ++++++++ 3 files changed, 20 insertions(+) diff --git a/build/cmake/files.cmake b/build/cmake/files.cmake index 1253477e0b..f48332ddc7 100644 --- a/build/cmake/files.cmake +++ b/build/cmake/files.cmake @@ -3099,6 +3099,16 @@ set(OPENGL_MSW_HDR wx/msw/glcanvas.h ) +set(OPENGL_GTK_SRC + src/gtk/glcanvas.cpp + src/unix/glx11.cpp +) + +set(OPENGL_GTK_HDR + wx/gtk/glcanvas.h + wx/unix/glx11.h +) + set(OPENGL_OSX_SHARED_SRC src/osx/cocoa/glcanvas.mm src/osx/glcanvas_osx.cpp diff --git a/build/cmake/lib/gl/CMakeLists.txt b/build/cmake/lib/gl/CMakeLists.txt index 4b656a8217..18ac4ac855 100644 --- a/build/cmake/lib/gl/CMakeLists.txt +++ b/build/cmake/lib/gl/CMakeLists.txt @@ -13,6 +13,8 @@ wx_append_sources(GL_FILES OPENGL_CMN) if(WIN32) wx_append_sources(GL_FILES OPENGL_MSW) +elseif(WXGTK) + wx_append_sources(GL_FILES OPENGL_GTK) elseif(APPLE) wx_append_sources(GL_FILES OPENGL_OSX_SHARED) endif() diff --git a/build/files b/build/files index e38e8fd584..91dc2c0db9 100644 --- a/build/files +++ b/build/files @@ -3005,6 +3005,14 @@ OPENGL_CMN_HDR = OPENGL_MSW_SRC = src/msw/glcanvas.cpp +OPENGL_GTK_HDR = + wx/gtk/glcanvas.h + wx/unix/glx11.h + +OPENGL_GTK_SRC = + src/gtk/glcanvas.cpp + src/unix/glx11.cpp + OPENGL_MSW_HDR = wx/msw/glcanvas.h From fb8403a06400bce6aeb85978a3d473dadd47aaca Mon Sep 17 00:00:00 2001 From: Maarten Bent Date: Sat, 20 Jan 2018 00:55:43 +0100 Subject: [PATCH 2/5] CMake: Only link executables to enabled libraries --- build/cmake/functions.cmake | 2 +- build/cmake/tests/base/CMakeLists.txt | 3 +++ build/cmake/tests/drawing/CMakeLists.txt | 3 +++ build/cmake/tests/gui/CMakeLists.txt | 24 +++++++++++++++++++++++- build/cmake/utils/CMakeLists.txt | 5 ++++- 5 files changed, 34 insertions(+), 3 deletions(-) diff --git a/build/cmake/functions.cmake b/build/cmake/functions.cmake index 75e0f1f2ba..c92abdd9e4 100644 --- a/build/cmake/functions.cmake +++ b/build/cmake/functions.cmake @@ -701,7 +701,7 @@ function(wx_add_test name) endif() add_executable(${name} ${test_src}) target_include_directories(${name} PRIVATE "${wxSOURCE_DIR}/tests" "${wxSOURCE_DIR}/3rdparty/catch/include") - wx_exe_link_libraries(${name} base net) + wx_exe_link_libraries(${name} base) if(wxBUILD_SHARED) target_compile_definitions(${name} PRIVATE WXUSINGDLL) endif() diff --git a/build/cmake/tests/base/CMakeLists.txt b/build/cmake/tests/base/CMakeLists.txt index 2dc9f50c97..25f614e885 100644 --- a/build/cmake/tests/base/CMakeLists.txt +++ b/build/cmake/tests/base/CMakeLists.txt @@ -99,6 +99,9 @@ endif() wx_add_test(test_base ${TEST_SRC}) target_compile_definitions(test_base PRIVATE wxUSE_GUI=0 wxUSE_BASE=1) +if(wxUSE_SOCKETS) + wx_exe_link_libraries(test_base net) +endif() if(wxUSE_XML) wx_exe_link_libraries(test_base xml) endif() diff --git a/build/cmake/tests/drawing/CMakeLists.txt b/build/cmake/tests/drawing/CMakeLists.txt index 599bbfa91e..f9dbc7c0cf 100644 --- a/build/cmake/tests/drawing/CMakeLists.txt +++ b/build/cmake/tests/drawing/CMakeLists.txt @@ -22,6 +22,9 @@ set(TEST_DRAWING_SRC drawing/fonttest.cpp ) wx_add_test(test_drawing ${TEST_DRAWING_SRC}) +if(wxUSE_SOCKETS) + wx_exe_link_libraries(test_drawing net) +endif() wx_exe_link_libraries(test_drawing core) wx_test_enable_precomp(test_drawing) diff --git a/build/cmake/tests/gui/CMakeLists.txt b/build/cmake/tests/gui/CMakeLists.txt index fe32199597..9394ce3710 100644 --- a/build/cmake/tests/gui/CMakeLists.txt +++ b/build/cmake/tests/gui/CMakeLists.txt @@ -107,5 +107,27 @@ set(TEST_GUI_SRC xml/xrctest.cpp ) wx_add_test(test_gui ${TEST_GUI_SRC}) -wx_exe_link_libraries(test_gui core richtext media xrc xml adv html net webview) +wx_exe_link_libraries(test_gui core) +if(wxUSE_RICHTEXT) + wx_exe_link_libraries(test_gui richtext) +endif() +if(wxUSE_MEDIACTRL) + wx_exe_link_libraries(test_gui media) +endif() +if(wxUSE_XRC) + wx_exe_link_libraries(test_gui xrc) +endif() +if(wxUSE_XML) + wx_exe_link_libraries(test_gui xml) +endif() +wx_exe_link_libraries(test_gui adv) +if(wxUSE_HTML) + wx_exe_link_libraries(test_gui html) +endif() +if(wxUSE_SOCKETS) + wx_exe_link_libraries(test_gui net) +endif() +if(wxUSE_WEBVIEW) + wx_exe_link_libraries(test_gui webview) +endif() wx_test_enable_precomp(test_gui) diff --git a/build/cmake/utils/CMakeLists.txt b/build/cmake/utils/CMakeLists.txt index bbb604e60e..bf29f72156 100644 --- a/build/cmake/utils/CMakeLists.txt +++ b/build/cmake/utils/CMakeLists.txt @@ -13,7 +13,10 @@ if(wxUSE_XRC) if(wxBUILD_SHARED) target_compile_definitions(wxrc PRIVATE WXUSINGDLL) endif() - wx_exe_link_libraries(wxrc xml base) + if(wxUSE_XML) + wx_exe_link_libraries(wxrc xml) + endif() + wx_exe_link_libraries(wxrc base) # TODO: install set_target_properties(wxrc PROPERTIES FOLDER "Utilities") endif() From dc0d93ccccab893099769c2ac6ad6ee81a284f8d Mon Sep 17 00:00:00 2001 From: Maarten Bent Date: Sat, 20 Jan 2018 15:15:57 +0100 Subject: [PATCH 3/5] CMake: Fix library order in wxMSW build uuid should be linked before oleacc, otherwise it causes multiple definition of `IID_IAccessible' (with MinGW64 gcc). To simplify even more, specify all required libraries in wxTOOLKIT_LIBRARIES, in the same order as in the makefiles. Add uxtheme library, it is required since wxUxThemeEngine wrapper has been removed. --- build/cmake/lib/base/CMakeLists.txt | 16 +--------------- build/cmake/toolkit.cmake | 14 +++++++++++++- 2 files changed, 14 insertions(+), 16 deletions(-) diff --git a/build/cmake/lib/base/CMakeLists.txt b/build/cmake/lib/base/CMakeLists.txt index 1871c54bde..28377c4772 100644 --- a/build/cmake/lib/base/CMakeLists.txt +++ b/build/cmake/lib/base/CMakeLists.txt @@ -58,21 +58,7 @@ endif() if(wxUSE_THREADS AND CMAKE_THREAD_LIBS_INIT) wx_lib_link_libraries(base PRIVATE ${CMAKE_THREAD_LIBS_INIT}) endif() -if(WIN32) - wx_lib_link_libraries(base PUBLIC - kernel32 - user32 - shell32 - ole32 - oleaut32 - uuid - rpcrt4 - advapi32 - Shlwapi - version - uuid - ) -elseif(APPLE) +if(APPLE) wx_lib_link_libraries(base PRIVATE "-framework Security" diff --git a/build/cmake/toolkit.cmake b/build/cmake/toolkit.cmake index 6dfbe4e7f3..49b798451d 100644 --- a/build/cmake/toolkit.cmake +++ b/build/cmake/toolkit.cmake @@ -68,13 +68,25 @@ endif() if(WXMSW) set(wxTOOLKIT_LIBRARIES + kernel32 + user32 gdi32 comdlg32 winspool + winmm shell32 + shlwapi comctl32 + ole32 + oleaut32 + uuid rpcrt4 - Oleacc + advapi32 + version + wsock32 + wininet + oleacc + uxtheme ) elseif(WXGTK) if(WXGTK3) From 6d12732f52f1f4c3b63748493cf860174b6514a2 Mon Sep 17 00:00:00 2001 From: Maarten Bent Date: Sat, 20 Jan 2018 17:26:46 +0100 Subject: [PATCH 4/5] CMake: Remove Unix-only from OnFatalException description --- build/cmake/options.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build/cmake/options.cmake b/build/cmake/options.cmake index 1b0427f088..fd0dab3cbe 100644 --- a/build/cmake/options.cmake +++ b/build/cmake/options.cmake @@ -93,7 +93,7 @@ wx_option(wxUSE_APPLE_IEEE "use the Apple IEEE codec") wx_option(wxUSE_ARCHIVE_STREAMS "use wxArchive streams") wx_option(wxUSE_BASE64 "use base64 encoding/decoding functions") wx_option(wxUSE_STACKWALKER "use wxStackWalker class for getting backtraces") -wx_option(wxUSE_ON_FATAL_EXCEPTION "catch signals in wxApp::OnFatalException (Unix only)") +wx_option(wxUSE_ON_FATAL_EXCEPTION "catch signals in wxApp::OnFatalException") wx_option(wxUSE_CMDLINE_PARSER "use wxCmdLineParser class") wx_option(wxUSE_DATETIME "use wxDateTime class") wx_option(wxUSE_DEBUGREPORT "use wxDebugReport class") From 5ca19288f6396a4761f1b54f991b08e9cdec8ceb Mon Sep 17 00:00:00 2001 From: Maarten Bent Date: Sat, 20 Jan 2018 17:30:25 +0100 Subject: [PATCH 5/5] CMake: Fix building samples with MinGW64 Do not enable debugrpt and flash examples. Define UNICODE when building on Windows. This allows the sdk_exe example to build, because it includes the windows headers directly. --- build/cmake/functions.cmake | 3 +++ build/cmake/samples/CMakeLists.txt | 8 ++++++-- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/build/cmake/functions.cmake b/build/cmake/functions.cmake index c92abdd9e4..87cd46ef36 100644 --- a/build/cmake/functions.cmake +++ b/build/cmake/functions.cmake @@ -166,6 +166,9 @@ function(wx_set_target_properties target_name is_base) endif() if(wxUSE_UNICODE) + if(WIN32) + target_compile_definitions(${target_name} PUBLIC UNICODE) + endif() target_compile_definitions(${target_name} PUBLIC _UNICODE) endif() diff --git a/build/cmake/samples/CMakeLists.txt b/build/cmake/samples/CMakeLists.txt index f8b7ac28fa..51eae43b51 100644 --- a/build/cmake/samples/CMakeLists.txt +++ b/build/cmake/samples/CMakeLists.txt @@ -19,7 +19,9 @@ wx_add_sample(combo LIBRARIES adv DATA dropbuth.png dropbutn.png dropbutp.png) wx_add_sample(config conftest.cpp) wx_add_sample(console CONSOLE IMPORTANT) wx_add_sample(dataview IMPORTANT dataview.cpp mymodels.cpp mymodels.h LIBRARIES adv) -wx_add_sample(debugrpt LIBRARIES qa) +if(wxUSE_ON_FATAL_EXCEPTION AND (NOT WIN32 OR MSVC)) + wx_add_sample(debugrpt LIBRARIES qa) +endif() wx_add_sample(dialogs dialogs.cpp dialogs.h LIBRARIES adv DATA tips.txt) wx_add_sample(dialup nettest.cpp) wx_add_sample(display) @@ -229,7 +231,9 @@ if(WIN32) endif() wx_add_sample(dll sdk_exe.cpp my_dll.h NAME sdk_exe FOLDER dll LIBRARIES my_dll) - wx_add_sample(flash) + if(MSVC) + wx_add_sample(flash) + endif() #TODO: renable when sample is fixed #wx_add_sample(mfc mfctest.cpp mfctest.h resource.h stdafx.h RES mfctest.rc) wx_add_sample(nativdlg nativdlg.cpp nativdlg.h resource.h RES nativdlg.rc)