initial commit

Signed-off-by: Peter Siegmund <mars3142@noreply.mars3142.dev>
This commit is contained in:
2025-10-31 23:37:30 +01:00
commit bf6b52fd94
9654 changed files with 4035664 additions and 0 deletions

View File

@@ -0,0 +1,118 @@
#############################################################################
# Name: build/cmake/lib/CMakeLists.txt
# Purpose: Main lib CMake file
# Author: Tobias Taschner
# Created: 2016-10-14
# Copyright: (c) 2016 wxWidgets development team
# Licence: wxWindows licence
#############################################################################
if(wxBUILD_MONOLITHIC)
# Initialize variables for monolithic build
set(wxMONO_SRC_FILES)
set(wxMONO_LIBS_PRIVATE)
set(wxMONO_LIBS_PUBLIC)
set(wxMONO_DIRS_PRIVATE)
set(wxMONO_DIRS_PUBLIC)
set(wxMONO_INCLUDE_DIRS)
set(wxMONO_DEFINITIONS)
set(wxMONO_NONCOMPILED_CPP_FILES)
set(wxMONO_DEPENDENCIES)
endif()
# Define third party libraries
set(LIBS_THIRDPARTY regex zlib expat)
if(wxUSE_GUI)
list(APPEND LIBS_THIRDPARTY jpeg png tiff nanosvg webp)
endif()
foreach(LIB IN LISTS LIBS_THIRDPARTY)
include(${LIB}.cmake)
endforeach()
# add_opt_lib()
# Add library which may have been disabled by wxUSE_...
macro(add_opt_lib name)
set(add_lib ON)
foreach(var_name ${ARGN})
if(NOT ${var_name})
set(add_lib OFF)
endif()
endforeach()
if(add_lib)
list(APPEND LIBS ${name})
endif()
endmacro()
# Define base libraries
set(LIBS base)
add_opt_lib(net wxUSE_SOCKETS)
# Define UI libraries
if(wxUSE_GUI)
list(APPEND LIBS core adv)
foreach(lib
aui
html
propgrid
ribbon
richtext
webview
stc
xrc
)
string(TOUPPER ${lib} _name_upper)
add_opt_lib(${lib} wxUSE_${_name_upper})
endforeach()
add_opt_lib(media wxUSE_MEDIACTRL)
add_opt_lib(gl wxUSE_OPENGL)
add_opt_lib(qa wxUSE_DEBUGREPORT)
add_opt_lib(webview_chromium wxUSE_WEBVIEW wxUSE_WEBVIEW_CHROMIUM)
endif() # wxUSE_GUI
# Include XML library last
# In the monolithic build, where all target properties (include dirs) from different targets are concatenated,
# wxml might include system expat, which might use Mono, which has it's own copy of png.
# Thus to ensure wx's core library includes the right png class, core must be processed first before xml
add_opt_lib(xml wxUSE_XML)
# Include cmake file for every library
foreach(LIB ${LIBS})
add_subdirectory(${LIB})
endforeach()
if(wxBUILD_MONOLITHIC)
# Create monolithic library target
wx_add_library(wxmono IS_MONO ${wxMONO_SRC_FILES})
foreach(vis PRIVATE PUBLIC)
if(wxMONO_LIBS_${vis})
# Remove libs included in mono from list
foreach(lib IN LISTS LIBS)
list(REMOVE_ITEM wxMONO_LIBS_${vis} wx${lib})
endforeach()
target_link_libraries(wxmono ${vis} ${wxMONO_LIBS_${vis}})
endif()
if(wxMONO_DIRS_${vis})
target_link_directories(wxmono ${vis} ${wxMONO_DIRS_${vis}})
endif()
endforeach()
if(wxMONO_INCLUDE_DIRS)
target_include_directories(wxmono BEFORE PRIVATE ${wxMONO_INCLUDE_DIRS})
endif()
if(wxMONO_DEFINITIONS)
target_compile_definitions(wxmono PRIVATE ${wxMONO_DEFINITIONS})
endif()
foreach(file ${wxMONO_NONCOMPILED_CPP_FILES})
set_source_files_properties(${file} PROPERTIES HEADER_FILE_ONLY TRUE)
endforeach()
foreach(dep ${wxMONO_DEPENDENCIES})
add_dependencies(wxmono ${dep})
endforeach()
if(wxUSE_WEBVIEW)
wx_webview_copy_webview2_loader(wxmono)
endif()
endif()
# Propagate variable(s) to parent scope
set(wxLIB_TARGETS ${wxLIB_TARGETS} PARENT_SCOPE)
set(wxINSTALL_HEADERS ${wxINSTALL_HEADERS} PARENT_SCOPE)

View File

@@ -0,0 +1,10 @@
#############################################################################
# Name: build/cmake/lib/adv/CMakeLists.txt
# Purpose: CMake file for adv library
# Author: Tobias Taschner
# Created: 2016-10-03
# Copyright: (c) 2016 wxWidgets development team
# Licence: wxWindows licence
#############################################################################
wx_add_library(wxadv "${wxSOURCE_DIR}/src/common/dummy.cpp")

View File

@@ -0,0 +1,18 @@
#############################################################################
# Name: build/cmake/lib/aui/CMakeLists.txt
# Purpose: CMake file for aui library
# Author: Tobias Taschner
# Created: 2016-10-04
# Copyright: (c) 2016 wxWidgets development team
# Licence: wxWindows licence
#############################################################################
wx_append_sources(AUI_FILES AUI_CMN)
if(WXMSW)
wx_append_sources(AUI_FILES AUI_MSW)
elseif(WXGTK2)
wx_append_sources(AUI_FILES AUI_GTK)
endif()
wx_add_library(wxaui ${AUI_FILES})

View File

@@ -0,0 +1,74 @@
#############################################################################
# Name: build/cmake/lib/base/CMakeLists.txt
# Purpose: CMake file for base library
# Author: Tobias Taschner
# Created: 2016-09-20
# Copyright: (c) 2016 wxWidgets development team
# Licence: wxWindows licence
#############################################################################
wx_append_sources(BASE_FILES BASE_CMN)
wx_append_sources(BASE_FILES BASE_AND_GUI_CMN)
if(WIN32)
wx_append_sources(BASE_FILES BASE_WIN32)
wx_append_sources(BASE_FILES BASE_AND_GUI_WIN32)
elseif(APPLE)
if(WXOSX_COCOA OR WXOSX_IPHONE)
wx_append_sources(BASE_FILES BASE_OSX_SHARED)
if(WXOSX_COCOA)
wx_append_sources(BASE_FILES BASE_AND_GUI_OSX_COCOA)
endif()
else()
wx_append_sources(BASE_FILES BASE_OSX_NOTWXMAC)
endif()
elseif(UNIX)
wx_append_sources(BASE_FILES BASE_UNIX)
endif()
wx_add_library(wxbase IS_BASE ${BASE_FILES})
if(wxUSE_ZLIB)
wx_lib_include_directories(wxbase ${ZLIB_INCLUDE_DIRS})
wx_lib_link_libraries(wxbase PRIVATE ${ZLIB_LIBRARIES})
endif()
if(wxUSE_REGEX)
wx_lib_include_directories(wxbase ${REGEX_INCLUDE_DIRS})
wx_lib_link_libraries(wxbase PRIVATE ${REGEX_LIBRARIES})
endif()
if(wxUSE_LIBLZMA)
wx_lib_include_directories(wxbase ${LIBLZMA_INCLUDE_DIRS})
wx_lib_link_libraries(wxbase PRIVATE ${LIBLZMA_LIBRARIES})
endif()
if(UNIX AND wxUSE_SECRETSTORE)
wx_lib_include_directories(wxbase ${LIBSECRET_INCLUDE_DIRS})
# Avoid linking with libsecret-1.so directly, we load this
# library dynamically in wxSecretStoreLibSecretImpl to avoid
# requiring it being installed on the target system.
list(REMOVE_ITEM LIBSECRET_LIBRARIES secret-1)
wx_lib_link_libraries(wxbase PRIVATE ${LIBSECRET_LIBRARIES})
endif()
if(wxUSE_LIBICONV)
wx_lib_include_directories(wxbase ${ICONV_INCLUDE_DIR})
wx_lib_link_libraries(wxbase PRIVATE ${ICONV_LIBRARIES})
endif()
if(APPLE)
wx_lib_link_libraries(wxbase
PUBLIC
"-framework CoreFoundation"
)
if(WXOSX_COCOA)
wx_lib_link_libraries(wxbase
PRIVATE
"-framework Security"
PUBLIC
"-framework Carbon"
"-framework Cocoa"
"-framework IOKit"
"-framework QuartzCore"
)
endif()
elseif(UNIX)
wx_lib_link_libraries(wxbase PRIVATE ${CMAKE_DL_LIBS})
endif()

View File

@@ -0,0 +1,115 @@
#############################################################################
# Name: build/cmake/lib/core/CMakeLists.txt
# Purpose: CMake file for core library
# Author: Tobias Taschner
# Created: 2016-10-01
# Copyright: (c) 2016 wxWidgets development team
# Licence: wxWindows licence
#############################################################################
wx_append_sources(CORE_SRC GUI_CMN)
wx_append_sources(CORE_SRC BASE_AND_GUI_CMN)
if(WIN32)
wx_append_sources(CORE_SRC BASE_AND_GUI_WIN32)
elseif(UNIX)
wx_append_sources(CORE_SRC UNIX)
if(wxUSE_LIBSDL)
wx_append_sources(CORE_SRC UNIX_SOUND_SDL)
endif()
endif()
if(WXMSW)
wx_append_sources(CORE_SRC MSW_LOWLEVEL)
wx_append_sources(CORE_SRC MSW)
if(NOT wxUSE_OLE)
wx_list_add_prefix(CORE_SRC "${wxSOURCE_DIR}/" "src/generic/dirdlgg.cpp")
endif()
elseif(WXGTK)
if(WXGTK2)
set(GTK2_LOWLEVEL_HDR ${GTK_LOWLEVEL_HDR})
wx_append_sources(CORE_SRC GTK2_LOWLEVEL)
wx_append_sources(CORE_SRC GTK2)
else()
wx_append_sources(CORE_SRC GTK_LOWLEVEL)
wx_append_sources(CORE_SRC GTK)
endif()
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)
wx_append_sources(CORE_SRC OSX_SHARED)
wx_append_sources(CORE_SRC OSX_COCOA)
elseif(WXOSX_IPHONE)
wx_append_sources(CORE_SRC OSX_LOWLEVEL)
wx_append_sources(CORE_SRC OSX_SHARED)
wx_append_sources(CORE_SRC OSX_IPHONE)
elseif(WXQT)
wx_append_sources(CORE_SRC QT)
if(UNIX)
wx_append_sources(CORE_SRC QT_UNIX)
elseif(WIN32)
wx_append_sources(CORE_SRC QT_WIN32)
endif()
elseif(WXX11)
wx_append_sources(CORE_SRC X11_LOWLEVEL)
endif()
wx_add_library(wxcore ${CORE_SRC})
foreach(lib JPEG PNG TIFF NANOSVG WebP)
if(${lib}_LIBRARIES)
wx_lib_link_libraries(wxcore PRIVATE ${${lib}_LIBRARIES})
endif()
if(${lib}_INCLUDE_DIRS)
wx_lib_include_directories(wxcore ${${lib}_INCLUDE_DIRS})
elseif(${lib}_INCLUDE_DIR)
wx_lib_include_directories(wxcore ${${lib}_INCLUDE_DIR})
endif()
endforeach()
if(wxUSE_NANOSVG STREQUAL "sys" AND wxUSE_NANOSVG_EXTERNAL_ENABLE_IMPL)
wx_lib_compile_definitions(wxcore wxUSE_NANOSVG_EXTERNAL_ENABLE_IMPL)
endif()
if(WIN32)
wx_lib_link_libraries(wxcore PRIVATE winmm)
endif()
if(WXOSX_COCOA)
wx_lib_link_libraries(wxcore PUBLIC "-framework AudioToolbox")
if(wxUSE_WEBVIEW)
wx_lib_link_libraries(wxcore PUBLIC "-framework WebKit")
endif()
endif()
if(WXOSX_IPHONE)
wx_lib_link_libraries(wxcore
PUBLIC
"-framework AudioToolbox"
"-framework CoreGraphics"
"-framework CoreText"
"-framework UIKit"
)
endif()
if(WXGTK AND wxUSE_PRIVATE_FONTS)
wx_lib_include_directories(wxcore ${FONTCONFIG_INCLUDE_DIRS} ${PANGOFT2_INCLUDE_DIRS})
wx_lib_link_libraries(wxcore PUBLIC ${FONTCONFIG_LIBRARIES} ${PANGOFT2_LIBRARIES})
endif()
if(wxUSE_LIBSDL)
if(SDL2_FOUND)
wx_lib_include_directories(wxcore ${SDL2_INCLUDE_DIR})
wx_lib_link_libraries(wxcore PUBLIC ${SDL2_LIBRARY})
elseif(SDL_FOUND)
wx_lib_include_directories(wxcore ${SDL_INCLUDE_DIR})
wx_lib_link_libraries(wxcore PUBLIC ${SDL_LIBRARY})
endif()
endif()
if(wxUSE_LIBNOTIFY)
wx_lib_include_directories(wxcore ${LIBNOTIFY_INCLUDE_DIRS})
wx_lib_link_libraries(wxcore PUBLIC ${LIBNOTIFY_LIBRARIES})
endif()
if(wxUSE_CAIRO AND NOT WXGTK)
wx_lib_include_directories(wxcore ${CAIRO_INCLUDE_DIRS})
# no libs, cairo is loaded dynamically
endif()

View File

@@ -0,0 +1,22 @@
#############################################################################
# Name: build/cmake/lib/expat.cmake
# Purpose: Use external or internal expat lib
# Author: Tobias Taschner
# Created: 2016-09-21
# Copyright: (c) 2016 wxWidgets development team
# Licence: wxWindows licence
#############################################################################
if(wxUSE_EXPAT STREQUAL "builtin")
# TODO: implement building expat via its CMake file, using
# add_subdirectory or ExternalProject_Add
wx_add_builtin_library(wxexpat
src/expat/expat/lib/xmlparse.c
src/expat/expat/lib/xmlrole.c
src/expat/expat/lib/xmltok.c
)
set(EXPAT_LIBRARIES wxexpat)
set(EXPAT_INCLUDE_DIRS ${wxSOURCE_DIR}/src/expat/expat/lib)
elseif(wxUSE_EXPAT)
find_package(EXPAT REQUIRED)
endif()

View File

@@ -0,0 +1,28 @@
#############################################################################
# Name: build/cmake/lib/gl/CMakeLists.txt
# Purpose: CMake file for gl library
# Author: Tobias Taschner
# Created: 2016-10-03
# Copyright: (c) 2016 wxWidgets development team
# Licence: wxWindows licence
#############################################################################
wx_append_sources(GL_FILES OPENGL_CMN)
if(WXMSW)
wx_append_sources(GL_FILES OPENGL_MSW)
elseif(WXGTK)
wx_append_sources(GL_FILES OPENGL_GTK)
elseif(WXOSX_COCOA)
wx_append_sources(GL_FILES OPENGL_OSX_COCOA)
elseif(WXOSX_IPHONE)
wx_append_sources(GL_FILES OPENGL_OSX_IPHONE)
elseif(WXQT)
wx_append_sources(GL_FILES OPENGL_QT)
elseif(WXX11)
wx_append_sources(GL_FILES OPENGL_X11)
endif()
wx_add_library(wxgl ${GL_FILES})
wx_lib_include_directories(wxgl ${OPENGL_INCLUDE_DIR})
wx_lib_link_libraries(wxgl PUBLIC ${OPENGL_LIBRARIES})

View File

@@ -0,0 +1,21 @@
#############################################################################
# Name: build/cmake/lib/html/CMakeLists.txt
# Purpose: CMake file for html library
# Author: Tobias Taschner
# Created: 2016-10-03
# Copyright: (c) 2016 wxWidgets development team
# Licence: wxWindows licence
#############################################################################
wx_append_sources(HTML_FILES HTML_CMN)
if(WXMSW)
wx_append_sources(HTML_FILES HTML_MSW)
endif()
wx_add_library(wxhtml ${HTML_FILES})
if(wxUSE_LIBMSPACK)
wx_lib_include_directories(wxhtml ${MSPACK_INCLUDE_DIRS})
wx_lib_link_libraries(wxhtml PRIVATE ${MSPACK_LIBRARIES})
endif()

View File

@@ -0,0 +1,67 @@
#############################################################################
# Name: build/cmake/lib/jpeg.cmake
# Purpose: Use external or internal libjpeg
# Author: Tobias Taschner
# Created: 2016-09-21
# Copyright: (c) 2016 wxWidgets development team
# Licence: wxWindows licence
#############################################################################
if(wxUSE_LIBJPEG STREQUAL "builtin")
wx_add_builtin_library(wxjpeg
src/jpeg/jaricom.c
src/jpeg/jcapimin.c
src/jpeg/jcapistd.c
src/jpeg/jcarith.c
src/jpeg/jccoefct.c
src/jpeg/jccolor.c
src/jpeg/jcdctmgr.c
src/jpeg/jchuff.c
src/jpeg/jcinit.c
src/jpeg/jcmainct.c
src/jpeg/jcmarker.c
src/jpeg/jcmaster.c
src/jpeg/jcomapi.c
src/jpeg/jcparam.c
src/jpeg/jcprepct.c
src/jpeg/jcsample.c
src/jpeg/jctrans.c
src/jpeg/jdapimin.c
src/jpeg/jdapistd.c
src/jpeg/jdarith.c
src/jpeg/jdatadst.c
src/jpeg/jdatasrc.c
src/jpeg/jdcoefct.c
src/jpeg/jdcolor.c
src/jpeg/jddctmgr.c
src/jpeg/jdhuff.c
src/jpeg/jdinput.c
src/jpeg/jdmainct.c
src/jpeg/jdmarker.c
src/jpeg/jdmaster.c
src/jpeg/jdmerge.c
src/jpeg/jdpostct.c
src/jpeg/jdsample.c
src/jpeg/jdtrans.c
src/jpeg/jerror.c
src/jpeg/jfdctflt.c
src/jpeg/jfdctfst.c
src/jpeg/jfdctint.c
src/jpeg/jidctflt.c
src/jpeg/jidctfst.c
src/jpeg/jidctint.c
src/jpeg/jmemmgr.c
src/jpeg/jmemnobs.c
src/jpeg/jquant1.c
src/jpeg/jquant2.c
src/jpeg/jutils.c
)
target_include_directories(wxjpeg
BEFORE PRIVATE
${wxSETUP_HEADER_PATH}
)
set(JPEG_LIBRARIES wxjpeg)
set(JPEG_INCLUDE_DIR ${wxSOURCE_DIR}/src/jpeg)
elseif(wxUSE_LIBJPEG)
find_package(JPEG REQUIRED)
endif()

View File

@@ -0,0 +1,56 @@
#############################################################################
# Name: build/cmake/lib/media/CMakeLists.txt
# Purpose: CMake file for media library
# Author: Tobias Taschner
# Created: 2016-10-03
# Copyright: (c) 2016 wxWidgets development team
# Licence: wxWindows licence
#############################################################################
wx_append_sources(MEDIA_FILES MEDIA_CMN)
if(WXMSW)
wx_append_sources(MEDIA_FILES MEDIA_MSW)
elseif(WXOSX_COCOA)
wx_append_sources(MEDIA_FILES MEDIA_OSX_COCOA)
elseif(WXOSX_IPHONE)
wx_append_sources(MEDIA_FILES MEDIA_OSX_IPHONE)
elseif(WXGTK)
wx_append_sources(MEDIA_FILES MEDIA_UNIX)
wx_append_sources(MEDIA_FILES MEDIA_GTK)
elseif(WXQT)
wx_append_sources(MEDIA_FILES MEDIA_QT)
elseif(WXX11)
wx_append_sources(MEDIA_FILES MEDIA_UNIX)
endif()
wx_add_library(wxmedia ${MEDIA_FILES})
if(WXOSX)
wx_lib_link_libraries(wxmedia PUBLIC
"-framework AVFoundation"
"-framework CoreMedia"
"-weak_framework AVKit"
)
elseif(WXGTK)
wx_lib_include_directories(wxmedia ${GSTREAMER_INCLUDE_DIRS})
if(GSTREAMER_INTERFACES_INCLUDE_DIRS)
wx_lib_include_directories(wxmedia ${GSTREAMER_INTERFACES_INCLUDE_DIRS})
endif()
if(GSTREAMER_VIDEO_INCLUDE_DIRS)
wx_lib_include_directories(wxmedia ${GSTREAMER_VIDEO_INCLUDE_DIRS})
endif()
if(GSTREAMER_PLAYER_INCLUDE_DIRS)
wx_lib_include_directories(wxmedia ${GSTREAMER_PLAYER_INCLUDE_DIRS})
endif()
wx_lib_link_libraries(wxmedia PUBLIC ${GSTREAMER_LIBRARIES})
if(GSTREAMER_INTERFACES_LIBRARIES)
wx_lib_link_libraries(wxmedia PUBLIC ${GSTREAMER_INTERFACES_LIBRARIES})
endif()
if(GSTREAMER_VIDEO_LIBRARIES)
wx_lib_link_libraries(wxmedia PUBLIC ${GSTREAMER_VIDEO_LIBRARIES})
endif()
if(GSTREAMER_PLAYER_LIBRARIES)
wx_lib_link_libraries(wxmedia PUBLIC ${GSTREAMER_PLAYER_LIBRARIES})
endif()
endif()

View File

@@ -0,0 +1,39 @@
#############################################################################
# Name: build/cmake/lib/nanosvg.cmake
# Purpose: Use external or internal nanosvg lib
# Author: Tamas Meszaros, Maarten Bent
# Created: 2022-05-05
# Copyright: (c) 2022 wxWidgets development team
# Licence: wxWindows licence
#############################################################################
if(wxUSE_NANOSVG STREQUAL "builtin")
set(wxUSE_NANOSVG_EXTERNAL 0 PARENT_SCOPE)
elseif(wxUSE_NANOSVG)
set(wxUSE_NANOSVG_EXTERNAL 1 PARENT_SCOPE)
set(NANOSVG_LIBRARIES )
set(NANOSVG_INCLUDE_DIRS )
set(wxUSE_NANOSVG_EXTERNAL_ENABLE_IMPL TRUE)
find_package(NanoSVG REQUIRED)
foreach(TARGETNAME NanoSVG::nanosvg NanoSVG::nanosvgrast unofficial::nanosvg)
if(NOT TARGET ${TARGETNAME})
continue()
endif()
list(APPEND NANOSVG_LIBRARIES ${TARGETNAME})
get_target_property(svg_incl_dir ${TARGETNAME} INTERFACE_INCLUDE_DIRECTORIES)
if(svg_incl_dir)
list(APPEND NANOSVG_INCLUDE_DIRS ${svg_incl_dir})
endif()
get_target_property(svg_lib_d ${TARGETNAME} IMPORTED_LOCATION_DEBUG)
get_target_property(svg_lib_r ${TARGETNAME} IMPORTED_LOCATION_RELEASE)
get_target_property(svg_lib ${TARGETNAME} IMPORTED_LOCATION)
if(svg_lib_d OR svg_lib_r OR svg_lib)
set(wxUSE_NANOSVG_EXTERNAL_ENABLE_IMPL FALSE)
endif()
endforeach()
endif()

View File

@@ -0,0 +1,35 @@
#############################################################################
# Name: build/cmake/lib/net/CMakeLists.txt
# Purpose: CMake file for net library
# Author: Tobias Taschner
# Created: 2016-09-21
# Copyright: (c) 2016 wxWidgets development team
# Licence: wxWindows licence
#############################################################################
wx_append_sources(NET_FILES NET_CMN)
if(WIN32)
wx_append_sources(NET_FILES NET_WIN32)
elseif(APPLE)
wx_append_sources(NET_FILES NET_OSX)
endif()
if(UNIX AND NOT WIN32)
wx_append_sources(NET_FILES NET_UNIX)
endif()
wx_add_library(wxnet IS_BASE ${NET_FILES})
if(WIN32)
wx_lib_link_libraries(wxnet PRIVATE ws2_32)
if(wxUSE_WEBREQUEST_WINHTTP)
wx_lib_link_libraries(wxnet PRIVATE winhttp)
endif()
endif()
if (wxUSE_WEBREQUEST_CURL)
wx_lib_include_directories(wxnet ${CURL_INCLUDE_DIRS})
wx_lib_link_libraries(wxnet PUBLIC ${CURL_LIBRARIES})
endif()

View File

@@ -0,0 +1,58 @@
#############################################################################
# Name: build/cmake/lib/png.cmake
# Purpose: Use external or internal libpng
# Author: Tobias Taschner
# Created: 2016-09-21
# Copyright: (c) 2016 wxWidgets development team
# Licence: wxWindows licence
#############################################################################
if(wxUSE_LIBPNG STREQUAL "builtin")
# TODO: implement building libpng via its CMake file, using
# add_subdirectory or ExternalProject_Add
if(NOT MSVC)
set(PNG_EXTRA_SOURCES
src/png/mips/filter_msa_intrinsics.c
src/png/mips/mips_init.c
src/png/powerpc/filter_vsx_intrinsics.c
src/png/powerpc/powerpc_init.c
)
endif()
wx_add_builtin_library(wxpng
src/png/png.c
src/png/pngerror.c
src/png/pngget.c
src/png/pngmem.c
src/png/pngpread.c
src/png/pngread.c
src/png/pngrio.c
src/png/pngrtran.c
src/png/pngrutil.c
src/png/pngset.c
src/png/pngtrans.c
src/png/pngwio.c
src/png/pngwrite.c
src/png/pngwtran.c
src/png/pngwutil.c
src/png/arm/arm_init.c
src/png/arm/filter_neon_intrinsics.c
src/png/arm/palette_neon_intrinsics.c
src/png/intel/intel_init.c
src/png/intel/filter_sse2_intrinsics.c
${PNG_EXTRA_SOURCES}
)
if(WIN32)
# define this to get rid of a warning about using POSIX lfind():
# confusingly enough, we do define lfind as _lfind for MSVC but
# doing this results in a just more confusing warning, see:
# http://connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx?FeedbackID=101278
target_compile_definitions(wxpng PRIVATE _CRT_NONSTDC_NO_WARNINGS)
endif()
target_compile_definitions(wxpng PRIVATE PNG_INTEL_SSE)
target_include_directories(wxpng PRIVATE ${ZLIB_INCLUDE_DIRS})
target_link_libraries(wxpng PRIVATE ${ZLIB_LIBRARIES})
set(PNG_LIBRARIES wxpng)
set(PNG_INCLUDE_DIRS ${wxSOURCE_DIR}/src/png)
elseif(wxUSE_LIBPNG)
find_package(PNG REQUIRED)
endif()

View File

@@ -0,0 +1,12 @@
#############################################################################
# Name: build/cmake/lib/propgrid/CMakeLists.txt
# Purpose: CMake file for propgrid library
# Author: Tobias Taschner
# Created: 2016-10-04
# Copyright: (c) 2016 wxWidgets development team
# Licence: wxWindows licence
#############################################################################
wx_append_sources(PROPGRID_FILES PROPGRID)
wx_add_library(wxpropgrid ${PROPGRID_FILES})

View File

@@ -0,0 +1,13 @@
#############################################################################
# Name: build/cmake/lib/qa/CMakeLists.txt
# Purpose: CMake file for qa library
# Author: Tobias Taschner
# Created: 2016-10-03
# Copyright: (c) 2016 wxWidgets development team
# Licence: wxWindows licence
#############################################################################
wx_append_sources(QA_FILES QA)
wx_add_library(wxqa ${QA_FILES})
wx_lib_link_libraries(wxqa PUBLIC wxxml)

View File

@@ -0,0 +1,52 @@
#############################################################################
# Name: build/cmake/lib/regex.cmake
# Purpose: Use external or internal regex lib
# Author: Tobias Taschner
# Created: 2016-09-25
# Copyright: (c) 2016 wxWidgets development team
# Licence: wxWindows licence
#############################################################################
if(wxUSE_REGEX STREQUAL "builtin")
# TODO: implement building PCRE2 via its CMake file, using
# add_subdirectory or ExternalProject_Add
wx_add_builtin_library(wxregex
3rdparty/pcre/src/pcre2_auto_possess.c
3rdparty/pcre/src/pcre2_chkdint.c
3rdparty/pcre/src/pcre2_compile.c
3rdparty/pcre/src/pcre2_compile_class.c
3rdparty/pcre/src/pcre2_config.c
3rdparty/pcre/src/pcre2_context.c
3rdparty/pcre/src/pcre2_convert.c
3rdparty/pcre/src/pcre2_dfa_match.c
3rdparty/pcre/src/pcre2_error.c
3rdparty/pcre/src/pcre2_extuni.c
3rdparty/pcre/src/pcre2_find_bracket.c
3rdparty/pcre/src/pcre2_jit_compile.c
3rdparty/pcre/src/pcre2_maketables.c
3rdparty/pcre/src/pcre2_match.c
3rdparty/pcre/src/pcre2_match_data.c
3rdparty/pcre/src/pcre2_newline.c
3rdparty/pcre/src/pcre2_ord2utf.c
3rdparty/pcre/src/pcre2_pattern_info.c
3rdparty/pcre/src/pcre2_script_run.c
3rdparty/pcre/src/pcre2_serialize.c
3rdparty/pcre/src/pcre2_string_utils.c
3rdparty/pcre/src/pcre2_study.c
3rdparty/pcre/src/pcre2_substitute.c
3rdparty/pcre/src/pcre2_substring.c
3rdparty/pcre/src/pcre2_tables.c
3rdparty/pcre/src/pcre2_ucd.c
3rdparty/pcre/src/pcre2_valid_utf.c
3rdparty/pcre/src/pcre2_xclass.c
3rdparty/pcre/src/pcre2_chartables.c
)
set(REGEX_LIBRARIES wxregex)
set(REGEX_INCLUDE_DIRS ${wxSOURCE_DIR}/3rdparty/pcre/src/wx)
target_compile_definitions(wxregex PRIVATE __WX__ HAVE_CONFIG_H)
target_include_directories(wxregex PRIVATE ${wxSETUP_HEADER_PATH} ${wxSOURCE_DIR}/include ${REGEX_INCLUDE_DIRS})
elseif(wxUSE_REGEX)
find_package(PCRE2 REQUIRED)
set(REGEX_LIBRARIES ${PCRE2_LIBRARIES})
set(REGEX_INCLUDE_DIRS ${PCRE2_INCLUDE_DIRS})
endif()

View File

@@ -0,0 +1,12 @@
#############################################################################
# Name: build/cmake/lib/ribbon/CMakeLists.txt
# Purpose: CMake file for ribbon library
# Author: Tobias Taschner
# Created: 2016-10-04
# Copyright: (c) 2016 wxWidgets development team
# Licence: wxWindows licence
#############################################################################
wx_append_sources(RIBBON_FILES RIBBON)
wx_add_library(wxribbon ${RIBBON_FILES})

View File

@@ -0,0 +1,13 @@
#############################################################################
# Name: build/cmake/lib/richtext/CMakeLists.txt
# Purpose: CMake file for richtext library
# Author: Tobias Taschner
# Created: 2016-10-04
# Copyright: (c) 2016 wxWidgets development team
# Licence: wxWindows licence
#############################################################################
wx_append_sources(RICHTEXT_FILES RICHTEXT)
wx_add_library(wxrichtext ${RICHTEXT_FILES})
wx_lib_link_libraries(wxrichtext PRIVATE wxhtml wxxml)

View File

@@ -0,0 +1,31 @@
#############################################################################
# Name: build/cmake/lib/stc/CMakeLists.txt
# Purpose: CMake file for stc library
# Author: Tobias Taschner
# Created: 2016-10-04
# Copyright: (c) 2016 wxWidgets development team
# Licence: wxWindows licence
#############################################################################
include(scintilla.cmake)
include(lexilla.cmake)
wx_append_sources(STC_FILES STC_CMN)
if(WXOSX_COCOA)
wx_append_sources(STC_FILES STC_OSX_COCOA)
endif()
wx_add_library(wxstc ${STC_FILES})
get_target_property(SCINTILLA_INCLUDE wxscintilla INCLUDE_DIRECTORIES)
get_target_property(LEXILLA_INCLUDE wxlexilla INCLUDE_DIRECTORIES)
wx_lib_include_directories(wxstc PRIVATE ${SCINTILLA_INCLUDE} ${LEXILLA_INCLUDE})
get_target_property(SCINTILLA_DEFINITIONS wxscintilla COMPILE_DEFINITIONS)
get_target_property(LEXILLA_DEFINITIONS wxlexilla COMPILE_DEFINITIONS)
wx_lib_compile_definitions(wxstc PRIVATE ${SCINTILLA_DEFINITIONS} ${LEXILLA_DEFINITIONS})
wx_lib_link_libraries(wxstc PRIVATE wxscintilla wxlexilla)
if(WXMSW)
wx_lib_link_libraries(wxstc PRIVATE imm32)
endif()

View File

@@ -0,0 +1,187 @@
#############################################################################
# Name: build/cmake/lib/stc/lexilla.cmake
# Purpose: CMake file for Lexilla library
# Author: Maarten Bent
# Created: 2022-12-28
# Copyright: (c) 2022 wxWidgets development team
# Licence: wxWindows licence
#############################################################################
include(../../source_groups.cmake)
set(LEXILLA_SRC_DIR src/stc/lexilla)
wx_add_builtin_library(wxlexilla
${LEXILLA_SRC_DIR}/access/LexillaAccess.cxx
${LEXILLA_SRC_DIR}/access/LexillaAccess.h
${LEXILLA_SRC_DIR}/include/Lexilla.h
${LEXILLA_SRC_DIR}/include/LexillaCompat.h
${LEXILLA_SRC_DIR}/include/SciLexer.h
${LEXILLA_SRC_DIR}/lexers/LexA68k.cxx
${LEXILLA_SRC_DIR}/lexers/LexAPDL.cxx
${LEXILLA_SRC_DIR}/lexers/LexASY.cxx
${LEXILLA_SRC_DIR}/lexers/LexAU3.cxx
${LEXILLA_SRC_DIR}/lexers/LexAVE.cxx
${LEXILLA_SRC_DIR}/lexers/LexAVS.cxx
${LEXILLA_SRC_DIR}/lexers/LexAbaqus.cxx
${LEXILLA_SRC_DIR}/lexers/LexAda.cxx
${LEXILLA_SRC_DIR}/lexers/LexAsciidoc.cxx
${LEXILLA_SRC_DIR}/lexers/LexAsm.cxx
${LEXILLA_SRC_DIR}/lexers/LexAsn1.cxx
${LEXILLA_SRC_DIR}/lexers/LexBaan.cxx
${LEXILLA_SRC_DIR}/lexers/LexBash.cxx
${LEXILLA_SRC_DIR}/lexers/LexBasic.cxx
${LEXILLA_SRC_DIR}/lexers/LexBatch.cxx
${LEXILLA_SRC_DIR}/lexers/LexBibTeX.cxx
${LEXILLA_SRC_DIR}/lexers/LexBullant.cxx
${LEXILLA_SRC_DIR}/lexers/LexCIL.cxx
${LEXILLA_SRC_DIR}/lexers/LexCLW.cxx
${LEXILLA_SRC_DIR}/lexers/LexCOBOL.cxx
${LEXILLA_SRC_DIR}/lexers/LexCPP.cxx
${LEXILLA_SRC_DIR}/lexers/LexCSS.cxx
${LEXILLA_SRC_DIR}/lexers/LexCaml.cxx
${LEXILLA_SRC_DIR}/lexers/LexCmake.cxx
${LEXILLA_SRC_DIR}/lexers/LexCoffeeScript.cxx
${LEXILLA_SRC_DIR}/lexers/LexConf.cxx
${LEXILLA_SRC_DIR}/lexers/LexCrontab.cxx
${LEXILLA_SRC_DIR}/lexers/LexCsound.cxx
${LEXILLA_SRC_DIR}/lexers/LexD.cxx
${LEXILLA_SRC_DIR}/lexers/LexDMAP.cxx
${LEXILLA_SRC_DIR}/lexers/LexDMIS.cxx
${LEXILLA_SRC_DIR}/lexers/LexDart.cxx
${LEXILLA_SRC_DIR}/lexers/LexDataflex.cxx
${LEXILLA_SRC_DIR}/lexers/LexDiff.cxx
${LEXILLA_SRC_DIR}/lexers/LexECL.cxx
${LEXILLA_SRC_DIR}/lexers/LexEDIFACT.cxx
${LEXILLA_SRC_DIR}/lexers/LexEScript.cxx
${LEXILLA_SRC_DIR}/lexers/LexEiffel.cxx
${LEXILLA_SRC_DIR}/lexers/LexErlang.cxx
${LEXILLA_SRC_DIR}/lexers/LexErrorList.cxx
${LEXILLA_SRC_DIR}/lexers/LexFSharp.cxx
${LEXILLA_SRC_DIR}/lexers/LexFlagship.cxx
${LEXILLA_SRC_DIR}/lexers/LexForth.cxx
${LEXILLA_SRC_DIR}/lexers/LexFortran.cxx
${LEXILLA_SRC_DIR}/lexers/LexGAP.cxx
${LEXILLA_SRC_DIR}/lexers/LexGDScript.cxx
${LEXILLA_SRC_DIR}/lexers/LexGui4Cli.cxx
${LEXILLA_SRC_DIR}/lexers/LexHTML.cxx
${LEXILLA_SRC_DIR}/lexers/LexHaskell.cxx
${LEXILLA_SRC_DIR}/lexers/LexHex.cxx
${LEXILLA_SRC_DIR}/lexers/LexHollywood.cxx
${LEXILLA_SRC_DIR}/lexers/LexIndent.cxx
${LEXILLA_SRC_DIR}/lexers/LexInno.cxx
${LEXILLA_SRC_DIR}/lexers/LexJSON.cxx
${LEXILLA_SRC_DIR}/lexers/LexJulia.cxx
${LEXILLA_SRC_DIR}/lexers/LexKVIrc.cxx
${LEXILLA_SRC_DIR}/lexers/LexKix.cxx
${LEXILLA_SRC_DIR}/lexers/LexLaTeX.cxx
${LEXILLA_SRC_DIR}/lexers/LexLisp.cxx
${LEXILLA_SRC_DIR}/lexers/LexLout.cxx
${LEXILLA_SRC_DIR}/lexers/LexLua.cxx
${LEXILLA_SRC_DIR}/lexers/LexMMIXAL.cxx
${LEXILLA_SRC_DIR}/lexers/LexMPT.cxx
${LEXILLA_SRC_DIR}/lexers/LexMSSQL.cxx
${LEXILLA_SRC_DIR}/lexers/LexMagik.cxx
${LEXILLA_SRC_DIR}/lexers/LexMake.cxx
${LEXILLA_SRC_DIR}/lexers/LexMarkdown.cxx
${LEXILLA_SRC_DIR}/lexers/LexMatlab.cxx
${LEXILLA_SRC_DIR}/lexers/LexMaxima.cxx
${LEXILLA_SRC_DIR}/lexers/LexMetapost.cxx
${LEXILLA_SRC_DIR}/lexers/LexModula.cxx
${LEXILLA_SRC_DIR}/lexers/LexMySQL.cxx
${LEXILLA_SRC_DIR}/lexers/LexNim.cxx
${LEXILLA_SRC_DIR}/lexers/LexNimrod.cxx
${LEXILLA_SRC_DIR}/lexers/LexNix.cxx
${LEXILLA_SRC_DIR}/lexers/LexNsis.cxx
${LEXILLA_SRC_DIR}/lexers/LexNull.cxx
${LEXILLA_SRC_DIR}/lexers/LexOScript.cxx
${LEXILLA_SRC_DIR}/lexers/LexOpal.cxx
${LEXILLA_SRC_DIR}/lexers/LexPB.cxx
${LEXILLA_SRC_DIR}/lexers/LexPLM.cxx
${LEXILLA_SRC_DIR}/lexers/LexPO.cxx
${LEXILLA_SRC_DIR}/lexers/LexPOV.cxx
${LEXILLA_SRC_DIR}/lexers/LexPS.cxx
${LEXILLA_SRC_DIR}/lexers/LexPascal.cxx
${LEXILLA_SRC_DIR}/lexers/LexPerl.cxx
${LEXILLA_SRC_DIR}/lexers/LexPowerPro.cxx
${LEXILLA_SRC_DIR}/lexers/LexPowerShell.cxx
${LEXILLA_SRC_DIR}/lexers/LexProgress.cxx
${LEXILLA_SRC_DIR}/lexers/LexProps.cxx
${LEXILLA_SRC_DIR}/lexers/LexPython.cxx
${LEXILLA_SRC_DIR}/lexers/LexR.cxx
${LEXILLA_SRC_DIR}/lexers/LexRaku.cxx
${LEXILLA_SRC_DIR}/lexers/LexRebol.cxx
${LEXILLA_SRC_DIR}/lexers/LexRegistry.cxx
${LEXILLA_SRC_DIR}/lexers/LexRuby.cxx
${LEXILLA_SRC_DIR}/lexers/LexRust.cxx
${LEXILLA_SRC_DIR}/lexers/LexSAS.cxx
${LEXILLA_SRC_DIR}/lexers/LexSML.cxx
${LEXILLA_SRC_DIR}/lexers/LexSQL.cxx
${LEXILLA_SRC_DIR}/lexers/LexSTTXT.cxx
${LEXILLA_SRC_DIR}/lexers/LexScriptol.cxx
${LEXILLA_SRC_DIR}/lexers/LexSmalltalk.cxx
${LEXILLA_SRC_DIR}/lexers/LexSorcus.cxx
${LEXILLA_SRC_DIR}/lexers/LexSpecman.cxx
${LEXILLA_SRC_DIR}/lexers/LexSpice.cxx
${LEXILLA_SRC_DIR}/lexers/LexStata.cxx
${LEXILLA_SRC_DIR}/lexers/LexTACL.cxx
${LEXILLA_SRC_DIR}/lexers/LexTADS3.cxx
${LEXILLA_SRC_DIR}/lexers/LexTAL.cxx
${LEXILLA_SRC_DIR}/lexers/LexTCL.cxx
${LEXILLA_SRC_DIR}/lexers/LexTCMD.cxx
${LEXILLA_SRC_DIR}/lexers/LexTOML.cxx
${LEXILLA_SRC_DIR}/lexers/LexTeX.cxx
${LEXILLA_SRC_DIR}/lexers/LexTroff.cxx
${LEXILLA_SRC_DIR}/lexers/LexTxt2tags.cxx
${LEXILLA_SRC_DIR}/lexers/LexVB.cxx
${LEXILLA_SRC_DIR}/lexers/LexVHDL.cxx
${LEXILLA_SRC_DIR}/lexers/LexVerilog.cxx
${LEXILLA_SRC_DIR}/lexers/LexVisualProlog.cxx
${LEXILLA_SRC_DIR}/lexers/LexX12.cxx
${LEXILLA_SRC_DIR}/lexers/LexYAML.cxx
${LEXILLA_SRC_DIR}/lexers/LexZig.cxx
${LEXILLA_SRC_DIR}/lexlib/Accessor.cxx
${LEXILLA_SRC_DIR}/lexlib/Accessor.h
${LEXILLA_SRC_DIR}/lexlib/CatalogueModules.h
${LEXILLA_SRC_DIR}/lexlib/DefaultLexer.cxx
${LEXILLA_SRC_DIR}/lexlib/DefaultLexer.h
${LEXILLA_SRC_DIR}/lexlib/InList.cxx
${LEXILLA_SRC_DIR}/lexlib/InList.h
${LEXILLA_SRC_DIR}/lexlib/LexAccessor.cxx
${LEXILLA_SRC_DIR}/lexlib/LexAccessor.h
${LEXILLA_SRC_DIR}/lexlib/LexCharacterCategory.cxx
${LEXILLA_SRC_DIR}/lexlib/LexCharacterCategory.h
${LEXILLA_SRC_DIR}/lexlib/LexCharacterSet.cxx
${LEXILLA_SRC_DIR}/lexlib/LexCharacterSet.h
${LEXILLA_SRC_DIR}/lexlib/LexerBase.cxx
${LEXILLA_SRC_DIR}/lexlib/LexerBase.h
${LEXILLA_SRC_DIR}/lexlib/LexerModule.cxx
${LEXILLA_SRC_DIR}/lexlib/LexerModule.h
${LEXILLA_SRC_DIR}/lexlib/LexerSimple.cxx
${LEXILLA_SRC_DIR}/lexlib/LexerSimple.h
${LEXILLA_SRC_DIR}/lexlib/OptionSet.h
${LEXILLA_SRC_DIR}/lexlib/PropSetSimple.cxx
${LEXILLA_SRC_DIR}/lexlib/PropSetSimple.h
${LEXILLA_SRC_DIR}/lexlib/SparseState.h
${LEXILLA_SRC_DIR}/lexlib/StringCopy.h
${LEXILLA_SRC_DIR}/lexlib/StyleContext.cxx
${LEXILLA_SRC_DIR}/lexlib/StyleContext.h
${LEXILLA_SRC_DIR}/lexlib/SubStyles.h
${LEXILLA_SRC_DIR}/lexlib/WordList.cxx
${LEXILLA_SRC_DIR}/lexlib/WordList.h
${LEXILLA_SRC_DIR}/src/Lexilla.cxx
)
get_target_property(SCINTILLA_INCLUDE wxscintilla INCLUDE_DIRECTORIES)
target_include_directories(wxlexilla PRIVATE
${wxSOURCE_DIR}/${LEXILLA_SRC_DIR}/access
${wxSOURCE_DIR}/${LEXILLA_SRC_DIR}/include
${wxSOURCE_DIR}/${LEXILLA_SRC_DIR}/lexlib
${SCINTILLA_INCLUDE}
)
wx_target_enable_precomp(wxlexilla
"${wxSOURCE_DIR}/${SCINTILLA_SRC_DIR}/include/Scintilla.h"
"${wxSOURCE_DIR}/${LEXILLA_SRC_DIR}/include/Lexilla.h"
)

View File

@@ -0,0 +1,101 @@
#############################################################################
# Name: build/cmake/lib/stc/scintilla.cmake
# Purpose: CMake file for Scintilla library
# Author: Maarten Bent
# Created: 2022-12-28
# Copyright: (c) 2022 wxWidgets development team
# Licence: wxWindows licence
#############################################################################
include(../../source_groups.cmake)
set(SCINTILLA_SRC_DIR src/stc/scintilla)
wx_add_builtin_library(wxscintilla
${SCINTILLA_SRC_DIR}/include/Compat.h
${SCINTILLA_SRC_DIR}/include/ILexer.h
${SCINTILLA_SRC_DIR}/include/ILoader.h
${SCINTILLA_SRC_DIR}/include/Platform.h
${SCINTILLA_SRC_DIR}/include/Sci_Position.h
${SCINTILLA_SRC_DIR}/include/Scintilla.h
${SCINTILLA_SRC_DIR}/include/ScintillaWidget.h
${SCINTILLA_SRC_DIR}/src/AutoComplete.cxx
${SCINTILLA_SRC_DIR}/src/AutoComplete.h
${SCINTILLA_SRC_DIR}/src/CallTip.cxx
${SCINTILLA_SRC_DIR}/src/CallTip.h
${SCINTILLA_SRC_DIR}/src/CaseConvert.cxx
${SCINTILLA_SRC_DIR}/src/CaseConvert.h
${SCINTILLA_SRC_DIR}/src/CaseFolder.cxx
${SCINTILLA_SRC_DIR}/src/CaseFolder.h
${SCINTILLA_SRC_DIR}/src/CellBuffer.cxx
${SCINTILLA_SRC_DIR}/src/CellBuffer.h
${SCINTILLA_SRC_DIR}/src/CharClassify.cxx
${SCINTILLA_SRC_DIR}/src/CharClassify.h
${SCINTILLA_SRC_DIR}/src/CharacterCategory.cxx
${SCINTILLA_SRC_DIR}/src/CharacterCategory.h
${SCINTILLA_SRC_DIR}/src/CharacterSet.cxx
${SCINTILLA_SRC_DIR}/src/CharacterSet.h
${SCINTILLA_SRC_DIR}/src/ContractionState.cxx
${SCINTILLA_SRC_DIR}/src/ContractionState.h
${SCINTILLA_SRC_DIR}/src/DBCS.cxx
${SCINTILLA_SRC_DIR}/src/DBCS.h
${SCINTILLA_SRC_DIR}/src/Decoration.cxx
${SCINTILLA_SRC_DIR}/src/Decoration.h
${SCINTILLA_SRC_DIR}/src/Document.cxx
${SCINTILLA_SRC_DIR}/src/Document.h
${SCINTILLA_SRC_DIR}/src/EditModel.cxx
${SCINTILLA_SRC_DIR}/src/EditModel.h
${SCINTILLA_SRC_DIR}/src/EditView.cxx
${SCINTILLA_SRC_DIR}/src/EditView.h
${SCINTILLA_SRC_DIR}/src/Editor.cxx
${SCINTILLA_SRC_DIR}/src/Editor.h
${SCINTILLA_SRC_DIR}/src/ElapsedPeriod.h
${SCINTILLA_SRC_DIR}/src/FontQuality.h
${SCINTILLA_SRC_DIR}/src/Indicator.cxx
${SCINTILLA_SRC_DIR}/src/Indicator.h
${SCINTILLA_SRC_DIR}/src/IntegerRectangle.h
${SCINTILLA_SRC_DIR}/src/KeyMap.cxx
${SCINTILLA_SRC_DIR}/src/KeyMap.h
${SCINTILLA_SRC_DIR}/src/LineMarker.cxx
${SCINTILLA_SRC_DIR}/src/LineMarker.h
${SCINTILLA_SRC_DIR}/src/MarginView.cxx
${SCINTILLA_SRC_DIR}/src/MarginView.h
${SCINTILLA_SRC_DIR}/src/Partitioning.h
${SCINTILLA_SRC_DIR}/src/PerLine.cxx
${SCINTILLA_SRC_DIR}/src/PerLine.h
${SCINTILLA_SRC_DIR}/src/Position.h
${SCINTILLA_SRC_DIR}/src/PositionCache.cxx
${SCINTILLA_SRC_DIR}/src/PositionCache.h
${SCINTILLA_SRC_DIR}/src/RESearch.cxx
${SCINTILLA_SRC_DIR}/src/RESearch.h
${SCINTILLA_SRC_DIR}/src/RunStyles.cxx
${SCINTILLA_SRC_DIR}/src/RunStyles.h
${SCINTILLA_SRC_DIR}/src/ScintillaBase.cxx
${SCINTILLA_SRC_DIR}/src/ScintillaBase.h
${SCINTILLA_SRC_DIR}/src/Selection.cxx
${SCINTILLA_SRC_DIR}/src/Selection.h
${SCINTILLA_SRC_DIR}/src/SparseVector.h
${SCINTILLA_SRC_DIR}/src/SplitVector.h
${SCINTILLA_SRC_DIR}/src/Style.cxx
${SCINTILLA_SRC_DIR}/src/Style.h
${SCINTILLA_SRC_DIR}/src/UniConversion.cxx
${SCINTILLA_SRC_DIR}/src/UniConversion.h
${SCINTILLA_SRC_DIR}/src/UniqueString.cxx
${SCINTILLA_SRC_DIR}/src/UniqueString.h
${SCINTILLA_SRC_DIR}/src/ViewStyle.cxx
${SCINTILLA_SRC_DIR}/src/ViewStyle.h
${SCINTILLA_SRC_DIR}/src/XPM.cxx
${SCINTILLA_SRC_DIR}/src/XPM.h
)
target_include_directories(wxscintilla PRIVATE
${wxSOURCE_DIR}/${SCINTILLA_SRC_DIR}/include
${wxSOURCE_DIR}/${SCINTILLA_SRC_DIR}/src
)
target_compile_definitions(wxscintilla PUBLIC
__WX__
)
wx_target_enable_precomp(wxscintilla
"${wxSOURCE_DIR}/${SCINTILLA_SRC_DIR}/include/Scintilla.h"
)

View File

@@ -0,0 +1,81 @@
#############################################################################
# Name: build/cmake/lib/tiff.cmake
# Purpose: Use external or internal libtiff
# Author: Tobias Taschner
# Created: 2016-09-21
# Copyright: (c) 2016 wxWidgets development team
# Licence: wxWindows licence
#############################################################################
if(wxUSE_LIBTIFF STREQUAL "builtin")
# TODO: implement building libtiff via its CMake file, using
# add_subdirectory or ExternalProject_Add
if(WIN32)
set(TIFF_PLATFORM_SRC src/tiff/libtiff/tif_win32.c)
elseif(UNIX)
set(TIFF_PLATFORM_SRC src/tiff/libtiff/tif_unix.c)
endif()
wx_add_builtin_library(wxtiff
${TIFF_PLATFORM_SRC}
src/tiff/libtiff/tif_aux.c
src/tiff/libtiff/tif_close.c
src/tiff/libtiff/tif_codec.c
src/tiff/libtiff/tif_color.c
src/tiff/libtiff/tif_compress.c
src/tiff/libtiff/tif_dir.c
src/tiff/libtiff/tif_dirinfo.c
src/tiff/libtiff/tif_dirread.c
src/tiff/libtiff/tif_dirwrite.c
src/tiff/libtiff/tif_dumpmode.c
src/tiff/libtiff/tif_error.c
src/tiff/libtiff/tif_extension.c
src/tiff/libtiff/tif_fax3.c
src/tiff/libtiff/tif_fax3sm.c
src/tiff/libtiff/tif_flush.c
src/tiff/libtiff/tif_getimage.c
src/tiff/libtiff/tif_hash_set.c
src/tiff/libtiff/tif_jbig.c
src/tiff/libtiff/tif_jpeg.c
src/tiff/libtiff/tif_jpeg_12.c
src/tiff/libtiff/tif_lerc.c
src/tiff/libtiff/tif_luv.c
src/tiff/libtiff/tif_lzma.c
src/tiff/libtiff/tif_lzw.c
src/tiff/libtiff/tif_next.c
src/tiff/libtiff/tif_ojpeg.c
src/tiff/libtiff/tif_open.c
src/tiff/libtiff/tif_packbits.c
src/tiff/libtiff/tif_pixarlog.c
src/tiff/libtiff/tif_predict.c
src/tiff/libtiff/tif_print.c
src/tiff/libtiff/tif_read.c
src/tiff/libtiff/tif_strip.c
src/tiff/libtiff/tif_swab.c
src/tiff/libtiff/tif_thunder.c
src/tiff/libtiff/tif_tile.c
src/tiff/libtiff/tif_version.c
src/tiff/libtiff/tif_warning.c
src/tiff/libtiff/tif_webp.c
src/tiff/libtiff/tif_write.c
src/tiff/libtiff/tif_zip.c
src/tiff/libtiff/tif_zstd.c
)
if(WIN32)
# define this to get rid of a warning about using POSIX lfind():
# confusingly enough, we do define lfind as _lfind for MSVC but
# doing this results in a just more confusing warning, see:
# http://connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx?FeedbackID=101278
target_compile_definitions(wxtiff PRIVATE _CRT_NONSTDC_NO_WARNINGS)
endif()
target_include_directories(wxtiff PRIVATE
${wxSOURCE_DIR}/src/tiff/libtiff
${ZLIB_INCLUDE_DIRS}
${JPEG_INCLUDE_DIR}
)
target_link_libraries(wxtiff PRIVATE ${ZLIB_LIBRARIES} ${JPEG_LIBRARIES})
set(TIFF_LIBRARIES wxtiff)
set(TIFF_INCLUDE_DIRS ${wxSOURCE_DIR}/src/tiff/libtiff)
elseif(wxUSE_LIBTIFF)
find_package(TIFF REQUIRED)
endif()

View File

@@ -0,0 +1,64 @@
#############################################################################
# Name: build/cmake/lib/webp.cmake
# Purpose: Use external or internal libwebp
# Author:
# Created: 2025-01-31
# Copyright: (c) 2025 wxWidgets development team
# Licence: wxWindows licence
#############################################################################
if(wxUSE_LIBWEBP STREQUAL "builtin")
set(WEBP_ROOT "${wxSOURCE_DIR}/3rdparty/libwebp")
set(WEBP_BUILD_ROOT "${CMAKE_CURRENT_BINARY_DIR}/webp-build")
# No flags to enable or disable SIMD
set(WEBP_CHECK_SIMD OFF CACHE BOOL "")
# static library
set(WEBP_LINK_STATIC ON)
# disable tools
set(WEBP_BUILD_ANIM_UTILS OFF)
set(WEBP_BUILD_CWEBP OFF)
set(WEBP_BUILD_DWEBP OFF)
set(WEBP_BUILD_GIF2WEBP OFF)
set(WEBP_BUILD_IMG2WEBP OFF)
set(WEBP_BUILD_VWEBP OFF)
set(WEBP_BUILD_WEBPINFO OFF)
set(WEBP_BUILD_WEBPMUX OFF)
set(WEBP_BUILD_EXTRAS OFF)
set(WEBP_BUILD_WEBP_JS OFF)
set(WEBP_BUILD_FUZZTEST OFF)
add_subdirectory("${WEBP_ROOT}" "${WEBP_BUILD_ROOT}" EXCLUDE_FROM_ALL)
mark_as_advanced(WEBP_CHECK_SIMD)
mark_as_advanced(WEBP_BITTRACE)
mark_as_advanced(WEBP_BUILD_LIBWEBPMUX)
mark_as_advanced(WEBP_ENABLE_SIMD)
mark_as_advanced(WEBP_ENABLE_SWAP_16BIT_CSP)
mark_as_advanced(WEBP_ENABLE_WUNUSED_RESULT)
mark_as_advanced(WEBP_LINK_STATIC)
mark_as_advanced(WEBP_NEAR_LOSSLESS)
mark_as_advanced(WEBP_UNICODE)
mark_as_advanced(WEBP_USE_THREAD)
get_property(webpTargets DIRECTORY "${WEBP_ROOT}" PROPERTY BUILDSYSTEM_TARGETS)
foreach(target_name IN LISTS webpTargets)
set_target_properties(${target_name} PROPERTIES
FOLDER "Third Party Libraries/WebP"
PREFIX ""
OUTPUT_NAME "wx${target_name}"
PUBLIC_HEADER ""
)
endforeach()
set(WebP_LIBRARIES webp webpdemux sharpyuv)
if(NOT wxBUILD_SHARED)
wx_install(TARGETS ${WebP_LIBRARIES}
EXPORT wxWidgetsTargets
ARCHIVE DESTINATION "lib${GEN_EXPR_DIR}${wxPLATFORM_LIB_DIR}"
)
endif()
elseif(wxUSE_LIBWEBP)
find_package(WebP REQUIRED)
endif()

View File

@@ -0,0 +1,159 @@
#############################################################################
# Name: build/cmake/lib/webview/CMakeLists.txt
# Purpose: CMake file for webview library
# Author: Tobias Taschner
# Created: 2016-10-03
# Copyright: (c) 2016 wxWidgets development team
# Licence: wxWindows licence
#############################################################################
macro(wx_set_webview2_arch)
if(wxPLATFORM_ARCH)
set(WEBVIEW2_ARCH ${wxPLATFORM_ARCH})
else()
set(WEBVIEW2_ARCH x86)
endif()
endmacro()
function(wx_webview_copy_webview2_loader target)
if(NOT WXMSW OR NOT wxUSE_WEBVIEW_EDGE OR NOT TARGET ${target})
return()
endif()
wx_set_webview2_arch()
add_custom_command(TARGET ${target} POST_BUILD
COMMAND ${CMAKE_COMMAND} -E copy
"${WEBVIEW2_PACKAGE_DIR}/build/native/${WEBVIEW2_ARCH}/WebView2Loader.dll"
"$<TARGET_FILE_DIR:${target}>/WebView2Loader.dll")
endfunction()
wx_append_sources(WEBVIEW_FILES WEBVIEW_CMN)
if(WXMSW)
wx_append_sources(WEBVIEW_FILES WEBVIEW_MSW)
elseif(WXGTK)
wx_append_sources(WEBVIEW_FILES WEBVIEW_GTK)
elseif(APPLE)
wx_append_sources(WEBVIEW_FILES WEBVIEW_OSX_SHARED)
endif()
wx_add_library(wxwebview ${WEBVIEW_FILES})
if(APPLE)
wx_lib_link_libraries(wxwebview PUBLIC "-framework WebKit")
elseif(WXMSW)
if(wxUSE_WEBVIEW_EDGE)
# Update the following variables if updating WebView2 SDK
set(WEBVIEW2_VERSION "1.0.1722.45")
set(WEBVIEW2_URL "https://www.nuget.org/api/v2/package/Microsoft.Web.WebView2/${WEBVIEW2_VERSION}")
set(WEBVIEW2_SHA256 "10d78e9e11c7851f0a8bf0dd4c22bbf6383de45bd337e1be42240b103812947d")
set(WEBVIEW2_DEFAULT_PACKAGE_DIR "${CMAKE_CURRENT_BINARY_DIR}/packages/Microsoft.Web.WebView2.${WEBVIEW2_VERSION}")
if(NOT EXISTS ${WEBVIEW2_PACKAGE_DIR})
unset(WEBVIEW2_PACKAGE_DIR CACHE)
endif()
find_path(WEBVIEW2_PACKAGE_DIR
NAMES build/native/include/WebView2.h
PATHS
"${PROJECT_SOURCE_DIR}/3rdparty/webview2"
${WEBVIEW2_DEFAULT_PACKAGE_DIR}
)
if (NOT WEBVIEW2_PACKAGE_DIR)
message(STATUS "WebView2 SDK not found locally, downloading...")
set(WEBVIEW2_PACKAGE_DIR ${WEBVIEW2_DEFAULT_PACKAGE_DIR} CACHE PATH "WebView2 SDK PATH" FORCE)
file(DOWNLOAD
${WEBVIEW2_URL}
${CMAKE_CURRENT_BINARY_DIR}/webview2.nuget
EXPECTED_HASH SHA256=${WEBVIEW2_SHA256}
STATUS DOWNLOAD_RESULT)
# Check that the download was successful.
list(GET DOWNLOAD_RESULT 0 DOWNLOAD_RESULT_NUM)
if(NOT ${DOWNLOAD_RESULT_NUM} EQUAL 0)
list(GET DOWNLOAD_RESULT 1 DOWNLOAD_RESULT_STR)
message(FATAL_ERROR "Error ${DOWNLOAD_RESULT_NUM} downloading WebView2 SDK: ${DOWNLOAD_RESULT_STR}.")
endif()
file(MAKE_DIRECTORY ${WEBVIEW2_PACKAGE_DIR})
execute_process(COMMAND
"${CMAKE_COMMAND}" -E tar x "${CMAKE_CURRENT_BINARY_DIR}/webview2.nuget"
WORKING_DIRECTORY "${WEBVIEW2_PACKAGE_DIR}"
)
endif()
set(WEBVIEW2_PACKAGE_DIR ${WEBVIEW2_PACKAGE_DIR} CACHE INTERNAL "" FORCE)
wx_lib_include_directories(wxwebview "${WEBVIEW2_PACKAGE_DIR}/build/native/include")
if(NOT MSVC)
wx_lib_include_directories(wxwebview "${wxSOURCE_DIR}/include/wx/msw/wrl")
if (NOT wxBUILD_MONOLITHIC)
target_compile_options(wxwebview PRIVATE -Wno-unknown-pragmas)
endif()
endif()
if (wxUSE_WEBVIEW_EDGE_STATIC)
wx_set_webview2_arch()
wx_lib_link_directories(wxwebview PUBLIC
$<BUILD_INTERFACE:${WEBVIEW2_PACKAGE_DIR}/build/native/${WEBVIEW2_ARCH}/>
)
else()
wx_webview_copy_webview2_loader(wxwebview)
endif()
endif()
elseif(WXGTK)
if(LIBSOUP_FOUND)
wx_lib_include_directories(wxwebview ${LIBSOUP_INCLUDE_DIRS})
wx_lib_link_libraries(wxwebview PUBLIC ${LIBSOUP_LIBRARIES})
endif()
if(wxUSE_WEBVIEW_WEBKIT2)
wx_lib_include_directories(wxwebview ${WEBKIT2_INCLUDE_DIR})
wx_lib_link_libraries(wxwebview PUBLIC ${WEBKIT2_LIBRARIES})
elseif(wxUSE_WEBVIEW_WEBKIT)
wx_lib_include_directories(wxwebview ${WEBKIT_INCLUDE_DIR})
wx_lib_link_libraries(wxwebview PUBLIC ${WEBKIT_LIBRARIES})
endif()
endif()
# webkit extension plugin
# we can't use (all of the) macros and functions because this library should
# always be build as a shared libary, and not included in the monolithic build.
if(WXGTK AND wxUSE_WEBVIEW_WEBKIT2)
wx_append_sources(WEBKIT2_EXT_FILES WEBVIEW_WEBKIT2_EXTENSION)
add_library(wxwebkit2_ext SHARED ${WEBKIT2_EXT_FILES})
wx_set_target_properties(wxwebkit2_ext IS_PLUGIN)
set_target_properties(wxwebkit2_ext PROPERTIES NO_SONAME 1)
# Change output name to match expected name in webview_webkit2.cpp: webkit2_ext*
set(lib_unicode "u")
set(lib_rls)
set(lib_dbg)
if(WIN32_MSVC_NAMING)
set(lib_dbg "d")
endif()
if(wxVERSION_IS_DEV)
set(WX_WEB_EXT_VERSION "${wxMAJOR_VERSION}.${wxMINOR_VERSION}.${wxRELEASE_NUMBER}")
else()
set(WX_WEB_EXT_VERSION "${wxMAJOR_VERSION}.${wxMINOR_VERSION}")
endif()
set_target_properties(wxwebkit2_ext PROPERTIES
OUTPUT_NAME "webkit2_ext${lib_unicode}${lib_rls}-${WX_WEB_EXT_VERSION}"
OUTPUT_NAME_DEBUG "webkit2_ext${lib_unicode}${lib_dbg}-${WX_WEB_EXT_VERSION}"
PREFIX ""
)
target_include_directories(wxwebkit2_ext PRIVATE
${LIBSOUP_INCLUDE_DIRS}
${WEBKIT2_INCLUDE_DIR}
)
target_link_libraries(wxwebkit2_ext PUBLIC
${LIBSOUP_LIBRARIES}
${WEBKIT2_LIBRARIES}
)
wx_install(TARGETS wxwebkit2_ext LIBRARY DESTINATION "lib/wx/${WX_WEB_EXT_VERSION}/web-extensions")
wx_add_dependencies(wxwebview wxwebkit2_ext)
endif()

View File

@@ -0,0 +1,331 @@
#############################################################################
# Name: build/cmake/lib/webview_chromium/CMakeLists.txt
# Purpose: CMake file for webview_chromium library
# Author: Tobias Taschner
# Created: 2018-02-03
# Copyright: (c) 2018 wxWidgets development team
# Licence: wxWindows licence
#############################################################################
include(../../source_groups.cmake)
set(KNOWN_CONFIGS "Debug;Release;RelWithDebInfo;MinSizeRel")
if(CMAKE_CONFIGURATION_TYPES)
foreach(cfg ${CMAKE_CONFIGURATION_TYPES})
if (NOT cfg IN_LIST KNOWN_CONFIGS)
message(WARNING "Unknown build configuration '${cfg}', this might cause issues with libcef_dll_wrapper")
endif()
endforeach()
elseif(CMAKE_BUILD_TYPE)
if (NOT CMAKE_BUILD_TYPE IN_LIST KNOWN_CONFIGS)
message(WARNING "Unknown build configuration '${cfg}', this might cause issues with libcef_dll_wrapper")
endif()
endif()
find_path(CEF_ROOT
NAMES libcef_dll
HINTS
$ENV{CEF_ROOT}
${wxSOURCE_DIR}/3rdparty/cef
DOC "CEF Binary Root directory"
)
# We may need to create multiple arch-specific directories, so define the
# variables containing the common root for all of them.
set(CEF_DOWNLOAD_ROOT ${CMAKE_CURRENT_BINARY_DIR}/cef-download)
set(CEF_SOURCE_ROOT ${CMAKE_CURRENT_BINARY_DIR}/cef-source)
set(CEF_BUILD_ROOT ${CMAKE_CURRENT_BINARY_DIR}/cef-build)
# But when we don't need multiple directories, just use them directly.
set(CEF_DOWNLOAD_DIR ${CEF_DOWNLOAD_ROOT})
set(CEF_SOURCE_DIR ${CEF_SOURCE_ROOT})
set(CEF_BUILD_DIR ${CEF_BUILD_ROOT})
# This function downloads and builds CEF for the specified platform.
function(wx_download_cef CEF_PLATFORM)
message("Downloading CEF binary distribution for ${CEF_PLATFORM}...")
set(CEF_URL "${CEF_BASE_URL}${CEF_VERSION}_${CEF_PLATFORM}${CEF_DISTRIBUTION}${CEF_FILE_EXT}")
set(CEF_SHA1 "${CEF_SHA1_${CEF_PLATFORM}}")
configure_file(
${CMAKE_CURRENT_SOURCE_DIR}/cef_download.cmake.in
${CEF_DOWNLOAD_DIR}/CMakeLists.txt
)
execute_process(
COMMAND ${CMAKE_COMMAND} -G "${CMAKE_GENERATOR}" .
RESULT_VARIABLE result
WORKING_DIRECTORY ${CEF_DOWNLOAD_DIR}
)
if(result)
message(FATAL_ERROR "CMake step for cef failed: ${result}")
endif()
execute_process(
COMMAND ${CMAKE_COMMAND} --build .
RESULT_VARIABLE result
WORKING_DIRECTORY ${CEF_DOWNLOAD_DIR}
)
if(result)
message(FATAL_ERROR "Build step for cef failed: ${result}")
endif()
endfunction()
if(NOT CEF_ROOT)
include(cef_version_info.cmake)
# Note that CMAKE_OSX_ARCHITECTURES is always defined under macOS, but is
# empty if not explicitly specified, so do _not_ use if(DEFINED ...) here.
if(CMAKE_OSX_ARCHITECTURES)
foreach(osx_arch IN LISTS CMAKE_OSX_ARCHITECTURES)
# Determine the matching CEF platform name.
if(${osx_arch} STREQUAL "arm64")
set(CEF_PLATFORM "macosarm64")
elseif(${osx_arch} STREQUAL "x86_64")
set(CEF_PLATFORM "macosx64")
else()
message(FATAL_ERROR "Building CEF for macOS architecture ${osx_arch} is not supported")
endif()
if(NOT first_cef_platform)
# Download/unpack CEF files in the root directory and remember
# that we did it by setting this variable.
set(first_cef_platform ${CEF_PLATFORM})
else()
list(APPEND other_cef_platforms ${CEF_PLATFORM})
# Use different subdirectories for the other architectures.
set(CEF_DOWNLOAD_DIR "${CEF_DOWNLOAD_ROOT}/${CEF_PLATFORM}")
set(CEF_SOURCE_DIR "${CEF_SOURCE_ROOT}/${CEF_PLATFORM}")
set(CEF_BUILD_DIR "${CEF_BUILD_ROOT}/${CEF_PLATFORM}")
endif()
wx_download_cef(${CEF_PLATFORM})
endforeach()
# Now lipo all the binaries together unless this is a degenerate case
# in which CMAKE_OSX_ARCHITECTURES contains only one element.
if(other_cef_platforms)
set(cef_binaries
"cef_sandbox.a"
"Chromium Embedded Framework.framework/Chromium Embedded Framework"
"Chromium Embedded Framework.framework/Libraries/libEGL.dylib"
"Chromium Embedded Framework.framework/Libraries/libGLESv2.dylib"
"Chromium Embedded Framework.framework/Libraries/libvk_swiftshader.dylib"
)
foreach(cef_bin_file IN LISTS cef_binaries)
set(lipo_command
lipo -create "Release/${cef_bin_file}"
)
foreach(cef_platform IN LISTS other_cef_platforms)
list(APPEND lipo_command "${cef_platform}/Release/${cef_bin_file}")
endforeach()
list(APPEND lipo_command "-output")
list(APPEND lipo_command "Release/${cef_bin_file}.tmp")
execute_process(
COMMAND ${lipo_command}
RESULT_VARIABLE result
WORKING_DIRECTORY ${CEF_SOURCE_ROOT}
)
if(result)
message(FATAL_ERROR "Running \"${lipo_command}\" in ${CEF_SOURCE_ROOT} failed: ${result}")
endif()
file(RENAME
"${CEF_SOURCE_ROOT}/Release/${cef_bin_file}.tmp"
"${CEF_SOURCE_ROOT}/Release/${cef_bin_file}"
)
endforeach()
# Special case of arch-specific v8 snapshot file.
foreach(cef_platform IN LISTS other_cef_platforms)
# This one uses the standard arch name instead of CEF-specific
# name used elsewhere just to make our life a bit more interesting.
if(${cef_platform} STREQUAL "macosarm64")
set(cef_arch "arm64")
elseif(${cef_platform} STREQUAL "macosx64")
set(cef_arch "x86_64")
else()
message(FATAL_ERROR "Uknown v8 arch for CEF platform ${cef_platform}")
endif()
file(COPY_FILE
"${CEF_SOURCE_ROOT}/${cef_platform}/Release/Chromium Embedded Framework.framework/Resources/v8_context_snapshot.${cef_arch}.bin"
"${CEF_SOURCE_ROOT}/Release/Resources"
)
endforeach()
# This file differs between the architectures, but has a fixed name, so
# we can only remove it. FWIW it is not present in CEF included in
# /Application/Google Chrome.app, so it's probably the right thing to do.
file(REMOVE "${CEF_SOURCE_ROOT}/Release/Chrome Embedded Framework.framework/Resources/snapshot_blob.bin")
endif()
else()
# Auto detect CEF platform.
if(CMAKE_SYSTEM_NAME STREQUAL "Darwin")
if(CMAKE_SIZEOF_VOID_P LESS 8)
message(FATAL_ERROR "Unsupported macOS system")
else()
if("${CMAKE_SYSTEM_PROCESSOR}" STREQUAL "arm64")
set(CEF_PLATFORM "macosarm64")
else()
set(CEF_PLATFORM "macosx64")
endif()
endif()
elseif(CMAKE_SYSTEM_NAME STREQUAL "Linux")
if(CMAKE_SIZEOF_VOID_P LESS 8)
if("${CMAKE_SYSTEM_PROCESSOR}" STREQUAL "arm")
set(CEF_PLATFORM "linuxarm")
else()
message(FATAL_ERROR "Unsupported Linux system")
endif()
else()
if("${CMAKE_SYSTEM_PROCESSOR}" STREQUAL "arm64")
set(CEF_PLATFORM "linuxarm64")
else()
set(CEF_PLATFORM "linux64")
endif()
endif()
elseif(CMAKE_SYSTEM_NAME STREQUAL "Windows")
if(CMAKE_SIZEOF_VOID_P LESS 8)
if("${CMAKE_SYSTEM_PROCESSOR}" STREQUAL "arm")
message(FATAL_ERROR "Unsupported Windows system")
else()
set(CEF_PLATFORM "windows32")
endif()
else()
if("${CMAKE_SYSTEM_PROCESSOR}" STREQUAL "arm64")
set(CEF_PLATFORM "windowsarm64")
else()
set(CEF_PLATFORM "windows64")
endif()
endif()
else()
message(FATAL_ERROR "Unsupported CEF system")
endif()
wx_download_cef(${CEF_PLATFORM})
endif()
set(CEF_ROOT ${CEF_SOURCE_ROOT} CACHE PATH "CEF Binary Root directory" FORCE)
endif()
# CEF settings
set(USE_ATL OFF) # Disable usage of ATL in CEF
set(USE_SANDBOX OFF) # Disable usage of sandbox on windows
if(MSVC)
if(wxBUILD_USE_STATIC_RUNTIME)
set(CEF_RUNTIME_LIBRARY_FLAG "/MT" CACHE STRING "" FORCE)
else()
set(CEF_RUNTIME_LIBRARY_FLAG "/MD" CACHE STRING "" FORCE)
endif()
endif()
set(_saved_CMAKE_MESSAGE_LOG_LEVEL ${CMAKE_MESSAGE_LOG_LEVEL})
set(CEF_SHOW_RESULTS FALSE CACHE BOOL "Show CEF configuration results")
if(CEF_SHOW_RESULTS)
if(CMAKE_OSX_ARCHITECTURES)
# This is only used for the summary shown if CEF_SHOW_RESULTS is on.
set(PROJECT_ARCH ${CMAKE_OSX_ARCHITECTURES})
endif()
else()
set(CMAKE_MESSAGE_LOG_LEVEL ERROR)
endif()
# prevent libcef_dll_wrapper from creating only Release and Debug configs
# in multi-configuration generators
# variable_watch does not seem to be scoped, and we can't unset it, or replace it,
# and we don't care if it is changed later, so use enable_guard
# to stop the guard from working after libcef_dll_wrapper is added.
set(enable_guard 1)
macro(set_readonly VAR)
set(_${VAR}_ ${${VAR}})
variable_watch(${VAR} readonly_guard)
endmacro()
macro(readonly_guard VAR access value)
if (enable_guard AND "${access}" STREQUAL "MODIFIED_ACCESS" AND NOT "${value}" STREQUAL "${_${VAR}_}")
set(${VAR} ${_${VAR}_})
message(WARNING "Blocked changing variable '${VAR}' to '${value}', reset to '${${VAR}}'")
endif()
endmacro()
set_readonly(CMAKE_CONFIGURATION_TYPES)
# Prevent CEF from resetting CMAKE_OSX_ARCHITECTURES if it explicitly set, this
# is required in order to allow building universal binaries.
if(CMAKE_OSX_ARCHITECTURES)
set_readonly(CMAKE_OSX_ARCHITECTURES)
endif()
add_subdirectory(${CEF_ROOT} ${CEF_BUILD_ROOT} EXCLUDE_FROM_ALL)
set(enable_guard 0)
set(CMAKE_MESSAGE_LOG_LEVEL ${_saved_CMAKE_MESSAGE_LOG_LEVEL})
set_target_properties(libcef_dll_wrapper PROPERTIES
FOLDER "Third Party Libraries"
OUTPUT_NAME "libcef_dll_wrapper"
)
if(NOT MSVC)
target_compile_options(libcef_dll_wrapper PRIVATE "-Wno-extra")
endif()
# libcef_dll_wrapper only sets properties for Debug and Release.
# Extract the release options/flags and apply them to RelWithDebInfo and MinSizeRel.
macro(rls_flags property)
get_target_property(props libcef_dll_wrapper ${property})
string(FIND "${props}" "$<CONFIG:Release>:" index)
math(EXPR index "${index}+18")
string(SUBSTRING "${props}" ${index} -1 props)
string(FIND "${props}" ">" index)
string(SUBSTRING "${props}" 0 ${index} props)
if ("${property}" STREQUAL "COMPILE_DEFINITIONS")
target_compile_definitions(libcef_dll_wrapper PRIVATE
$<$<CONFIG:RelWithDebInfo>:${props}>
$<$<CONFIG:MinSizeRel>:${props}>
)
else()
target_compile_options(libcef_dll_wrapper PRIVATE
$<$<CONFIG:RelWithDebInfo>:${props}>
$<$<CONFIG:MinSizeRel>:${props}>
)
endif()
endmacro()
rls_flags(COMPILE_DEFINITIONS)
rls_flags(COMPILE_OPTIONS)
add_library(libcef SHARED IMPORTED GLOBAL)
if(APPLE)
set_target_properties(libcef PROPERTIES
IMPORTED_LOCATION "${CEF_ROOT}/Release/Chromium Embedded Framework.framework/Chromium Embedded Framework"
)
else()
set_target_properties(libcef PROPERTIES
IMPORTED_LOCATION "${CEF_ROOT}/Release/libcef${CMAKE_SHARED_LIBRARY_SUFFIX}"
IMPORTED_IMPLIB "${CEF_ROOT}/Release/libcef${CMAKE_IMPORT_LIBRARY_SUFFIX}"
)
endif()
wx_install(TARGETS libcef_dll_wrapper
EXPORT wxWidgetsTargets
ARCHIVE DESTINATION "lib${GEN_EXPR_DIR}${wxPLATFORM_LIB_DIR}"
)
wx_lib_include_directories(wxwebview PRIVATE ${CEF_ROOT})
wx_add_dependencies(wxwebview libcef_dll_wrapper)
wx_lib_link_libraries(wxwebview PUBLIC libcef libcef_dll_wrapper)
mark_as_advanced(USE_ATL)
mark_as_advanced(USE_SANDBOX)
mark_as_advanced(OPTION_USE_ARC)
mark_as_advanced(CEF_ROOT)
mark_as_advanced(CEF_SHOW_RESULTS)
mark_as_advanced(CEF_DEBUG_INFO_FLAG)
mark_as_advanced(CEF_RUNTIME_LIBRARY_FLAG)

View File

@@ -0,0 +1,28 @@
#############################################################################
# Name: build/cmake/lib/webview_chromium/cef_download.cmake.in
# Purpose: CMakeLists.txt template to download CEF
# Author: Tobias Taschner
# Created: 2018-02-19
# Copyright: (c) 2018 wxWidgets development team
# Licence: wxWindows licence
#############################################################################
cmake_minimum_required(VERSION 3.5)
if(POLICY CMP0135)
cmake_policy(SET CMP0135 NEW)
endif()
project(cef-download NONE)
include(ExternalProject)
ExternalProject_Add(cef
URL ${CEF_URL}
URL_HASH SHA1=${CEF_SHA1}
SOURCE_DIR "${CEF_SOURCE_DIR}"
BINARY_DIR "${CEF_BUILD_DIR}"
CONFIGURE_COMMAND ""
BUILD_COMMAND ""
INSTALL_COMMAND ""
TEST_COMMAND ""
)

View File

@@ -0,0 +1,35 @@
#############################################################################
# Name: build/cmake/lib/webview_chromium/cef_update_version_info.cmake
# Purpose: Script to update
# Author: Tobias Taschner
# Created: 2018-02-03
# Copyright: (c) 2018 wxWidgets development team
# Licence: wxWindows licence
#############################################################################
# Use this script to automatically update cef_version_info.cmake
#
# Run this script with cmake script mode
# cmake -D CEF_VERSION=x.y.z+b -P cef_update_version_info.cmake
if(NOT DEFINED CEF_VERSION)
message(FATAL_ERROR "CEF_VERSION not defined")
endif()
set(CEF_BASE_URL "https://cef-builds.spotifycdn.com/cef_binary_")
set(CEF_DISTRIBUTION "_minimal")
set(CEF_FILE_EXT ".tar.bz2")
set(sha_file ${CMAKE_BINARY_DIR}/__info_sha.txt)
foreach(platform windows64 windowsarm64 windows32 macosx64 macosarm64 linux64 linuxarm64 linuxarm)
file(DOWNLOAD "${CEF_BASE_URL}${CEF_VERSION}_${platform}${CEF_DISTRIBUTION}${CEF_FILE_EXT}.sha1" "${sha_file}")
file(READ "${sha_file}" CEF_SHA1_${platform})
endforeach()
file(REMOVE ${sha_file})
configure_file(
cef_version_info.cmake.in
cef_version_info.cmake
@ONLY NEWLINE_STYLE LF
)

View File

@@ -0,0 +1,27 @@
#############################################################################
# Name: build/cmake/lib/webview_chromium/cef_version_info.cmake
# Purpose: CMake file CEF version information
# Author: Tobias Taschner
# Created: 2018-02-03
# Copyright: (c) 2018 wxWidgets development team
# Licence: wxWindows licence
#############################################################################
#
# DO NOT MODIFY MANUALLY
#
# To update this file, use cef_update_version_info.cmake
set(CEF_BASE_URL "https://cef-builds.spotifycdn.com/cef_binary_")
set(CEF_VERSION "122.1.10+gc902316+chromium-122.0.6261.112")
set(CEF_DISTRIBUTION "_minimal")
set(CEF_FILE_EXT ".tar.bz2")
set(CEF_SHA1_macosarm64 "d299d467508b970e7227c4d8171985a9942b08a7")
set(CEF_SHA1_macosx64 "a71cef7ec7d8230fcc24d97a09c023e77b2b8608")
set(CEF_SHA1_linuxarm "ba3bb572064da216d2a6e3aafbbcda5a96f6f204")
set(CEF_SHA1_linuxarm64 "700404f6972200eee834e1f94b42b4df4aefe266")
set(CEF_SHA1_linux64 "696f09deb86fd7a220004101521e07381b7dec4b")
set(CEF_SHA1_windows32 "850c8f5ff35ad36c447e2492292dc965d4f13ebc")
set(CEF_SHA1_windowsarm64 "a1e318fe1dc56d9e4014bf1e3b283a2ee70915d0")
set(CEF_SHA1_windows64 "93e6ccdd093da457ae98fdf63f84becc2388bdb8")

View File

@@ -0,0 +1,27 @@
#############################################################################
# Name: build/cmake/lib/webview_chromium/cef_version_info.cmake
# Purpose: CMake file CEF version information
# Author: Tobias Taschner
# Created: 2018-02-03
# Copyright: (c) 2018 wxWidgets development team
# Licence: wxWindows licence
#############################################################################
#
# DO NOT MODIFY MANUALLY
#
# To update this file, use cef_update_version_info.cmake
set(CEF_BASE_URL "@CEF_BASE_URL@")
set(CEF_VERSION "@CEF_VERSION@")
set(CEF_DISTRIBUTION "@CEF_DISTRIBUTION@")
set(CEF_FILE_EXT "@CEF_FILE_EXT@")
set(CEF_SHA1_macosarm64 "@CEF_SHA1_macosarm64@")
set(CEF_SHA1_macosx64 "@CEF_SHA1_macosx64@")
set(CEF_SHA1_linuxarm "@CEF_SHA1_linuxarm@")
set(CEF_SHA1_linuxarm64 "@CEF_SHA1_linuxarm64@")
set(CEF_SHA1_linux64 "@CEF_SHA1_linux64@")
set(CEF_SHA1_windows32 "@CEF_SHA1_windows32@")
set(CEF_SHA1_windowsarm64 "@CEF_SHA1_windowsarm64@")
set(CEF_SHA1_windows64 "@CEF_SHA1_windows64@")

View File

@@ -0,0 +1,13 @@
#############################################################################
# Name: build/cmake/lib/xml/CMakeLists.txt
# Purpose: CMake file for xml library
# Author: Tobias Taschner
# Created: 2016-09-20
# Copyright: (c) 2016 wxWidgets development team
# Licence: wxWindows licence
#############################################################################
wx_append_sources(XML_FILES XML)
wx_add_library(wxxml IS_BASE ${XML_FILES})
wx_lib_link_libraries(wxxml PRIVATE ${EXPAT_LIBRARIES})
wx_lib_include_directories(wxxml ${EXPAT_INCLUDE_DIRS})

View File

@@ -0,0 +1,13 @@
#############################################################################
# Name: build/cmake/lib/xrc/CMakeLists.txt
# Purpose: CMake file for xrc library
# Author: Tobias Taschner
# Created: 2016-10-03
# Copyright: (c) 2016 wxWidgets development team
# Licence: wxWindows licence
#############################################################################
wx_append_sources(XRC_FILES XRC)
wx_add_library(wxxrc ${XRC_FILES})
wx_lib_link_libraries(wxxrc PRIVATE wxhtml wxxml)

View File

@@ -0,0 +1,43 @@
#############################################################################
# Name: build/cmake/lib/zlib.cmake
# Purpose: Use external or internal zlib
# Author: Tobias Taschner
# Created: 2016-09-21
# Copyright: (c) 2016 wxWidgets development team
# Licence: wxWindows licence
#############################################################################
if(wxUSE_ZLIB STREQUAL "builtin")
# TODO: implement building zlib via its CMake file, using
# add_subdirectory or ExternalProject_Add
wx_add_builtin_library(wxzlib
src/zlib/adler32.c
src/zlib/compress.c
src/zlib/crc32.c
src/zlib/deflate.c
src/zlib/gzclose.c
src/zlib/gzlib.c
src/zlib/gzread.c
src/zlib/gzwrite.c
src/zlib/infback.c
src/zlib/inffast.c
src/zlib/inflate.c
src/zlib/inftrees.c
src/zlib/trees.c
src/zlib/uncompr.c
src/zlib/zutil.c
)
if(WIN32)
# Define this to get rid of many warnings about using open(),
# read() and other POSIX functions in zlib code. This is much
# more convenient than having to modify it to avoid them.
target_compile_definitions(wxzlib PRIVATE _CRT_NONSTDC_NO_WARNINGS)
endif()
if("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang")
target_compile_options(wxzlib PRIVATE -Wno-deprecated-non-prototype)
endif()
set(ZLIB_LIBRARIES wxzlib)
set(ZLIB_INCLUDE_DIRS ${wxSOURCE_DIR}/src/zlib)
elseif(wxUSE_ZLIB)
find_package(ZLIB REQUIRED)
endif()