diff --git a/CMakeLists.txt b/CMakeLists.txt
index f86ddc322..a308b952f 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -101,13 +101,15 @@ endif(CMAKE_POSITION_INDEPENDENT_CODE)
enable_language(ASM-ATT)
-option(FULL_BUILD "Include large items in the build" ON)
option(TARGET_i386 "Enable i386 slices" ON)
option(TARGET_x86_64 "Enable x86_64 slices" ON)
option(DEBIAN_PACKAGING "Packaging for Debian" OFF)
option(ENABLE_TESTS "Install in-prefix unit tests" OFF)
option(REGENERATE_SDK "Regenerate Header Files For Open Source SDK" OFF)
-option(ADDITIONAL_PACKAGES "Include additional pacakges not included by default in a standard macOS installation" OFF)
+
+set(COMPONENTS "stock" CACHE STRING "Choose which components of Darling to build")
+include(darling_parse_components)
+darling_parse_components("${COMPONENTS}")
set(COMPILE_PY2_BYTECODE AUTO CACHE STRING "Pre-compile bytecode for Python 2 packages")
set_property(CACHE COMPILE_PY2_BYTECODE PROPERTY STRINGS AUTO ON OFF)
diff --git a/cmake/darling_framework.cmake b/cmake/darling_framework.cmake
index 6e5fb0db9..e7a2ca81e 100644
--- a/cmake/darling_framework.cmake
+++ b/cmake/darling_framework.cmake
@@ -7,13 +7,16 @@ define_property(TARGET PROPERTY DYLIB_INSTALL_NAME BRIEF_DOCS "Stores the DYLIB_
FULL_DOCS "Used to make reexporting child frameworks less painful.")
function(add_framework name)
- cmake_parse_arguments(FRAMEWORK "CURRENT_VERSION;FAT;PRIVATE;IOSSUPPORT;CIRCULAR" "VERSION;LINK_FLAGS;PARENT;PARENT_VERSION"
+ cmake_parse_arguments(FRAMEWORK "CURRENT_VERSION;FAT;PRIVATE;IOSSUPPORT;CIRCULAR;NO_INSTALL" "VERSION;LINK_FLAGS;PARENT;PARENT_VERSION;TARGET_NAME"
"SOURCES;DEPENDENCIES;CIRCULAR_DEPENDENCIES;RESOURCES;UPWARD_DEPENDENCIES;OBJECTS;STRONG_DEPENDENCIES" ${ARGN})
- if (FRAMEWORK_CURRENT_VERSION)
+
+ if (DEFINED FRAMEWORK_TARGET_NAME)
+ set(my_name "${FRAMEWORK_TARGET_NAME}")
+ elseif (FRAMEWORK_CURRENT_VERSION)
set(my_name "${name}")
- else (FRAMEWORK_CURRENT_VERSION)
+ else()
set(my_name "${name}_${FRAMEWORK_VERSION}")
- endif (FRAMEWORK_CURRENT_VERSION)
+ endif()
if (FRAMEWORK_PRIVATE)
set(dir_name "PrivateFrameworks")
@@ -32,8 +35,10 @@ function(add_framework name)
# 99% of the time it's version A
set(FRAMEWORK_PARENT_VERSION "A")
endif(NOT DEFINED FRAMEWORK_PARENT_VERSION)
- InstallSymlink(Versions/Current/Frameworks
- "${CMAKE_INSTALL_PREFIX}/libexec/darling/${sys_library_dir}/${dir_name}/${FRAMEWORK_PARENT}.framework/Frameworks")
+ if (NOT FRAMEWORK_NO_INSTALL)
+ InstallSymlink(Versions/Current/Frameworks
+ "${CMAKE_INSTALL_PREFIX}/libexec/darling/${sys_library_dir}/${dir_name}/${FRAMEWORK_PARENT}.framework/Frameworks")
+ endif()
set(dir_name "${dir_name}/${FRAMEWORK_PARENT}.framework/Versions/${FRAMEWORK_PARENT_VERSION}/Frameworks")
endif(DEFINED FRAMEWORK_PARENT)
@@ -66,9 +71,9 @@ function(add_framework name)
set_property(TARGET ${my_name} PROPERTY DYLIB_INSTALL_NAME ${DYLIB_INSTALL_NAME})
- if (FRAMEWORK_CURRENT_VERSION)
+ if (FRAMEWORK_CURRENT_VERSION AND NOT DEFINED FRAMEWORK_TARGET_NAME)
add_library("${name}_${FRAMEWORK_VERSION}" ALIAS "${name}")
- endif (FRAMEWORK_CURRENT_VERSION)
+ endif()
set_target_properties(${my_name} PROPERTIES
OUTPUT_NAME "${name}"
@@ -83,9 +88,11 @@ function(add_framework name)
set_property(TARGET ${my_name} APPEND_STRING PROPERTY LINK_FLAGS " ${FRAMEWORK_LINK_FLAGS}")
endif (FRAMEWORK_LINK_FLAGS)
- install(TARGETS ${my_name} DESTINATION "libexec/darling/${sys_library_dir}/${dir_name}/${name}.framework/Versions/${FRAMEWORK_VERSION}/")
+ if (NOT FRAMEWORK_NO_INSTALL)
+ install(TARGETS ${my_name} DESTINATION "libexec/darling/${sys_library_dir}/${dir_name}/${name}.framework/Versions/${FRAMEWORK_VERSION}/")
+ endif()
- if (FRAMEWORK_RESOURCES)
+ if (FRAMEWORK_RESOURCES AND NOT FRAMEWORK_NO_INSTALL)
if (FRAMEWORK_CURRENT_VERSION)
InstallSymlink("Versions/Current/Resources" "${CMAKE_INSTALL_PREFIX}/libexec/darling/${sys_library_dir}/${dir_name}/${name}.framework/Resources")
endif (FRAMEWORK_CURRENT_VERSION)
@@ -99,12 +106,12 @@ function(add_framework name)
RENAME ${res_install_name})
list(REMOVE_AT FRAMEWORK_RESOURCES 0 1)
endwhile (FRAMEWORK_RESOURCES)
- endif (FRAMEWORK_RESOURCES)
+ endif()
- if (FRAMEWORK_CURRENT_VERSION)
+ if (FRAMEWORK_CURRENT_VERSION AND NOT FRAMEWORK_NO_INSTALL)
InstallSymlink(${FRAMEWORK_VERSION} "${CMAKE_INSTALL_PREFIX}/libexec/darling/${sys_library_dir}/${dir_name}/${name}.framework/Versions/Current")
InstallSymlink("Versions/Current/${name}" "${CMAKE_INSTALL_PREFIX}/libexec/darling/${sys_library_dir}/${dir_name}/${name}.framework/${name}")
- endif (FRAMEWORK_CURRENT_VERSION)
+ endif()
endfunction(add_framework)
function(add_separated_framework name)
diff --git a/cmake/darling_parse_components.cmake b/cmake/darling_parse_components.cmake
new file mode 100644
index 000000000..4d0cac34c
--- /dev/null
+++ b/cmake/darling_parse_components.cmake
@@ -0,0 +1,87 @@
+#
+# Takes a single component and returns all its dependencies in `COMPONENT_DEPS`
+#
+function(darling_parse_components_get_deps COMPONENT)
+ if (("${COMPONENT}" STREQUAL "system") OR ("${COMPONENT}" STREQUAL "python") OR ("${COMPONENT}" STREQUAL "ruby") OR ("${COMPONENT}" STREQUAL "perl"))
+ set(COMPONENT_DEPS core PARENT_SCOPE)
+ elseif ("${COMPONENT}" STREQUAL "cli")
+ set(COMPONENT_DEPS system PARENT_SCOPE)
+ elseif ("${COMPONENT}" STREQUAL "cli_dev")
+ set(COMPONENT_DEPS cli python ruby perl dev_gui_common dev_gui_frameworks_common dev_gui_stubs_common PARENT_SCOPE)
+ elseif ("${COMPONENT}" STREQUAL "cli_extra")
+ set(COMPONENT_DEPS cli PARENT_SCOPE)
+ elseif ("${COMPONENT}" STREQUAL "gui")
+ set(COMPONENT_DEPS system dev_gui_common iokitd PARENT_SCOPE)
+ elseif ("${COMPONENT}" STREQUAL "gui_frameworks")
+ set(COMPONENT_DEPS gui dev_gui_frameworks_common PARENT_SCOPE)
+ elseif ("${COMPONENT}" STREQUAL "gui_stubs")
+ set(COMPONENT_DEPS gui dev_gui_stubs_common PARENT_SCOPE)
+ elseif ("${COMPONENT}" STREQUAL "dev_gui_common")
+ set(COMPONENT_DEPS system PARENT_SCOPE)
+ elseif (("${COMPONENT}" STREQUAL "dev_gui_frameworks_common") OR ("${COMPONENT}" STREQUAL "dev_gui_stubs_common"))
+ set(COMPONENT_DEPS dev_gui_common PARENT_SCOPE)
+ elseif ("${COMPONENT}" STREQUAL "jsc")
+ set(COMPONENT_DEPS system PARENT_SCOPE)
+ elseif ("${COMPONENT}" STREQUAL "webkit")
+ set(COMPONENT_DEPS dev_gui_frameworks_common dev_gui_stubs_common PARENT_SCOPE)
+ elseif ("${COMPONENT}" STREQUAL "iokitd")
+ set(COMPONENT_DEPS system PARENT_SCOPE)
+ elseif ("${COMPONENT}" STREQUAL "stock")
+ set(COMPONENT_DEPS cli python ruby perl dev_gui_common dev_gui_frameworks_common dev_gui_stubs_common gui_frameworks gui_stubs PARENT_SCOPE)
+ elseif ("${COMPONENT}" STREQUAL "all")
+ set(COMPONENT_DEPS stock jsc webkit cli_extra cli_dev_gui_stubs PARENT_SCOPE)
+ endif()
+endfunction()
+
+function(darling_parse_components DARLING_RAW_COMPONENTS)
+ string(REPLACE "," ";" RAW_COMPONENTS_LIST "${DARLING_RAW_COMPONENTS}")
+
+ set(COMPONENTS_TO_PROCESS "")
+
+ foreach(RAW_COMPONENT IN LISTS RAW_COMPONENTS_LIST)
+ string(STRIP "${RAW_COMPONENT}" STRIPPED_COMPONENT)
+ string(TOLOWER "${STRIPPED_COMPONENT}" COMPONENT)
+
+ list(APPEND COMPONENTS_TO_PROCESS "${COMPONENT}")
+ endforeach()
+
+ list(REMOVE_DUPLICATES COMPONENTS_TO_PROCESS)
+
+ set(COMPONENTS_LIST "")
+
+ # iterate through the list and add each component along with its dependencies.
+ # this also handles circular dependencies between components (in case we ever have such dependency situations arise).
+ while (COMPONENTS_TO_PROCESS)
+ # get the next component and remove it from the list to process
+ list(GET COMPONENTS_TO_PROCESS 0 COMPONENT)
+ list(REMOVE_AT COMPONENTS_TO_PROCESS 0)
+
+ # add it to the list of processed components
+ list(APPEND COMPONENTS_LIST "${COMPONENT}")
+ list(REMOVE_DUPLICATES COMPONENTS_LIST)
+
+ # get its dependencies (into `COMPONENT_DEPS`)
+ darling_parse_components_get_deps("${COMPONENT}")
+
+ # add them to the list of components to process
+ list(APPEND COMPONENTS_TO_PROCESS ${COMPONENT_DEPS})
+ list(REMOVE_DUPLICATES COMPONENTS_TO_PROCESS)
+
+ # remove components that we've already processed
+ list(REMOVE_ITEM COMPONENTS_TO_PROCESS ${COMPONENTS_LIST})
+ endwhile()
+
+ # the "core" component is always on
+ set(COMPONENT_core ON PARENT_SCOPE)
+
+ # first, set every component off
+ foreach(COMPONENT IN ITEMS system python ruby perl cli cli_dev cli_extra gui gui_frameworks gui_stubs jsc webkit dev_gui_common dev_gui_frameworks_common dev_gui_stubs_common)
+ set("COMPONENT_${COMPONENT}" OFF PARENT_SCOPE)
+ endforeach()
+
+ # now turn on each component that was requested
+ foreach(COMPONENT IN LISTS COMPONENTS_LIST)
+ message(NOTICE "Including component: ${COMPONENT}")
+ set("COMPONENT_${COMPONENT}" ON PARENT_SCOPE)
+ endforeach()
+endfunction()
diff --git a/cmake/use_ld64.cmake b/cmake/use_ld64.cmake
index 781b5b0d1..61087c1ac 100644
--- a/cmake/use_ld64.cmake
+++ b/cmake/use_ld64.cmake
@@ -2,6 +2,14 @@ FUNCTION(use_ld64 target)
set_property(TARGET ${target} APPEND_STRING PROPERTY
LINK_FLAGS " -fuse-ld=${CMAKE_BINARY_DIR}/src/external/cctools-port/cctools/ld64/src/${APPLE_TARGET_TRIPLET_PRIMARY}-ld ")
+ if (COMPONENT_gui)
+ set(COCOTRON_FW_PATH "${CMAKE_BINARY_DIR}/src/external/cocotron")
+ set(IMAGE_IO_PATH "${CMAKE_BINARY_DIR}/src/frameworks/ImageIO/ImageIO")
+ else()
+ set(COCOTRON_FW_PATH "${CMAKE_BINARY_DIR}/src/frameworks/dev-stubs")
+ set(IMAGE_IO_PATH "${CMAKE_BINARY_DIR}/src/frameworks/dev-stubs/ImageIO/ImageIO")
+ endif()
+
set_property(TARGET ${target} APPEND_STRING PROPERTY
LINK_FLAGS " -B ${CMAKE_BINARY_DIR}/src/external/cctools-port/cctools/ld64/src/ \
-B ${CMAKE_BINARY_DIR}/src/external/cctools-port/cctools/misc/ \
@@ -112,9 +120,9 @@ FUNCTION(use_ld64 target)
:${CMAKE_BINARY_DIR}/src/frameworks/ApplicationServices/SpeechSynthesis/SpeechSynthesis \
-Wl,-dylib_file,/System/Library/Frameworks/CoreServices.framework/Versions/A/CoreServices:${CMAKE_BINARY_DIR}/src/frameworks/CoreServices/CoreServices \
-Wl,-dylib_file,/System/Library/Frameworks/ApplicationServices.framework/Versions/A/ApplicationServices:${CMAKE_BINARY_DIR}/src/frameworks/ApplicationServices/ApplicationServices \
--Wl,-dylib_file,/System/Library/Frameworks/CoreGraphics.framework/Versions/A/CoreGraphics:${CMAKE_BINARY_DIR}/src/external/cocotron/CoreGraphics/CoreGraphics \
--Wl,-dylib_file,/System/Library/Frameworks/CoreText.framework/Versions/A/CoreText:${CMAKE_BINARY_DIR}/src/external/cocotron/CoreText/CoreText \
--Wl,-dylib_file,/System/Library/Frameworks/ImageIO.framework/Versions/A/ImageIO:${CMAKE_BINARY_DIR}/src/frameworks/ImageIO/ImageIO \
+-Wl,-dylib_file,/System/Library/Frameworks/CoreGraphics.framework/Versions/A/CoreGraphics:${COCOTRON_FW_PATH}/CoreGraphics/CoreGraphics \
+-Wl,-dylib_file,/System/Library/Frameworks/CoreText.framework/Versions/A/CoreText:${COCOTRON_FW_PATH}/CoreText/CoreText \
+-Wl,-dylib_file,/System/Library/Frameworks/ImageIO.framework/Versions/A/ImageIO:${IMAGE_IO_PATH} \
-Wl,-dylib_file,/System/Library/Frameworks/LocalAuthentication.framework/Versions/A/LocalAuthentication:${CMAKE_BINARY_DIR}/src/frameworks/LocalAuthentication/LocalAuthentication \
-Wl,-dylib_file,/System/Library/Frameworks/CoreVideo.framework/Versions/A/CoreVideo:${CMAKE_BINARY_DIR}/src/frameworks/CoreVideo/CoreVideo \
-Wl,-dylib_file,/System/Library/PrivateFrameworks/FMDB.framework/Versions/A/FMDB:${CMAKE_BINARY_DIR}/src/external/fmdb/FMDB \
@@ -141,8 +149,8 @@ FUNCTION(use_ld64 target)
-Wl,-dylib_file,/System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/Print.framework/Versions/A/Print:${CMAKE_BINARY_DIR}/src/frameworks/Carbon/Print/Print \
-Wl,-dylib_file,/System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/SecurityHI.framework/Versions/A/SecurityHI:${CMAKE_BINARY_DIR}/src/frameworks/Carbon/SecurityHI/SecurityHI \
-Wl,-dylib_file,/System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/SpeechRecognition.framework/Versions/A/SpeechRecognition:${CMAKE_BINARY_DIR}/src/frameworks/Carbon/SpeechRecognition/SpeechRecognition \
--Wl,-dylib_file,/System/Library/Frameworks/CoreData.framework/Versions/A/CoreData:${CMAKE_BINARY_DIR}/src/external/cocotron/CoreData/CoreData \
--Wl,-dylib_file,/System/Library/Frameworks/QuartzCore.framework/Versions/A/QuartzCore:${CMAKE_BINARY_DIR}/src/external/cocotron/QuartzCore/QuartzCore \
+-Wl,-dylib_file,/System/Library/Frameworks/CoreData.framework/Versions/A/CoreData:${COCOTRON_FW_PATH}/CoreData/CoreData \
+-Wl,-dylib_file,/System/Library/Frameworks/QuartzCore.framework/Versions/A/QuartzCore:${COCOTRON_FW_PATH}/QuartzCore/QuartzCore \
-Wl,-dylib_file,/System/Library/Frameworks/OpenGL.framework/Versions/A/OpenGL:${CMAKE_BINARY_DIR}/src/frameworks/OpenGL/OpenGL \
-Wl,-dylib_file,/System/Library/PrivateFrameworks/Onyx2D.framework/Versions/A/Onyx2D:${CMAKE_BINARY_DIR}/src/external/cocotron/Onyx2D/Onyx2D \
-Wl,-dylib_file,/usr/lib/darling/libelfloader.dylib:${CMAKE_BINARY_DIR}/src/libelfloader/libelfloader.dylib \
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index 3d9b074d1..f969f940e 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -9,6 +9,22 @@ set(CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake")
include(mig)
include(pyc)
+#
+# start core components
+#
+# projects included here are strictly necessary for basic executables to function at all.
+# it should be very clear which projects belong here. a project should only be here if it
+# is one of the following or is necessary for one of the following:
+# * darlingserver
+# * dyld
+# * mldr
+# * libSystem
+# * the host-side `darling` executable
+# this includes any build tools that are necessary to build any of those projects.
+#
+# these projects are always built
+#
+
#add_subdirectory(external/xcbuild)
add_subdirectory(bsdln)
@@ -89,6 +105,7 @@ set(CMAKE_OBJC_FLAGS "${CMAKE_OBJC_FLAGS} -mmacosx-version-min=${CMAKE_OSX_DEPLO
add_definitions(-target ${APPLE_TARGET_TRIPLET_PRIMARY})
include(darling_lib)
include(darling_static_lib)
+include(darling_bundle)
file(MAKE_DIRECTORY ${CMAKE_BINARY_DIR}/${DARLING_SDK_RELATIVE_PATH}/usr/include)
@@ -135,177 +152,235 @@ include_directories(BEFORE
)
add_definitions(-D_LIBC_NO_FEATURE_VERIFICATION)
-add_subdirectory(external/darling-dmg)
+
+add_subdirectory(launchd)
add_subdirectory(libm)
-add_subdirectory(libMobileGestalt)
+add_subdirectory(external/dyld)
+add_subdirectory(external/libxpc)
add_subdirectory(libgcc)
add_subdirectory(external/copyfile)
add_subdirectory(external/Libinfo)
-add_subdirectory(quarantine)
-add_subdirectory(external/libmalloc)
+add_subdirectory(external/compiler-rt/lib/builtins)
+add_subdirectory(external/libnotify)
+add_subdirectory(duct/src)
+add_subdirectory(external/syslog)
+add_subdirectory(external/libclosure)
+add_subdirectory(external/keymgr)
add_subdirectory(external/libunwind)
-add_subdirectory(networkextension)
-add_subdirectory(external/libsystem)
+add_subdirectory(external/libmalloc)
+add_subdirectory(external/coretls)
add_subdirectory(libsystem_coreservices)
-add_subdirectory(external/libutil)
-add_subdirectory(external/libnotify)
add_subdirectory(external/removefile)
-add_subdirectory(launchd)
-add_subdirectory(external/keymgr)
-add_subdirectory(libcache)
-add_subdirectory(external/ncurses)
-add_subdirectory(external/libiconv)
-add_subdirectory(duct/src)
-add_subdirectory(external/libresolv)
+add_subdirectory(quarantine)
+add_subdirectory(sandbox)
add_subdirectory(external/corecrypto)
-add_subdirectory(external/coretls)
-add_subdirectory(xtrace)
-add_subdirectory(libgmalloc)
-add_subdirectory(external/dyld)
-add_subdirectory(external/libffi)
-add_subdirectory(external/objc4/runtime)
-add_subdirectory(external/syslog)
-add_subdirectory(external/zlib)
-add_subdirectory(external/bzip2)
-add_subdirectory(external/libxml2)
-add_subdirectory(external/libxslt)
-add_subdirectory(external/icu/icuSources)
add_subdirectory(external/commoncrypto)
-add_subdirectory(external/corefoundation)
-
-add_subdirectory(external/openssl/src)
+add_subdirectory(networkextension)
+add_subdirectory(libcache)
add_subdirectory(external/configd)
-add_subdirectory(external/foundation)
-add_subdirectory(external/nghttp2)
-add_subdirectory(external/libressl-2.2.9)
-add_subdirectory(external/libressl-2.5.5)
-add_subdirectory(external/libressl-2.6.5)
-add_subdirectory(external/libressl-2.8.3)
-add_subdirectory(external/passwordserver_sasl)
-add_subdirectory(external/OpenLDAP)
-#add_subdirectory(external/mDNSResponder)
-add_subdirectory(external/MITKerberosShim)
-add_subdirectory(external/curl)
-add_subdirectory(external/liblzma)
-add_subdirectory(external/cfnetwork/src)
-add_subdirectory(external/pcre)
-add_subdirectory(external/sqlite)
-add_subdirectory(external/openpam)
-add_subdirectory(external/libtelnet)
-add_subdirectory(external/remote_cmds)
-add_subdirectory(external/energytrace)
-add_subdirectory(external/lkm/libkern/kxld)
-add_subdirectory(external/IOKitUser)
-add_subdirectory(external/IOKitTools)
-add_subdirectory(CoreAudio)
-#add_subdirectory(external/OpenAL)
-add_subdirectory(external/python_modules)
-#add_subdirectory(VideoDecodeAcceleration)
-add_subdirectory(external/xar)
-add_subdirectory(external/libedit)
-add_subdirectory(libpmenergy)
-add_subdirectory(external/libclosure)
-add_subdirectory(external/compiler-rt/lib/builtins)
+add_subdirectory(external/libsystem)
+add_subdirectory(external/objc4/runtime)
+add_subdirectory(external/corefoundation)
+add_subdirectory(external/icu/icuSources)
add_subdirectory(external/csu)
-add_subdirectory(external/BerkeleyDB)
-add_subdirectory(external/python/2.7/Python-2.7.16)
-add_subdirectory(external/pyobjc)
-add_subdirectory(external/ruby)
-add_subdirectory(external/expat)
+add_subdirectory(external/libresolv)
+add_subdirectory(external/usertemplate)
+add_subdirectory(external/bsm)
+add_subdirectory(external/zlib)
+# shellspawn can actually spawn any executable we want within the prefix,
+# so we include it in core to allow executables to be executed with the `darling` command.
add_subdirectory(shellspawn)
-add_subdirectory(external/libarchive/libarchive)
-add_subdirectory(external/apr)
-add_subdirectory(sandbox)
-add_subdirectory(xcselect)
-add_subdirectory(external/OpenDirectory)
-add_subdirectory(external/iokitd)
-add_subdirectory(native)
+# typically considered CLI components, but required by launchctl (which is necessary for launchd to bootstrap)
+add_subdirectory(external/libedit)
+add_subdirectory(external/ncurses)
-add_subdirectory(external/file/file)
-add_subdirectory(external/libxpc)
-add_subdirectory(external/openssl_certificates)
-
-add_subdirectory(external/shell_cmds)
-add_subdirectory(external/file_cmds)
-add_subdirectory(external/text_cmds)
-add_subdirectory(external/adv_cmds)
-add_subdirectory(external/network_cmds)
-add_subdirectory(external/system_cmds)
-add_subdirectory(external/bash)
-add_subdirectory(external/tcsh)
-add_subdirectory(external/less)
-add_subdirectory(external/grep)
-add_subdirectory(external/awk)
-add_subdirectory(external/groff)
-add_subdirectory(external/nano)
-add_subdirectory(external/man)
-add_subdirectory(external/bc)
-add_subdirectory(external/vim)
-add_subdirectory(external/files)
-add_subdirectory(external/crontabs)
-add_subdirectory(external/zip)
-add_subdirectory(tools)
-add_subdirectory(external/installer)
-add_subdirectory(external/bind9)
-add_subdirectory(external/netcat)
-if(ADDITIONAL_PACKAGES)
-add_subdirectory(external/gnutar/gnutar)
+#
+# end core components
+#
+# the rest of the projects are not all neatly separated like the core components are because
+# some projects build multiple targets which may be part of different components
+#
+
+if (COMPONENT_system)
+ add_subdirectory(external/libiconv)
+ add_subdirectory(external/bzip2)
+ add_subdirectory(external/libressl-2.8.3)
+ add_subdirectory(external/libarchive/libarchive)
+ add_subdirectory(external/liblzma)
+ add_subdirectory(external/OpenDirectory)
+ add_subdirectory(external/openssl_certificates)
+ add_subdirectory(external/bash)
+ add_subdirectory(external/zsh)
+ add_subdirectory(external/tcsh)
+ add_subdirectory(external/files)
+ add_subdirectory(external/crontabs)
+ add_subdirectory(external/swift)
endif()
-add_subdirectory(external/gpatch)
-add_subdirectory(external/gnudiff)
-add_subdirectory(external/openssh)
-add_subdirectory(external/top)
-add_subdirectory(external/perl)
-add_subdirectory(external/mail_cmds)
-add_subdirectory(external/screen)
-add_subdirectory(unxip)
-add_subdirectory(external/zsh)
-add_subdirectory(external/rsync)
-add_subdirectory(external/doc_cmds)
-add_subdirectory(external/basic_cmds)
-add_subdirectory(external/misc_cmds)
-add_subdirectory(external/patch_cmds)
-add_subdirectory(external/DSTools)
-add_subdirectory(external/DirectoryService)
-add_subdirectory(libacm)
-add_subdirectory(libaks)
-add_subdirectory(libsysmon)
-add_subdirectory(libcompression)
-add_subdirectory(external/bsm)
-add_subdirectory(external/Heimdal)
-add_subdirectory(PlistBuddy)
-add_subdirectory(libDiagnosticMessagesClient)
-add_subdirectory(libquit)
-add_subdirectory(external/lzfse)
-add_subdirectory(libsandbox)
-add_subdirectory(opendirectory_internal)
-add_subdirectory(external/cups)
-# add_subdirectory(external/glut)
-add_subdirectory(external/libnetwork)
-add_subdirectory(clt)
+if (COMPONENT_cli)
+ add_subdirectory(external/darling-dmg)
+ add_subdirectory(external/libutil)
+ add_subdirectory(xtrace)
+ add_subdirectory(external/libxslt)
+ add_subdirectory(external/openssl/src)
+ add_subdirectory(external/nghttp2)
+ add_subdirectory(external/passwordserver_sasl)
+ add_subdirectory(external/curl)
+ add_subdirectory(external/OpenLDAP)
+ add_subdirectory(external/pcre)
+ add_subdirectory(external/libtelnet)
+ add_subdirectory(external/remote_cmds)
+ add_subdirectory(external/IOKitTools)
+ add_subdirectory(external/apr)
+ add_subdirectory(xcselect)
+ add_subdirectory(external/file/file)
+ add_subdirectory(external/shell_cmds)
+ add_subdirectory(external/file_cmds)
+ add_subdirectory(external/text_cmds)
+ add_subdirectory(external/adv_cmds)
+ add_subdirectory(external/network_cmds)
+ add_subdirectory(external/system_cmds)
+ add_subdirectory(external/mail_cmds)
+ add_subdirectory(external/doc_cmds)
+ add_subdirectory(external/basic_cmds)
+ add_subdirectory(external/misc_cmds)
+ add_subdirectory(external/patch_cmds)
+ add_subdirectory(external/less)
+ add_subdirectory(external/grep)
+ add_subdirectory(external/awk)
+ add_subdirectory(external/groff)
+ add_subdirectory(external/nano)
+ add_subdirectory(external/man)
+ add_subdirectory(external/bc)
+ add_subdirectory(external/zip)
+ add_subdirectory(external/installer)
+ add_subdirectory(external/bind9)
+ add_subdirectory(external/netcat)
+ add_subdirectory(external/gpatch)
+ add_subdirectory(external/gnudiff)
+ add_subdirectory(external/openssh)
+ add_subdirectory(external/top)
+ add_subdirectory(external/screen)
+ add_subdirectory(unxip)
+ add_subdirectory(external/rsync)
+ add_subdirectory(external/DSTools)
+ add_subdirectory(libsysmon)
+ add_subdirectory(PlistBuddy)
+ add_subdirectory(libquit)
+ add_subdirectory(external/lzfse)
+ add_subdirectory(clt)
+ add_subdirectory(diskutil)
+
+ # these aren't used by anything we build (they're just included because they're also present in macOS)
+ # TODO: maybe we should introduce another component (e.g. `lib_stock`) for libraries we don't need but are expected in a stock macOS installation.
+ add_subdirectory(external/libressl-2.2.9)
+ add_subdirectory(external/libressl-2.5.5)
+ add_subdirectory(external/libressl-2.6.5)
+endif()
-add_subdirectory(diskutil)
+if (COMPONENT_python OR COMPONENT_ruby)
+ add_subdirectory(external/libffi)
+endif()
-add_subdirectory(external/cocotron)
+if (COMPONENT_cli_dev)
+ add_subdirectory(libgmalloc)
+endif()
-add_subdirectory(external/fmdb)
+if (COMPONENT_cli OR COMPONENT_dev_gui_common)
+ add_subdirectory(external/libxml2)
+ add_subdirectory(external/foundation)
+ add_subdirectory(external/cfnetwork/src)
+ add_subdirectory(external/sqlite)
+ add_subdirectory(external/openpam)
+ add_subdirectory(external/energytrace)
+ add_subdirectory(external/lkm/libkern/kxld)
+ add_subdirectory(external/IOKitUser)
+ add_subdirectory(external/xar)
+ add_subdirectory(libpmenergy)
+ add_subdirectory(external/DirectoryService)
+ add_subdirectory(libacm)
+ add_subdirectory(libaks)
+ add_subdirectory(libcompression)
+ add_subdirectory(external/Heimdal)
+ add_subdirectory(libDiagnosticMessagesClient)
+ add_subdirectory(libsandbox)
+ add_subdirectory(opendirectory_internal)
+ add_subdirectory(external/fmdb)
+ add_subdirectory(external/libnetwork)
+ add_subdirectory(libMobileGestalt)
+ add_subdirectory(external/MITKerberosShim)
+endif()
-add_subdirectory(frameworks)
-add_subdirectory(private-frameworks)
-add_subdirectory(external/usertemplate)
+if (COMPONENT_iokitd)
+ add_subdirectory(external/iokitd)
+endif()
-add_subdirectory(external/lkm)
+if (COMPONENT_dev_gui_common)
+ add_subdirectory(libaccessibility)
+ add_subdirectory(external/openjdk) # *should* be in `cli` component, but requires AppKit
+endif()
+
+if (COMPONENT_cli_extra)
+ add_subdirectory(external/gnutar/gnutar)
+endif()
+
+if (COMPONENT_gui)
+ add_subdirectory(external/cocotron)
+
+ add_subdirectory(CoreAudio)
+ add_subdirectory(external/cups)
+ add_subdirectory(pboard)
+
+ # not currently used by anything we build
+ add_subdirectory(external/dbuskit)
+endif()
+
+if (COMPONENT_python)
+ add_subdirectory(external/python_modules)
+ add_subdirectory(external/python/2.7/Python-2.7.16)
+endif()
+
+if (COMPONENT_cli OR COMPONENT_python)
+ add_subdirectory(external/BerkeleyDB)
+ add_subdirectory(external/expat)
+endif()
+
+if (COMPONENT_gui_frameworks AND COMPONENT_gui_stubs AND COMPONENT_python)
+ # TODO: pyobjc should only build individual modules if the respective components are enabled.
+ # right now, it's all-or-nothing.
+ add_subdirectory(external/pyobjc)
+endif()
+
+if (COMPONENT_ruby)
+ add_subdirectory(external/ruby)
+endif()
+
+if (COMPONENT_perl)
+ add_subdirectory(external/perl)
+endif()
+
+#add_subdirectory(external/mDNSResponder)
+#add_subdirectory(external/OpenAL)
+#add_subdirectory(VideoDecodeAcceleration)
+#add_subdirectory(external/glut)
-add_subdirectory(pboard)
+# not a core component, but we always add it regardless of the components that are enabled;
+# it has its own component checks to determine which libraries to generate wrappers for.
+add_subdirectory(native)
-add_subdirectory(external/dbuskit)
-add_subdirectory(external/swift)
+# has its own component checks
+add_subdirectory(external/vim)
-add_subdirectory(libaccessibility)
+# has its own component checks
+add_subdirectory(tools)
-add_subdirectory(external/openjdk)
+# these have their own component checks on a per-framework basis
+add_subdirectory(frameworks)
+add_subdirectory(private-frameworks)
+
+# TODO: get rid of this; we really only need its headers right now
+add_subdirectory(external/lkm)
# /Applications
#add_subdirectory(external/TextEdit)
@@ -316,24 +391,42 @@ include_directories(BEFORE
${CMAKE_CURRENT_SOURCE_DIR}/external/libcxxabi/include
)
+#
+# start core components with C++
+#
+
add_subdirectory(external/libcxxabi)
add_subdirectory(external/libcxx)
add_subdirectory(external/libdispatch)
-
-# Requires a newer Security version
-add_subdirectory(external/SmartCardServices)
-add_subdirectory(external/security)
-add_subdirectory(external/SecurityTokend)
add_subdirectory(external/cctools)
-add_subdirectory(external/libauto)
-add_subdirectory(external/WTF)
-add_subdirectory(external/bmalloc)
-add_subdirectory(external/dtrace)
-add_subdirectory(external/metal)
-
-if(FULL_BUILD)
-add_subdirectory(external/JavaScriptCore)
-endif(FULL_BUILD)
+
+#
+# end core components with C++
+#
+
+if (COMPONENT_cli OR COMPONENT_dev_gui_common)
+ add_subdirectory(external/SmartCardServices)
+ add_subdirectory(external/security)
+ add_subdirectory(external/SecurityTokend)
+endif()
+
+if (COMPONENT_cli)
+ add_subdirectory(external/dtrace)
+ add_subdirectory(external/libauto)
+endif()
+
+if (COMPONENT_dev_gui_common)
+ add_subdirectory(external/metal)
+endif()
+
+if (COMPONENT_jsc OR COMPONENT_webkit)
+ add_subdirectory(external/WTF)
+ add_subdirectory(external/bmalloc)
+endif()
+
+if (COMPONENT_jsc)
+ add_subdirectory(external/JavaScriptCore)
+endif()
#add_subdirectory(external/WebCore)
diff --git a/src/external/JavaScriptCore b/src/external/JavaScriptCore
index 72c9cf792..8c4328131 160000
--- a/src/external/JavaScriptCore
+++ b/src/external/JavaScriptCore
@@ -1 +1 @@
-Subproject commit 72c9cf79233aaa412b053575dae8369cf716b619
+Subproject commit 8c4328131230ff14e5413be38ae48698f83f7197
diff --git a/src/external/coretls b/src/external/coretls
index 991decf01..605de4844 160000
--- a/src/external/coretls
+++ b/src/external/coretls
@@ -1 +1 @@
-Subproject commit 991decf0118f3642abbcf769e404a43420323ac8
+Subproject commit 605de48441f45243e79428478d7bd7d840bb3c0d
diff --git a/src/external/python_modules b/src/external/python_modules
index 52d46e882..4ac56d2fd 160000
--- a/src/external/python_modules
+++ b/src/external/python_modules
@@ -1 +1 @@
-Subproject commit 52d46e8821f724cbc60558b586e3a7c2b5c05345
+Subproject commit 4ac56d2fd778358ba9ed2a7b6512ea882dd71ed3
diff --git a/src/external/shell_cmds b/src/external/shell_cmds
index eecd2ebfb..5d73ce867 160000
--- a/src/external/shell_cmds
+++ b/src/external/shell_cmds
@@ -1 +1 @@
-Subproject commit eecd2ebfba2c7b94f7ee64aaeaf2345cdeacc048
+Subproject commit 5d73ce8673f19217a8b2ce95e84a8feab0c9de58
diff --git a/src/external/vim b/src/external/vim
index 20037b7e9..7f8da1dd6 160000
--- a/src/external/vim
+++ b/src/external/vim
@@ -1 +1 @@
-Subproject commit 20037b7e94698526cfd793d6130060bf8c8bf567
+Subproject commit 7f8da1dd66fc8f0654ebfa597b6013c8cf15185a
diff --git a/src/frameworks/ApplicationServices/CMakeLists.txt b/src/frameworks/ApplicationServices/CMakeLists.txt
index 6c1d45991..9c9a9037c 100644
--- a/src/frameworks/ApplicationServices/CMakeLists.txt
+++ b/src/frameworks/ApplicationServices/CMakeLists.txt
@@ -34,10 +34,17 @@ add_framework(ApplicationServices
CoreFoundation
)
-set(CoreGraphics_BUILD ${CMAKE_BINARY_DIR}/src/external/cocotron/CoreGraphics/CoreGraphics)
-set(CoreText_BUILD ${CMAKE_BINARY_DIR}/src/external/cocotron/CoreText/CoreText)
+if (COMPONENT_gui)
+ set(CoreGraphics_BUILD ${CMAKE_BINARY_DIR}/src/external/cocotron/CoreGraphics/CoreGraphics)
+ set(CoreText_BUILD ${CMAKE_BINARY_DIR}/src/external/cocotron/CoreText/CoreText)
+ set(ImageIO_BUILD ${CMAKE_BINARY_DIR}/src/frameworks/ImageIO/ImageIO)
+else()
+ set(CoreGraphics_BUILD ${CMAKE_BINARY_DIR}/src/frameworks/dev-stubs/CoreGraphics/CoreGraphics)
+ set(CoreText_BUILD ${CMAKE_BINARY_DIR}/src/frameworks/dev-stubs/CoreText/CoreText)
+ set(ImageIO_BUILD ${CMAKE_BINARY_DIR}/src/frameworks/dev-stubs/ImageIO/ImageIO)
+endif()
+
set(CoreServices_BUILD ${CMAKE_BINARY_DIR}/src/frameworks/CoreServices/CoreServices)
-set(ImageIO_BUILD ${CMAKE_BINARY_DIR}/src/frameworks/ImageIO/ImageIO)
set(ColorSync_BUILD ${CMAKE_BINARY_DIR}/src/frameworks/ColorSync/ColorSync)
set(ATS_BUILD ${CMAKE_BINARY_DIR}/src/frameworks/ApplicationServices/ATS/ATS)
set(ColorSyncLegacy_BUILD ${CMAKE_BINARY_DIR}/src/frameworks/ApplicationServices/ColorSyncLegacy/ColorSyncLegacy)
diff --git a/src/frameworks/CMakeLists.txt b/src/frameworks/CMakeLists.txt
index de6031f5d..3184e792c 100644
--- a/src/frameworks/CMakeLists.txt
+++ b/src/frameworks/CMakeLists.txt
@@ -1,81 +1,151 @@
project(frameworks)
-add_subdirectory(Accounts)
-add_subdirectory(Accelerate)
-add_subdirectory(AddressBook)
-add_subdirectory(AGL)
-add_subdirectory(ApplicationServices)
-add_subdirectory(AuthenticationServices)
-add_subdirectory(Automator)
-add_subdirectory(AVFoundation)
-add_subdirectory(AVKit)
-add_subdirectory(CalendarStore)
-add_subdirectory(Carbon)
-add_subdirectory(CloudKit)
-add_subdirectory(Collaboration)
-add_subdirectory(ColorSync)
-add_subdirectory(Contacts)
-add_subdirectory(ContactsUI)
-add_subdirectory(CoreAudioKit)
-add_subdirectory(CoreBluetooth)
-add_subdirectory(CoreImage)
-add_subdirectory(CoreLocation)
-add_subdirectory(CoreMIDI)
-add_subdirectory(CoreMedia)
-add_subdirectory(CoreMediaIO)
-add_subdirectory(CoreServices)
-add_subdirectory(CoreTelephony)
-add_subdirectory(CoreVideo)
-add_subdirectory(CoreWLAN)
-add_subdirectory(CryptoTokenKit)
-add_subdirectory(DirectoryServices)
-add_subdirectory(DiscRecordingUI)
-add_subdirectory(DiskArbitration)
-add_subdirectory(DiscRecording)
-add_subdirectory(DrawSprocket)
-add_subdirectory(EventKit)
-add_subdirectory(ExceptionHandling)
-add_subdirectory(ForceFeedback)
-add_subdirectory(GameController)
-add_subdirectory(GLKit)
-add_subdirectory(ImageCaptureCore)
-add_subdirectory(ImageIO)
-add_subdirectory(InputMethodKit)
-add_subdirectory(InstantMessage)
-add_subdirectory(IOBluetooth)
-add_subdirectory(IOBluetoothUI)
-add_subdirectory(IOSurface)
-add_subdirectory(JavaRuntimeSupport)
-add_subdirectory(JavaVM)
-add_subdirectory(LocalAuthentication)
-add_subdirectory(MapKit)
-add_subdirectory(MediaAccessibility)
-add_subdirectory(MediaToolbox)
-add_subdirectory(ModelIO)
-add_subdirectory(MultipeerConnectivity)
-add_subdirectory(NetFS)
-add_subdirectory(Network)
-add_subdirectory(OpenAL)
-add_subdirectory(OpenCL)
-add_subdirectory(OpenDirectory)
-add_subdirectory(OpenGL)
-add_subdirectory(Photos)
-add_subdirectory(PDFKit)
-add_subdirectory(OSAKit)
-add_subdirectory(QTKit)
-add_subdirectory(Quartz)
-add_subdirectory(QuickLook)
-add_subdirectory(ScreenSaver)
-add_subdirectory(ScriptingBridge)
-add_subdirectory(SecurityFoundation)
-add_subdirectory(SecurityInterface)
-add_subdirectory(ServiceManagement)
-add_subdirectory(SpriteKit)
-add_subdirectory(StoreKit)
-add_subdirectory(SyncServices)
-add_subdirectory(SystemConfiguration)
-add_subdirectory(VideoToolbox)
-add_subdirectory(VideoDecodeAcceleration)
-add_subdirectory(Vision)
-add_subdirectory(WebKit)
-add_subdirectory(UserNotifications)
+if (COMPONENT_system)
+ # for memberd
+ add_subdirectory(DirectoryServices)
+endif()
+
+# this is mainly for frameworks that are required for Security,
+# since Security is built for both CLI and GUI
+if (COMPONENT_cli OR COMPONENT_dev_gui_common)
+ add_subdirectory(CoreServices)
+
+ # these are also stubs, but they're needed for Security
+ add_subdirectory(Accounts)
+ add_subdirectory(CloudKit)
+ add_subdirectory(CryptoTokenKit)
+ add_subdirectory(LocalAuthentication)
+ add_subdirectory(NetFS)
+ add_subdirectory(Network)
+ add_subdirectory(OpenDirectory)
+ add_subdirectory(SecurityFoundation)
+ add_subdirectory(SystemConfiguration)
+
+ # this is for Java (obviously)
+ add_subdirectory(JavaVM)
+ add_subdirectory(JavaRuntimeSupport)
+endif()
+
+if (COMPONENT_iokitd OR COMPONENT_dev_gui_common)
+ # this is for iokitd (and Xcode)
+ add_subdirectory(IOSurface)
+endif()
+
+# this is mainly for anything that Xcode requires to run on the CLI
+if (COMPONENT_dev_gui_common)
+ add_subdirectory(ApplicationServices)
+ add_subdirectory(ColorSync)
+ add_subdirectory(Carbon)
+
+ # stubs, but required for QuartzCore (in Cocotron)
+ add_subdirectory(CoreImage)
+ add_subdirectory(CoreVideo)
+endif()
+
+# same here, except this is for stubs that Xcode needs
+if (COMPONENT_dev_gui_stubs_common)
+ add_subdirectory(Accelerate)
+ add_subdirectory(AVFoundation)
+ add_subdirectory(Contacts)
+ add_subdirectory(CoreMedia)
+ add_subdirectory(DiskArbitration)
+ add_subdirectory(GLKit)
+ add_subdirectory(ScriptingBridge)
+ add_subdirectory(SecurityInterface)
+ add_subdirectory(ServiceManagement)
+ add_subdirectory(Quartz)
+ add_subdirectory(QuickLook)
+ add_subdirectory(UserNotifications)
+ add_subdirectory(VideoToolbox)
+endif()
+
+# this is for core GUI frameworks with actual implementations
+if (COMPONENT_gui)
+ add_subdirectory(OpenGL)
+ add_subdirectory(ImageIO)
+endif()
+
+# this is for all the other stubbed frameworks
+if (COMPONENT_gui_stubs)
+ add_subdirectory(AddressBook)
+ add_subdirectory(AGL)
+ add_subdirectory(AuthenticationServices)
+ add_subdirectory(Automator)
+ add_subdirectory(AVKit)
+ add_subdirectory(CalendarStore)
+ add_subdirectory(Collaboration)
+ add_subdirectory(ContactsUI)
+ add_subdirectory(CoreAudioKit)
+ add_subdirectory(CoreBluetooth)
+ add_subdirectory(CoreLocation)
+ add_subdirectory(CoreMIDI)
+ add_subdirectory(CoreMediaIO)
+ add_subdirectory(CoreTelephony)
+ add_subdirectory(CoreWLAN)
+ add_subdirectory(DiscRecordingUI)
+ add_subdirectory(DiscRecording)
+ add_subdirectory(DrawSprocket)
+ add_subdirectory(EventKit)
+ add_subdirectory(ExceptionHandling)
+ add_subdirectory(ForceFeedback)
+ add_subdirectory(GameController)
+ add_subdirectory(ImageCaptureCore)
+ add_subdirectory(InputMethodKit)
+ add_subdirectory(InstantMessage)
+ add_subdirectory(IOBluetooth)
+ add_subdirectory(IOBluetoothUI)
+ add_subdirectory(MapKit)
+ add_subdirectory(MediaAccessibility)
+ add_subdirectory(MediaToolbox)
+ add_subdirectory(ModelIO)
+ add_subdirectory(MultipeerConnectivity)
+ add_subdirectory(OpenAL)
+ add_subdirectory(OpenCL)
+ add_subdirectory(Photos)
+ add_subdirectory(PDFKit)
+ add_subdirectory(OSAKit)
+ add_subdirectory(QTKit)
+ add_subdirectory(ScreenSaver)
+ add_subdirectory(SpriteKit)
+ add_subdirectory(StoreKit)
+ add_subdirectory(SyncServices)
+ add_subdirectory(VideoDecodeAcceleration)
+ add_subdirectory(Vision)
+endif()
+
+# Xcode also needs WebKit, even on the CLI! it may be a weak dependency (i didn't check that),
+# but what we do is we build our stub if the `webkit` component isn't enabled.
+#
+# TODO: actually build WebKit. since we *only* have the stub right now, we compile it when either
+# component is enabled.
+
+#if (COMPONENT_dev_gui_common AND NOT COMPONENT_webkit)
+if (COMPONENT_dev_gui_common OR COMPONENT_webkit)
+ # stub
+ add_subdirectory(WebKit)
+endif()
+
+# we build these stubs if we're building `cli_dev` and *not* building Cocotron OR if we explicitly want them (`cli_dev_gui_stubs`).
+# we explicitly want to build them when building the `all` component because this component is intended to be used for building
+# Darling packages; we need to build a package that has these stubs available to be able to install Darling for CLI development
+# without GUI dependencies like X11.
+if ((COMPONENT_cli_dev AND NOT COMPONENT_gui) OR COMPONENT_cli_dev_gui_stubs)
+ # if we're building the GUI components (i.e. Cocotron), don't install these stubs
+ if (COMPONENT_gui)
+ set(NO_INSTALL_ARG NO_INSTALL)
+ set(STUB_SUFFIX "_stub")
+ else()
+ set(NO_INSTALL_ARG "")
+ set(STUB_SUFFIX "")
+ endif()
+
+ add_subdirectory(dev-stubs/AppKit)
+ add_subdirectory(dev-stubs/AudioToolbox)
+ add_subdirectory(dev-stubs/Cocoa)
+ add_subdirectory(dev-stubs/CoreData)
+ add_subdirectory(dev-stubs/CoreGraphics)
+ add_subdirectory(dev-stubs/CoreText)
+ add_subdirectory(dev-stubs/ImageIO)
+ add_subdirectory(dev-stubs/OpenGL)
+ add_subdirectory(dev-stubs/QuartzCore)
+endif()
diff --git a/src/frameworks/dev-stubs/AppKit/CMakeLists.txt b/src/frameworks/dev-stubs/AppKit/CMakeLists.txt
new file mode 100644
index 000000000..7858fee04
--- /dev/null
+++ b/src/frameworks/dev-stubs/AppKit/CMakeLists.txt
@@ -0,0 +1,23 @@
+project(AppKit_stub)
+
+set(DYLIB_COMPAT_VERSION "1.0.0")
+set(DYLIB_CURRENT_VERSION "1.0.0")
+set(FRAMEWORK_VERSION "C")
+
+add_framework(AppKit
+ FAT
+ CURRENT_VERSION
+ VERSION ${FRAMEWORK_VERSION}
+ TARGET_NAME AppKit${STUB_SUFFIX}
+ ${NO_INSTALL_ARG}
+
+ SOURCES
+ src/classes.m
+ src/main.m
+
+ DEPENDENCIES
+ system
+ Foundation
+)
+
+#target_include_directories(AppKit${STUB_SUFFIX} BEFORE PRIVATE include)
diff --git a/src/frameworks/dev-stubs/AppKit/src/classes.m b/src/frameworks/dev-stubs/AppKit/src/classes.m
new file mode 100644
index 000000000..572657923
--- /dev/null
+++ b/src/frameworks/dev-stubs/AppKit/src/classes.m
@@ -0,0 +1,4049 @@
+/*
+ * This file is part of Darling.
+ *
+ * Copyright (C) 2023 Darling Developers
+ *
+ * Darling is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Darling is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Darling. If not, see .
+ */
+
+#import
+
+@interface NSATSTypesetter : NSObject
+@end
+
+@implementation NSATSTypesetter
+
+- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector
+{
+ return [NSMethodSignature signatureWithObjCTypes: "v@:"];
+}
+
+- (void)forwardInvocation:(NSInvocation *)anInvocation
+{
+ NSLog(@"Stub called: %@ in %@", NSStringFromSelector([anInvocation selector]), [self class]);
+}
+
+@end
+
+@interface NSAccessibilityCustomAction : NSObject
+@end
+
+@implementation NSAccessibilityCustomAction
+
+- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector
+{
+ return [NSMethodSignature signatureWithObjCTypes: "v@:"];
+}
+
+- (void)forwardInvocation:(NSInvocation *)anInvocation
+{
+ NSLog(@"Stub called: %@ in %@", NSStringFromSelector([anInvocation selector]), [self class]);
+}
+
+@end
+
+@interface NSAccessibilityCustomChooser : NSObject
+@end
+
+@implementation NSAccessibilityCustomChooser
+
+- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector
+{
+ return [NSMethodSignature signatureWithObjCTypes: "v@:"];
+}
+
+- (void)forwardInvocation:(NSInvocation *)anInvocation
+{
+ NSLog(@"Stub called: %@ in %@", NSStringFromSelector([anInvocation selector]), [self class]);
+}
+
+@end
+
+@interface NSAccessibilityCustomChooserItemResult : NSObject
+@end
+
+@implementation NSAccessibilityCustomChooserItemResult
+
+- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector
+{
+ return [NSMethodSignature signatureWithObjCTypes: "v@:"];
+}
+
+- (void)forwardInvocation:(NSInvocation *)anInvocation
+{
+ NSLog(@"Stub called: %@ in %@", NSStringFromSelector([anInvocation selector]), [self class]);
+}
+
+@end
+
+@interface NSAccessibilityCustomRotor : NSObject
+@end
+
+@implementation NSAccessibilityCustomRotor
+
+- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector
+{
+ return [NSMethodSignature signatureWithObjCTypes: "v@:"];
+}
+
+- (void)forwardInvocation:(NSInvocation *)anInvocation
+{
+ NSLog(@"Stub called: %@ in %@", NSStringFromSelector([anInvocation selector]), [self class]);
+}
+
+@end
+
+@interface NSAccessibilityCustomRotorItemResult : NSObject
+@end
+
+@implementation NSAccessibilityCustomRotorItemResult
+
+- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector
+{
+ return [NSMethodSignature signatureWithObjCTypes: "v@:"];
+}
+
+- (void)forwardInvocation:(NSInvocation *)anInvocation
+{
+ NSLog(@"Stub called: %@ in %@", NSStringFromSelector([anInvocation selector]), [self class]);
+}
+
+@end
+
+@interface NSAccessibilityElement : NSObject
+@end
+
+@implementation NSAccessibilityElement
+
+- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector
+{
+ return [NSMethodSignature signatureWithObjCTypes: "v@:"];
+}
+
+- (void)forwardInvocation:(NSInvocation *)anInvocation
+{
+ NSLog(@"Stub called: %@ in %@", NSStringFromSelector([anInvocation selector]), [self class]);
+}
+
+@end
+
+@interface NSActionCell : NSObject
+@end
+
+@implementation NSActionCell
+
+- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector
+{
+ return [NSMethodSignature signatureWithObjCTypes: "v@:"];
+}
+
+- (void)forwardInvocation:(NSInvocation *)anInvocation
+{
+ NSLog(@"Stub called: %@ in %@", NSStringFromSelector([anInvocation selector]), [self class]);
+}
+
+@end
+
+@interface NSAlert : NSObject
+@end
+
+@implementation NSAlert
+
+- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector
+{
+ return [NSMethodSignature signatureWithObjCTypes: "v@:"];
+}
+
+- (void)forwardInvocation:(NSInvocation *)anInvocation
+{
+ NSLog(@"Stub called: %@ in %@", NSStringFromSelector([anInvocation selector]), [self class]);
+}
+
+@end
+
+@interface NSAlignmentFeedbackFilter : NSObject
+@end
+
+@implementation NSAlignmentFeedbackFilter
+
+- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector
+{
+ return [NSMethodSignature signatureWithObjCTypes: "v@:"];
+}
+
+- (void)forwardInvocation:(NSInvocation *)anInvocation
+{
+ NSLog(@"Stub called: %@ in %@", NSStringFromSelector([anInvocation selector]), [self class]);
+}
+
+@end
+
+@interface NSAnimation : NSObject
+@end
+
+@implementation NSAnimation
+
+- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector
+{
+ return [NSMethodSignature signatureWithObjCTypes: "v@:"];
+}
+
+- (void)forwardInvocation:(NSInvocation *)anInvocation
+{
+ NSLog(@"Stub called: %@ in %@", NSStringFromSelector([anInvocation selector]), [self class]);
+}
+
+@end
+
+@interface NSAnimationContext : NSObject
+@end
+
+@implementation NSAnimationContext
+
+- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector
+{
+ return [NSMethodSignature signatureWithObjCTypes: "v@:"];
+}
+
+- (void)forwardInvocation:(NSInvocation *)anInvocation
+{
+ NSLog(@"Stub called: %@ in %@", NSStringFromSelector([anInvocation selector]), [self class]);
+}
+
+@end
+
+@interface NSAppearance : NSObject
+@end
+
+@implementation NSAppearance
+
+- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector
+{
+ return [NSMethodSignature signatureWithObjCTypes: "v@:"];
+}
+
+- (void)forwardInvocation:(NSInvocation *)anInvocation
+{
+ NSLog(@"Stub called: %@ in %@", NSStringFromSelector([anInvocation selector]), [self class]);
+}
+
+@end
+
+@interface NSApplication : NSObject
+@end
+
+@implementation NSApplication
+
+- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector
+{
+ return [NSMethodSignature signatureWithObjCTypes: "v@:"];
+}
+
+- (void)forwardInvocation:(NSInvocation *)anInvocation
+{
+ NSLog(@"Stub called: %@ in %@", NSStringFromSelector([anInvocation selector]), [self class]);
+}
+
+@end
+
+@interface NSArrayController : NSObject
+@end
+
+@implementation NSArrayController
+
+- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector
+{
+ return [NSMethodSignature signatureWithObjCTypes: "v@:"];
+}
+
+- (void)forwardInvocation:(NSInvocation *)anInvocation
+{
+ NSLog(@"Stub called: %@ in %@", NSStringFromSelector([anInvocation selector]), [self class]);
+}
+
+@end
+
+@interface NSBezierPath : NSObject
+@end
+
+@implementation NSBezierPath
+
+- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector
+{
+ return [NSMethodSignature signatureWithObjCTypes: "v@:"];
+}
+
+- (void)forwardInvocation:(NSInvocation *)anInvocation
+{
+ NSLog(@"Stub called: %@ in %@", NSStringFromSelector([anInvocation selector]), [self class]);
+}
+
+@end
+
+@interface NSBitmapImageRep : NSObject
+@end
+
+@implementation NSBitmapImageRep
+
+- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector
+{
+ return [NSMethodSignature signatureWithObjCTypes: "v@:"];
+}
+
+- (void)forwardInvocation:(NSInvocation *)anInvocation
+{
+ NSLog(@"Stub called: %@ in %@", NSStringFromSelector([anInvocation selector]), [self class]);
+}
+
+@end
+
+@interface NSBox : NSObject
+@end
+
+@implementation NSBox
+
+- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector
+{
+ return [NSMethodSignature signatureWithObjCTypes: "v@:"];
+}
+
+- (void)forwardInvocation:(NSInvocation *)anInvocation
+{
+ NSLog(@"Stub called: %@ in %@", NSStringFromSelector([anInvocation selector]), [self class]);
+}
+
+@end
+
+@interface NSBrowser : NSObject
+@end
+
+@implementation NSBrowser
+
+- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector
+{
+ return [NSMethodSignature signatureWithObjCTypes: "v@:"];
+}
+
+- (void)forwardInvocation:(NSInvocation *)anInvocation
+{
+ NSLog(@"Stub called: %@ in %@", NSStringFromSelector([anInvocation selector]), [self class]);
+}
+
+@end
+
+@interface NSButton : NSObject
+@end
+
+@implementation NSButton
+
+- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector
+{
+ return [NSMethodSignature signatureWithObjCTypes: "v@:"];
+}
+
+- (void)forwardInvocation:(NSInvocation *)anInvocation
+{
+ NSLog(@"Stub called: %@ in %@", NSStringFromSelector([anInvocation selector]), [self class]);
+}
+
+@end
+
+@interface NSButtonCell : NSObject
+@end
+
+@implementation NSButtonCell
+
+- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector
+{
+ return [NSMethodSignature signatureWithObjCTypes: "v@:"];
+}
+
+- (void)forwardInvocation:(NSInvocation *)anInvocation
+{
+ NSLog(@"Stub called: %@ in %@", NSStringFromSelector([anInvocation selector]), [self class]);
+}
+
+@end
+
+@interface NSButtonGroupTouchBarItem : NSObject
+@end
+
+@implementation NSButtonGroupTouchBarItem
+
+- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector
+{
+ return [NSMethodSignature signatureWithObjCTypes: "v@:"];
+}
+
+- (void)forwardInvocation:(NSInvocation *)anInvocation
+{
+ NSLog(@"Stub called: %@ in %@", NSStringFromSelector([anInvocation selector]), [self class]);
+}
+
+@end
+
+@interface NSCIImageRep : NSObject
+@end
+
+@implementation NSCIImageRep
+
+- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector
+{
+ return [NSMethodSignature signatureWithObjCTypes: "v@:"];
+}
+
+- (void)forwardInvocation:(NSInvocation *)anInvocation
+{
+ NSLog(@"Stub called: %@ in %@", NSStringFromSelector([anInvocation selector]), [self class]);
+}
+
+@end
+
+@interface NSCachedImageRep : NSObject
+@end
+
+@implementation NSCachedImageRep
+
+- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector
+{
+ return [NSMethodSignature signatureWithObjCTypes: "v@:"];
+}
+
+- (void)forwardInvocation:(NSInvocation *)anInvocation
+{
+ NSLog(@"Stub called: %@ in %@", NSStringFromSelector([anInvocation selector]), [self class]);
+}
+
+@end
+
+@interface NSCarbonMenuImpl : NSObject
+@end
+
+@implementation NSCarbonMenuImpl
+
+- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector
+{
+ return [NSMethodSignature signatureWithObjCTypes: "v@:"];
+}
+
+- (void)forwardInvocation:(NSInvocation *)anInvocation
+{
+ NSLog(@"Stub called: %@ in %@", NSStringFromSelector([anInvocation selector]), [self class]);
+}
+
+@end
+
+@interface NSCatalogColor : NSObject
+@end
+
+@implementation NSCatalogColor
+
+- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector
+{
+ return [NSMethodSignature signatureWithObjCTypes: "v@:"];
+}
+
+- (void)forwardInvocation:(NSInvocation *)anInvocation
+{
+ NSLog(@"Stub called: %@ in %@", NSStringFromSelector([anInvocation selector]), [self class]);
+}
+
+@end
+
+@interface NSCell : NSObject
+@end
+
+@implementation NSCell
+
+- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector
+{
+ return [NSMethodSignature signatureWithObjCTypes: "v@:"];
+}
+
+- (void)forwardInvocation:(NSInvocation *)anInvocation
+{
+ NSLog(@"Stub called: %@ in %@", NSStringFromSelector([anInvocation selector]), [self class]);
+}
+
+@end
+
+@interface NSClassSwapper : NSObject
+@end
+
+@implementation NSClassSwapper
+
+- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector
+{
+ return [NSMethodSignature signatureWithObjCTypes: "v@:"];
+}
+
+- (void)forwardInvocation:(NSInvocation *)anInvocation
+{
+ NSLog(@"Stub called: %@ in %@", NSStringFromSelector([anInvocation selector]), [self class]);
+}
+
+@end
+
+@interface NSClickGestureRecognizer : NSObject
+@end
+
+@implementation NSClickGestureRecognizer
+
+- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector
+{
+ return [NSMethodSignature signatureWithObjCTypes: "v@:"];
+}
+
+- (void)forwardInvocation:(NSInvocation *)anInvocation
+{
+ NSLog(@"Stub called: %@ in %@", NSStringFromSelector([anInvocation selector]), [self class]);
+}
+
+@end
+
+@interface NSClipView : NSObject
+@end
+
+@implementation NSClipView
+
+- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector
+{
+ return [NSMethodSignature signatureWithObjCTypes: "v@:"];
+}
+
+- (void)forwardInvocation:(NSInvocation *)anInvocation
+{
+ NSLog(@"Stub called: %@ in %@", NSStringFromSelector([anInvocation selector]), [self class]);
+}
+
+@end
+
+@interface NSCollectionView : NSObject
+@end
+
+@implementation NSCollectionView
+
+- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector
+{
+ return [NSMethodSignature signatureWithObjCTypes: "v@:"];
+}
+
+- (void)forwardInvocation:(NSInvocation *)anInvocation
+{
+ NSLog(@"Stub called: %@ in %@", NSStringFromSelector([anInvocation selector]), [self class]);
+}
+
+@end
+
+@interface NSCollectionViewFlowLayout : NSObject
+@end
+
+@implementation NSCollectionViewFlowLayout
+
+- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector
+{
+ return [NSMethodSignature signatureWithObjCTypes: "v@:"];
+}
+
+- (void)forwardInvocation:(NSInvocation *)anInvocation
+{
+ NSLog(@"Stub called: %@ in %@", NSStringFromSelector([anInvocation selector]), [self class]);
+}
+
+@end
+
+@interface NSCollectionViewFlowLayoutInvalidationContext : NSObject
+@end
+
+@implementation NSCollectionViewFlowLayoutInvalidationContext
+
+- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector
+{
+ return [NSMethodSignature signatureWithObjCTypes: "v@:"];
+}
+
+- (void)forwardInvocation:(NSInvocation *)anInvocation
+{
+ NSLog(@"Stub called: %@ in %@", NSStringFromSelector([anInvocation selector]), [self class]);
+}
+
+@end
+
+@interface NSCollectionViewGridLayout : NSObject
+@end
+
+@implementation NSCollectionViewGridLayout
+
+- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector
+{
+ return [NSMethodSignature signatureWithObjCTypes: "v@:"];
+}
+
+- (void)forwardInvocation:(NSInvocation *)anInvocation
+{
+ NSLog(@"Stub called: %@ in %@", NSStringFromSelector([anInvocation selector]), [self class]);
+}
+
+@end
+
+@interface NSCollectionViewItem : NSObject
+@end
+
+@implementation NSCollectionViewItem
+
+- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector
+{
+ return [NSMethodSignature signatureWithObjCTypes: "v@:"];
+}
+
+- (void)forwardInvocation:(NSInvocation *)anInvocation
+{
+ NSLog(@"Stub called: %@ in %@", NSStringFromSelector([anInvocation selector]), [self class]);
+}
+
+@end
+
+@interface NSCollectionViewLayout : NSObject
+@end
+
+@implementation NSCollectionViewLayout
+
+- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector
+{
+ return [NSMethodSignature signatureWithObjCTypes: "v@:"];
+}
+
+- (void)forwardInvocation:(NSInvocation *)anInvocation
+{
+ NSLog(@"Stub called: %@ in %@", NSStringFromSelector([anInvocation selector]), [self class]);
+}
+
+@end
+
+@interface NSCollectionViewLayoutAttributes : NSObject
+@end
+
+@implementation NSCollectionViewLayoutAttributes
+
+- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector
+{
+ return [NSMethodSignature signatureWithObjCTypes: "v@:"];
+}
+
+- (void)forwardInvocation:(NSInvocation *)anInvocation
+{
+ NSLog(@"Stub called: %@ in %@", NSStringFromSelector([anInvocation selector]), [self class]);
+}
+
+@end
+
+@interface NSCollectionViewLayoutInvalidationContext : NSObject
+@end
+
+@implementation NSCollectionViewLayoutInvalidationContext
+
+- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector
+{
+ return [NSMethodSignature signatureWithObjCTypes: "v@:"];
+}
+
+- (void)forwardInvocation:(NSInvocation *)anInvocation
+{
+ NSLog(@"Stub called: %@ in %@", NSStringFromSelector([anInvocation selector]), [self class]);
+}
+
+@end
+
+@interface NSColor : NSObject
+@end
+
+@implementation NSColor
+
+- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector
+{
+ return [NSMethodSignature signatureWithObjCTypes: "v@:"];
+}
+
+- (void)forwardInvocation:(NSInvocation *)anInvocation
+{
+ NSLog(@"Stub called: %@ in %@", NSStringFromSelector([anInvocation selector]), [self class]);
+}
+
+@end
+
+@interface NSColorList : NSObject
+@end
+
+@implementation NSColorList
+
+- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector
+{
+ return [NSMethodSignature signatureWithObjCTypes: "v@:"];
+}
+
+- (void)forwardInvocation:(NSInvocation *)anInvocation
+{
+ NSLog(@"Stub called: %@ in %@", NSStringFromSelector([anInvocation selector]), [self class]);
+}
+
+@end
+
+@interface NSColorPanel : NSObject
+@end
+
+@implementation NSColorPanel
+
+- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector
+{
+ return [NSMethodSignature signatureWithObjCTypes: "v@:"];
+}
+
+- (void)forwardInvocation:(NSInvocation *)anInvocation
+{
+ NSLog(@"Stub called: %@ in %@", NSStringFromSelector([anInvocation selector]), [self class]);
+}
+
+@end
+
+@interface NSColorPickerTouchBarItem : NSObject
+@end
+
+@implementation NSColorPickerTouchBarItem
+
+- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector
+{
+ return [NSMethodSignature signatureWithObjCTypes: "v@:"];
+}
+
+- (void)forwardInvocation:(NSInvocation *)anInvocation
+{
+ NSLog(@"Stub called: %@ in %@", NSStringFromSelector([anInvocation selector]), [self class]);
+}
+
+@end
+
+@interface NSColorSampler : NSObject
+@end
+
+@implementation NSColorSampler
+
+- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector
+{
+ return [NSMethodSignature signatureWithObjCTypes: "v@:"];
+}
+
+- (void)forwardInvocation:(NSInvocation *)anInvocation
+{
+ NSLog(@"Stub called: %@ in %@", NSStringFromSelector([anInvocation selector]), [self class]);
+}
+
+@end
+
+@interface NSColorSpace : NSObject
+@end
+
+@implementation NSColorSpace
+
+- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector
+{
+ return [NSMethodSignature signatureWithObjCTypes: "v@:"];
+}
+
+- (void)forwardInvocation:(NSInvocation *)anInvocation
+{
+ NSLog(@"Stub called: %@ in %@", NSStringFromSelector([anInvocation selector]), [self class]);
+}
+
+@end
+
+@interface NSColorWell : NSObject
+@end
+
+@implementation NSColorWell
+
+- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector
+{
+ return [NSMethodSignature signatureWithObjCTypes: "v@:"];
+}
+
+- (void)forwardInvocation:(NSInvocation *)anInvocation
+{
+ NSLog(@"Stub called: %@ in %@", NSStringFromSelector([anInvocation selector]), [self class]);
+}
+
+- (id)activate: (id)activate
+{
+ NSLog(@"Stub called: %@ in %@", NSStringFromSelector(_cmd), [self class]);
+ return nil;
+}
+
+- (id)deactivate
+{
+ NSLog(@"Stub called: %@ in %@", NSStringFromSelector(_cmd), [self class]);
+ return nil;
+}
+
+@end
+
+@interface NSComboBox : NSObject
+@end
+
+@implementation NSComboBox
+
+- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector
+{
+ return [NSMethodSignature signatureWithObjCTypes: "v@:"];
+}
+
+- (void)forwardInvocation:(NSInvocation *)anInvocation
+{
+ NSLog(@"Stub called: %@ in %@", NSStringFromSelector([anInvocation selector]), [self class]);
+}
+
+@end
+
+@interface NSComboBoxCell : NSObject
+@end
+
+@implementation NSComboBoxCell
+
+- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector
+{
+ return [NSMethodSignature signatureWithObjCTypes: "v@:"];
+}
+
+- (void)forwardInvocation:(NSInvocation *)anInvocation
+{
+ NSLog(@"Stub called: %@ in %@", NSStringFromSelector([anInvocation selector]), [self class]);
+}
+
+@end
+
+@interface NSConcreteTextStorage : NSObject
+@end
+
+@implementation NSConcreteTextStorage
+
+- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector
+{
+ return [NSMethodSignature signatureWithObjCTypes: "v@:"];
+}
+
+- (void)forwardInvocation:(NSInvocation *)anInvocation
+{
+ NSLog(@"Stub called: %@ in %@", NSStringFromSelector([anInvocation selector]), [self class]);
+}
+
+@end
+
+@interface NSControl : NSObject
+@end
+
+@implementation NSControl
+
+- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector
+{
+ return [NSMethodSignature signatureWithObjCTypes: "v@:"];
+}
+
+- (void)forwardInvocation:(NSInvocation *)anInvocation
+{
+ NSLog(@"Stub called: %@ in %@", NSStringFromSelector([anInvocation selector]), [self class]);
+}
+
+@end
+
+@interface NSController : NSObject
+@end
+
+@implementation NSController
+
+- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector
+{
+ return [NSMethodSignature signatureWithObjCTypes: "v@:"];
+}
+
+- (void)forwardInvocation:(NSInvocation *)anInvocation
+{
+ NSLog(@"Stub called: %@ in %@", NSStringFromSelector([anInvocation selector]), [self class]);
+}
+
+@end
+
+@interface NSCoreTypesetter : NSObject
+@end
+
+@implementation NSCoreTypesetter
+
+- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector
+{
+ return [NSMethodSignature signatureWithObjCTypes: "v@:"];
+}
+
+- (void)forwardInvocation:(NSInvocation *)anInvocation
+{
+ NSLog(@"Stub called: %@ in %@", NSStringFromSelector([anInvocation selector]), [self class]);
+}
+
+@end
+
+@interface NSCursor : NSObject
+@end
+
+@implementation NSCursor
+
+- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector
+{
+ return [NSMethodSignature signatureWithObjCTypes: "v@:"];
+}
+
+- (void)forwardInvocation:(NSInvocation *)anInvocation
+{
+ NSLog(@"Stub called: %@ in %@", NSStringFromSelector([anInvocation selector]), [self class]);
+}
+
+@end
+
+@interface NSCustomImageRep : NSObject
+@end
+
+@implementation NSCustomImageRep
+
+- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector
+{
+ return [NSMethodSignature signatureWithObjCTypes: "v@:"];
+}
+
+- (void)forwardInvocation:(NSInvocation *)anInvocation
+{
+ NSLog(@"Stub called: %@ in %@", NSStringFromSelector([anInvocation selector]), [self class]);
+}
+
+@end
+
+@interface NSCustomObject : NSObject
+@end
+
+@implementation NSCustomObject
+
+- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector
+{
+ return [NSMethodSignature signatureWithObjCTypes: "v@:"];
+}
+
+- (void)forwardInvocation:(NSInvocation *)anInvocation
+{
+ NSLog(@"Stub called: %@ in %@", NSStringFromSelector([anInvocation selector]), [self class]);
+}
+
+@end
+
+@interface NSCustomResource : NSObject
+@end
+
+@implementation NSCustomResource
+
+- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector
+{
+ return [NSMethodSignature signatureWithObjCTypes: "v@:"];
+}
+
+- (void)forwardInvocation:(NSInvocation *)anInvocation
+{
+ NSLog(@"Stub called: %@ in %@", NSStringFromSelector([anInvocation selector]), [self class]);
+}
+
+@end
+
+@interface NSCustomTouchBarItem : NSObject
+@end
+
+@implementation NSCustomTouchBarItem
+
+- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector
+{
+ return [NSMethodSignature signatureWithObjCTypes: "v@:"];
+}
+
+- (void)forwardInvocation:(NSInvocation *)anInvocation
+{
+ NSLog(@"Stub called: %@ in %@", NSStringFromSelector([anInvocation selector]), [self class]);
+}
+
+@end
+
+@interface NSCustomView : NSObject
+@end
+
+@implementation NSCustomView
+
+- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector
+{
+ return [NSMethodSignature signatureWithObjCTypes: "v@:"];
+}
+
+- (void)forwardInvocation:(NSInvocation *)anInvocation
+{
+ NSLog(@"Stub called: %@ in %@", NSStringFromSelector([anInvocation selector]), [self class]);
+}
+
+@end
+
+@interface NSDataAsset : NSObject
+@end
+
+@implementation NSDataAsset
+
+- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector
+{
+ return [NSMethodSignature signatureWithObjCTypes: "v@:"];
+}
+
+- (void)forwardInvocation:(NSInvocation *)anInvocation
+{
+ NSLog(@"Stub called: %@ in %@", NSStringFromSelector([anInvocation selector]), [self class]);
+}
+
+@end
+
+@interface NSDatePicker : NSObject
+@end
+
+@implementation NSDatePicker
+
+- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector
+{
+ return [NSMethodSignature signatureWithObjCTypes: "v@:"];
+}
+
+- (void)forwardInvocation:(NSInvocation *)anInvocation
+{
+ NSLog(@"Stub called: %@ in %@", NSStringFromSelector([anInvocation selector]), [self class]);
+}
+
+@end
+
+@interface NSDatePickerCell : NSObject
+@end
+
+@implementation NSDatePickerCell
+
+- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector
+{
+ return [NSMethodSignature signatureWithObjCTypes: "v@:"];
+}
+
+- (void)forwardInvocation:(NSInvocation *)anInvocation
+{
+ NSLog(@"Stub called: %@ in %@", NSStringFromSelector([anInvocation selector]), [self class]);
+}
+
+@end
+
+@interface NSDictionaryController : NSObject
+@end
+
+@implementation NSDictionaryController
+
+- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector
+{
+ return [NSMethodSignature signatureWithObjCTypes: "v@:"];
+}
+
+- (void)forwardInvocation:(NSInvocation *)anInvocation
+{
+ NSLog(@"Stub called: %@ in %@", NSStringFromSelector([anInvocation selector]), [self class]);
+}
+
+@end
+
+@interface NSDocument : NSObject
+@end
+
+@implementation NSDocument
+
+- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector
+{
+ return [NSMethodSignature signatureWithObjCTypes: "v@:"];
+}
+
+- (void)forwardInvocation:(NSInvocation *)anInvocation
+{
+ NSLog(@"Stub called: %@ in %@", NSStringFromSelector([anInvocation selector]), [self class]);
+}
+
+@end
+
+@interface NSDocumentController : NSObject
+@end
+
+@implementation NSDocumentController
+
+- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector
+{
+ return [NSMethodSignature signatureWithObjCTypes: "v@:"];
+}
+
+- (void)forwardInvocation:(NSInvocation *)anInvocation
+{
+ NSLog(@"Stub called: %@ in %@", NSStringFromSelector([anInvocation selector]), [self class]);
+}
+
+@end
+
+@interface NSDraggingItem : NSObject
+@end
+
+@implementation NSDraggingItem
+
+- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector
+{
+ return [NSMethodSignature signatureWithObjCTypes: "v@:"];
+}
+
+- (void)forwardInvocation:(NSInvocation *)anInvocation
+{
+ NSLog(@"Stub called: %@ in %@", NSStringFromSelector([anInvocation selector]), [self class]);
+}
+
+@end
+
+@interface NSDrawer : NSObject
+@end
+
+@implementation NSDrawer
+
+- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector
+{
+ return [NSMethodSignature signatureWithObjCTypes: "v@:"];
+}
+
+- (void)forwardInvocation:(NSInvocation *)anInvocation
+{
+ NSLog(@"Stub called: %@ in %@", NSStringFromSelector([anInvocation selector]), [self class]);
+}
+
+@end
+
+@interface NSDynamicNamedColor : NSObject
+@end
+
+@implementation NSDynamicNamedColor
+
+- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector
+{
+ return [NSMethodSignature signatureWithObjCTypes: "v@:"];
+}
+
+- (void)forwardInvocation:(NSInvocation *)anInvocation
+{
+ NSLog(@"Stub called: %@ in %@", NSStringFromSelector([anInvocation selector]), [self class]);
+}
+
+@end
+
+@interface NSEvent : NSObject
+@end
+
+@implementation NSEvent
+
+- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector
+{
+ return [NSMethodSignature signatureWithObjCTypes: "v@:"];
+}
+
+- (void)forwardInvocation:(NSInvocation *)anInvocation
+{
+ NSLog(@"Stub called: %@ in %@", NSStringFromSelector([anInvocation selector]), [self class]);
+}
+
+@end
+
+@interface NSFont : NSObject
+@end
+
+@implementation NSFont
+
+- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector
+{
+ return [NSMethodSignature signatureWithObjCTypes: "v@:"];
+}
+
+- (void)forwardInvocation:(NSInvocation *)anInvocation
+{
+ NSLog(@"Stub called: %@ in %@", NSStringFromSelector([anInvocation selector]), [self class]);
+}
+
+@end
+
+@interface NSFontDescriptor : NSObject
+@end
+
+@implementation NSFontDescriptor
+
+- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector
+{
+ return [NSMethodSignature signatureWithObjCTypes: "v@:"];
+}
+
+- (void)forwardInvocation:(NSInvocation *)anInvocation
+{
+ NSLog(@"Stub called: %@ in %@", NSStringFromSelector([anInvocation selector]), [self class]);
+}
+
+@end
+
+@interface NSFontManager : NSObject
+@end
+
+@implementation NSFontManager
+
+- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector
+{
+ return [NSMethodSignature signatureWithObjCTypes: "v@:"];
+}
+
+- (void)forwardInvocation:(NSInvocation *)anInvocation
+{
+ NSLog(@"Stub called: %@ in %@", NSStringFromSelector([anInvocation selector]), [self class]);
+}
+
+@end
+
+@interface NSFontPanel : NSObject
+@end
+
+@implementation NSFontPanel
+
+- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector
+{
+ return [NSMethodSignature signatureWithObjCTypes: "v@:"];
+}
+
+- (void)forwardInvocation:(NSInvocation *)anInvocation
+{
+ NSLog(@"Stub called: %@ in %@", NSStringFromSelector([anInvocation selector]), [self class]);
+}
+
+@end
+
+@interface NSForm : NSObject
+@end
+
+@implementation NSForm
+
+- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector
+{
+ return [NSMethodSignature signatureWithObjCTypes: "v@:"];
+}
+
+- (void)forwardInvocation:(NSInvocation *)anInvocation
+{
+ NSLog(@"Stub called: %@ in %@", NSStringFromSelector([anInvocation selector]), [self class]);
+}
+
+@end
+
+@interface NSFormCell : NSObject
+@end
+
+@implementation NSFormCell
+
+- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector
+{
+ return [NSMethodSignature signatureWithObjCTypes: "v@:"];
+}
+
+- (void)forwardInvocation:(NSInvocation *)anInvocation
+{
+ NSLog(@"Stub called: %@ in %@", NSStringFromSelector([anInvocation selector]), [self class]);
+}
+
+@end
+
+@interface NSGestureRecognizer : NSObject
+@end
+
+@implementation NSGestureRecognizer
+
+- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector
+{
+ return [NSMethodSignature signatureWithObjCTypes: "v@:"];
+}
+
+- (void)forwardInvocation:(NSInvocation *)anInvocation
+{
+ NSLog(@"Stub called: %@ in %@", NSStringFromSelector([anInvocation selector]), [self class]);
+}
+
+@end
+
+@interface NSGlyphGenerator : NSObject
+@end
+
+@implementation NSGlyphGenerator
+
+- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector
+{
+ return [NSMethodSignature signatureWithObjCTypes: "v@:"];
+}
+
+- (void)forwardInvocation:(NSInvocation *)anInvocation
+{
+ NSLog(@"Stub called: %@ in %@", NSStringFromSelector([anInvocation selector]), [self class]);
+}
+
+@end
+
+@interface NSGradient : NSObject
+@end
+
+@implementation NSGradient
+
+- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector
+{
+ return [NSMethodSignature signatureWithObjCTypes: "v@:"];
+}
+
+- (void)forwardInvocation:(NSInvocation *)anInvocation
+{
+ NSLog(@"Stub called: %@ in %@", NSStringFromSelector([anInvocation selector]), [self class]);
+}
+
+@end
+
+@interface NSGraphicsContext : NSObject
+@end
+
+@implementation NSGraphicsContext
+
+- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector
+{
+ return [NSMethodSignature signatureWithObjCTypes: "v@:"];
+}
+
+- (void)forwardInvocation:(NSInvocation *)anInvocation
+{
+ NSLog(@"Stub called: %@ in %@", NSStringFromSelector([anInvocation selector]), [self class]);
+}
+
+@end
+
+@interface NSGridCell : NSObject
+@end
+
+@implementation NSGridCell
+
+- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector
+{
+ return [NSMethodSignature signatureWithObjCTypes: "v@:"];
+}
+
+- (void)forwardInvocation:(NSInvocation *)anInvocation
+{
+ NSLog(@"Stub called: %@ in %@", NSStringFromSelector([anInvocation selector]), [self class]);
+}
+
+@end
+
+@interface NSGridColumn : NSObject
+@end
+
+@implementation NSGridColumn
+
+- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector
+{
+ return [NSMethodSignature signatureWithObjCTypes: "v@:"];
+}
+
+- (void)forwardInvocation:(NSInvocation *)anInvocation
+{
+ NSLog(@"Stub called: %@ in %@", NSStringFromSelector([anInvocation selector]), [self class]);
+}
+
+@end
+
+@interface NSGridRow : NSObject
+@end
+
+@implementation NSGridRow
+
+- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector
+{
+ return [NSMethodSignature signatureWithObjCTypes: "v@:"];
+}
+
+- (void)forwardInvocation:(NSInvocation *)anInvocation
+{
+ NSLog(@"Stub called: %@ in %@", NSStringFromSelector([anInvocation selector]), [self class]);
+}
+
+@end
+
+@interface NSGridView : NSObject
+@end
+
+@implementation NSGridView
+
+- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector
+{
+ return [NSMethodSignature signatureWithObjCTypes: "v@:"];
+}
+
+- (void)forwardInvocation:(NSInvocation *)anInvocation
+{
+ NSLog(@"Stub called: %@ in %@", NSStringFromSelector([anInvocation selector]), [self class]);
+}
+
+@end
+
+@interface NSGroupTouchBarItem : NSObject
+@end
+
+@implementation NSGroupTouchBarItem
+
+- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector
+{
+ return [NSMethodSignature signatureWithObjCTypes: "v@:"];
+}
+
+- (void)forwardInvocation:(NSInvocation *)anInvocation
+{
+ NSLog(@"Stub called: %@ in %@", NSStringFromSelector([anInvocation selector]), [self class]);
+}
+
+@end
+
+@interface NSHapticFeedbackManager : NSObject
+@end
+
+@implementation NSHapticFeedbackManager
+
+- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector
+{
+ return [NSMethodSignature signatureWithObjCTypes: "v@:"];
+}
+
+- (void)forwardInvocation:(NSInvocation *)anInvocation
+{
+ NSLog(@"Stub called: %@ in %@", NSStringFromSelector([anInvocation selector]), [self class]);
+}
+
+@end
+
+@interface NSHelpManager : NSObject
+@end
+
+@implementation NSHelpManager
+
+- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector
+{
+ return [NSMethodSignature signatureWithObjCTypes: "v@:"];
+}
+
+- (void)forwardInvocation:(NSInvocation *)anInvocation
+{
+ NSLog(@"Stub called: %@ in %@", NSStringFromSelector([anInvocation selector]), [self class]);
+}
+
+@end
+
+@interface NSIBHelpConnector : NSObject
+@end
+
+@implementation NSIBHelpConnector
+
+- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector
+{
+ return [NSMethodSignature signatureWithObjCTypes: "v@:"];
+}
+
+- (void)forwardInvocation:(NSInvocation *)anInvocation
+{
+ NSLog(@"Stub called: %@ in %@", NSStringFromSelector([anInvocation selector]), [self class]);
+}
+
+@end
+
+@interface NSIBObjectData : NSObject
+@end
+
+@implementation NSIBObjectData
+
+- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector
+{
+ return [NSMethodSignature signatureWithObjCTypes: "v@:"];
+}
+
+- (void)forwardInvocation:(NSInvocation *)anInvocation
+{
+ NSLog(@"Stub called: %@ in %@", NSStringFromSelector([anInvocation selector]), [self class]);
+}
+
+@end
+
+@interface NSIBUserDefinedRuntimeAttributesConnector : NSObject
+@end
+
+@implementation NSIBUserDefinedRuntimeAttributesConnector
+
+- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector
+{
+ return [NSMethodSignature signatureWithObjCTypes: "v@:"];
+}
+
+- (void)forwardInvocation:(NSInvocation *)anInvocation
+{
+ NSLog(@"Stub called: %@ in %@", NSStringFromSelector([anInvocation selector]), [self class]);
+}
+
+@end
+
+@interface NSImage : NSObject
+@end
+
+@implementation NSImage
+
+- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector
+{
+ return [NSMethodSignature signatureWithObjCTypes: "v@:"];
+}
+
+- (void)forwardInvocation:(NSInvocation *)anInvocation
+{
+ NSLog(@"Stub called: %@ in %@", NSStringFromSelector([anInvocation selector]), [self class]);
+}
+
+@end
+
+@interface NSImageCell : NSObject
+@end
+
+@implementation NSImageCell
+
+- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector
+{
+ return [NSMethodSignature signatureWithObjCTypes: "v@:"];
+}
+
+- (void)forwardInvocation:(NSInvocation *)anInvocation
+{
+ NSLog(@"Stub called: %@ in %@", NSStringFromSelector([anInvocation selector]), [self class]);
+}
+
+@end
+
+@interface NSImageRep : NSObject
+@end
+
+@implementation NSImageRep
+
+- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector
+{
+ return [NSMethodSignature signatureWithObjCTypes: "v@:"];
+}
+
+- (void)forwardInvocation:(NSInvocation *)anInvocation
+{
+ NSLog(@"Stub called: %@ in %@", NSStringFromSelector([anInvocation selector]), [self class]);
+}
+
+@end
+
+@interface NSImageView : NSObject
+@end
+
+@implementation NSImageView
+
+- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector
+{
+ return [NSMethodSignature signatureWithObjCTypes: "v@:"];
+}
+
+- (void)forwardInvocation:(NSInvocation *)anInvocation
+{
+ NSLog(@"Stub called: %@ in %@", NSStringFromSelector([anInvocation selector]), [self class]);
+}
+
+@end
+
+@interface NSImmediateActionGestureRecognizer : NSObject
+@end
+
+@implementation NSImmediateActionGestureRecognizer
+
+- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector
+{
+ return [NSMethodSignature signatureWithObjCTypes: "v@:"];
+}
+
+- (void)forwardInvocation:(NSInvocation *)anInvocation
+{
+ NSLog(@"Stub called: %@ in %@", NSStringFromSelector([anInvocation selector]), [self class]);
+}
+
+@end
+
+@interface NSKeyBindingManager : NSObject
+@end
+
+@implementation NSKeyBindingManager
+
+- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector
+{
+ return [NSMethodSignature signatureWithObjCTypes: "v@:"];
+}
+
+- (void)forwardInvocation:(NSInvocation *)anInvocation
+{
+ NSLog(@"Stub called: %@ in %@", NSStringFromSelector([anInvocation selector]), [self class]);
+}
+
+@end
+
+@interface NSLayoutGuide : NSObject
+@end
+
+@implementation NSLayoutGuide
+
+- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector
+{
+ return [NSMethodSignature signatureWithObjCTypes: "v@:"];
+}
+
+- (void)forwardInvocation:(NSInvocation *)anInvocation
+{
+ NSLog(@"Stub called: %@ in %@", NSStringFromSelector([anInvocation selector]), [self class]);
+}
+
+@end
+
+@interface NSLayoutManager : NSObject
+@end
+
+@implementation NSLayoutManager
+
+- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector
+{
+ return [NSMethodSignature signatureWithObjCTypes: "v@:"];
+}
+
+- (void)forwardInvocation:(NSInvocation *)anInvocation
+{
+ NSLog(@"Stub called: %@ in %@", NSStringFromSelector([anInvocation selector]), [self class]);
+}
+
+@end
+
+@interface NSLevelIndicator : NSObject
+@end
+
+@implementation NSLevelIndicator
+
+- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector
+{
+ return [NSMethodSignature signatureWithObjCTypes: "v@:"];
+}
+
+- (void)forwardInvocation:(NSInvocation *)anInvocation
+{
+ NSLog(@"Stub called: %@ in %@", NSStringFromSelector([anInvocation selector]), [self class]);
+}
+
+@end
+
+@interface NSLevelIndicatorCell : NSObject
+@end
+
+@implementation NSLevelIndicatorCell
+
+- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector
+{
+ return [NSMethodSignature signatureWithObjCTypes: "v@:"];
+}
+
+- (void)forwardInvocation:(NSInvocation *)anInvocation
+{
+ NSLog(@"Stub called: %@ in %@", NSStringFromSelector([anInvocation selector]), [self class]);
+}
+
+@end
+
+@interface NSMagnificationGestureRecognizer : NSObject
+@end
+
+@implementation NSMagnificationGestureRecognizer
+
+- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector
+{
+ return [NSMethodSignature signatureWithObjCTypes: "v@:"];
+}
+
+- (void)forwardInvocation:(NSInvocation *)anInvocation
+{
+ NSLog(@"Stub called: %@ in %@", NSStringFromSelector([anInvocation selector]), [self class]);
+}
+
+@end
+
+@interface NSMatrix : NSObject
+@end
+
+@implementation NSMatrix
+
+- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector
+{
+ return [NSMethodSignature signatureWithObjCTypes: "v@:"];
+}
+
+- (void)forwardInvocation:(NSInvocation *)anInvocation
+{
+ NSLog(@"Stub called: %@ in %@", NSStringFromSelector([anInvocation selector]), [self class]);
+}
+
+@end
+
+@interface NSMenu : NSObject
+@end
+
+@implementation NSMenu
+
+- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector
+{
+ return [NSMethodSignature signatureWithObjCTypes: "v@:"];
+}
+
+- (void)forwardInvocation:(NSInvocation *)anInvocation
+{
+ NSLog(@"Stub called: %@ in %@", NSStringFromSelector([anInvocation selector]), [self class]);
+}
+
+@end
+
+@interface NSMenuItem : NSObject
+@end
+
+@implementation NSMenuItem
+
+- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector
+{
+ return [NSMethodSignature signatureWithObjCTypes: "v@:"];
+}
+
+- (void)forwardInvocation:(NSInvocation *)anInvocation
+{
+ NSLog(@"Stub called: %@ in %@", NSStringFromSelector([anInvocation selector]), [self class]);
+}
+
+@end
+
+@interface NSMenuItemCell : NSObject
+@end
+
+@implementation NSMenuItemCell
+
+- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector
+{
+ return [NSMethodSignature signatureWithObjCTypes: "v@:"];
+}
+
+- (void)forwardInvocation:(NSInvocation *)anInvocation
+{
+ NSLog(@"Stub called: %@ in %@", NSStringFromSelector([anInvocation selector]), [self class]);
+}
+
+@end
+
+@interface NSMutableParagraphStyle : NSObject
+@end
+
+@implementation NSMutableParagraphStyle
+
+- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector
+{
+ return [NSMethodSignature signatureWithObjCTypes: "v@:"];
+}
+
+- (void)forwardInvocation:(NSInvocation *)anInvocation
+{
+ NSLog(@"Stub called: %@ in %@", NSStringFromSelector([anInvocation selector]), [self class]);
+}
+
+@end
+
+@interface NSNib : NSObject
+@end
+
+@implementation NSNib
+
+- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector
+{
+ return [NSMethodSignature signatureWithObjCTypes: "v@:"];
+}
+
+- (void)forwardInvocation:(NSInvocation *)anInvocation
+{
+ NSLog(@"Stub called: %@ in %@", NSStringFromSelector([anInvocation selector]), [self class]);
+}
+
+@end
+
+@interface NSNibAXAttributeConnector : NSObject
+@end
+
+@implementation NSNibAXAttributeConnector
+
+- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector
+{
+ return [NSMethodSignature signatureWithObjCTypes: "v@:"];
+}
+
+- (void)forwardInvocation:(NSInvocation *)anInvocation
+{
+ NSLog(@"Stub called: %@ in %@", NSStringFromSelector([anInvocation selector]), [self class]);
+}
+
+@end
+
+@interface NSNibAXRelationshipConnector : NSObject
+@end
+
+@implementation NSNibAXRelationshipConnector
+
+- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector
+{
+ return [NSMethodSignature signatureWithObjCTypes: "v@:"];
+}
+
+- (void)forwardInvocation:(NSInvocation *)anInvocation
+{
+ NSLog(@"Stub called: %@ in %@", NSStringFromSelector([anInvocation selector]), [self class]);
+}
+
+@end
+
+@interface NSNibAuxiliaryActionConnector : NSObject
+@end
+
+@implementation NSNibAuxiliaryActionConnector
+
+- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector
+{
+ return [NSMethodSignature signatureWithObjCTypes: "v@:"];
+}
+
+- (void)forwardInvocation:(NSInvocation *)anInvocation
+{
+ NSLog(@"Stub called: %@ in %@", NSStringFromSelector([anInvocation selector]), [self class]);
+}
+
+@end
+
+@interface NSNibBindingConnector : NSObject
+@end
+
+@implementation NSNibBindingConnector
+
+- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector
+{
+ return [NSMethodSignature signatureWithObjCTypes: "v@:"];
+}
+
+- (void)forwardInvocation:(NSInvocation *)anInvocation
+{
+ NSLog(@"Stub called: %@ in %@", NSStringFromSelector([anInvocation selector]), [self class]);
+}
+
+@end
+
+@interface NSNibControlConnector : NSObject
+@end
+
+@implementation NSNibControlConnector
+
+- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector
+{
+ return [NSMethodSignature signatureWithObjCTypes: "v@:"];
+}
+
+- (void)forwardInvocation:(NSInvocation *)anInvocation
+{
+ NSLog(@"Stub called: %@ in %@", NSStringFromSelector([anInvocation selector]), [self class]);
+}
+
+@end
+
+@interface NSNibExternalObjectPlaceholder : NSObject
+@end
+
+@implementation NSNibExternalObjectPlaceholder
+
+- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector
+{
+ return [NSMethodSignature signatureWithObjCTypes: "v@:"];
+}
+
+- (void)forwardInvocation:(NSInvocation *)anInvocation
+{
+ NSLog(@"Stub called: %@ in %@", NSStringFromSelector([anInvocation selector]), [self class]);
+}
+
+@end
+
+@interface NSNibOutletConnector : NSObject
+@end
+
+@implementation NSNibOutletConnector
+
+- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector
+{
+ return [NSMethodSignature signatureWithObjCTypes: "v@:"];
+}
+
+- (void)forwardInvocation:(NSInvocation *)anInvocation
+{
+ NSLog(@"Stub called: %@ in %@", NSStringFromSelector([anInvocation selector]), [self class]);
+}
+
+@end
+
+@interface NSObjectController : NSObject
+@end
+
+@implementation NSObjectController
+
+- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector
+{
+ return [NSMethodSignature signatureWithObjCTypes: "v@:"];
+}
+
+- (void)forwardInvocation:(NSInvocation *)anInvocation
+{
+ NSLog(@"Stub called: %@ in %@", NSStringFromSelector([anInvocation selector]), [self class]);
+}
+
+@end
+
+@interface NSOpenGLContext : NSObject
+@end
+
+@implementation NSOpenGLContext
+
+- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector
+{
+ return [NSMethodSignature signatureWithObjCTypes: "v@:"];
+}
+
+- (void)forwardInvocation:(NSInvocation *)anInvocation
+{
+ NSLog(@"Stub called: %@ in %@", NSStringFromSelector([anInvocation selector]), [self class]);
+}
+
+@end
+
+@interface NSOpenGLPixelFormat : NSObject
+@end
+
+@implementation NSOpenGLPixelFormat
+
+- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector
+{
+ return [NSMethodSignature signatureWithObjCTypes: "v@:"];
+}
+
+- (void)forwardInvocation:(NSInvocation *)anInvocation
+{
+ NSLog(@"Stub called: %@ in %@", NSStringFromSelector([anInvocation selector]), [self class]);
+}
+
+@end
+
+@interface NSOpenGLView : NSObject
+@end
+
+@implementation NSOpenGLView
+
+- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector
+{
+ return [NSMethodSignature signatureWithObjCTypes: "v@:"];
+}
+
+- (void)forwardInvocation:(NSInvocation *)anInvocation
+{
+ NSLog(@"Stub called: %@ in %@", NSStringFromSelector([anInvocation selector]), [self class]);
+}
+
+@end
+
+@interface NSOpenPanel : NSObject
+@end
+
+@implementation NSOpenPanel
+
+- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector
+{
+ return [NSMethodSignature signatureWithObjCTypes: "v@:"];
+}
+
+- (void)forwardInvocation:(NSInvocation *)anInvocation
+{
+ NSLog(@"Stub called: %@ in %@", NSStringFromSelector([anInvocation selector]), [self class]);
+}
+
+@end
+
+@interface NSOutlineView : NSObject
+@end
+
+@implementation NSOutlineView
+
+- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector
+{
+ return [NSMethodSignature signatureWithObjCTypes: "v@:"];
+}
+
+- (void)forwardInvocation:(NSInvocation *)anInvocation
+{
+ NSLog(@"Stub called: %@ in %@", NSStringFromSelector([anInvocation selector]), [self class]);
+}
+
+@end
+
+@interface NSPDFImageRep : NSObject
+@end
+
+@implementation NSPDFImageRep
+
+- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector
+{
+ return [NSMethodSignature signatureWithObjCTypes: "v@:"];
+}
+
+- (void)forwardInvocation:(NSInvocation *)anInvocation
+{
+ NSLog(@"Stub called: %@ in %@", NSStringFromSelector([anInvocation selector]), [self class]);
+}
+
+@end
+
+@interface NSPageController : NSObject
+@end
+
+@implementation NSPageController
+
+- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector
+{
+ return [NSMethodSignature signatureWithObjCTypes: "v@:"];
+}
+
+- (void)forwardInvocation:(NSInvocation *)anInvocation
+{
+ NSLog(@"Stub called: %@ in %@", NSStringFromSelector([anInvocation selector]), [self class]);
+}
+
+@end
+
+@interface NSPanGestureRecognizer : NSObject
+@end
+
+@implementation NSPanGestureRecognizer
+
+- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector
+{
+ return [NSMethodSignature signatureWithObjCTypes: "v@:"];
+}
+
+- (void)forwardInvocation:(NSInvocation *)anInvocation
+{
+ NSLog(@"Stub called: %@ in %@", NSStringFromSelector([anInvocation selector]), [self class]);
+}
+
+@end
+
+@interface NSPanel : NSObject
+@end
+
+@implementation NSPanel
+
+- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector
+{
+ return [NSMethodSignature signatureWithObjCTypes: "v@:"];
+}
+
+- (void)forwardInvocation:(NSInvocation *)anInvocation
+{
+ NSLog(@"Stub called: %@ in %@", NSStringFromSelector([anInvocation selector]), [self class]);
+}
+
+@end
+
+@interface NSParagraphStyle : NSObject
+@end
+
+@implementation NSParagraphStyle
+
+- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector
+{
+ return [NSMethodSignature signatureWithObjCTypes: "v@:"];
+}
+
+- (void)forwardInvocation:(NSInvocation *)anInvocation
+{
+ NSLog(@"Stub called: %@ in %@", NSStringFromSelector([anInvocation selector]), [self class]);
+}
+
+@end
+
+@interface NSPasteboard : NSObject
+@end
+
+@implementation NSPasteboard
+
+- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector
+{
+ return [NSMethodSignature signatureWithObjCTypes: "v@:"];
+}
+
+- (void)forwardInvocation:(NSInvocation *)anInvocation
+{
+ NSLog(@"Stub called: %@ in %@", NSStringFromSelector([anInvocation selector]), [self class]);
+}
+
+@end
+
+@interface NSPasteboardItem : NSObject
+@end
+
+@implementation NSPasteboardItem
+
+- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector
+{
+ return [NSMethodSignature signatureWithObjCTypes: "v@:"];
+}
+
+- (void)forwardInvocation:(NSInvocation *)anInvocation
+{
+ NSLog(@"Stub called: %@ in %@", NSStringFromSelector([anInvocation selector]), [self class]);
+}
+
+@end
+
+@interface NSPathCell : NSObject
+@end
+
+@implementation NSPathCell
+
+- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector
+{
+ return [NSMethodSignature signatureWithObjCTypes: "v@:"];
+}
+
+- (void)forwardInvocation:(NSInvocation *)anInvocation
+{
+ NSLog(@"Stub called: %@ in %@", NSStringFromSelector([anInvocation selector]), [self class]);
+}
+
+@end
+
+@interface NSPathComponentCell : NSObject
+@end
+
+@implementation NSPathComponentCell
+
+- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector
+{
+ return [NSMethodSignature signatureWithObjCTypes: "v@:"];
+}
+
+- (void)forwardInvocation:(NSInvocation *)anInvocation
+{
+ NSLog(@"Stub called: %@ in %@", NSStringFromSelector([anInvocation selector]), [self class]);
+}
+
+@end
+
+@interface NSPathControl : NSObject
+@end
+
+@implementation NSPathControl
+
+- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector
+{
+ return [NSMethodSignature signatureWithObjCTypes: "v@:"];
+}
+
+- (void)forwardInvocation:(NSInvocation *)anInvocation
+{
+ NSLog(@"Stub called: %@ in %@", NSStringFromSelector([anInvocation selector]), [self class]);
+}
+
+@end
+
+@interface NSPopUpButton : NSObject
+@end
+
+@implementation NSPopUpButton
+
+- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector
+{
+ return [NSMethodSignature signatureWithObjCTypes: "v@:"];
+}
+
+- (void)forwardInvocation:(NSInvocation *)anInvocation
+{
+ NSLog(@"Stub called: %@ in %@", NSStringFromSelector([anInvocation selector]), [self class]);
+}
+
+@end
+
+@interface NSPopUpButtonCell : NSObject
+@end
+
+@implementation NSPopUpButtonCell
+
+- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector
+{
+ return [NSMethodSignature signatureWithObjCTypes: "v@:"];
+}
+
+- (void)forwardInvocation:(NSInvocation *)anInvocation
+{
+ NSLog(@"Stub called: %@ in %@", NSStringFromSelector([anInvocation selector]), [self class]);
+}
+
+@end
+
+@interface NSPopover : NSObject
+@end
+
+@implementation NSPopover
+
+- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector
+{
+ return [NSMethodSignature signatureWithObjCTypes: "v@:"];
+}
+
+- (void)forwardInvocation:(NSInvocation *)anInvocation
+{
+ NSLog(@"Stub called: %@ in %@", NSStringFromSelector([anInvocation selector]), [self class]);
+}
+
+@end
+
+@interface NSPopoverTouchBarItem : NSObject
+@end
+
+@implementation NSPopoverTouchBarItem
+
+- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector
+{
+ return [NSMethodSignature signatureWithObjCTypes: "v@:"];
+}
+
+- (void)forwardInvocation:(NSInvocation *)anInvocation
+{
+ NSLog(@"Stub called: %@ in %@", NSStringFromSelector([anInvocation selector]), [self class]);
+}
+
+@end
+
+@interface NSPredicateEditor : NSObject
+@end
+
+@implementation NSPredicateEditor
+
+- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector
+{
+ return [NSMethodSignature signatureWithObjCTypes: "v@:"];
+}
+
+- (void)forwardInvocation:(NSInvocation *)anInvocation
+{
+ NSLog(@"Stub called: %@ in %@", NSStringFromSelector([anInvocation selector]), [self class]);
+}
+
+@end
+
+@interface NSPredicateEditorRowTemplate : NSObject
+@end
+
+@implementation NSPredicateEditorRowTemplate
+
+- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector
+{
+ return [NSMethodSignature signatureWithObjCTypes: "v@:"];
+}
+
+- (void)forwardInvocation:(NSInvocation *)anInvocation
+{
+ NSLog(@"Stub called: %@ in %@", NSStringFromSelector([anInvocation selector]), [self class]);
+}
+
+@end
+
+@interface NSPressGestureRecognizer : NSObject
+@end
+
+@implementation NSPressGestureRecognizer
+
+- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector
+{
+ return [NSMethodSignature signatureWithObjCTypes: "v@:"];
+}
+
+- (void)forwardInvocation:(NSInvocation *)anInvocation
+{
+ NSLog(@"Stub called: %@ in %@", NSStringFromSelector([anInvocation selector]), [self class]);
+}
+
+@end
+
+@interface NSPressureConfiguration : NSObject
+@end
+
+@implementation NSPressureConfiguration
+
+- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector
+{
+ return [NSMethodSignature signatureWithObjCTypes: "v@:"];
+}
+
+- (void)forwardInvocation:(NSInvocation *)anInvocation
+{
+ NSLog(@"Stub called: %@ in %@", NSStringFromSelector([anInvocation selector]), [self class]);
+}
+
+@end
+
+@interface NSPrintInfo : NSObject
+@end
+
+@implementation NSPrintInfo
+
+- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector
+{
+ return [NSMethodSignature signatureWithObjCTypes: "v@:"];
+}
+
+- (void)forwardInvocation:(NSInvocation *)anInvocation
+{
+ NSLog(@"Stub called: %@ in %@", NSStringFromSelector([anInvocation selector]), [self class]);
+}
+
+@end
+
+@interface NSPrintOperation : NSObject
+@end
+
+@implementation NSPrintOperation
+
+- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector
+{
+ return [NSMethodSignature signatureWithObjCTypes: "v@:"];
+}
+
+- (void)forwardInvocation:(NSInvocation *)anInvocation
+{
+ NSLog(@"Stub called: %@ in %@", NSStringFromSelector([anInvocation selector]), [self class]);
+}
+
+@end
+
+@interface NSProgressIndicator : NSObject
+@end
+
+@implementation NSProgressIndicator
+
+- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector
+{
+ return [NSMethodSignature signatureWithObjCTypes: "v@:"];
+}
+
+- (void)forwardInvocation:(NSInvocation *)anInvocation
+{
+ NSLog(@"Stub called: %@ in %@", NSStringFromSelector([anInvocation selector]), [self class]);
+}
+
+@end
+
+@interface NSPulseGestureRecognizer : NSObject
+@end
+
+@implementation NSPulseGestureRecognizer
+
+- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector
+{
+ return [NSMethodSignature signatureWithObjCTypes: "v@:"];
+}
+
+- (void)forwardInvocation:(NSInvocation *)anInvocation
+{
+ NSLog(@"Stub called: %@ in %@", NSStringFromSelector([anInvocation selector]), [self class]);
+}
+
+@end
+
+@interface NSResponder : NSObject
+@end
+
+@implementation NSResponder
+
+- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector
+{
+ return [NSMethodSignature signatureWithObjCTypes: "v@:"];
+}
+
+- (void)forwardInvocation:(NSInvocation *)anInvocation
+{
+ NSLog(@"Stub called: %@ in %@", NSStringFromSelector([anInvocation selector]), [self class]);
+}
+
+@end
+
+@interface NSRotationGestureRecognizer : NSObject
+@end
+
+@implementation NSRotationGestureRecognizer
+
+- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector
+{
+ return [NSMethodSignature signatureWithObjCTypes: "v@:"];
+}
+
+- (void)forwardInvocation:(NSInvocation *)anInvocation
+{
+ NSLog(@"Stub called: %@ in %@", NSStringFromSelector([anInvocation selector]), [self class]);
+}
+
+@end
+
+@interface NSRuleEditor : NSObject
+@end
+
+@implementation NSRuleEditor
+
+- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector
+{
+ return [NSMethodSignature signatureWithObjCTypes: "v@:"];
+}
+
+- (void)forwardInvocation:(NSInvocation *)anInvocation
+{
+ NSLog(@"Stub called: %@ in %@", NSStringFromSelector([anInvocation selector]), [self class]);
+}
+
+@end
+
+@interface NSRulerView : NSObject
+@end
+
+@implementation NSRulerView
+
+- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector
+{
+ return [NSMethodSignature signatureWithObjCTypes: "v@:"];
+}
+
+- (void)forwardInvocation:(NSInvocation *)anInvocation
+{
+ NSLog(@"Stub called: %@ in %@", NSStringFromSelector([anInvocation selector]), [self class]);
+}
+
+@end
+
+@interface NSRunningApplication : NSObject
+@end
+
+@implementation NSRunningApplication
+
+- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector
+{
+ return [NSMethodSignature signatureWithObjCTypes: "v@:"];
+}
+
+- (void)forwardInvocation:(NSInvocation *)anInvocation
+{
+ NSLog(@"Stub called: %@ in %@", NSStringFromSelector([anInvocation selector]), [self class]);
+}
+
+@end
+
+@interface NSSavePanel : NSObject
+@end
+
+@implementation NSSavePanel
+
+- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector
+{
+ return [NSMethodSignature signatureWithObjCTypes: "v@:"];
+}
+
+- (void)forwardInvocation:(NSInvocation *)anInvocation
+{
+ NSLog(@"Stub called: %@ in %@", NSStringFromSelector([anInvocation selector]), [self class]);
+}
+
+@end
+
+@interface NSScreen : NSObject
+@end
+
+@implementation NSScreen
+
+- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector
+{
+ return [NSMethodSignature signatureWithObjCTypes: "v@:"];
+}
+
+- (void)forwardInvocation:(NSInvocation *)anInvocation
+{
+ NSLog(@"Stub called: %@ in %@", NSStringFromSelector([anInvocation selector]), [self class]);
+}
+
+@end
+
+@interface NSScrollView : NSObject
+@end
+
+@implementation NSScrollView
+
+- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector
+{
+ return [NSMethodSignature signatureWithObjCTypes: "v@:"];
+}
+
+- (void)forwardInvocation:(NSInvocation *)anInvocation
+{
+ NSLog(@"Stub called: %@ in %@", NSStringFromSelector([anInvocation selector]), [self class]);
+}
+
+@end
+
+@interface NSScroller : NSObject
+@end
+
+@implementation NSScroller
+
+- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector
+{
+ return [NSMethodSignature signatureWithObjCTypes: "v@:"];
+}
+
+- (void)forwardInvocation:(NSInvocation *)anInvocation
+{
+ NSLog(@"Stub called: %@ in %@", NSStringFromSelector([anInvocation selector]), [self class]);
+}
+
+@end
+
+@interface NSScrollerImpPair : NSObject
+@end
+
+@implementation NSScrollerImpPair
+
+- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector
+{
+ return [NSMethodSignature signatureWithObjCTypes: "v@:"];
+}
+
+- (void)forwardInvocation:(NSInvocation *)anInvocation
+{
+ NSLog(@"Stub called: %@ in %@", NSStringFromSelector([anInvocation selector]), [self class]);
+}
+
+@end
+
+@interface NSScrubber : NSObject
+@end
+
+@implementation NSScrubber
+
+- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector
+{
+ return [NSMethodSignature signatureWithObjCTypes: "v@:"];
+}
+
+- (void)forwardInvocation:(NSInvocation *)anInvocation
+{
+ NSLog(@"Stub called: %@ in %@", NSStringFromSelector([anInvocation selector]), [self class]);
+}
+
+@end
+
+@interface NSScrubberFlowLayout : NSObject
+@end
+
+@implementation NSScrubberFlowLayout
+
+- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector
+{
+ return [NSMethodSignature signatureWithObjCTypes: "v@:"];
+}
+
+- (void)forwardInvocation:(NSInvocation *)anInvocation
+{
+ NSLog(@"Stub called: %@ in %@", NSStringFromSelector([anInvocation selector]), [self class]);
+}
+
+@end
+
+@interface NSScrubberLayout : NSObject
+@end
+
+@implementation NSScrubberLayout
+
+- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector
+{
+ return [NSMethodSignature signatureWithObjCTypes: "v@:"];
+}
+
+- (void)forwardInvocation:(NSInvocation *)anInvocation
+{
+ NSLog(@"Stub called: %@ in %@", NSStringFromSelector([anInvocation selector]), [self class]);
+}
+
+@end
+
+@interface NSScrubberProportionalLayout : NSObject
+@end
+
+@implementation NSScrubberProportionalLayout
+
+- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector
+{
+ return [NSMethodSignature signatureWithObjCTypes: "v@:"];
+}
+
+- (void)forwardInvocation:(NSInvocation *)anInvocation
+{
+ NSLog(@"Stub called: %@ in %@", NSStringFromSelector([anInvocation selector]), [self class]);
+}
+
+@end
+
+@interface NSSearchField : NSObject
+@end
+
+@implementation NSSearchField
+
+- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector
+{
+ return [NSMethodSignature signatureWithObjCTypes: "v@:"];
+}
+
+- (void)forwardInvocation:(NSInvocation *)anInvocation
+{
+ NSLog(@"Stub called: %@ in %@", NSStringFromSelector([anInvocation selector]), [self class]);
+}
+
+@end
+
+@interface NSSearchFieldCell : NSObject
+@end
+
+@implementation NSSearchFieldCell
+
+- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector
+{
+ return [NSMethodSignature signatureWithObjCTypes: "v@:"];
+}
+
+- (void)forwardInvocation:(NSInvocation *)anInvocation
+{
+ NSLog(@"Stub called: %@ in %@", NSStringFromSelector([anInvocation selector]), [self class]);
+}
+
+@end
+
+@interface NSSecureTextField : NSObject
+@end
+
+@implementation NSSecureTextField
+
+- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector
+{
+ return [NSMethodSignature signatureWithObjCTypes: "v@:"];
+}
+
+- (void)forwardInvocation:(NSInvocation *)anInvocation
+{
+ NSLog(@"Stub called: %@ in %@", NSStringFromSelector([anInvocation selector]), [self class]);
+}
+
+@end
+
+@interface NSSecureTextFieldCell : NSObject
+@end
+
+@implementation NSSecureTextFieldCell
+
+- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector
+{
+ return [NSMethodSignature signatureWithObjCTypes: "v@:"];
+}
+
+- (void)forwardInvocation:(NSInvocation *)anInvocation
+{
+ NSLog(@"Stub called: %@ in %@", NSStringFromSelector([anInvocation selector]), [self class]);
+}
+
+@end
+
+@interface NSSegmentedCell : NSObject
+@end
+
+@implementation NSSegmentedCell
+
+- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector
+{
+ return [NSMethodSignature signatureWithObjCTypes: "v@:"];
+}
+
+- (void)forwardInvocation:(NSInvocation *)anInvocation
+{
+ NSLog(@"Stub called: %@ in %@", NSStringFromSelector([anInvocation selector]), [self class]);
+}
+
+@end
+
+@interface NSSegmentedControl : NSObject
+@end
+
+@implementation NSSegmentedControl
+
+- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector
+{
+ return [NSMethodSignature signatureWithObjCTypes: "v@:"];
+}
+
+- (void)forwardInvocation:(NSInvocation *)anInvocation
+{
+ NSLog(@"Stub called: %@ in %@", NSStringFromSelector([anInvocation selector]), [self class]);
+}
+
+@end
+
+@interface NSShadow : NSObject
+@end
+
+@implementation NSShadow
+
+- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector
+{
+ return [NSMethodSignature signatureWithObjCTypes: "v@:"];
+}
+
+- (void)forwardInvocation:(NSInvocation *)anInvocation
+{
+ NSLog(@"Stub called: %@ in %@", NSStringFromSelector([anInvocation selector]), [self class]);
+}
+
+@end
+
+@interface NSSharingService : NSObject
+@end
+
+@implementation NSSharingService
+
+- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector
+{
+ return [NSMethodSignature signatureWithObjCTypes: "v@:"];
+}
+
+- (void)forwardInvocation:(NSInvocation *)anInvocation
+{
+ NSLog(@"Stub called: %@ in %@", NSStringFromSelector([anInvocation selector]), [self class]);
+}
+
+@end
+
+@interface NSSharingServicePicker : NSObject
+@end
+
+@implementation NSSharingServicePicker
+
+- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector
+{
+ return [NSMethodSignature signatureWithObjCTypes: "v@:"];
+}
+
+- (void)forwardInvocation:(NSInvocation *)anInvocation
+{
+ NSLog(@"Stub called: %@ in %@", NSStringFromSelector([anInvocation selector]), [self class]);
+}
+
+@end
+
+@interface NSSharingServicePickerTouchBarItem : NSObject
+@end
+
+@implementation NSSharingServicePickerTouchBarItem
+
+- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector
+{
+ return [NSMethodSignature signatureWithObjCTypes: "v@:"];
+}
+
+- (void)forwardInvocation:(NSInvocation *)anInvocation
+{
+ NSLog(@"Stub called: %@ in %@", NSStringFromSelector([anInvocation selector]), [self class]);
+}
+
+@end
+
+@interface NSSlider : NSObject
+@end
+
+@implementation NSSlider
+
+- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector
+{
+ return [NSMethodSignature signatureWithObjCTypes: "v@:"];
+}
+
+- (void)forwardInvocation:(NSInvocation *)anInvocation
+{
+ NSLog(@"Stub called: %@ in %@", NSStringFromSelector([anInvocation selector]), [self class]);
+}
+
+@end
+
+@interface NSSliderAccessory : NSObject
+@end
+
+@implementation NSSliderAccessory
+
+- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector
+{
+ return [NSMethodSignature signatureWithObjCTypes: "v@:"];
+}
+
+- (void)forwardInvocation:(NSInvocation *)anInvocation
+{
+ NSLog(@"Stub called: %@ in %@", NSStringFromSelector([anInvocation selector]), [self class]);
+}
+
+@end
+
+@interface NSSliderAccessoryBehavior : NSObject
+@end
+
+@implementation NSSliderAccessoryBehavior
+
+- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector
+{
+ return [NSMethodSignature signatureWithObjCTypes: "v@:"];
+}
+
+- (void)forwardInvocation:(NSInvocation *)anInvocation
+{
+ NSLog(@"Stub called: %@ in %@", NSStringFromSelector([anInvocation selector]), [self class]);
+}
+
+@end
+
+@interface NSSliderCell : NSObject
+@end
+
+@implementation NSSliderCell
+
+- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector
+{
+ return [NSMethodSignature signatureWithObjCTypes: "v@:"];
+}
+
+- (void)forwardInvocation:(NSInvocation *)anInvocation
+{
+ NSLog(@"Stub called: %@ in %@", NSStringFromSelector([anInvocation selector]), [self class]);
+}
+
+@end
+
+@interface NSSliderTouchBarItem : NSObject
+@end
+
+@implementation NSSliderTouchBarItem
+
+- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector
+{
+ return [NSMethodSignature signatureWithObjCTypes: "v@:"];
+}
+
+- (void)forwardInvocation:(NSInvocation *)anInvocation
+{
+ NSLog(@"Stub called: %@ in %@", NSStringFromSelector([anInvocation selector]), [self class]);
+}
+
+@end
+
+@interface NSSound : NSObject
+@end
+
+@implementation NSSound
+
+- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector
+{
+ return [NSMethodSignature signatureWithObjCTypes: "v@:"];
+}
+
+- (void)forwardInvocation:(NSInvocation *)anInvocation
+{
+ NSLog(@"Stub called: %@ in %@", NSStringFromSelector([anInvocation selector]), [self class]);
+}
+
+@end
+
+@interface NSSpaceTouchBarItem : NSObject
+@end
+
+@implementation NSSpaceTouchBarItem
+
+- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector
+{
+ return [NSMethodSignature signatureWithObjCTypes: "v@:"];
+}
+
+- (void)forwardInvocation:(NSInvocation *)anInvocation
+{
+ NSLog(@"Stub called: %@ in %@", NSStringFromSelector([anInvocation selector]), [self class]);
+}
+
+@end
+
+@interface NSSpeechSynthesizer : NSObject
+@end
+
+@implementation NSSpeechSynthesizer
+
+- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector
+{
+ return [NSMethodSignature signatureWithObjCTypes: "v@:"];
+}
+
+- (void)forwardInvocation:(NSInvocation *)anInvocation
+{
+ NSLog(@"Stub called: %@ in %@", NSStringFromSelector([anInvocation selector]), [self class]);
+}
+
+@end
+
+@interface NSSpellChecker : NSObject
+@end
+
+@implementation NSSpellChecker
+
+- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector
+{
+ return [NSMethodSignature signatureWithObjCTypes: "v@:"];
+}
+
+- (void)forwardInvocation:(NSInvocation *)anInvocation
+{
+ NSLog(@"Stub called: %@ in %@", NSStringFromSelector([anInvocation selector]), [self class]);
+}
+
+@end
+
+@interface NSSplitView : NSObject
+@end
+
+@implementation NSSplitView
+
+- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector
+{
+ return [NSMethodSignature signatureWithObjCTypes: "v@:"];
+}
+
+- (void)forwardInvocation:(NSInvocation *)anInvocation
+{
+ NSLog(@"Stub called: %@ in %@", NSStringFromSelector([anInvocation selector]), [self class]);
+}
+
+@end
+
+@interface NSSplitViewController : NSObject
+@end
+
+@implementation NSSplitViewController
+
+- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector
+{
+ return [NSMethodSignature signatureWithObjCTypes: "v@:"];
+}
+
+- (void)forwardInvocation:(NSInvocation *)anInvocation
+{
+ NSLog(@"Stub called: %@ in %@", NSStringFromSelector([anInvocation selector]), [self class]);
+}
+
+@end
+
+@interface NSSplitViewItem : NSObject
+@end
+
+@implementation NSSplitViewItem
+
+- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector
+{
+ return [NSMethodSignature signatureWithObjCTypes: "v@:"];
+}
+
+- (void)forwardInvocation:(NSInvocation *)anInvocation
+{
+ NSLog(@"Stub called: %@ in %@", NSStringFromSelector([anInvocation selector]), [self class]);
+}
+
+@end
+
+@interface NSStackView : NSObject
+@end
+
+@implementation NSStackView
+
+- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector
+{
+ return [NSMethodSignature signatureWithObjCTypes: "v@:"];
+}
+
+- (void)forwardInvocation:(NSInvocation *)anInvocation
+{
+ NSLog(@"Stub called: %@ in %@", NSStringFromSelector([anInvocation selector]), [self class]);
+}
+
+@end
+
+@interface NSStatusBar : NSObject
+@end
+
+@implementation NSStatusBar
+
+- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector
+{
+ return [NSMethodSignature signatureWithObjCTypes: "v@:"];
+}
+
+- (void)forwardInvocation:(NSInvocation *)anInvocation
+{
+ NSLog(@"Stub called: %@ in %@", NSStringFromSelector([anInvocation selector]), [self class]);
+}
+
+@end
+
+@interface NSStepper : NSObject
+@end
+
+@implementation NSStepper
+
+- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector
+{
+ return [NSMethodSignature signatureWithObjCTypes: "v@:"];
+}
+
+- (void)forwardInvocation:(NSInvocation *)anInvocation
+{
+ NSLog(@"Stub called: %@ in %@", NSStringFromSelector([anInvocation selector]), [self class]);
+}
+
+@end
+
+@interface NSStepperCell : NSObject
+@end
+
+@implementation NSStepperCell
+
+- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector
+{
+ return [NSMethodSignature signatureWithObjCTypes: "v@:"];
+}
+
+- (void)forwardInvocation:(NSInvocation *)anInvocation
+{
+ NSLog(@"Stub called: %@ in %@", NSStringFromSelector([anInvocation selector]), [self class]);
+}
+
+@end
+
+@interface NSStoryboard : NSObject
+@end
+
+@implementation NSStoryboard
+
+- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector
+{
+ return [NSMethodSignature signatureWithObjCTypes: "v@:"];
+}
+
+- (void)forwardInvocation:(NSInvocation *)anInvocation
+{
+ NSLog(@"Stub called: %@ in %@", NSStringFromSelector([anInvocation selector]), [self class]);
+}
+
+@end
+
+@interface NSStoryboardControllerPlaceholder : NSObject
+@end
+
+@implementation NSStoryboardControllerPlaceholder
+
+- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector
+{
+ return [NSMethodSignature signatureWithObjCTypes: "v@:"];
+}
+
+- (void)forwardInvocation:(NSInvocation *)anInvocation
+{
+ NSLog(@"Stub called: %@ in %@", NSStringFromSelector([anInvocation selector]), [self class]);
+}
+
+@end
+
+@interface NSSwitch : NSObject
+@end
+
+@implementation NSSwitch
+
+- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector
+{
+ return [NSMethodSignature signatureWithObjCTypes: "v@:"];
+}
+
+- (void)forwardInvocation:(NSInvocation *)anInvocation
+{
+ NSLog(@"Stub called: %@ in %@", NSStringFromSelector([anInvocation selector]), [self class]);
+}
+
+@end
+
+@interface NSTabView : NSObject
+@end
+
+@implementation NSTabView
+
+- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector
+{
+ return [NSMethodSignature signatureWithObjCTypes: "v@:"];
+}
+
+- (void)forwardInvocation:(NSInvocation *)anInvocation
+{
+ NSLog(@"Stub called: %@ in %@", NSStringFromSelector([anInvocation selector]), [self class]);
+}
+
+@end
+
+@interface NSTabViewController : NSObject
+@end
+
+@implementation NSTabViewController
+
+- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector
+{
+ return [NSMethodSignature signatureWithObjCTypes: "v@:"];
+}
+
+- (void)forwardInvocation:(NSInvocation *)anInvocation
+{
+ NSLog(@"Stub called: %@ in %@", NSStringFromSelector([anInvocation selector]), [self class]);
+}
+
+@end
+
+@interface NSTabViewItem : NSObject
+@end
+
+@implementation NSTabViewItem
+
+- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector
+{
+ return [NSMethodSignature signatureWithObjCTypes: "v@:"];
+}
+
+- (void)forwardInvocation:(NSInvocation *)anInvocation
+{
+ NSLog(@"Stub called: %@ in %@", NSStringFromSelector([anInvocation selector]), [self class]);
+}
+
+@end
+
+@interface NSTableCellView : NSObject
+@end
+
+@implementation NSTableCellView
+
+- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector
+{
+ return [NSMethodSignature signatureWithObjCTypes: "v@:"];
+}
+
+- (void)forwardInvocation:(NSInvocation *)anInvocation
+{
+ NSLog(@"Stub called: %@ in %@", NSStringFromSelector([anInvocation selector]), [self class]);
+}
+
+@end
+
+@interface NSTableColumn : NSObject
+@end
+
+@implementation NSTableColumn
+
+- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector
+{
+ return [NSMethodSignature signatureWithObjCTypes: "v@:"];
+}
+
+- (void)forwardInvocation:(NSInvocation *)anInvocation
+{
+ NSLog(@"Stub called: %@ in %@", NSStringFromSelector([anInvocation selector]), [self class]);
+}
+
+@end
+
+@interface NSTableHeaderCell : NSObject
+@end
+
+@implementation NSTableHeaderCell
+
+- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector
+{
+ return [NSMethodSignature signatureWithObjCTypes: "v@:"];
+}
+
+- (void)forwardInvocation:(NSInvocation *)anInvocation
+{
+ NSLog(@"Stub called: %@ in %@", NSStringFromSelector([anInvocation selector]), [self class]);
+}
+
+@end
+
+@interface NSTableHeaderView : NSObject
+@end
+
+@implementation NSTableHeaderView
+
+- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector
+{
+ return [NSMethodSignature signatureWithObjCTypes: "v@:"];
+}
+
+- (void)forwardInvocation:(NSInvocation *)anInvocation
+{
+ NSLog(@"Stub called: %@ in %@", NSStringFromSelector([anInvocation selector]), [self class]);
+}
+
+@end
+
+@interface NSTableRowView : NSObject
+@end
+
+@implementation NSTableRowView
+
+- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector
+{
+ return [NSMethodSignature signatureWithObjCTypes: "v@:"];
+}
+
+- (void)forwardInvocation:(NSInvocation *)anInvocation
+{
+ NSLog(@"Stub called: %@ in %@", NSStringFromSelector([anInvocation selector]), [self class]);
+}
+
+@end
+
+@interface NSTableView : NSObject
+@end
+
+@implementation NSTableView
+
+- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector
+{
+ return [NSMethodSignature signatureWithObjCTypes: "v@:"];
+}
+
+- (void)forwardInvocation:(NSInvocation *)anInvocation
+{
+ NSLog(@"Stub called: %@ in %@", NSStringFromSelector([anInvocation selector]), [self class]);
+}
+
+@end
+
+@interface NSTableViewRowAction : NSObject
+@end
+
+@implementation NSTableViewRowAction
+
+- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector
+{
+ return [NSMethodSignature signatureWithObjCTypes: "v@:"];
+}
+
+- (void)forwardInvocation:(NSInvocation *)anInvocation
+{
+ NSLog(@"Stub called: %@ in %@", NSStringFromSelector([anInvocation selector]), [self class]);
+}
+
+@end
+
+@interface NSText : NSObject
+@end
+
+@implementation NSText
+
+- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector
+{
+ return [NSMethodSignature signatureWithObjCTypes: "v@:"];
+}
+
+- (void)forwardInvocation:(NSInvocation *)anInvocation
+{
+ NSLog(@"Stub called: %@ in %@", NSStringFromSelector([anInvocation selector]), [self class]);
+}
+
+@end
+
+@interface NSTextAttachment : NSObject
+@end
+
+@implementation NSTextAttachment
+
+- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector
+{
+ return [NSMethodSignature signatureWithObjCTypes: "v@:"];
+}
+
+- (void)forwardInvocation:(NSInvocation *)anInvocation
+{
+ NSLog(@"Stub called: %@ in %@", NSStringFromSelector([anInvocation selector]), [self class]);
+}
+
+@end
+
+@interface NSTextAttachmentCell : NSObject
+@end
+
+@implementation NSTextAttachmentCell
+
+- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector
+{
+ return [NSMethodSignature signatureWithObjCTypes: "v@:"];
+}
+
+- (void)forwardInvocation:(NSInvocation *)anInvocation
+{
+ NSLog(@"Stub called: %@ in %@", NSStringFromSelector([anInvocation selector]), [self class]);
+}
+
+@end
+
+@interface NSTextContainer : NSObject
+@end
+
+@implementation NSTextContainer
+
+- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector
+{
+ return [NSMethodSignature signatureWithObjCTypes: "v@:"];
+}
+
+- (void)forwardInvocation:(NSInvocation *)anInvocation
+{
+ NSLog(@"Stub called: %@ in %@", NSStringFromSelector([anInvocation selector]), [self class]);
+}
+
+@end
+
+@interface NSTextField : NSObject
+@end
+
+@implementation NSTextField
+
+- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector
+{
+ return [NSMethodSignature signatureWithObjCTypes: "v@:"];
+}
+
+- (void)forwardInvocation:(NSInvocation *)anInvocation
+{
+ NSLog(@"Stub called: %@ in %@", NSStringFromSelector([anInvocation selector]), [self class]);
+}
+
+@end
+
+@interface NSTextFieldCell : NSObject
+@end
+
+@implementation NSTextFieldCell
+
+- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector
+{
+ return [NSMethodSignature signatureWithObjCTypes: "v@:"];
+}
+
+- (void)forwardInvocation:(NSInvocation *)anInvocation
+{
+ NSLog(@"Stub called: %@ in %@", NSStringFromSelector([anInvocation selector]), [self class]);
+}
+
+@end
+
+@interface NSTextFinder : NSObject
+@end
+
+@implementation NSTextFinder
+
+- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector
+{
+ return [NSMethodSignature signatureWithObjCTypes: "v@:"];
+}
+
+- (void)forwardInvocation:(NSInvocation *)anInvocation
+{
+ NSLog(@"Stub called: %@ in %@", NSStringFromSelector([anInvocation selector]), [self class]);
+}
+
+@end
+
+@interface NSTextList : NSObject
+@end
+
+@implementation NSTextList
+
+- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector
+{
+ return [NSMethodSignature signatureWithObjCTypes: "v@:"];
+}
+
+- (void)forwardInvocation:(NSInvocation *)anInvocation
+{
+ NSLog(@"Stub called: %@ in %@", NSStringFromSelector([anInvocation selector]), [self class]);
+}
+
+@end
+
+@interface NSTextStorage : NSObject
+@end
+
+@implementation NSTextStorage
+
+- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector
+{
+ return [NSMethodSignature signatureWithObjCTypes: "v@:"];
+}
+
+- (void)forwardInvocation:(NSInvocation *)anInvocation
+{
+ NSLog(@"Stub called: %@ in %@", NSStringFromSelector([anInvocation selector]), [self class]);
+}
+
+@end
+
+@interface NSTextTab : NSObject
+@end
+
+@implementation NSTextTab
+
+- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector
+{
+ return [NSMethodSignature signatureWithObjCTypes: "v@:"];
+}
+
+- (void)forwardInvocation:(NSInvocation *)anInvocation
+{
+ NSLog(@"Stub called: %@ in %@", NSStringFromSelector([anInvocation selector]), [self class]);
+}
+
+@end
+
+@interface NSTextView : NSObject
+@end
+
+@implementation NSTextView
+
+- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector
+{
+ return [NSMethodSignature signatureWithObjCTypes: "v@:"];
+}
+
+- (void)forwardInvocation:(NSInvocation *)anInvocation
+{
+ NSLog(@"Stub called: %@ in %@", NSStringFromSelector([anInvocation selector]), [self class]);
+}
+
+@end
+
+@interface NSTitlebarAccessoryViewController : NSObject
+@end
+
+@implementation NSTitlebarAccessoryViewController
+
+- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector
+{
+ return [NSMethodSignature signatureWithObjCTypes: "v@:"];
+}
+
+- (void)forwardInvocation:(NSInvocation *)anInvocation
+{
+ NSLog(@"Stub called: %@ in %@", NSStringFromSelector([anInvocation selector]), [self class]);
+}
+
+@end
+
+@interface NSTokenAttachment : NSObject
+@end
+
+@implementation NSTokenAttachment
+
+- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector
+{
+ return [NSMethodSignature signatureWithObjCTypes: "v@:"];
+}
+
+- (void)forwardInvocation:(NSInvocation *)anInvocation
+{
+ NSLog(@"Stub called: %@ in %@", NSStringFromSelector([anInvocation selector]), [self class]);
+}
+
+@end
+
+@interface NSTokenAttachmentCell : NSObject
+@end
+
+@implementation NSTokenAttachmentCell
+
+- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector
+{
+ return [NSMethodSignature signatureWithObjCTypes: "v@:"];
+}
+
+- (void)forwardInvocation:(NSInvocation *)anInvocation
+{
+ NSLog(@"Stub called: %@ in %@", NSStringFromSelector([anInvocation selector]), [self class]);
+}
+
+@end
+
+@interface NSTokenField : NSObject
+@end
+
+@implementation NSTokenField
+
+- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector
+{
+ return [NSMethodSignature signatureWithObjCTypes: "v@:"];
+}
+
+- (void)forwardInvocation:(NSInvocation *)anInvocation
+{
+ NSLog(@"Stub called: %@ in %@", NSStringFromSelector([anInvocation selector]), [self class]);
+}
+
+@end
+
+@interface NSTokenFieldCell : NSObject
+@end
+
+@implementation NSTokenFieldCell
+
+- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector
+{
+ return [NSMethodSignature signatureWithObjCTypes: "v@:"];
+}
+
+- (void)forwardInvocation:(NSInvocation *)anInvocation
+{
+ NSLog(@"Stub called: %@ in %@", NSStringFromSelector([anInvocation selector]), [self class]);
+}
+
+@end
+
+@interface NSToolTipPanel : NSObject
+@end
+
+@implementation NSToolTipPanel
+
+- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector
+{
+ return [NSMethodSignature signatureWithObjCTypes: "v@:"];
+}
+
+- (void)forwardInvocation:(NSInvocation *)anInvocation
+{
+ NSLog(@"Stub called: %@ in %@", NSStringFromSelector([anInvocation selector]), [self class]);
+}
+
+@end
+
+@interface NSToolbar : NSObject
+@end
+
+@implementation NSToolbar
+
+- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector
+{
+ return [NSMethodSignature signatureWithObjCTypes: "v@:"];
+}
+
+- (void)forwardInvocation:(NSInvocation *)anInvocation
+{
+ NSLog(@"Stub called: %@ in %@", NSStringFromSelector([anInvocation selector]), [self class]);
+}
+
+@end
+
+@interface NSToolbarItem : NSObject
+@end
+
+@implementation NSToolbarItem
+
+- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector
+{
+ return [NSMethodSignature signatureWithObjCTypes: "v@:"];
+}
+
+- (void)forwardInvocation:(NSInvocation *)anInvocation
+{
+ NSLog(@"Stub called: %@ in %@", NSStringFromSelector([anInvocation selector]), [self class]);
+}
+
+@end
+
+@interface NSTouchBar : NSObject
+@end
+
+@implementation NSTouchBar
+
+- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector
+{
+ return [NSMethodSignature signatureWithObjCTypes: "v@:"];
+}
+
+- (void)forwardInvocation:(NSInvocation *)anInvocation
+{
+ NSLog(@"Stub called: %@ in %@", NSStringFromSelector([anInvocation selector]), [self class]);
+}
+
+@end
+
+@interface NSTouchBarItem : NSObject
+@end
+
+@implementation NSTouchBarItem
+
+- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector
+{
+ return [NSMethodSignature signatureWithObjCTypes: "v@:"];
+}
+
+- (void)forwardInvocation:(NSInvocation *)anInvocation
+{
+ NSLog(@"Stub called: %@ in %@", NSStringFromSelector([anInvocation selector]), [self class]);
+}
+
+@end
+
+@interface NSTouchBarItemContainerView : NSObject
+@end
+
+@implementation NSTouchBarItemContainerView
+
+- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector
+{
+ return [NSMethodSignature signatureWithObjCTypes: "v@:"];
+}
+
+- (void)forwardInvocation:(NSInvocation *)anInvocation
+{
+ NSLog(@"Stub called: %@ in %@", NSStringFromSelector([anInvocation selector]), [self class]);
+}
+
+@end
+
+@interface NSTouchBarView : NSObject
+@end
+
+@implementation NSTouchBarView
+
+- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector
+{
+ return [NSMethodSignature signatureWithObjCTypes: "v@:"];
+}
+
+- (void)forwardInvocation:(NSInvocation *)anInvocation
+{
+ NSLog(@"Stub called: %@ in %@", NSStringFromSelector([anInvocation selector]), [self class]);
+}
+
+@end
+
+@interface NSTouchDevice : NSObject
+@end
+
+@implementation NSTouchDevice
+
+- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector
+{
+ return [NSMethodSignature signatureWithObjCTypes: "v@:"];
+}
+
+- (void)forwardInvocation:(NSInvocation *)anInvocation
+{
+ NSLog(@"Stub called: %@ in %@", NSStringFromSelector([anInvocation selector]), [self class]);
+}
+
+@end
+
+@interface NSTrackingArea : NSObject
+@end
+
+@implementation NSTrackingArea
+
+- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector
+{
+ return [NSMethodSignature signatureWithObjCTypes: "v@:"];
+}
+
+- (void)forwardInvocation:(NSInvocation *)anInvocation
+{
+ NSLog(@"Stub called: %@ in %@", NSStringFromSelector([anInvocation selector]), [self class]);
+}
+
+@end
+
+@interface NSTreeController : NSObject
+@end
+
+@implementation NSTreeController
+
+- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector
+{
+ return [NSMethodSignature signatureWithObjCTypes: "v@:"];
+}
+
+- (void)forwardInvocation:(NSInvocation *)anInvocation
+{
+ NSLog(@"Stub called: %@ in %@", NSStringFromSelector([anInvocation selector]), [self class]);
+}
+
+@end
+
+@interface NSTreeNode : NSObject
+@end
+
+@implementation NSTreeNode
+
+- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector
+{
+ return [NSMethodSignature signatureWithObjCTypes: "v@:"];
+}
+
+- (void)forwardInvocation:(NSInvocation *)anInvocation
+{
+ NSLog(@"Stub called: %@ in %@", NSStringFromSelector([anInvocation selector]), [self class]);
+}
+
+@end
+
+@interface NSTypesetter : NSObject
+@end
+
+@implementation NSTypesetter
+
+- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector
+{
+ return [NSMethodSignature signatureWithObjCTypes: "v@:"];
+}
+
+- (void)forwardInvocation:(NSInvocation *)anInvocation
+{
+ NSLog(@"Stub called: %@ in %@", NSStringFromSelector([anInvocation selector]), [self class]);
+}
+
+@end
+
+@interface NSUndoReplaceCharacters : NSObject
+@end
+
+@implementation NSUndoReplaceCharacters
+
+- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector
+{
+ return [NSMethodSignature signatureWithObjCTypes: "v@:"];
+}
+
+- (void)forwardInvocation:(NSInvocation *)anInvocation
+{
+ NSLog(@"Stub called: %@ in %@", NSStringFromSelector([anInvocation selector]), [self class]);
+}
+
+@end
+
+@interface NSUndoTextOperation : NSObject
+@end
+
+@implementation NSUndoTextOperation
+
+- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector
+{
+ return [NSMethodSignature signatureWithObjCTypes: "v@:"];
+}
+
+- (void)forwardInvocation:(NSInvocation *)anInvocation
+{
+ NSLog(@"Stub called: %@ in %@", NSStringFromSelector([anInvocation selector]), [self class]);
+}
+
+@end
+
+@interface NSUndoTyping : NSObject
+@end
+
+@implementation NSUndoTyping
+
+- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector
+{
+ return [NSMethodSignature signatureWithObjCTypes: "v@:"];
+}
+
+- (void)forwardInvocation:(NSInvocation *)anInvocation
+{
+ NSLog(@"Stub called: %@ in %@", NSStringFromSelector([anInvocation selector]), [self class]);
+}
+
+@end
+
+@interface NSUserDefaultsController : NSObject
+@end
+
+@implementation NSUserDefaultsController
+
+- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector
+{
+ return [NSMethodSignature signatureWithObjCTypes: "v@:"];
+}
+
+- (void)forwardInvocation:(NSInvocation *)anInvocation
+{
+ NSLog(@"Stub called: %@ in %@", NSStringFromSelector([anInvocation selector]), [self class]);
+}
+
+@end
+
+@interface NSView : NSObject
+@end
+
+@implementation NSView
+
+- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector
+{
+ return [NSMethodSignature signatureWithObjCTypes: "v@:"];
+}
+
+- (void)forwardInvocation:(NSInvocation *)anInvocation
+{
+ NSLog(@"Stub called: %@ in %@", NSStringFromSelector([anInvocation selector]), [self class]);
+}
+
+@end
+
+@interface NSViewAnimation : NSObject
+@end
+
+@implementation NSViewAnimation
+
+- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector
+{
+ return [NSMethodSignature signatureWithObjCTypes: "v@:"];
+}
+
+- (void)forwardInvocation:(NSInvocation *)anInvocation
+{
+ NSLog(@"Stub called: %@ in %@", NSStringFromSelector([anInvocation selector]), [self class]);
+}
+
+@end
+
+@interface NSViewController : NSObject
+@end
+
+@implementation NSViewController
+
+- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector
+{
+ return [NSMethodSignature signatureWithObjCTypes: "v@:"];
+}
+
+- (void)forwardInvocation:(NSInvocation *)anInvocation
+{
+ NSLog(@"Stub called: %@ in %@", NSStringFromSelector([anInvocation selector]), [self class]);
+}
+
+@end
+
+@interface NSViewTextAttachmentCell : NSObject
+@end
+
+@implementation NSViewTextAttachmentCell
+
+- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector
+{
+ return [NSMethodSignature signatureWithObjCTypes: "v@:"];
+}
+
+- (void)forwardInvocation:(NSInvocation *)anInvocation
+{
+ NSLog(@"Stub called: %@ in %@", NSStringFromSelector([anInvocation selector]), [self class]);
+}
+
+@end
+
+@interface NSVisualEffectView : NSObject
+@end
+
+@implementation NSVisualEffectView
+
+- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector
+{
+ return [NSMethodSignature signatureWithObjCTypes: "v@:"];
+}
+
+- (void)forwardInvocation:(NSInvocation *)anInvocation
+{
+ NSLog(@"Stub called: %@ in %@", NSStringFromSelector([anInvocation selector]), [self class]);
+}
+
+@end
+
+@interface NSWindow : NSObject
+@end
+
+@implementation NSWindow
+
+- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector
+{
+ return [NSMethodSignature signatureWithObjCTypes: "v@:"];
+}
+
+- (void)forwardInvocation:(NSInvocation *)anInvocation
+{
+ NSLog(@"Stub called: %@ in %@", NSStringFromSelector([anInvocation selector]), [self class]);
+}
+
+@end
+
+@interface NSWindowController : NSObject
+@end
+
+@implementation NSWindowController
+
+- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector
+{
+ return [NSMethodSignature signatureWithObjCTypes: "v@:"];
+}
+
+- (void)forwardInvocation:(NSInvocation *)anInvocation
+{
+ NSLog(@"Stub called: %@ in %@", NSStringFromSelector([anInvocation selector]), [self class]);
+}
+
+@end
+
+@interface NSWindowTemplate : NSObject
+@end
+
+@implementation NSWindowTemplate
+
+- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector
+{
+ return [NSMethodSignature signatureWithObjCTypes: "v@:"];
+}
+
+- (void)forwardInvocation:(NSInvocation *)anInvocation
+{
+ NSLog(@"Stub called: %@ in %@", NSStringFromSelector([anInvocation selector]), [self class]);
+}
+
+@end
+
+@interface NSWorkspace : NSObject
+@end
+
+@implementation NSWorkspace
+
+- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector
+{
+ return [NSMethodSignature signatureWithObjCTypes: "v@:"];
+}
+
+- (void)forwardInvocation:(NSInvocation *)anInvocation
+{
+ NSLog(@"Stub called: %@ in %@", NSStringFromSelector([anInvocation selector]), [self class]);
+}
+
+@end
+
+@interface UINibEncoder : NSObject
+@end
+
+@implementation UINibEncoder
+
+- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector
+{
+ return [NSMethodSignature signatureWithObjCTypes: "v@:"];
+}
+
+- (void)forwardInvocation:(NSInvocation *)anInvocation
+{
+ NSLog(@"Stub called: %@ in %@", NSStringFromSelector([anInvocation selector]), [self class]);
+}
+
+@end
+
+@interface NSObject (BindingSupport)
+@end
+
+@implementation NSObject (BindingSupport)
+
+- (id)bind: (id)bind toObject: (id)toObject withKeyPath: (id)withKeyPath options: (id)options
+{
+ NSLog(@"Stub called: %@ in %@", NSStringFromSelector(_cmd), [self class]);
+ return nil;
+}
+
+- (id)infoForBinding: (id)infoForBinding
+{
+ NSLog(@"Stub called: %@ in %@", NSStringFromSelector(_cmd), [self class]);
+ return nil;
+}
+
+- (id)unbind: (id)unbind
+{
+ NSLog(@"Stub called: %@ in %@", NSStringFromSelector(_cmd), [self class]);
+ return nil;
+}
+
+@end
+
+@interface NSObject (NSKeyValueBindingCreation)
+@end
+
+@implementation NSObject (NSKeyValueBindingCreation)
+
+- (id)exposedBindings
+{
+ NSLog(@"Stub called: %@ in %@", NSStringFromSelector(_cmd), [self class]);
+ return nil;
+}
+
+@end
+
diff --git a/src/frameworks/dev-stubs/AppKit/src/main.m b/src/frameworks/dev-stubs/AppKit/src/main.m
new file mode 100644
index 000000000..f0a915050
--- /dev/null
+++ b/src/frameworks/dev-stubs/AppKit/src/main.m
@@ -0,0 +1,764 @@
+/*
+ * This file is part of Darling.
+ *
+ * Copyright (C) 2023 Darling Developers
+ *
+ * Darling is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Darling is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Darling. If not, see .
+ */
+
+#import
+
+@interface NSString : NSObject
+@end
+
+#import
+
+#include
+#include
+
+static int verbose = 0;
+
+__attribute__((constructor))
+static void initme(void) {
+ verbose = getenv("STUB_VERBOSE") != NULL;
+}
+
+void __simple_kprintf(const char* format, ...) __attribute__((format(printf, 1, 2)));
+
+#define LOG_FUNC __simple_kprintf
+
+NSString *const IBCocoaFramework = @"IBCocoaFramework";
+NSString *const NSAccessibilityActivationPointAttribute = @"NSAccessibilityActivationPointAttribute";
+NSString *const NSAccessibilityAnnouncementKey = @"NSAccessibilityAnnouncementKey";
+NSString *const NSAccessibilityAnnouncementRequestedNotification = @"NSAccessibilityAnnouncementRequestedNotification";
+NSString *const NSAccessibilityBackgroundColorTextAttribute = @"NSAccessibilityBackgroundColorTextAttribute";
+NSString *const NSAccessibilityButtonRole = @"NSAccessibilityButtonRole";
+NSString *const NSAccessibilityCancelAction = @"NSAccessibilityCancelAction";
+NSString *const NSAccessibilityCellRole = @"NSAccessibilityCellRole";
+NSString *const NSAccessibilityCheckBoxRole = @"NSAccessibilityCheckBoxRole";
+NSString *const NSAccessibilityChildrenAttribute = @"NSAccessibilityChildrenAttribute";
+NSString *const NSAccessibilityComboBoxRole = @"NSAccessibilityComboBoxRole";
+NSString *const NSAccessibilityCreatedNotification = @"NSAccessibilityCreatedNotification";
+NSString *const NSAccessibilityDecrementAction = @"NSAccessibilityDecrementAction";
+NSString *const NSAccessibilityDescriptionAttribute = @"NSAccessibilityDescriptionAttribute";
+NSString *const NSAccessibilityDisclosureTriangleRole = @"NSAccessibilityDisclosureTriangleRole";
+NSString *const NSAccessibilityEnabledAttribute = @"NSAccessibilityEnabledAttribute";
+NSString *const NSAccessibilityEventProcessedNotification = @"NSAccessibilityEventProcessedNotification";
+NSString *const NSAccessibilityEventSourceProcessIDKey = @"NSAccessibilityEventSourceProcessIDKey";
+NSString *const NSAccessibilityEventSourceStateIDKey = @"NSAccessibilityEventSourceStateIDKey";
+NSString *const NSAccessibilityEventSourceUserDataKey = @"NSAccessibilityEventSourceUserDataKey";
+NSString *const NSAccessibilityFocusedAttribute = @"NSAccessibilityFocusedAttribute";
+NSString *const NSAccessibilityFocusedUIElementAttribute = @"NSAccessibilityFocusedUIElementAttribute";
+NSString *const NSAccessibilityFontTextAttribute = @"NSAccessibilityFontTextAttribute";
+NSString *const NSAccessibilityForegroundColorTextAttribute = @"NSAccessibilityForegroundColorTextAttribute";
+NSString *const NSAccessibilityGroupRole = @"NSAccessibilityGroupRole";
+NSString *const NSAccessibilityHelpAttribute = @"NSAccessibilityHelpAttribute";
+NSString *const NSAccessibilityHorizontalOrientationValue = @"NSAccessibilityHorizontalOrientationValue";
+NSString *const NSAccessibilityIdentifierAttribute = @"NSAccessibilityIdentifierAttribute";
+NSString *const NSAccessibilityImageRole = @"NSAccessibilityImageRole";
+NSString *const NSAccessibilityIncrementAction = @"NSAccessibilityIncrementAction";
+NSString *const NSAccessibilityIncrementorRole = @"NSAccessibilityIncrementorRole";
+NSString *const NSAccessibilityLayoutAreaRole = @"NSAccessibilityLayoutAreaRole";
+NSString *const NSAccessibilityLayoutChangedNotification = @"NSAccessibilityLayoutChangedNotification";
+NSString *const NSAccessibilityLinkRole = @"NSAccessibilityLinkRole";
+NSString *const NSAccessibilityLinkedUIElementsAttribute = @"NSAccessibilityLinkedUIElementsAttribute";
+NSString *const NSAccessibilityMainThreadIdleNotification = @"NSAccessibilityMainThreadIdleNotification";
+NSString *const NSAccessibilityMaxValueAttribute = @"NSAccessibilityMaxValueAttribute";
+NSString *const NSAccessibilityMenuButtonRole = @"NSAccessibilityMenuButtonRole";
+NSString *const NSAccessibilityMenuItemRole = @"NSAccessibilityMenuItemRole";
+NSString *const NSAccessibilityMenuRole = @"NSAccessibilityMenuRole";
+NSString *const NSAccessibilityMinValueAttribute = @"NSAccessibilityMinValueAttribute";
+NSString *const NSAccessibilityOrientationAttribute = @"NSAccessibilityOrientationAttribute";
+NSString *const NSAccessibilityOutlineRole = @"NSAccessibilityOutlineRole";
+NSString *const NSAccessibilityOutlineRowSubrole = @"NSAccessibilityOutlineRowSubrole";
+NSString *const NSAccessibilityParentAttribute = @"NSAccessibilityParentAttribute";
+NSString *const NSAccessibilityPopUpButtonRole = @"NSAccessibilityPopUpButtonRole";
+NSString *const NSAccessibilityPositionAttribute = @"NSAccessibilityPositionAttribute";
+NSString *const NSAccessibilityPressAction = @"NSAccessibilityPressAction";
+NSString *const NSAccessibilityPriorityKey = @"NSAccessibilityPriorityKey";
+NSString *const NSAccessibilityProgressIndicatorRole = @"NSAccessibilityProgressIndicatorRole";
+NSString *const NSAccessibilityRadioButtonRole = @"NSAccessibilityRadioButtonRole";
+NSString *const NSAccessibilityRadioGroupRole = @"NSAccessibilityRadioGroupRole";
+NSString *const NSAccessibilityRoleAttribute = @"NSAccessibilityRoleAttribute";
+NSString *const NSAccessibilityRoleDescriptionAttribute = @"NSAccessibilityRoleDescriptionAttribute";
+NSString *const NSAccessibilityRowCountChangedNotification = @"NSAccessibilityRowCountChangedNotification";
+NSString *const NSAccessibilityRowRole = @"NSAccessibilityRowRole";
+NSString *const NSAccessibilitySearchFieldSubrole = @"NSAccessibilitySearchFieldSubrole";
+NSString *const NSAccessibilitySelectedAttribute = @"NSAccessibilitySelectedAttribute";
+NSString *const NSAccessibilitySelectedRowsChangedNotification = @"NSAccessibilitySelectedRowsChangedNotification";
+NSString *const NSAccessibilitySelectedTextChangedNotification = @"NSAccessibilitySelectedTextChangedNotification";
+NSString *const NSAccessibilityShowMenuAction = @"NSAccessibilityShowMenuAction";
+NSString *const NSAccessibilitySizeAttribute = @"NSAccessibilitySizeAttribute";
+NSString *const NSAccessibilitySplitGroupRole = @"NSAccessibilitySplitGroupRole";
+NSString *const NSAccessibilitySplitterRole = @"NSAccessibilitySplitterRole";
+NSString *const NSAccessibilityStaticTextRole = @"NSAccessibilityStaticTextRole";
+NSString *const NSAccessibilitySupportsMainThreadIdleNotificationAttribute = @"NSAccessibilitySupportsMainThreadIdleNotificationAttribute";
+NSString *const NSAccessibilityTextAreaRole = @"NSAccessibilityTextAreaRole";
+NSString *const NSAccessibilityTextFieldRole = @"NSAccessibilityTextFieldRole";
+NSString *const NSAccessibilityTitleAttribute = @"NSAccessibilityTitleAttribute";
+NSString *const NSAccessibilityTitleChangedNotification = @"NSAccessibilityTitleChangedNotification";
+NSString *const NSAccessibilityTitleUIElementAttribute = @"NSAccessibilityTitleUIElementAttribute";
+NSString *const NSAccessibilityToggleSubrole = @"NSAccessibilityToggleSubrole";
+NSString *const NSAccessibilityTopLevelUIElementAttribute = @"NSAccessibilityTopLevelUIElementAttribute";
+NSString *const NSAccessibilityUIElementDestroyedNotification = @"NSAccessibilityUIElementDestroyedNotification";
+NSString *const NSAccessibilityUIElementsKey = @"NSAccessibilityUIElementsKey";
+NSString *const NSAccessibilityUnknownRole = @"NSAccessibilityUnknownRole";
+NSString *const NSAccessibilityUnknownSubrole = @"NSAccessibilityUnknownSubrole";
+NSString *const NSAccessibilityValueAttribute = @"NSAccessibilityValueAttribute";
+NSString *const NSAccessibilityValueChangedNotification = @"NSAccessibilityValueChangedNotification";
+NSString *const NSAccessibilityVisibleChildrenAttribute = @"NSAccessibilityVisibleChildrenAttribute";
+NSString *const NSAccessibilityWindowAttribute = @"NSAccessibilityWindowAttribute";
+NSString *const NSAccessibilityWindowRole = @"NSAccessibilityWindowRole";
+NSString *const NSAllRomanInputSourcesLocaleIdentifier = @"NSAllRomanInputSourcesLocaleIdentifier";
+NSString *const NSAllowsNullArgumentBindingOption = @"NSAllowsNullArgumentBindingOption";
+NSString *const NSAnimateBinding = @"NSAnimateBinding";
+NSObject *NSApp = nil;
+const double NSAppKitVersionNumber = 1504;
+NSString *const NSAppearanceNameAccessibilityHighContrastAqua = @"NSAppearanceNameAccessibilityHighContrastAqua";
+NSString *const NSAppearanceNameAccessibilityHighContrastDarkAqua = @"NSAppearanceNameAccessibilityHighContrastDarkAqua";
+NSString *const NSAppearanceNameAccessibilityHighContrastSystem = @"NSAppearanceNameAccessibilityHighContrastSystem";
+NSString *const NSAppearanceNameAccessibilityHighContrastVibrantDark = @"NSAppearanceNameAccessibilityHighContrastVibrantDark";
+NSString *const NSAppearanceNameAccessibilityHighContrastVibrantLight = @"NSAppearanceNameAccessibilityHighContrastVibrantLight";
+NSString *const NSAppearanceNameAqua = @"NSAppearanceNameAqua";
+NSString *const NSAppearanceNameControlStrip = @"NSAppearanceNameControlStrip";
+NSString *const NSAppearanceNameDarkAqua = @"NSAppearanceNameDarkAqua";
+NSString *const NSAppearanceNameSystem = @"NSAppearanceNameSystem";
+NSString *const NSAppearanceNameTouchBar = @"NSAppearanceNameTouchBar";
+NSString *const NSAppearanceNameVibrantDark = @"NSAppearanceNameVibrantDark";
+NSString *const NSAppearanceNameVibrantLight = @"NSAppearanceNameVibrantLight";
+NSString *const NSApplicationDidBecomeActiveNotification = @"NSApplicationDidBecomeActiveNotification";
+NSString *const NSApplicationDidResignActiveNotification = @"NSApplicationDidResignActiveNotification";
+NSString *const NSApplicationWillHideNotification = @"NSApplicationWillHideNotification";
+NSString *const NSApplicationWillResignActiveNotification = @"NSApplicationWillResignActiveNotification";
+NSString *const NSApplicationWillTerminateNotification = @"NSApplicationWillTerminateNotification";
+NSString *const NSApplicationWillUpdateNotification = @"NSApplicationWillUpdateNotification";
+NSString *const NSAttachmentAttributeName = @"NSAttachmentAttributeName";
+NSString *const NSAuthorDocumentAttribute = @"NSAuthorDocumentAttribute";
+NSString *const NSBackgroundColorAttributeName = @"NSBackgroundColorAttributeName";
+NSString *const NSBackgroundColorDocumentAttribute = @"NSBackgroundColorDocumentAttribute";
+NSString *const NSBaseURLDocumentOption = @"NSBaseURLDocumentOption";
+NSString *const NSBaselineOffsetAttributeName = @"NSBaselineOffsetAttributeName";
+NSString *const NSBottomMarginDocumentAttribute = @"NSBottomMarginDocumentAttribute";
+NSString *const NSCalibratedRGBColorSpace = @"NSCalibratedRGBColorSpace";
+NSString *const NSCalibratedWhiteColorSpace = @"NSCalibratedWhiteColorSpace";
+NSString *const NSCharacterEncodingDocumentAttribute = @"NSCharacterEncodingDocumentAttribute";
+NSString *const NSCharacterEncodingDocumentOption = @"NSCharacterEncodingDocumentOption";
+NSString *const NSCocoaVersionDocumentAttribute = @"NSCocoaVersionDocumentAttribute";
+NSString *const NSCollectionElementKindSectionFooter = @"NSCollectionElementKindSectionFooter";
+NSString *const NSCollectionElementKindSectionHeader = @"NSCollectionElementKindSectionHeader";
+NSString *const NSColorPanelColorDidChangeNotification = @"NSColorPanelColorDidChangeNotification";
+NSString *const NSCommentDocumentAttribute = @"NSCommentDocumentAttribute";
+NSString *const NSCompanyDocumentAttribute = @"NSCompanyDocumentAttribute";
+NSString *const NSConditionallySetsEditableBindingOption = @"NSConditionallySetsEditableBindingOption";
+NSString *const NSConditionallySetsEnabledBindingOption = @"NSConditionallySetsEnabledBindingOption";
+NSString *const NSContentArrayBinding = @"NSContentArrayBinding";
+NSString *const NSContentArrayForMultipleSelectionBinding = @"NSContentArrayForMultipleSelectionBinding";
+NSString *const NSContentBinding = @"NSContentBinding";
+NSString *const NSContentObjectBinding = @"NSContentObjectBinding";
+NSString *const NSContentObjectsBinding = @"NSContentObjectsBinding";
+NSString *const NSContentSetBinding = @"NSContentSetBinding";
+NSString *const NSContentValuesBinding = @"NSContentValuesBinding";
+NSString *const NSContinuouslyUpdatesValueBindingOption = @"NSContinuouslyUpdatesValueBindingOption";
+NSString *const NSControlTextDidBeginEditingNotification = @"NSControlTextDidBeginEditingNotification";
+NSString *const NSControlTextDidChangeNotification = @"NSControlTextDidChangeNotification";
+NSString *const NSControlTextDidEndEditingNotification = @"NSControlTextDidEndEditingNotification";
+NSString *const NSConvertedDocumentAttribute = @"NSConvertedDocumentAttribute";
+NSString *const NSCopyrightDocumentAttribute = @"NSCopyrightDocumentAttribute";
+NSString *const NSCursorAttributeName = @"NSCursorAttributeName";
+NSString *const NSCustomColorSpace = @"NSCustomColorSpace";
+NSString *const NSDataBinding = @"NSDataBinding";
+NSString *const NSDeviceCMYKColorSpace = @"NSDeviceCMYKColorSpace";
+NSString *const NSDeviceRGBColorSpace = @"NSDeviceRGBColorSpace";
+NSString *const NSDeviceWhiteColorSpace = @"NSDeviceWhiteColorSpace";
+NSString *const NSDisplayNameBindingOption = @"NSDisplayNameBindingOption";
+NSString *const NSDisplayPatternBindingOption = @"NSDisplayPatternBindingOption";
+NSString *const NSDocFormatTextDocumentType = @"NSDocFormatTextDocumentType";
+NSString *const NSDocumentTypeDocumentAttribute = @"NSDocumentTypeDocumentAttribute";
+NSString *const NSDocumentTypeDocumentOption = @"NSDocumentTypeDocumentOption";
+NSString *const NSDoubleClickTargetBinding = @"NSDoubleClickTargetBinding";
+NSString *const NSEditableBinding = @"NSEditableBinding";
+NSString *const NSEnabledBinding = @"NSEnabledBinding";
+NSString *const NSEventTrackingRunLoopMode = @"NSEventTrackingRunLoopMode";
+NSString *const NSExcludedElementsDocumentAttribute = @"NSExcludedElementsDocumentAttribute";
+NSString *const NSExpansionAttributeName = @"NSExpansionAttributeName";
+NSString *const NSFilenamesPboardType = @"NSFilenamesPboardType";
+NSString *const NSFontAttributeName = @"NSFontAttributeName";
+NSString *const NSFontFaceAttribute = @"NSFontFaceAttribute";
+NSString *const NSFontFamilyAttribute = @"NSFontFamilyAttribute";
+NSString *const NSFontNameAttribute = @"NSFontNameAttribute";
+NSString *const NSFontSizeAttribute = @"NSFontSizeAttribute";
+NSString *const NSFontSlantTrait = @"NSFontSlantTrait";
+NSString *const NSFontTraitsAttribute = @"NSFontTraitsAttribute";
+const CGFloat NSFontWeightBlack = 0x3fe3d70a40000000;
+const CGFloat NSFontWeightBold = 0x3fd99999a0000000;
+const CGFloat NSFontWeightHeavy = 0x3fe1eb8520000000;
+const CGFloat NSFontWeightLight = 0xbfd99999a0000000;
+const CGFloat NSFontWeightMedium = 0x3fcd70a3e0000000;
+const CGFloat NSFontWeightRegular = 0x0000000000000000;
+const CGFloat NSFontWeightSemibold = 0x3fd3333340000000;
+const CGFloat NSFontWeightThin = 0xbfe3333340000000;
+NSString *const NSFontWeightTrait = @"NSFontWeightTrait";
+const CGFloat NSFontWeightUltraLight = 0xbfe99999a0000000;
+NSString *const NSForegroundColorAttributeName = @"NSForegroundColorAttributeName";
+NSString *const NSGlyphInfoAttributeName = @"NSGlyphInfoAttributeName";
+NSString *const NSGridViewSizeForContent = @"NSGridViewSizeForContent";
+NSString *const NSHTMLTextDocumentType = @"NSHTMLTextDocumentType";
+NSString *const NSHeaderTitleBinding = @"NSHeaderTitleBinding";
+NSString *const NSHiddenBinding = @"NSHiddenBinding";
+NSString *const NSHyphenationFactorDocumentAttribute = @"NSHyphenationFactorDocumentAttribute";
+NSString *const NSImageBinding = @"NSImageBinding";
+NSString *const NSImageNameActionTemplate = @"NSImageNameActionTemplate";
+NSString *const NSImageNameAddTemplate = @"NSImageNameAddTemplate";
+NSString *const NSImageNameAdvanced = @"NSImageNameAdvanced";
+NSString *const NSImageNameApplicationIcon = @"NSImageNameApplicationIcon";
+NSString *const NSImageNameAudioOutputVolumeHighTemplate = @"NSImageNameAudioOutputVolumeHighTemplate";
+NSString *const NSImageNameBluetoothTemplate = @"NSImageNameBluetoothTemplate";
+NSString *const NSImageNameBonjour = @"NSImageNameBonjour";
+NSString *const NSImageNameBookmarksTemplate = @"NSImageNameBookmarksTemplate";
+NSString *const NSImageNameCaution = @"NSImageNameCaution";
+NSString *const NSImageNameColorPanel = @"NSImageNameColorPanel";
+NSString *const NSImageNameColumnViewTemplate = @"NSImageNameColumnViewTemplate";
+NSString *const NSImageNameComputer = @"NSImageNameComputer";
+NSString *const NSImageNameEnterFullScreenTemplate = @"NSImageNameEnterFullScreenTemplate";
+NSString *const NSImageNameEveryone = @"NSImageNameEveryone";
+NSString *const NSImageNameExitFullScreenTemplate = @"NSImageNameExitFullScreenTemplate";
+NSString *const NSImageNameFlowViewTemplate = @"NSImageNameFlowViewTemplate";
+NSString *const NSImageNameFolder = @"NSImageNameFolder";
+NSString *const NSImageNameFolderBurnable = @"NSImageNameFolderBurnable";
+NSString *const NSImageNameFolderSmart = @"NSImageNameFolderSmart";
+NSString *const NSImageNameFollowLinkFreestandingTemplate = @"NSImageNameFollowLinkFreestandingTemplate";
+NSString *const NSImageNameFontPanel = @"NSImageNameFontPanel";
+NSString *const NSImageNameGoBackTemplate = @"NSImageNameGoBackTemplate";
+NSString *const NSImageNameGoForwardTemplate = @"NSImageNameGoForwardTemplate";
+NSString *const NSImageNameGoLeftTemplate = @"NSImageNameGoLeftTemplate";
+NSString *const NSImageNameGoRightTemplate = @"NSImageNameGoRightTemplate";
+NSString *const NSImageNameHomeTemplate = @"NSImageNameHomeTemplate";
+NSString *const NSImageNameIChatTheaterTemplate = @"NSImageNameIChatTheaterTemplate";
+NSString *const NSImageNameIconViewTemplate = @"NSImageNameIconViewTemplate";
+NSString *const NSImageNameInfo = @"NSImageNameInfo";
+NSString *const NSImageNameInvalidDataFreestandingTemplate = @"NSImageNameInvalidDataFreestandingTemplate";
+NSString *const NSImageNameLeftFacingTriangleTemplate = @"NSImageNameLeftFacingTriangleTemplate";
+NSString *const NSImageNameListViewTemplate = @"NSImageNameListViewTemplate";
+NSString *const NSImageNameLockLockedTemplate = @"NSImageNameLockLockedTemplate";
+NSString *const NSImageNameLockUnlockedTemplate = @"NSImageNameLockUnlockedTemplate";
+NSString *const NSImageNameMenuMixedStateTemplate = @"NSImageNameMenuMixedStateTemplate";
+NSString *const NSImageNameMenuOnStateTemplate = @"NSImageNameMenuOnStateTemplate";
+NSString *const NSImageNameMobileMe = @"NSImageNameMobileMe";
+NSString *const NSImageNameMultipleDocuments = @"NSImageNameMultipleDocuments";
+NSString *const NSImageNameNetwork = @"NSImageNameNetwork";
+NSString *const NSImageNamePathTemplate = @"NSImageNamePathTemplate";
+NSString *const NSImageNamePreferencesGeneral = @"NSImageNamePreferencesGeneral";
+NSString *const NSImageNameQuickLookTemplate = @"NSImageNameQuickLookTemplate";
+NSString *const NSImageNameRefreshFreestandingTemplate = @"NSImageNameRefreshFreestandingTemplate";
+NSString *const NSImageNameRefreshTemplate = @"NSImageNameRefreshTemplate";
+NSString *const NSImageNameRemoveTemplate = @"NSImageNameRemoveTemplate";
+NSString *const NSImageNameRevealFreestandingTemplate = @"NSImageNameRevealFreestandingTemplate";
+NSString *const NSImageNameRightFacingTriangleTemplate = @"NSImageNameRightFacingTriangleTemplate";
+NSString *const NSImageNameShareTemplate = @"NSImageNameShareTemplate";
+NSString *const NSImageNameSlideshowTemplate = @"NSImageNameSlideshowTemplate";
+NSString *const NSImageNameSmartBadgeTemplate = @"NSImageNameSmartBadgeTemplate";
+NSString *const NSImageNameStatusAvailable = @"NSImageNameStatusAvailable";
+NSString *const NSImageNameStatusNone = @"NSImageNameStatusNone";
+NSString *const NSImageNameStatusPartiallyAvailable = @"NSImageNameStatusPartiallyAvailable";
+NSString *const NSImageNameStatusUnavailable = @"NSImageNameStatusUnavailable";
+NSString *const NSImageNameStopProgressFreestandingTemplate = @"NSImageNameStopProgressFreestandingTemplate";
+NSString *const NSImageNameStopProgressTemplate = @"NSImageNameStopProgressTemplate";
+NSString *const NSImageNameTouchBarAddDetailTemplate = @"NSImageNameTouchBarAddDetailTemplate";
+NSString *const NSImageNameTouchBarAddTemplate = @"NSImageNameTouchBarAddTemplate";
+NSString *const NSImageNameTouchBarAlarmTemplate = @"NSImageNameTouchBarAlarmTemplate";
+NSString *const NSImageNameTouchBarAudioInputMuteTemplate = @"NSImageNameTouchBarAudioInputMuteTemplate";
+NSString *const NSImageNameTouchBarAudioInputTemplate = @"NSImageNameTouchBarAudioInputTemplate";
+NSString *const NSImageNameTouchBarAudioOutputMuteTemplate = @"NSImageNameTouchBarAudioOutputMuteTemplate";
+NSString *const NSImageNameTouchBarAudioOutputVolumeHighTemplate = @"NSImageNameTouchBarAudioOutputVolumeHighTemplate";
+NSString *const NSImageNameTouchBarAudioOutputVolumeLowTemplate = @"NSImageNameTouchBarAudioOutputVolumeLowTemplate";
+NSString *const NSImageNameTouchBarAudioOutputVolumeMediumTemplate = @"NSImageNameTouchBarAudioOutputVolumeMediumTemplate";
+NSString *const NSImageNameTouchBarAudioOutputVolumeOffTemplate = @"NSImageNameTouchBarAudioOutputVolumeOffTemplate";
+NSString *const NSImageNameTouchBarBookmarksTemplate = @"NSImageNameTouchBarBookmarksTemplate";
+NSString *const NSImageNameTouchBarColorPickerFill = @"NSImageNameTouchBarColorPickerFill";
+NSString *const NSImageNameTouchBarColorPickerFont = @"NSImageNameTouchBarColorPickerFont";
+NSString *const NSImageNameTouchBarColorPickerStroke = @"NSImageNameTouchBarColorPickerStroke";
+NSString *const NSImageNameTouchBarCommunicationAudioTemplate = @"NSImageNameTouchBarCommunicationAudioTemplate";
+NSString *const NSImageNameTouchBarCommunicationVideoTemplate = @"NSImageNameTouchBarCommunicationVideoTemplate";
+NSString *const NSImageNameTouchBarComposeTemplate = @"NSImageNameTouchBarComposeTemplate";
+NSString *const NSImageNameTouchBarDeleteTemplate = @"NSImageNameTouchBarDeleteTemplate";
+NSString *const NSImageNameTouchBarDownloadTemplate = @"NSImageNameTouchBarDownloadTemplate";
+NSString *const NSImageNameTouchBarEnterFullScreenTemplate = @"NSImageNameTouchBarEnterFullScreenTemplate";
+NSString *const NSImageNameTouchBarExitFullScreenTemplate = @"NSImageNameTouchBarExitFullScreenTemplate";
+NSString *const NSImageNameTouchBarFastForwardTemplate = @"NSImageNameTouchBarFastForwardTemplate";
+NSString *const NSImageNameTouchBarFolderCopyToTemplate = @"NSImageNameTouchBarFolderCopyToTemplate";
+NSString *const NSImageNameTouchBarFolderMoveToTemplate = @"NSImageNameTouchBarFolderMoveToTemplate";
+NSString *const NSImageNameTouchBarFolderTemplate = @"NSImageNameTouchBarFolderTemplate";
+NSString *const NSImageNameTouchBarGetInfoTemplate = @"NSImageNameTouchBarGetInfoTemplate";
+NSString *const NSImageNameTouchBarGoBackTemplate = @"NSImageNameTouchBarGoBackTemplate";
+NSString *const NSImageNameTouchBarGoDownTemplate = @"NSImageNameTouchBarGoDownTemplate";
+NSString *const NSImageNameTouchBarGoForwardTemplate = @"NSImageNameTouchBarGoForwardTemplate";
+NSString *const NSImageNameTouchBarGoUpTemplate = @"NSImageNameTouchBarGoUpTemplate";
+NSString *const NSImageNameTouchBarHistoryTemplate = @"NSImageNameTouchBarHistoryTemplate";
+NSString *const NSImageNameTouchBarIconViewTemplate = @"NSImageNameTouchBarIconViewTemplate";
+NSString *const NSImageNameTouchBarListViewTemplate = @"NSImageNameTouchBarListViewTemplate";
+NSString *const NSImageNameTouchBarMailTemplate = @"NSImageNameTouchBarMailTemplate";
+NSString *const NSImageNameTouchBarNewFolderTemplate = @"NSImageNameTouchBarNewFolderTemplate";
+NSString *const NSImageNameTouchBarNewMessageTemplate = @"NSImageNameTouchBarNewMessageTemplate";
+NSString *const NSImageNameTouchBarOpenInBrowserTemplate = @"NSImageNameTouchBarOpenInBrowserTemplate";
+NSString *const NSImageNameTouchBarPauseTemplate = @"NSImageNameTouchBarPauseTemplate";
+NSString *const NSImageNameTouchBarPlayPauseTemplate = @"NSImageNameTouchBarPlayPauseTemplate";
+NSString *const NSImageNameTouchBarPlayTemplate = @"NSImageNameTouchBarPlayTemplate";
+NSString *const NSImageNameTouchBarPlayheadTemplate = @"NSImageNameTouchBarPlayheadTemplate";
+NSString *const NSImageNameTouchBarQuickLookTemplate = @"NSImageNameTouchBarQuickLookTemplate";
+NSString *const NSImageNameTouchBarRecordStartTemplate = @"NSImageNameTouchBarRecordStartTemplate";
+NSString *const NSImageNameTouchBarRecordStopTemplate = @"NSImageNameTouchBarRecordStopTemplate";
+NSString *const NSImageNameTouchBarRefreshTemplate = @"NSImageNameTouchBarRefreshTemplate";
+NSString *const NSImageNameTouchBarRemoveTemplate = @"NSImageNameTouchBarRemoveTemplate";
+NSString *const NSImageNameTouchBarRewindTemplate = @"NSImageNameTouchBarRewindTemplate";
+NSString *const NSImageNameTouchBarRotateLeftTemplate = @"NSImageNameTouchBarRotateLeftTemplate";
+NSString *const NSImageNameTouchBarRotateRightTemplate = @"NSImageNameTouchBarRotateRightTemplate";
+NSString *const NSImageNameTouchBarSearchTemplate = @"NSImageNameTouchBarSearchTemplate";
+NSString *const NSImageNameTouchBarShareTemplate = @"NSImageNameTouchBarShareTemplate";
+NSString *const NSImageNameTouchBarSidebarTemplate = @"NSImageNameTouchBarSidebarTemplate";
+NSString *const NSImageNameTouchBarSkipAhead15SecondsTemplate = @"NSImageNameTouchBarSkipAhead15SecondsTemplate";
+NSString *const NSImageNameTouchBarSkipAhead30SecondsTemplate = @"NSImageNameTouchBarSkipAhead30SecondsTemplate";
+NSString *const NSImageNameTouchBarSkipAheadTemplate = @"NSImageNameTouchBarSkipAheadTemplate";
+NSString *const NSImageNameTouchBarSkipBack15SecondsTemplate = @"NSImageNameTouchBarSkipBack15SecondsTemplate";
+NSString *const NSImageNameTouchBarSkipBack30SecondsTemplate = @"NSImageNameTouchBarSkipBack30SecondsTemplate";
+NSString *const NSImageNameTouchBarSkipBackTemplate = @"NSImageNameTouchBarSkipBackTemplate";
+NSString *const NSImageNameTouchBarSkipToEndTemplate = @"NSImageNameTouchBarSkipToEndTemplate";
+NSString *const NSImageNameTouchBarSkipToStartTemplate = @"NSImageNameTouchBarSkipToStartTemplate";
+NSString *const NSImageNameTouchBarSlideshowTemplate = @"NSImageNameTouchBarSlideshowTemplate";
+NSString *const NSImageNameTouchBarTagIconTemplate = @"NSImageNameTouchBarTagIconTemplate";
+NSString *const NSImageNameTouchBarTextBoldTemplate = @"NSImageNameTouchBarTextBoldTemplate";
+NSString *const NSImageNameTouchBarTextBoxTemplate = @"NSImageNameTouchBarTextBoxTemplate";
+NSString *const NSImageNameTouchBarTextCenterAlignTemplate = @"NSImageNameTouchBarTextCenterAlignTemplate";
+NSString *const NSImageNameTouchBarTextItalicTemplate = @"NSImageNameTouchBarTextItalicTemplate";
+NSString *const NSImageNameTouchBarTextJustifiedAlignTemplate = @"NSImageNameTouchBarTextJustifiedAlignTemplate";
+NSString *const NSImageNameTouchBarTextLeftAlignTemplate = @"NSImageNameTouchBarTextLeftAlignTemplate";
+NSString *const NSImageNameTouchBarTextListTemplate = @"NSImageNameTouchBarTextListTemplate";
+NSString *const NSImageNameTouchBarTextRightAlignTemplate = @"NSImageNameTouchBarTextRightAlignTemplate";
+NSString *const NSImageNameTouchBarTextStrikethroughTemplate = @"NSImageNameTouchBarTextStrikethroughTemplate";
+NSString *const NSImageNameTouchBarTextUnderlineTemplate = @"NSImageNameTouchBarTextUnderlineTemplate";
+NSString *const NSImageNameTouchBarUserAddTemplate = @"NSImageNameTouchBarUserAddTemplate";
+NSString *const NSImageNameTouchBarUserGroupTemplate = @"NSImageNameTouchBarUserGroupTemplate";
+NSString *const NSImageNameTouchBarUserTemplate = @"NSImageNameTouchBarUserTemplate";
+NSString *const NSImageNameTouchBarVolumeDownTemplate = @"NSImageNameTouchBarVolumeDownTemplate";
+NSString *const NSImageNameTouchBarVolumeUpTemplate = @"NSImageNameTouchBarVolumeUpTemplate";
+NSString *const NSImageNameTrashEmpty = @"NSImageNameTrashEmpty";
+NSString *const NSImageNameTrashFull = @"NSImageNameTrashFull";
+NSString *const NSImageNameUser = @"NSImageNameUser";
+NSString *const NSImageNameUserAccounts = @"NSImageNameUserAccounts";
+NSString *const NSImageNameUserGroup = @"NSImageNameUserGroup";
+NSString *const NSImageNameUserGuest = @"NSImageNameUserGuest";
+NSString *const NSInsertsNullPlaceholderBindingOption = @"NSInsertsNullPlaceholderBindingOption";
+NSString *const NSKernAttributeName = @"NSKernAttributeName";
+NSString *const NSKeywordsDocumentAttribute = @"NSKeywordsDocumentAttribute";
+NSString *const NSLeftMarginDocumentAttribute = @"NSLeftMarginDocumentAttribute";
+NSString *const NSLigatureAttributeName = @"NSLigatureAttributeName";
+NSString *const NSLinkAttributeName = @"NSLinkAttributeName";
+NSString *const NSMacSimpleTextDocumentType = @"NSMacSimpleTextDocumentType";
+NSString *const NSMarkedClauseSegmentAttributeName = @"NSMarkedClauseSegmentAttributeName";
+NSString *const NSMaxValueBinding = @"NSMaxValueBinding";
+NSString *const NSMinValueBinding = @"NSMinValueBinding";
+NSString *const NSModalPanelRunLoopMode = @"NSModalPanelRunLoopMode";
+NSString *const NSMultipleValuesMarker = @"NSMultipleValuesMarker";
+NSString *const NSMultipleValuesPlaceholderBindingOption = @"NSMultipleValuesPlaceholderBindingOption";
+NSString *const NSNamedColorSpace = @"NSNamedColorSpace";
+NSString *const NSNoSelectionMarker = @"NSNoSelectionMarker";
+NSString *const NSNoSelectionPlaceholderBindingOption = @"NSNoSelectionPlaceholderBindingOption";
+NSString *const NSNotApplicableMarker = @"NSNotApplicableMarker";
+NSString *const NSNotApplicablePlaceholderBindingOption = @"NSNotApplicablePlaceholderBindingOption";
+NSString *const NSNullPlaceholderBindingOption = @"NSNullPlaceholderBindingOption";
+NSString *const NSObliquenessAttributeName = @"NSObliquenessAttributeName";
+NSString *const NSObservedKeyPathKey = @"NSObservedKeyPathKey";
+NSString *const NSObservedObjectKey = @"NSObservedObjectKey";
+NSString *const NSOfficeOpenXMLTextDocumentType = @"NSOfficeOpenXMLTextDocumentType";
+NSString *const NSOpenDocumentTextDocumentType = @"NSOpenDocumentTextDocumentType";
+NSString *const NSOptionsKey = @"NSOptionsKey";
+NSString *const NSOutlineViewColumnDidResizeNotification = @"NSOutlineViewColumnDidResizeNotification";
+NSString *const NSOutlineViewDisclosureButtonKey = @"NSOutlineViewDisclosureButtonKey";
+NSString *const NSOutlineViewItemDidCollapseNotification = @"NSOutlineViewItemDidCollapseNotification";
+NSString *const NSOutlineViewItemDidExpandNotification = @"NSOutlineViewItemDidExpandNotification";
+NSString *const NSOutlineViewSelectionDidChangeNotification = @"NSOutlineViewSelectionDidChangeNotification";
+NSString *const NSPaperSizeDocumentAttribute = @"NSPaperSizeDocumentAttribute";
+NSString *const NSParagraphStyleAttributeName = @"NSParagraphStyleAttributeName";
+NSString *const NSPasteboardNameDrag = @"NSPasteboardNameDrag";
+NSString *const NSPasteboardNameFind = @"NSPasteboardNameFind";
+NSString *const NSPasteboardNameGeneral = @"NSPasteboardNameGeneral";
+NSString *const NSPasteboardTypeColor = @"NSPasteboardTypeColor";
+NSString *const NSPasteboardTypeFileURL = @"NSPasteboardTypeFileURL";
+NSString *const NSPasteboardTypeMultipleTextSelection = @"NSPasteboardTypeMultipleTextSelection";
+NSString *const NSPasteboardTypePDF = @"NSPasteboardTypePDF";
+NSString *const NSPasteboardTypePNG = @"NSPasteboardTypePNG";
+NSString *const NSPasteboardTypeRTF = @"NSPasteboardTypeRTF";
+NSString *const NSPasteboardTypeString = @"NSPasteboardTypeString";
+NSString *const NSPasteboardTypeTIFF = @"NSPasteboardTypeTIFF";
+NSString *const NSPasteboardTypeTabularText = @"NSPasteboardTypeTabularText";
+NSString *const NSPasteboardTypeURL = @"NSPasteboardTypeURL";
+NSString *const NSPasteboardURLReadingContentsConformToTypesKey = @"NSPasteboardURLReadingContentsConformToTypesKey";
+NSString *const NSPasteboardURLReadingFileURLsOnlyKey = @"NSPasteboardURLReadingFileURLsOnlyKey";
+NSString *const NSPatternColorSpace = @"NSPatternColorSpace";
+NSString *const NSPlainTextDocumentType = @"NSPlainTextDocumentType";
+NSString *const NSPopUpButtonWillPopUpNotification = @"NSPopUpButtonWillPopUpNotification";
+NSString *const NSPopoverDidCloseNotification = @"NSPopoverDidCloseNotification";
+NSString *const NSPopoverDidShowNotification = @"NSPopoverDidShowNotification";
+NSString *const NSPopoverWillCloseNotification = @"NSPopoverWillCloseNotification";
+NSString *const NSPreferredScrollerStyleDidChangeNotification = @"NSPreferredScrollerStyleDidChangeNotification";
+NSString *const NSPrefixSpacesDocumentAttribute = @"NSPrefixSpacesDocumentAttribute";
+NSString *const NSPrintHeaderAndFooter = @"NSPrintHeaderAndFooter";
+NSString *const NSPrintPanelAccessorySummaryItemDescriptionKey = @"NSPrintPanelAccessorySummaryItemDescriptionKey";
+NSString *const NSPrintPanelAccessorySummaryItemNameKey = @"NSPrintPanelAccessorySummaryItemNameKey";
+NSString *const NSPrintScalingFactor = @"NSPrintScalingFactor";
+NSString *const NSRTFDTextDocumentType = @"NSRTFDTextDocumentType";
+NSString *const NSRTFPboardType = @"NSRTFPboardType";
+NSString *const NSRTFTextDocumentType = @"NSRTFTextDocumentType";
+NSString *const NSReadOnlyDocumentAttribute = @"NSReadOnlyDocumentAttribute";
+NSString *const NSRightMarginDocumentAttribute = @"NSRightMarginDocumentAttribute";
+NSString *const NSRuleEditorRowsDidChangeNotification = @"NSRuleEditorRowsDidChangeNotification";
+NSString *const NSScrollViewDidEndLiveMagnifyNotification = @"NSScrollViewDidEndLiveMagnifyNotification";
+NSString *const NSScrollViewDidEndLiveScrollNotification = @"NSScrollViewDidEndLiveScrollNotification";
+NSString *const NSScrollViewDidLiveScrollNotification = @"NSScrollViewDidLiveScrollNotification";
+NSString *const NSScrollViewWillStartLiveMagnifyNotification = @"NSScrollViewWillStartLiveMagnifyNotification";
+NSString *const NSScrollViewWillStartLiveScrollNotification = @"NSScrollViewWillStartLiveScrollNotification";
+NSString *const NSSelectedIndexBinding = @"NSSelectedIndexBinding";
+NSString *const NSSelectedObjectBinding = @"NSSelectedObjectBinding";
+NSString *const NSSelectedObjectsBinding = @"NSSelectedObjectsBinding";
+NSString *const NSSelectedTagBinding = @"NSSelectedTagBinding";
+NSString *const NSSelectionIndexPathsBinding = @"NSSelectionIndexPathsBinding";
+NSString *const NSSelectionIndexesBinding = @"NSSelectionIndexesBinding";
+NSString *const NSShadowAttributeName = @"NSShadowAttributeName";
+NSString *const NSSharingServiceNameComposeEmail = @"NSSharingServiceNameComposeEmail";
+NSString *const NSSliderAccessoryWidthWide = @"NSSliderAccessoryWidthWide";
+NSString *const NSSortDescriptorsBinding = @"NSSortDescriptorsBinding";
+NSString *const NSSplitViewDidResizeSubviewsNotification = @"NSSplitViewDidResizeSubviewsNotification";
+NSString *const NSStrikethroughColorAttributeName = @"NSStrikethroughColorAttributeName";
+NSString *const NSStrikethroughStyleAttributeName = @"NSStrikethroughStyleAttributeName";
+NSString *const NSStringPboardType = @"NSStringPboardType";
+NSString *const NSStrokeColorAttributeName = @"NSStrokeColorAttributeName";
+NSString *const NSStrokeWidthAttributeName = @"NSStrokeWidthAttributeName";
+NSString *const NSSubjectDocumentAttribute = @"NSSubjectDocumentAttribute";
+NSString *const NSSystemColorsDidChangeNotification = @"NSSystemColorsDidChangeNotification";
+NSString *const NSTableViewRowViewKey = @"NSTableViewRowViewKey";
+NSString *const NSTableViewSelectionDidChangeNotification = @"NSTableViewSelectionDidChangeNotification";
+NSString *const NSTextColorBinding = @"NSTextColorBinding";
+NSString *const NSTextDidBeginEditingNotification = @"NSTextDidBeginEditingNotification";
+NSString *const NSTextDidChangeNotification = @"NSTextDidChangeNotification";
+NSString *const NSTextDidEndEditingNotification = @"NSTextDidEndEditingNotification";
+NSString *const NSTextLayoutSectionsAttribute = @"NSTextLayoutSectionsAttribute";
+NSString *const NSTextListMarkerDisc = @"NSTextListMarkerDisc";
+NSString *const NSTextStorageDidProcessEditingNotification = @"NSTextStorageDidProcessEditingNotification";
+NSString *const NSTextViewDidChangeSelectionNotification = @"NSTextViewDidChangeSelectionNotification";
+NSString *const NSTitleBinding = @"NSTitleBinding";
+NSString *const NSTitleDocumentAttribute = @"NSTitleDocumentAttribute";
+NSString *const NSToolTipBinding = @"NSToolTipBinding";
+NSString *const NSToolTipHelpKey = @"NSToolTipHelpKey";
+NSString *const NSToolbarCustomizeToolbarItemIdentifier = @"NSToolbarCustomizeToolbarItemIdentifier";
+NSString *const NSToolbarFlexibleSpaceItemIdentifier = @"NSToolbarFlexibleSpaceItemIdentifier";
+NSString *const NSToolbarPrintItemIdentifier = @"NSToolbarPrintItemIdentifier";
+NSString *const NSToolbarSeparatorItemIdentifier = @"NSToolbarSeparatorItemIdentifier";
+NSString *const NSToolbarShowColorsItemIdentifier = @"NSToolbarShowColorsItemIdentifier";
+NSString *const NSToolbarShowFontsItemIdentifier = @"NSToolbarShowFontsItemIdentifier";
+NSString *const NSToolbarSpaceItemIdentifier = @"NSToolbarSpaceItemIdentifier";
+NSString *const NSTopMarginDocumentAttribute = @"NSTopMarginDocumentAttribute";
+NSString *const NSTouchBarItemIdentifierCharacterPicker = @"NSTouchBarItemIdentifierCharacterPicker";
+NSString *const NSTouchBarItemIdentifierFixedSpaceLarge = @"NSTouchBarItemIdentifierFixedSpaceLarge";
+NSString *const NSTouchBarItemIdentifierFixedSpaceSmall = @"NSTouchBarItemIdentifierFixedSpaceSmall";
+NSString *const NSTouchBarItemIdentifierFlexibleSpace = @"NSTouchBarItemIdentifierFlexibleSpace";
+NSString *const NSTouchBarItemIdentifierOtherItemsProxy = @"NSTouchBarItemIdentifierOtherItemsProxy";
+NSString *const NSURLPboardType = @"NSURLPboardType";
+NSUInteger NSUnderlineByWordMask = 0x8000;
+NSString *const NSUnderlineColorAttributeName = @"NSUnderlineColorAttributeName";
+NSString *const NSUnderlineStyleAttributeName = @"NSUnderlineStyleAttributeName";
+NSString *const NSValidatesImmediatelyBindingOption = @"NSValidatesImmediatelyBindingOption";
+NSString *const NSValueBinding = @"NSValueBinding";
+NSString *const NSValueTransformerBindingOption = @"NSValueTransformerBindingOption";
+NSString *const NSValueTransformerNameBindingOption = @"NSValueTransformerNameBindingOption";
+NSString *const NSViewAnimationEffectKey = @"NSViewAnimationEffectKey";
+NSString *const NSViewAnimationEndFrameKey = @"NSViewAnimationEndFrameKey";
+NSString *const NSViewAnimationFadeInEffect = @"NSViewAnimationFadeInEffect";
+NSString *const NSViewAnimationFadeOutEffect = @"NSViewAnimationFadeOutEffect";
+NSString *const NSViewAnimationTargetKey = @"NSViewAnimationTargetKey";
+NSString *const NSViewBoundsDidChangeNotification = @"NSViewBoundsDidChangeNotification";
+NSString *const NSViewFrameDidChangeNotification = @"NSViewFrameDidChangeNotification";
+NSString *const NSViewModeDocumentAttribute = @"NSViewModeDocumentAttribute";
+const CGFloat NSViewNoIntrinsicMetric = 0xbff0000000000000;
+NSString *const NSViewSizeDocumentAttribute = @"NSViewSizeDocumentAttribute";
+NSString *const NSViewZoomDocumentAttribute = @"NSViewZoomDocumentAttribute";
+NSString *const NSVisibleBinding = @"NSVisibleBinding";
+NSString *const NSVoiceName = @"NSVoiceName";
+NSString *const NSWebArchiveTextDocumentType = @"NSWebArchiveTextDocumentType";
+NSString *const NSWindowDidBecomeKeyNotification = @"NSWindowDidBecomeKeyNotification";
+NSString *const NSWindowDidBecomeMainNotification = @"NSWindowDidBecomeMainNotification";
+NSString *const NSWindowDidChangeBackingPropertiesNotification = @"NSWindowDidChangeBackingPropertiesNotification";
+NSString *const NSWindowDidChangeOcclusionStateNotification = @"NSWindowDidChangeOcclusionStateNotification";
+NSString *const NSWindowDidChangeScreenNotification = @"NSWindowDidChangeScreenNotification";
+NSString *const NSWindowDidDeminiaturizeNotification = @"NSWindowDidDeminiaturizeNotification";
+NSString *const NSWindowDidEndSheetNotification = @"NSWindowDidEndSheetNotification";
+NSString *const NSWindowDidEnterFullScreenNotification = @"NSWindowDidEnterFullScreenNotification";
+NSString *const NSWindowDidExitFullScreenNotification = @"NSWindowDidExitFullScreenNotification";
+NSString *const NSWindowDidMiniaturizeNotification = @"NSWindowDidMiniaturizeNotification";
+NSString *const NSWindowDidMoveNotification = @"NSWindowDidMoveNotification";
+NSString *const NSWindowDidOrderOffScreenNotification = @"NSWindowDidOrderOffScreenNotification";
+NSString *const NSWindowDidOrderOnScreenNotification = @"NSWindowDidOrderOnScreenNotification";
+NSString *const NSWindowDidResignKeyNotification = @"NSWindowDidResignKeyNotification";
+NSString *const NSWindowDidResignMainNotification = @"NSWindowDidResignMainNotification";
+NSString *const NSWindowDidResizeNotification = @"NSWindowDidResizeNotification";
+NSString *const NSWindowDidUpdateNotification = @"NSWindowDidUpdateNotification";
+NSString *const NSWindowWillBeginSheetNotification = @"NSWindowWillBeginSheetNotification";
+NSString *const NSWindowWillCloseNotification = @"NSWindowWillCloseNotification";
+NSString *const NSWindowWillEnterFullScreenNotification = @"NSWindowWillEnterFullScreenNotification";
+NSString *const NSWindowWillExitFullScreenNotification = @"NSWindowWillExitFullScreenNotification";
+NSString *const NSWindowWillStartLiveResizeNotification = @"NSWindowWillStartLiveResizeNotification";
+NSString *const NSWordMLTextDocumentType = @"NSWordMLTextDocumentType";
+NSString *const NSWorkspaceAccessibilityDisplayOptionsDidChangeNotification = @"NSWorkspaceAccessibilityDisplayOptionsDidChangeNotification";
+NSString *const NSWorkspaceActiveSpaceDidChangeNotification = @"NSWorkspaceActiveSpaceDidChangeNotification";
+NSString *const NSWorkspaceLaunchConfigurationArguments = @"NSWorkspaceLaunchConfigurationArguments";
+NSString *const NSWorkspaceLaunchConfigurationEnvironment = @"NSWorkspaceLaunchConfigurationEnvironment";
+NSString *const NSWorkspaceSessionDidBecomeActiveNotification = @"NSWorkspaceSessionDidBecomeActiveNotification";
+NSString *const NSWorkspaceSessionDidResignActiveNotification = @"NSWorkspaceSessionDidResignActiveNotification";
+NSString *const NSWritingDirectionAttributeName = @"NSWritingDirectionAttributeName";
+NSString *const _NSColorCoreUICatalogMainBundleID = @"_NSColorCoreUICatalogMainBundleID";
+NSString *const _NSColorCoreUICatalogNamePrefix = @"_NSColorCoreUICatalogNamePrefix";
+NSString *const _NSFontMenuName = @"_NSFontMenuName";
+NSString *const _NSHelpMenuName = @"_NSHelpMenuName";
+NSString *const _NSMainMenuName = @"_NSMainMenuName";
+NSString *const _NSRecentDocumentsMenuName = @"_NSRecentDocumentsMenuName";
+NSString *const _NSServicesMenuName = @"_NSServicesMenuName";
+NSString *const _NSTabViewFloatingCell = @"_NSTabViewFloatingCell";
+NSString *const _NSToolbarItemDragType = @"_NSToolbarItemDragType";
+NSString *const _NSToolbarItemIdentifierPboardType = @"_NSToolbarItemIdentifierPboardType";
+NSString *const _NSWindowsMenuName = @"_NSWindowsMenuName";
+
+void* NSAccessibilityActionDescription(void) {
+ if (verbose) LOG_FUNC("STUB: NSAccessibilityActionDescription called\n");
+ return NULL;
+};
+
+void* NSAccessibilityFrameInView(void) {
+ if (verbose) LOG_FUNC("STUB: NSAccessibilityFrameInView called\n");
+ return NULL;
+};
+
+void* NSAccessibilityPointInView(void) {
+ if (verbose) LOG_FUNC("STUB: NSAccessibilityPointInView called\n");
+ return NULL;
+};
+
+void* NSAccessibilityPostNotification(void) {
+ if (verbose) LOG_FUNC("STUB: NSAccessibilityPostNotification called\n");
+ return NULL;
+};
+
+void* NSAccessibilityPostNotificationWithUserInfo(void) {
+ if (verbose) LOG_FUNC("STUB: NSAccessibilityPostNotificationWithUserInfo called\n");
+ return NULL;
+};
+
+void* NSAccessibilityRoleDescription(void) {
+ if (verbose) LOG_FUNC("STUB: NSAccessibilityRoleDescription called\n");
+ return NULL;
+};
+
+void* NSAccessibilityRoleDescriptionForUIElement(void) {
+ if (verbose) LOG_FUNC("STUB: NSAccessibilityRoleDescriptionForUIElement called\n");
+ return NULL;
+};
+
+void* NSAccessibilityUnignoredAncestor(void) {
+ if (verbose) LOG_FUNC("STUB: NSAccessibilityUnignoredAncestor called\n");
+ return NULL;
+};
+
+void* NSAccessibilityUnignoredChildren(void) {
+ if (verbose) LOG_FUNC("STUB: NSAccessibilityUnignoredChildren called\n");
+ return NULL;
+};
+
+void* NSAccessibilityUnignoredDescendant(void) {
+ if (verbose) LOG_FUNC("STUB: NSAccessibilityUnignoredDescendant called\n");
+ return NULL;
+};
+
+void* NSAccessibilityUnregisterUniqueIdForUIElement(void) {
+ if (verbose) LOG_FUNC("STUB: NSAccessibilityUnregisterUniqueIdForUIElement called\n");
+ return NULL;
+};
+
+void* NSApplicationLoad(void) {
+ if (verbose) LOG_FUNC("STUB: NSApplicationLoad called\n");
+ return NULL;
+};
+
+void* NSApplicationMain(void) {
+ if (verbose) LOG_FUNC("STUB: NSApplicationMain called\n");
+ return NULL;
+};
+
+void* NSAvailableWindowDepths(void) {
+ if (verbose) LOG_FUNC("STUB: NSAvailableWindowDepths called\n");
+ return NULL;
+};
+
+void* NSBeep(void) {
+ if (verbose) LOG_FUNC("STUB: NSBeep called\n");
+ return NULL;
+};
+
+void* NSBestDepth(void) {
+ if (verbose) LOG_FUNC("STUB: NSBestDepth called\n");
+ return NULL;
+};
+
+void* NSDisableScreenUpdates(void) {
+ if (verbose) LOG_FUNC("STUB: NSDisableScreenUpdates called\n");
+ return NULL;
+};
+
+void* NSDrawColorTiledRects(void) {
+ if (verbose) LOG_FUNC("STUB: NSDrawColorTiledRects called\n");
+ return NULL;
+};
+
+void* NSDrawNinePartImage(void) {
+ if (verbose) LOG_FUNC("STUB: NSDrawNinePartImage called\n");
+ return NULL;
+};
+
+void* NSDrawScopeBar(void) {
+ if (verbose) LOG_FUNC("STUB: NSDrawScopeBar called\n");
+ return NULL;
+};
+
+void* NSDrawThreePartImage(void) {
+ if (verbose) LOG_FUNC("STUB: NSDrawThreePartImage called\n");
+ return NULL;
+};
+
+void* NSEnableScreenUpdates(void) {
+ if (verbose) LOG_FUNC("STUB: NSEnableScreenUpdates called\n");
+ return NULL;
+};
+
+void* NSEraseRect(void) {
+ if (verbose) LOG_FUNC("STUB: NSEraseRect called\n");
+ return NULL;
+};
+
+void* NSFrameRect(void) {
+ if (verbose) LOG_FUNC("STUB: NSFrameRect called\n");
+ return NULL;
+};
+
+void* NSFrameRectWithWidth(void) {
+ if (verbose) LOG_FUNC("STUB: NSFrameRectWithWidth called\n");
+ return NULL;
+};
+
+void* NSFrameRectWithWidthUsingOperation(void) {
+ if (verbose) LOG_FUNC("STUB: NSFrameRectWithWidthUsingOperation called\n");
+ return NULL;
+};
+
+void* NSIsControllerMarker(void) {
+ if (verbose) LOG_FUNC("STUB: NSIsControllerMarker called\n");
+ return NULL;
+};
+
+void* NSOpenGLGetOption(void) {
+ if (verbose) LOG_FUNC("STUB: NSOpenGLGetOption called\n");
+ return NULL;
+};
+
+void* NSOpenGLGetVersion(void) {
+ if (verbose) LOG_FUNC("STUB: NSOpenGLGetVersion called\n");
+ return NULL;
+};
+
+void* NSOpenGLSetOption(void) {
+ if (verbose) LOG_FUNC("STUB: NSOpenGLSetOption called\n");
+ return NULL;
+};
+
+void* NSRectClip(void) {
+ if (verbose) LOG_FUNC("STUB: NSRectClip called\n");
+ return NULL;
+};
+
+void* NSRectClipList(void) {
+ if (verbose) LOG_FUNC("STUB: NSRectClipList called\n");
+ return NULL;
+};
+
+void* NSRectFill(void) {
+ if (verbose) LOG_FUNC("STUB: NSRectFill called\n");
+ return NULL;
+};
+
+void* NSRectFillList(void) {
+ if (verbose) LOG_FUNC("STUB: NSRectFillList called\n");
+ return NULL;
+};
+
+void* NSRectFillListUsingOperation(void) {
+ if (verbose) LOG_FUNC("STUB: NSRectFillListUsingOperation called\n");
+ return NULL;
+};
+
+void* NSRectFillListWithColors(void) {
+ if (verbose) LOG_FUNC("STUB: NSRectFillListWithColors called\n");
+ return NULL;
+};
+
+void* NSRectFillListWithColorsUsingOperation(void) {
+ if (verbose) LOG_FUNC("STUB: NSRectFillListWithColorsUsingOperation called\n");
+ return NULL;
+};
+
+void* NSRectFillListWithGrays(void) {
+ if (verbose) LOG_FUNC("STUB: NSRectFillListWithGrays called\n");
+ return NULL;
+};
+
+void* NSRectFillUsingOperation(void) {
+ if (verbose) LOG_FUNC("STUB: NSRectFillUsingOperation called\n");
+ return NULL;
+};
+
+void* NSRunAlertPanel(void) {
+ if (verbose) LOG_FUNC("STUB: NSRunAlertPanel called\n");
+ return NULL;
+};
+
+void* NSSetFocusRingStyle(void) {
+ if (verbose) LOG_FUNC("STUB: NSSetFocusRingStyle called\n");
+ return NULL;
+};
+
+void* NSShowAnimationEffect(void) {
+ if (verbose) LOG_FUNC("STUB: NSShowAnimationEffect called\n");
+ return NULL;
+};
+
+void* NSUpdateDynamicServices(void) {
+ if (verbose) LOG_FUNC("STUB: NSUpdateDynamicServices called\n");
+ return NULL;
+};
+
+void* _NSColorSpaceNameFromNum(void) {
+ if (verbose) LOG_FUNC("STUB: _NSColorSpaceNameFromNum called\n");
+ return NULL;
+};
+
+void* _NSNameFromKeyEquivalentString(void) {
+ if (verbose) LOG_FUNC("STUB: _NSNameFromKeyEquivalentString called\n");
+ return NULL;
+};
+
+
diff --git a/src/frameworks/dev-stubs/AudioToolbox/CMakeLists.txt b/src/frameworks/dev-stubs/AudioToolbox/CMakeLists.txt
new file mode 100644
index 000000000..f0d5384d7
--- /dev/null
+++ b/src/frameworks/dev-stubs/AudioToolbox/CMakeLists.txt
@@ -0,0 +1,23 @@
+project(AudioToolbox_stub)
+
+set(DYLIB_COMPAT_VERSION "1.0.0")
+set(DYLIB_CURRENT_VERSION "1.0.0")
+set(FRAMEWORK_VERSION "A")
+
+add_framework(AudioToolbox
+ FAT
+ CURRENT_VERSION
+ VERSION ${FRAMEWORK_VERSION}
+ TARGET_NAME AudioToolbox${STUB_SUFFIX}
+ ${NO_INSTALL_ARG}
+
+ SOURCES
+ src/classes.m
+ src/main.m
+
+ DEPENDENCIES
+ system
+ Foundation
+)
+
+#target_include_directories(AudioToolbox${STUB_SUFFIX} BEFORE PRIVATE include)
diff --git a/src/frameworks/dev-stubs/AudioToolbox/src/classes.m b/src/frameworks/dev-stubs/AudioToolbox/src/classes.m
new file mode 100644
index 000000000..2d54b7994
--- /dev/null
+++ b/src/frameworks/dev-stubs/AudioToolbox/src/classes.m
@@ -0,0 +1,89 @@
+/*
+ * This file is part of Darling.
+ *
+ * Copyright (C) 2023 Darling Developers
+ *
+ * Darling is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Darling is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Darling. If not, see .
+ */
+
+#import
+
+@interface AUAudioUnit : NSObject
+@end
+
+@implementation AUAudioUnit
+
+- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector
+{
+ return [NSMethodSignature signatureWithObjCTypes: "v@:"];
+}
+
+- (void)forwardInvocation:(NSInvocation *)anInvocation
+{
+ NSLog(@"Stub called: %@ in %@", NSStringFromSelector([anInvocation selector]), [self class]);
+}
+
+@end
+
+@interface AUAudioUnitBus : NSObject
+@end
+
+@implementation AUAudioUnitBus
+
+- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector
+{
+ return [NSMethodSignature signatureWithObjCTypes: "v@:"];
+}
+
+- (void)forwardInvocation:(NSInvocation *)anInvocation
+{
+ NSLog(@"Stub called: %@ in %@", NSStringFromSelector([anInvocation selector]), [self class]);
+}
+
+@end
+
+@interface AUAudioUnitBusArray : NSObject
+@end
+
+@implementation AUAudioUnitBusArray
+
+- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector
+{
+ return [NSMethodSignature signatureWithObjCTypes: "v@:"];
+}
+
+- (void)forwardInvocation:(NSInvocation *)anInvocation
+{
+ NSLog(@"Stub called: %@ in %@", NSStringFromSelector([anInvocation selector]), [self class]);
+}
+
+@end
+
+@interface AUAudioUnitV2Bridge : NSObject
+@end
+
+@implementation AUAudioUnitV2Bridge
+
+- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector
+{
+ return [NSMethodSignature signatureWithObjCTypes: "v@:"];
+}
+
+- (void)forwardInvocation:(NSInvocation *)anInvocation
+{
+ NSLog(@"Stub called: %@ in %@", NSStringFromSelector([anInvocation selector]), [self class]);
+}
+
+@end
+
diff --git a/src/frameworks/dev-stubs/AudioToolbox/src/main.m b/src/frameworks/dev-stubs/AudioToolbox/src/main.m
new file mode 100644
index 000000000..597239303
--- /dev/null
+++ b/src/frameworks/dev-stubs/AudioToolbox/src/main.m
@@ -0,0 +1,115 @@
+/*
+ * This file is part of Darling.
+ *
+ * Copyright (C) 2023 Darling Developers
+ *
+ * Darling is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Darling is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Darling. If not, see .
+ */
+
+#import
+
+@interface NSString : NSObject
+@end
+
+#include
+#include
+
+static int verbose = 0;
+
+__attribute__((constructor))
+static void initme(void) {
+ verbose = getenv("STUB_VERBOSE") != NULL;
+}
+
+void __simple_kprintf(const char* format, ...) __attribute__((format(printf, 1, 2)));
+
+#define LOG_FUNC __simple_kprintf
+
+
+void* AudioFileClose(void) {
+ if (verbose) LOG_FUNC("STUB: AudioFileClose called\n");
+ return NULL;
+};
+
+void* AudioFileInitializeWithCallbacks(void) {
+ if (verbose) LOG_FUNC("STUB: AudioFileInitializeWithCallbacks called\n");
+ return NULL;
+};
+
+void* AudioFileOpenWithCallbacks(void) {
+ if (verbose) LOG_FUNC("STUB: AudioFileOpenWithCallbacks called\n");
+ return NULL;
+};
+
+void* AudioServicesPlaySystemSound(void) {
+ if (verbose) LOG_FUNC("STUB: AudioServicesPlaySystemSound called\n");
+ return NULL;
+};
+
+void* AudioUnitGetProperty(void) {
+ if (verbose) LOG_FUNC("STUB: AudioUnitGetProperty called\n");
+ return NULL;
+};
+
+void* AudioUnitSetParameter(void) {
+ if (verbose) LOG_FUNC("STUB: AudioUnitSetParameter called\n");
+ return NULL;
+};
+
+void* AudioUnitSetProperty(void) {
+ if (verbose) LOG_FUNC("STUB: AudioUnitSetProperty called\n");
+ return NULL;
+};
+
+void* ExtAudioFileCreateWithURL(void) {
+ if (verbose) LOG_FUNC("STUB: ExtAudioFileCreateWithURL called\n");
+ return NULL;
+};
+
+void* ExtAudioFileDispose(void) {
+ if (verbose) LOG_FUNC("STUB: ExtAudioFileDispose called\n");
+ return NULL;
+};
+
+void* ExtAudioFileGetProperty(void) {
+ if (verbose) LOG_FUNC("STUB: ExtAudioFileGetProperty called\n");
+ return NULL;
+};
+
+void* ExtAudioFileGetPropertyInfo(void) {
+ if (verbose) LOG_FUNC("STUB: ExtAudioFileGetPropertyInfo called\n");
+ return NULL;
+};
+
+void* ExtAudioFileRead(void) {
+ if (verbose) LOG_FUNC("STUB: ExtAudioFileRead called\n");
+ return NULL;
+};
+
+void* ExtAudioFileSetProperty(void) {
+ if (verbose) LOG_FUNC("STUB: ExtAudioFileSetProperty called\n");
+ return NULL;
+};
+
+void* ExtAudioFileWrapAudioFileID(void) {
+ if (verbose) LOG_FUNC("STUB: ExtAudioFileWrapAudioFileID called\n");
+ return NULL;
+};
+
+void* ExtAudioFileWrite(void) {
+ if (verbose) LOG_FUNC("STUB: ExtAudioFileWrite called\n");
+ return NULL;
+};
+
+
diff --git a/src/frameworks/dev-stubs/Cocoa/CMakeLists.txt b/src/frameworks/dev-stubs/Cocoa/CMakeLists.txt
new file mode 100644
index 000000000..a87ca522b
--- /dev/null
+++ b/src/frameworks/dev-stubs/Cocoa/CMakeLists.txt
@@ -0,0 +1,23 @@
+project(Cocoa_stub)
+
+set(DYLIB_COMPAT_VERSION "1.0.0")
+set(DYLIB_CURRENT_VERSION "1.0.0")
+set(FRAMEWORK_VERSION "A")
+
+add_framework(Cocoa
+ FAT
+ CURRENT_VERSION
+ VERSION ${FRAMEWORK_VERSION}
+ TARGET_NAME Cocoa${STUB_SUFFIX}
+ ${NO_INSTALL_ARG}
+
+ SOURCES
+ src/classes.m
+ src/main.m
+
+ DEPENDENCIES
+ system
+ Foundation
+)
+
+#target_include_directories(Cocoa${STUB_SUFFIX} BEFORE PRIVATE include)
diff --git a/src/frameworks/dev-stubs/Cocoa/src/classes.m b/src/frameworks/dev-stubs/Cocoa/src/classes.m
new file mode 100644
index 000000000..4de399fcd
--- /dev/null
+++ b/src/frameworks/dev-stubs/Cocoa/src/classes.m
@@ -0,0 +1,21 @@
+/*
+ * This file is part of Darling.
+ *
+ * Copyright (C) 2023 Darling Developers
+ *
+ * Darling is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Darling is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Darling. If not, see .
+ */
+
+#import
+
diff --git a/src/frameworks/dev-stubs/Cocoa/src/main.m b/src/frameworks/dev-stubs/Cocoa/src/main.m
new file mode 100644
index 000000000..a3ee78487
--- /dev/null
+++ b/src/frameworks/dev-stubs/Cocoa/src/main.m
@@ -0,0 +1,40 @@
+/*
+ * This file is part of Darling.
+ *
+ * Copyright (C) 2023 Darling Developers
+ *
+ * Darling is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Darling is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Darling. If not, see .
+ */
+
+#import
+
+@interface NSString : NSObject
+@end
+
+#include
+#include
+
+static int verbose = 0;
+
+__attribute__((constructor))
+static void initme(void) {
+ verbose = getenv("STUB_VERBOSE") != NULL;
+}
+
+void __simple_kprintf(const char* format, ...) __attribute__((format(printf, 1, 2)));
+
+#define LOG_FUNC __simple_kprintf
+
+
+
diff --git a/src/frameworks/dev-stubs/CoreData/CMakeLists.txt b/src/frameworks/dev-stubs/CoreData/CMakeLists.txt
new file mode 100644
index 000000000..e4215950e
--- /dev/null
+++ b/src/frameworks/dev-stubs/CoreData/CMakeLists.txt
@@ -0,0 +1,23 @@
+project(CoreData_stub)
+
+set(DYLIB_COMPAT_VERSION "1.0.0")
+set(DYLIB_CURRENT_VERSION "1.0.0")
+set(FRAMEWORK_VERSION "A")
+
+add_framework(CoreData
+ FAT
+ CURRENT_VERSION
+ VERSION ${FRAMEWORK_VERSION}
+ TARGET_NAME CoreData${STUB_SUFFIX}
+ ${NO_INSTALL_ARG}
+
+ SOURCES
+ src/classes.m
+ src/main.m
+
+ DEPENDENCIES
+ system
+ Foundation
+)
+
+#target_include_directories(CoreData${STUB_SUFFIX} BEFORE PRIVATE include)
diff --git a/src/frameworks/dev-stubs/CoreData/src/classes.m b/src/frameworks/dev-stubs/CoreData/src/classes.m
new file mode 100644
index 000000000..1958ba224
--- /dev/null
+++ b/src/frameworks/dev-stubs/CoreData/src/classes.m
@@ -0,0 +1,259 @@
+/*
+ * This file is part of Darling.
+ *
+ * Copyright (C) 2023 Darling Developers
+ *
+ * Darling is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Darling is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Darling. If not, see .
+ */
+
+#import
+
+@interface NSAttributeDescription : NSObject
+@end
+
+@implementation NSAttributeDescription
+
+- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector
+{
+ return [NSMethodSignature signatureWithObjCTypes: "v@:"];
+}
+
+- (void)forwardInvocation:(NSInvocation *)anInvocation
+{
+ NSLog(@"Stub called: %@ in %@", NSStringFromSelector([anInvocation selector]), [self class]);
+}
+
+@end
+
+@interface NSEntityDescription : NSObject
+@end
+
+@implementation NSEntityDescription
+
+- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector
+{
+ return [NSMethodSignature signatureWithObjCTypes: "v@:"];
+}
+
+- (void)forwardInvocation:(NSInvocation *)anInvocation
+{
+ NSLog(@"Stub called: %@ in %@", NSStringFromSelector([anInvocation selector]), [self class]);
+}
+
+@end
+
+@interface NSEntityMapping : NSObject
+@end
+
+@implementation NSEntityMapping
+
+- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector
+{
+ return [NSMethodSignature signatureWithObjCTypes: "v@:"];
+}
+
+- (void)forwardInvocation:(NSInvocation *)anInvocation
+{
+ NSLog(@"Stub called: %@ in %@", NSStringFromSelector([anInvocation selector]), [self class]);
+}
+
+@end
+
+@interface NSFetchRequest : NSObject
+@end
+
+@implementation NSFetchRequest
+
+- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector
+{
+ return [NSMethodSignature signatureWithObjCTypes: "v@:"];
+}
+
+- (void)forwardInvocation:(NSInvocation *)anInvocation
+{
+ NSLog(@"Stub called: %@ in %@", NSStringFromSelector([anInvocation selector]), [self class]);
+}
+
+@end
+
+@interface NSFetchRequestExpression : NSObject
+@end
+
+@implementation NSFetchRequestExpression
+
+- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector
+{
+ return [NSMethodSignature signatureWithObjCTypes: "v@:"];
+}
+
+- (void)forwardInvocation:(NSInvocation *)anInvocation
+{
+ NSLog(@"Stub called: %@ in %@", NSStringFromSelector([anInvocation selector]), [self class]);
+}
+
+@end
+
+@interface NSFetchedPropertyDescription : NSObject
+@end
+
+@implementation NSFetchedPropertyDescription
+
+- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector
+{
+ return [NSMethodSignature signatureWithObjCTypes: "v@:"];
+}
+
+- (void)forwardInvocation:(NSInvocation *)anInvocation
+{
+ NSLog(@"Stub called: %@ in %@", NSStringFromSelector([anInvocation selector]), [self class]);
+}
+
+@end
+
+@interface NSManagedObject : NSObject
+@end
+
+@implementation NSManagedObject
+
+- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector
+{
+ return [NSMethodSignature signatureWithObjCTypes: "v@:"];
+}
+
+- (void)forwardInvocation:(NSInvocation *)anInvocation
+{
+ NSLog(@"Stub called: %@ in %@", NSStringFromSelector([anInvocation selector]), [self class]);
+}
+
+@end
+
+@interface NSManagedObjectContext : NSObject
+@end
+
+@implementation NSManagedObjectContext
+
+- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector
+{
+ return [NSMethodSignature signatureWithObjCTypes: "v@:"];
+}
+
+- (void)forwardInvocation:(NSInvocation *)anInvocation
+{
+ NSLog(@"Stub called: %@ in %@", NSStringFromSelector([anInvocation selector]), [self class]);
+}
+
+@end
+
+@interface NSManagedObjectID : NSObject
+@end
+
+@implementation NSManagedObjectID
+
+- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector
+{
+ return [NSMethodSignature signatureWithObjCTypes: "v@:"];
+}
+
+- (void)forwardInvocation:(NSInvocation *)anInvocation
+{
+ NSLog(@"Stub called: %@ in %@", NSStringFromSelector([anInvocation selector]), [self class]);
+}
+
+@end
+
+@interface NSManagedObjectModel : NSObject
+@end
+
+@implementation NSManagedObjectModel
+
+- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector
+{
+ return [NSMethodSignature signatureWithObjCTypes: "v@:"];
+}
+
+- (void)forwardInvocation:(NSInvocation *)anInvocation
+{
+ NSLog(@"Stub called: %@ in %@", NSStringFromSelector([anInvocation selector]), [self class]);
+}
+
+@end
+
+@interface NSMappingModel : NSObject
+@end
+
+@implementation NSMappingModel
+
+- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector
+{
+ return [NSMethodSignature signatureWithObjCTypes: "v@:"];
+}
+
+- (void)forwardInvocation:(NSInvocation *)anInvocation
+{
+ NSLog(@"Stub called: %@ in %@", NSStringFromSelector([anInvocation selector]), [self class]);
+}
+
+@end
+
+@interface NSPersistentStoreCoordinator : NSObject
+@end
+
+@implementation NSPersistentStoreCoordinator
+
+- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector
+{
+ return [NSMethodSignature signatureWithObjCTypes: "v@:"];
+}
+
+- (void)forwardInvocation:(NSInvocation *)anInvocation
+{
+ NSLog(@"Stub called: %@ in %@", NSStringFromSelector([anInvocation selector]), [self class]);
+}
+
+@end
+
+@interface NSPropertyMapping : NSObject
+@end
+
+@implementation NSPropertyMapping
+
+- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector
+{
+ return [NSMethodSignature signatureWithObjCTypes: "v@:"];
+}
+
+- (void)forwardInvocation:(NSInvocation *)anInvocation
+{
+ NSLog(@"Stub called: %@ in %@", NSStringFromSelector([anInvocation selector]), [self class]);
+}
+
+@end
+
+@interface _NSPersistenceUtilities : NSObject
+@end
+
+@implementation _NSPersistenceUtilities
+
+- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector
+{
+ return [NSMethodSignature signatureWithObjCTypes: "v@:"];
+}
+
+- (void)forwardInvocation:(NSInvocation *)anInvocation
+{
+ NSLog(@"Stub called: %@ in %@", NSStringFromSelector([anInvocation selector]), [self class]);
+}
+
+@end
+
diff --git a/src/frameworks/dev-stubs/CoreData/src/main.m b/src/frameworks/dev-stubs/CoreData/src/main.m
new file mode 100644
index 000000000..0516334ec
--- /dev/null
+++ b/src/frameworks/dev-stubs/CoreData/src/main.m
@@ -0,0 +1,62 @@
+/*
+ * This file is part of Darling.
+ *
+ * Copyright (C) 2023 Darling Developers
+ *
+ * Darling is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Darling is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Darling. If not, see .
+ */
+
+#import
+
+@interface NSString : NSObject
+@end
+
+#include
+#include
+
+static int verbose = 0;
+
+__attribute__((constructor))
+static void initme(void) {
+ verbose = getenv("STUB_VERBOSE") != NULL;
+}
+
+void __simple_kprintf(const char* format, ...) __attribute__((format(printf, 1, 2)));
+
+#define LOG_FUNC __simple_kprintf
+
+NSString *const NSAffectedObjectsErrorKey = @"NSAffectedObjectsErrorKey";
+NSString *const NSAffectedStoresErrorKey = @"NSAffectedStoresErrorKey";
+NSString *const NSDeletedObjectsKey = @"NSDeletedObjectsKey";
+NSString *const NSDetailedErrorsKey = @"NSDetailedErrorsKey";
+NSString *const NSInferMappingModelAutomaticallyOption = @"NSInferMappingModelAutomaticallyOption";
+NSString *const NSInsertedObjectsKey = @"NSInsertedObjectsKey";
+NSString *const NSInvalidatedObjectsKey = @"NSInvalidatedObjectsKey";
+NSString *const NSManagedObjectContextDidSaveNotification = @"NSManagedObjectContextDidSaveNotification";
+NSString *const NSMergeByPropertyStoreTrumpMergePolicy = @"NSMergeByPropertyStoreTrumpMergePolicy";
+NSString *const NSMigratePersistentStoresAutomaticallyOption = @"NSMigratePersistentStoresAutomaticallyOption";
+NSString *const NSOverwriteMergePolicy = @"NSOverwriteMergePolicy";
+NSString *const NSPersistentStoreSaveConflictsErrorKey = @"NSPersistentStoreSaveConflictsErrorKey";
+NSString *const NSRefreshedObjectsKey = @"NSRefreshedObjectsKey";
+NSString *const NSRollbackMergePolicy = @"NSRollbackMergePolicy";
+NSString *const NSSQLiteStoreType = @"NSSQLiteStoreType";
+NSString *const NSStoreModelVersionHashesKey = @"NSStoreModelVersionHashesKey";
+NSString *const NSUpdatedObjectsKey = @"NSUpdatedObjectsKey";
+NSString *const NSValidationKeyErrorKey = @"NSValidationKeyErrorKey";
+NSString *const NSValidationObjectErrorKey = @"NSValidationObjectErrorKey";
+NSString *const NSValidationPredicateErrorKey = @"NSValidationPredicateErrorKey";
+NSString *const NSValidationValueErrorKey = @"NSValidationValueErrorKey";
+NSString *const NSXMLStoreType = @"NSXMLStoreType";
+
+
diff --git a/src/frameworks/dev-stubs/CoreGraphics/CMakeLists.txt b/src/frameworks/dev-stubs/CoreGraphics/CMakeLists.txt
new file mode 100644
index 000000000..82ada62ba
--- /dev/null
+++ b/src/frameworks/dev-stubs/CoreGraphics/CMakeLists.txt
@@ -0,0 +1,23 @@
+project(CoreGraphics_stub)
+
+set(DYLIB_COMPAT_VERSION "1.0.0")
+set(DYLIB_CURRENT_VERSION "1.0.0")
+set(FRAMEWORK_VERSION "A")
+
+add_framework(CoreGraphics
+ FAT
+ CURRENT_VERSION
+ VERSION ${FRAMEWORK_VERSION}
+ TARGET_NAME CoreGraphics${STUB_SUFFIX}
+ ${NO_INSTALL_ARG}
+
+ SOURCES
+ src/classes.m
+ src/main.m
+
+ DEPENDENCIES
+ system
+ Foundation
+)
+
+#target_include_directories(CoreGraphics${STUB_SUFFIX} BEFORE PRIVATE include)
diff --git a/src/frameworks/dev-stubs/CoreGraphics/src/classes.m b/src/frameworks/dev-stubs/CoreGraphics/src/classes.m
new file mode 100644
index 000000000..4de399fcd
--- /dev/null
+++ b/src/frameworks/dev-stubs/CoreGraphics/src/classes.m
@@ -0,0 +1,21 @@
+/*
+ * This file is part of Darling.
+ *
+ * Copyright (C) 2023 Darling Developers
+ *
+ * Darling is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Darling is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Darling. If not, see .
+ */
+
+#import
+
diff --git a/src/frameworks/dev-stubs/CoreGraphics/src/main.m b/src/frameworks/dev-stubs/CoreGraphics/src/main.m
new file mode 100644
index 000000000..88c55777c
--- /dev/null
+++ b/src/frameworks/dev-stubs/CoreGraphics/src/main.m
@@ -0,0 +1,1670 @@
+/*
+ * This file is part of Darling.
+ *
+ * Copyright (C) 2023 Darling Developers
+ *
+ * Darling is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Darling is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Darling. If not, see .
+ */
+
+#import
+
+@interface NSString : NSObject
+@end
+
+#include
+
+#ifdef __LP64__
+ typedef double CGFloat;
+#else
+ typedef float CGFloat;
+#endif
+
+struct CGPoint {
+ CGFloat x;
+ CGFloat y;
+};
+typedef struct CGPoint CGPoint;
+
+struct CGSize {
+ CGFloat width;
+ CGFloat height;
+};
+typedef struct CGSize CGSize;
+
+struct CGVector {
+ CGFloat dx;
+ CGFloat dy;
+};
+typedef struct CGVector CGVector;
+
+struct CGRect {
+ CGPoint origin;
+ CGSize size;
+};
+typedef struct CGRect CGRect;
+
+#include
+#include
+
+static int verbose = 0;
+
+__attribute__((constructor))
+static void initme(void) {
+ verbose = getenv("STUB_VERBOSE") != NULL;
+}
+
+void __simple_kprintf(const char* format, ...) __attribute__((format(printf, 1, 2)));
+
+#define LOG_FUNC __simple_kprintf
+
+NSString *const CGAffineTransformIdentity = @"CGAffineTransformIdentity";
+const CGPoint CGPointZero = {0, 0};
+const CGRect CGRectInfinite = {{0, 0}, {INFINITY, INFINITY}};
+const CGRect CGRectNull = {{INFINITY, INFINITY}, {0, 0}};
+const CGRect CGRectZero = {{0, 0}, {0, 0}};
+const CGSize CGSizeZero = {0, 0};
+NSString *const kCGColorBlack = @"kCGColorBlack";
+NSString *const kCGColorClear = @"kCGColorClear";
+NSString *const kCGColorSpaceDisplayP3 = @"kCGColorSpaceDisplayP3";
+NSString *const kCGColorSpaceExtendedGray = @"kCGColorSpaceExtendedGray";
+NSString *const kCGColorSpaceExtendedLinearSRGB = @"kCGColorSpaceExtendedLinearSRGB";
+NSString *const kCGColorSpaceExtendedSRGB = @"kCGColorSpaceExtendedSRGB";
+NSString *const kCGColorSpaceGenericCMYK = @"kCGColorSpaceGenericCMYK";
+NSString *const kCGColorSpaceGenericGray = @"kCGColorSpaceGenericGray";
+NSString *const kCGColorSpaceGenericGrayGamma2_2 = @"kCGColorSpaceGenericGrayGamma2_2";
+NSString *const kCGColorSpaceGenericRGB = @"kCGColorSpaceGenericRGB";
+NSString *const kCGColorSpaceLinearSRGB = @"kCGColorSpaceLinearSRGB";
+NSString *const kCGColorSpaceSRGB = @"kCGColorSpaceSRGB";
+NSString *const kCGColorWhite = @"kCGColorWhite";
+unsigned int kCGDisplayPixelHeight = 1;
+unsigned int kCGDisplayPixelWidth = 1;
+NSString *const kCGDisplayProductNameKey = @"kCGDisplayProductNameKey";
+NSString *const kCGImageBlockSingletonRequest = @"kCGImageBlockSingletonRequest";
+NSString *const kCGPDFContextCreator = @"kCGPDFContextCreator";
+NSString *const kCGPDFContextMediaBox = @"kCGPDFContextMediaBox";
+NSString *const kCGPDFContextTitle = @"kCGPDFContextTitle";
+NSString *const kCGSSessionIDKey = @"kCGSSessionIDKey";
+NSString *const kCGSSessionUserIDKey = @"kCGSSessionUserIDKey";
+NSString *const kCGSSessionUserNameKey = @"kCGSSessionUserNameKey";
+NSString *const kCGWindowAlpha = @"kCGWindowAlpha";
+NSString *const kCGWindowBounds = @"kCGWindowBounds";
+NSString *const kCGWindowLayer = @"kCGWindowLayer";
+NSString *const kCGWindowOwnerPID = @"kCGWindowOwnerPID";
+
+void* CGAffineTransformConcat(void) {
+ if (verbose) LOG_FUNC("STUB: CGAffineTransformConcat called\n");
+ return NULL;
+};
+
+void* CGAffineTransformEqualToTransform(void) {
+ if (verbose) LOG_FUNC("STUB: CGAffineTransformEqualToTransform called\n");
+ return NULL;
+};
+
+void* CGAffineTransformInvert(void) {
+ if (verbose) LOG_FUNC("STUB: CGAffineTransformInvert called\n");
+ return NULL;
+};
+
+void* CGAffineTransformMakeRotation(void) {
+ if (verbose) LOG_FUNC("STUB: CGAffineTransformMakeRotation called\n");
+ return NULL;
+};
+
+void* CGAffineTransformMakeScale(void) {
+ if (verbose) LOG_FUNC("STUB: CGAffineTransformMakeScale called\n");
+ return NULL;
+};
+
+void* CGAffineTransformMakeTranslation(void) {
+ if (verbose) LOG_FUNC("STUB: CGAffineTransformMakeTranslation called\n");
+ return NULL;
+};
+
+void* CGAffineTransformRotate(void) {
+ if (verbose) LOG_FUNC("STUB: CGAffineTransformRotate called\n");
+ return NULL;
+};
+
+void* CGAffineTransformScale(void) {
+ if (verbose) LOG_FUNC("STUB: CGAffineTransformScale called\n");
+ return NULL;
+};
+
+void* CGAffineTransformTranslate(void) {
+ if (verbose) LOG_FUNC("STUB: CGAffineTransformTranslate called\n");
+ return NULL;
+};
+
+void* CGAssociateMouseAndMouseCursorPosition(void) {
+ if (verbose) LOG_FUNC("STUB: CGAssociateMouseAndMouseCursorPosition called\n");
+ return NULL;
+};
+
+void* CGBitmapContextCreate(void) {
+ if (verbose) LOG_FUNC("STUB: CGBitmapContextCreate called\n");
+ return NULL;
+};
+
+void* CGBitmapContextCreateImage(void) {
+ if (verbose) LOG_FUNC("STUB: CGBitmapContextCreateImage called\n");
+ return NULL;
+};
+
+void* CGBitmapContextGetBitsPerPixel(void) {
+ if (verbose) LOG_FUNC("STUB: CGBitmapContextGetBitsPerPixel called\n");
+ return NULL;
+};
+
+void* CGBitmapContextGetBytesPerRow(void) {
+ if (verbose) LOG_FUNC("STUB: CGBitmapContextGetBytesPerRow called\n");
+ return NULL;
+};
+
+void* CGBitmapContextGetData(void) {
+ if (verbose) LOG_FUNC("STUB: CGBitmapContextGetData called\n");
+ return NULL;
+};
+
+void* CGBitmapContextGetHeight(void) {
+ if (verbose) LOG_FUNC("STUB: CGBitmapContextGetHeight called\n");
+ return NULL;
+};
+
+void* CGBitmapContextGetWidth(void) {
+ if (verbose) LOG_FUNC("STUB: CGBitmapContextGetWidth called\n");
+ return NULL;
+};
+
+void* CGColorCreate(void) {
+ if (verbose) LOG_FUNC("STUB: CGColorCreate called\n");
+ return NULL;
+};
+
+void* CGColorCreateCopyByMatchingToColorSpace(void) {
+ if (verbose) LOG_FUNC("STUB: CGColorCreateCopyByMatchingToColorSpace called\n");
+ return NULL;
+};
+
+void* CGColorCreateCopyWithAlpha(void) {
+ if (verbose) LOG_FUNC("STUB: CGColorCreateCopyWithAlpha called\n");
+ return NULL;
+};
+
+void* CGColorCreateGenericGray(void) {
+ if (verbose) LOG_FUNC("STUB: CGColorCreateGenericGray called\n");
+ return NULL;
+};
+
+void* CGColorCreateGenericRGB(void) {
+ if (verbose) LOG_FUNC("STUB: CGColorCreateGenericRGB called\n");
+ return NULL;
+};
+
+void* CGColorGetAlpha(void) {
+ if (verbose) LOG_FUNC("STUB: CGColorGetAlpha called\n");
+ return NULL;
+};
+
+void* CGColorGetColorSpace(void) {
+ if (verbose) LOG_FUNC("STUB: CGColorGetColorSpace called\n");
+ return NULL;
+};
+
+void* CGColorGetComponents(void) {
+ if (verbose) LOG_FUNC("STUB: CGColorGetComponents called\n");
+ return NULL;
+};
+
+void* CGColorGetConstantColor(void) {
+ if (verbose) LOG_FUNC("STUB: CGColorGetConstantColor called\n");
+ return NULL;
+};
+
+void* CGColorGetNumberOfComponents(void) {
+ if (verbose) LOG_FUNC("STUB: CGColorGetNumberOfComponents called\n");
+ return NULL;
+};
+
+void* CGColorGetTypeID(void) {
+ if (verbose) LOG_FUNC("STUB: CGColorGetTypeID called\n");
+ return NULL;
+};
+
+void* CGColorRelease(void) {
+ if (verbose) LOG_FUNC("STUB: CGColorRelease called\n");
+ return NULL;
+};
+
+void* CGColorRetain(void) {
+ if (verbose) LOG_FUNC("STUB: CGColorRetain called\n");
+ return NULL;
+};
+
+void* CGColorSpaceCopyName(void) {
+ if (verbose) LOG_FUNC("STUB: CGColorSpaceCopyName called\n");
+ return NULL;
+};
+
+void* CGColorSpaceCreateDeviceGray(void) {
+ if (verbose) LOG_FUNC("STUB: CGColorSpaceCreateDeviceGray called\n");
+ return NULL;
+};
+
+void* CGColorSpaceCreateDeviceRGB(void) {
+ if (verbose) LOG_FUNC("STUB: CGColorSpaceCreateDeviceRGB called\n");
+ return NULL;
+};
+
+void* CGColorSpaceCreatePattern(void) {
+ if (verbose) LOG_FUNC("STUB: CGColorSpaceCreatePattern called\n");
+ return NULL;
+};
+
+void* CGColorSpaceCreateWithICCData(void) {
+ if (verbose) LOG_FUNC("STUB: CGColorSpaceCreateWithICCData called\n");
+ return NULL;
+};
+
+void* CGColorSpaceCreateWithName(void) {
+ if (verbose) LOG_FUNC("STUB: CGColorSpaceCreateWithName called\n");
+ return NULL;
+};
+
+void* CGColorSpaceGetBaseColorSpace(void) {
+ if (verbose) LOG_FUNC("STUB: CGColorSpaceGetBaseColorSpace called\n");
+ return NULL;
+};
+
+void* CGColorSpaceGetColorTable(void) {
+ if (verbose) LOG_FUNC("STUB: CGColorSpaceGetColorTable called\n");
+ return NULL;
+};
+
+void* CGColorSpaceGetColorTableCount(void) {
+ if (verbose) LOG_FUNC("STUB: CGColorSpaceGetColorTableCount called\n");
+ return NULL;
+};
+
+void* CGColorSpaceGetModel(void) {
+ if (verbose) LOG_FUNC("STUB: CGColorSpaceGetModel called\n");
+ return NULL;
+};
+
+void* CGColorSpaceGetNumberOfComponents(void) {
+ if (verbose) LOG_FUNC("STUB: CGColorSpaceGetNumberOfComponents called\n");
+ return NULL;
+};
+
+void* CGColorSpaceRelease(void) {
+ if (verbose) LOG_FUNC("STUB: CGColorSpaceRelease called\n");
+ return NULL;
+};
+
+void* CGColorSpaceRetain(void) {
+ if (verbose) LOG_FUNC("STUB: CGColorSpaceRetain called\n");
+ return NULL;
+};
+
+void* CGContextAddArc(void) {
+ if (verbose) LOG_FUNC("STUB: CGContextAddArc called\n");
+ return NULL;
+};
+
+void* CGContextAddArcToPoint(void) {
+ if (verbose) LOG_FUNC("STUB: CGContextAddArcToPoint called\n");
+ return NULL;
+};
+
+void* CGContextAddCurveToPoint(void) {
+ if (verbose) LOG_FUNC("STUB: CGContextAddCurveToPoint called\n");
+ return NULL;
+};
+
+void* CGContextAddEllipseInRect(void) {
+ if (verbose) LOG_FUNC("STUB: CGContextAddEllipseInRect called\n");
+ return NULL;
+};
+
+void* CGContextAddLineToPoint(void) {
+ if (verbose) LOG_FUNC("STUB: CGContextAddLineToPoint called\n");
+ return NULL;
+};
+
+void* CGContextAddLines(void) {
+ if (verbose) LOG_FUNC("STUB: CGContextAddLines called\n");
+ return NULL;
+};
+
+void* CGContextAddPath(void) {
+ if (verbose) LOG_FUNC("STUB: CGContextAddPath called\n");
+ return NULL;
+};
+
+void* CGContextAddQuadCurveToPoint(void) {
+ if (verbose) LOG_FUNC("STUB: CGContextAddQuadCurveToPoint called\n");
+ return NULL;
+};
+
+void* CGContextAddRect(void) {
+ if (verbose) LOG_FUNC("STUB: CGContextAddRect called\n");
+ return NULL;
+};
+
+void* CGContextAddRects(void) {
+ if (verbose) LOG_FUNC("STUB: CGContextAddRects called\n");
+ return NULL;
+};
+
+void* CGContextBeginPath(void) {
+ if (verbose) LOG_FUNC("STUB: CGContextBeginPath called\n");
+ return NULL;
+};
+
+void* CGContextBeginTransparencyLayer(void) {
+ if (verbose) LOG_FUNC("STUB: CGContextBeginTransparencyLayer called\n");
+ return NULL;
+};
+
+void* CGContextBeginTransparencyLayerWithRect(void) {
+ if (verbose) LOG_FUNC("STUB: CGContextBeginTransparencyLayerWithRect called\n");
+ return NULL;
+};
+
+void* CGContextClearRect(void) {
+ if (verbose) LOG_FUNC("STUB: CGContextClearRect called\n");
+ return NULL;
+};
+
+void* CGContextClip(void) {
+ if (verbose) LOG_FUNC("STUB: CGContextClip called\n");
+ return NULL;
+};
+
+void* CGContextClipToMask(void) {
+ if (verbose) LOG_FUNC("STUB: CGContextClipToMask called\n");
+ return NULL;
+};
+
+void* CGContextClipToRect(void) {
+ if (verbose) LOG_FUNC("STUB: CGContextClipToRect called\n");
+ return NULL;
+};
+
+void* CGContextClipToRects(void) {
+ if (verbose) LOG_FUNC("STUB: CGContextClipToRects called\n");
+ return NULL;
+};
+
+void* CGContextClosePath(void) {
+ if (verbose) LOG_FUNC("STUB: CGContextClosePath called\n");
+ return NULL;
+};
+
+void* CGContextConcatCTM(void) {
+ if (verbose) LOG_FUNC("STUB: CGContextConcatCTM called\n");
+ return NULL;
+};
+
+void* CGContextConvertRectToDeviceSpace(void) {
+ if (verbose) LOG_FUNC("STUB: CGContextConvertRectToDeviceSpace called\n");
+ return NULL;
+};
+
+void* CGContextCopyPath(void) {
+ if (verbose) LOG_FUNC("STUB: CGContextCopyPath called\n");
+ return NULL;
+};
+
+void* CGContextDrawImage(void) {
+ if (verbose) LOG_FUNC("STUB: CGContextDrawImage called\n");
+ return NULL;
+};
+
+void* CGContextDrawLayerAtPoint(void) {
+ if (verbose) LOG_FUNC("STUB: CGContextDrawLayerAtPoint called\n");
+ return NULL;
+};
+
+void* CGContextDrawLayerInRect(void) {
+ if (verbose) LOG_FUNC("STUB: CGContextDrawLayerInRect called\n");
+ return NULL;
+};
+
+void* CGContextDrawPDFPage(void) {
+ if (verbose) LOG_FUNC("STUB: CGContextDrawPDFPage called\n");
+ return NULL;
+};
+
+void* CGContextDrawPath(void) {
+ if (verbose) LOG_FUNC("STUB: CGContextDrawPath called\n");
+ return NULL;
+};
+
+void* CGContextDrawShading(void) {
+ if (verbose) LOG_FUNC("STUB: CGContextDrawShading called\n");
+ return NULL;
+};
+
+void* CGContextDrawTiledImage(void) {
+ if (verbose) LOG_FUNC("STUB: CGContextDrawTiledImage called\n");
+ return NULL;
+};
+
+void* CGContextEOClip(void) {
+ if (verbose) LOG_FUNC("STUB: CGContextEOClip called\n");
+ return NULL;
+};
+
+void* CGContextEOFillPath(void) {
+ if (verbose) LOG_FUNC("STUB: CGContextEOFillPath called\n");
+ return NULL;
+};
+
+void* CGContextEndTransparencyLayer(void) {
+ if (verbose) LOG_FUNC("STUB: CGContextEndTransparencyLayer called\n");
+ return NULL;
+};
+
+void* CGContextFillEllipseInRect(void) {
+ if (verbose) LOG_FUNC("STUB: CGContextFillEllipseInRect called\n");
+ return NULL;
+};
+
+void* CGContextFillPath(void) {
+ if (verbose) LOG_FUNC("STUB: CGContextFillPath called\n");
+ return NULL;
+};
+
+void* CGContextFillRect(void) {
+ if (verbose) LOG_FUNC("STUB: CGContextFillRect called\n");
+ return NULL;
+};
+
+void* CGContextFillRects(void) {
+ if (verbose) LOG_FUNC("STUB: CGContextFillRects called\n");
+ return NULL;
+};
+
+void* CGContextGetCTM(void) {
+ if (verbose) LOG_FUNC("STUB: CGContextGetCTM called\n");
+ return NULL;
+};
+
+void* CGContextGetClipBoundingBox(void) {
+ if (verbose) LOG_FUNC("STUB: CGContextGetClipBoundingBox called\n");
+ return NULL;
+};
+
+void* CGContextGetFontRenderingStyle(void) {
+ if (verbose) LOG_FUNC("STUB: CGContextGetFontRenderingStyle called\n");
+ return NULL;
+};
+
+void* CGContextGetFontSmoothingBackgroundColor(void) {
+ if (verbose) LOG_FUNC("STUB: CGContextGetFontSmoothingBackgroundColor called\n");
+ return NULL;
+};
+
+void* CGContextGetFontSmoothingStyle(void) {
+ if (verbose) LOG_FUNC("STUB: CGContextGetFontSmoothingStyle called\n");
+ return NULL;
+};
+
+void* CGContextGetTextMatrix(void) {
+ if (verbose) LOG_FUNC("STUB: CGContextGetTextMatrix called\n");
+ return NULL;
+};
+
+void* CGContextGetTextPosition(void) {
+ if (verbose) LOG_FUNC("STUB: CGContextGetTextPosition called\n");
+ return NULL;
+};
+
+void* CGContextMoveToPoint(void) {
+ if (verbose) LOG_FUNC("STUB: CGContextMoveToPoint called\n");
+ return NULL;
+};
+
+void* CGContextPathContainsPoint(void) {
+ if (verbose) LOG_FUNC("STUB: CGContextPathContainsPoint called\n");
+ return NULL;
+};
+
+void* CGContextRelease(void) {
+ if (verbose) LOG_FUNC("STUB: CGContextRelease called\n");
+ return NULL;
+};
+
+void* CGContextReplacePathWithStrokedPath(void) {
+ if (verbose) LOG_FUNC("STUB: CGContextReplacePathWithStrokedPath called\n");
+ return NULL;
+};
+
+void* CGContextRestoreGState(void) {
+ if (verbose) LOG_FUNC("STUB: CGContextRestoreGState called\n");
+ return NULL;
+};
+
+void* CGContextRotateCTM(void) {
+ if (verbose) LOG_FUNC("STUB: CGContextRotateCTM called\n");
+ return NULL;
+};
+
+void* CGContextSaveGState(void) {
+ if (verbose) LOG_FUNC("STUB: CGContextSaveGState called\n");
+ return NULL;
+};
+
+void* CGContextScaleCTM(void) {
+ if (verbose) LOG_FUNC("STUB: CGContextScaleCTM called\n");
+ return NULL;
+};
+
+void* CGContextSetAllowsAntialiasing(void) {
+ if (verbose) LOG_FUNC("STUB: CGContextSetAllowsAntialiasing called\n");
+ return NULL;
+};
+
+void* CGContextSetAllowsFontSmoothing(void) {
+ if (verbose) LOG_FUNC("STUB: CGContextSetAllowsFontSmoothing called\n");
+ return NULL;
+};
+
+void* CGContextSetAllowsFontSubpixelPositioning(void) {
+ if (verbose) LOG_FUNC("STUB: CGContextSetAllowsFontSubpixelPositioning called\n");
+ return NULL;
+};
+
+void* CGContextSetAllowsFontSubpixelQuantization(void) {
+ if (verbose) LOG_FUNC("STUB: CGContextSetAllowsFontSubpixelQuantization called\n");
+ return NULL;
+};
+
+void* CGContextSetAlpha(void) {
+ if (verbose) LOG_FUNC("STUB: CGContextSetAlpha called\n");
+ return NULL;
+};
+
+void* CGContextSetBaseCTM(void) {
+ if (verbose) LOG_FUNC("STUB: CGContextSetBaseCTM called\n");
+ return NULL;
+};
+
+void* CGContextSetBlendMode(void) {
+ if (verbose) LOG_FUNC("STUB: CGContextSetBlendMode called\n");
+ return NULL;
+};
+
+void* CGContextSetFillColorSpace(void) {
+ if (verbose) LOG_FUNC("STUB: CGContextSetFillColorSpace called\n");
+ return NULL;
+};
+
+void* CGContextSetFillColorWithColor(void) {
+ if (verbose) LOG_FUNC("STUB: CGContextSetFillColorWithColor called\n");
+ return NULL;
+};
+
+void* CGContextSetFillPattern(void) {
+ if (verbose) LOG_FUNC("STUB: CGContextSetFillPattern called\n");
+ return NULL;
+};
+
+void* CGContextSetFlatness(void) {
+ if (verbose) LOG_FUNC("STUB: CGContextSetFlatness called\n");
+ return NULL;
+};
+
+void* CGContextSetFontRenderingStyle(void) {
+ if (verbose) LOG_FUNC("STUB: CGContextSetFontRenderingStyle called\n");
+ return NULL;
+};
+
+void* CGContextSetFontSmoothingBackgroundColor(void) {
+ if (verbose) LOG_FUNC("STUB: CGContextSetFontSmoothingBackgroundColor called\n");
+ return NULL;
+};
+
+void* CGContextSetFontSmoothingStyle(void) {
+ if (verbose) LOG_FUNC("STUB: CGContextSetFontSmoothingStyle called\n");
+ return NULL;
+};
+
+void* CGContextSetGrayFillColor(void) {
+ if (verbose) LOG_FUNC("STUB: CGContextSetGrayFillColor called\n");
+ return NULL;
+};
+
+void* CGContextSetInterpolationQuality(void) {
+ if (verbose) LOG_FUNC("STUB: CGContextSetInterpolationQuality called\n");
+ return NULL;
+};
+
+void* CGContextSetLineCap(void) {
+ if (verbose) LOG_FUNC("STUB: CGContextSetLineCap called\n");
+ return NULL;
+};
+
+void* CGContextSetLineDash(void) {
+ if (verbose) LOG_FUNC("STUB: CGContextSetLineDash called\n");
+ return NULL;
+};
+
+void* CGContextSetLineJoin(void) {
+ if (verbose) LOG_FUNC("STUB: CGContextSetLineJoin called\n");
+ return NULL;
+};
+
+void* CGContextSetLineWidth(void) {
+ if (verbose) LOG_FUNC("STUB: CGContextSetLineWidth called\n");
+ return NULL;
+};
+
+void* CGContextSetMiterLimit(void) {
+ if (verbose) LOG_FUNC("STUB: CGContextSetMiterLimit called\n");
+ return NULL;
+};
+
+void* CGContextSetRGBFillColor(void) {
+ if (verbose) LOG_FUNC("STUB: CGContextSetRGBFillColor called\n");
+ return NULL;
+};
+
+void* CGContextSetRGBStrokeColor(void) {
+ if (verbose) LOG_FUNC("STUB: CGContextSetRGBStrokeColor called\n");
+ return NULL;
+};
+
+void* CGContextSetShouldAntialias(void) {
+ if (verbose) LOG_FUNC("STUB: CGContextSetShouldAntialias called\n");
+ return NULL;
+};
+
+void* CGContextSetShouldSmoothFonts(void) {
+ if (verbose) LOG_FUNC("STUB: CGContextSetShouldSmoothFonts called\n");
+ return NULL;
+};
+
+void* CGContextSetShouldSubpixelPositionFonts(void) {
+ if (verbose) LOG_FUNC("STUB: CGContextSetShouldSubpixelPositionFonts called\n");
+ return NULL;
+};
+
+void* CGContextSetShouldSubpixelQuantizeFonts(void) {
+ if (verbose) LOG_FUNC("STUB: CGContextSetShouldSubpixelQuantizeFonts called\n");
+ return NULL;
+};
+
+void* CGContextSetStrokeColorWithColor(void) {
+ if (verbose) LOG_FUNC("STUB: CGContextSetStrokeColorWithColor called\n");
+ return NULL;
+};
+
+void* CGContextSetTextDrawingMode(void) {
+ if (verbose) LOG_FUNC("STUB: CGContextSetTextDrawingMode called\n");
+ return NULL;
+};
+
+void* CGContextSetTextMatrix(void) {
+ if (verbose) LOG_FUNC("STUB: CGContextSetTextMatrix called\n");
+ return NULL;
+};
+
+void* CGContextSetTextPosition(void) {
+ if (verbose) LOG_FUNC("STUB: CGContextSetTextPosition called\n");
+ return NULL;
+};
+
+void* CGContextShowGlyphsAtPositions(void) {
+ if (verbose) LOG_FUNC("STUB: CGContextShowGlyphsAtPositions called\n");
+ return NULL;
+};
+
+void* CGContextShowGlyphsWithAdvances(void) {
+ if (verbose) LOG_FUNC("STUB: CGContextShowGlyphsWithAdvances called\n");
+ return NULL;
+};
+
+void* CGContextStrokeEllipseInRect(void) {
+ if (verbose) LOG_FUNC("STUB: CGContextStrokeEllipseInRect called\n");
+ return NULL;
+};
+
+void* CGContextStrokeLineSegments(void) {
+ if (verbose) LOG_FUNC("STUB: CGContextStrokeLineSegments called\n");
+ return NULL;
+};
+
+void* CGContextStrokePath(void) {
+ if (verbose) LOG_FUNC("STUB: CGContextStrokePath called\n");
+ return NULL;
+};
+
+void* CGContextStrokeRect(void) {
+ if (verbose) LOG_FUNC("STUB: CGContextStrokeRect called\n");
+ return NULL;
+};
+
+void* CGContextStrokeRectWithWidth(void) {
+ if (verbose) LOG_FUNC("STUB: CGContextStrokeRectWithWidth called\n");
+ return NULL;
+};
+
+void* CGContextTranslateCTM(void) {
+ if (verbose) LOG_FUNC("STUB: CGContextTranslateCTM called\n");
+ return NULL;
+};
+
+void* CGCursorIsVisible(void) {
+ if (verbose) LOG_FUNC("STUB: CGCursorIsVisible called\n");
+ return NULL;
+};
+
+void* CGDataConsumerCreateWithCFData(void) {
+ if (verbose) LOG_FUNC("STUB: CGDataConsumerCreateWithCFData called\n");
+ return NULL;
+};
+
+void* CGDataConsumerRelease(void) {
+ if (verbose) LOG_FUNC("STUB: CGDataConsumerRelease called\n");
+ return NULL;
+};
+
+void* CGDataProviderCopyData(void) {
+ if (verbose) LOG_FUNC("STUB: CGDataProviderCopyData called\n");
+ return NULL;
+};
+
+void* CGDataProviderCreateWithCFData(void) {
+ if (verbose) LOG_FUNC("STUB: CGDataProviderCreateWithCFData called\n");
+ return NULL;
+};
+
+void* CGDataProviderCreateWithData(void) {
+ if (verbose) LOG_FUNC("STUB: CGDataProviderCreateWithData called\n");
+ return NULL;
+};
+
+void* CGDataProviderCreateWithURL(void) {
+ if (verbose) LOG_FUNC("STUB: CGDataProviderCreateWithURL called\n");
+ return NULL;
+};
+
+void* CGDataProviderRelease(void) {
+ if (verbose) LOG_FUNC("STUB: CGDataProviderRelease called\n");
+ return NULL;
+};
+
+void* CGDisplayCopyDisplayMode(void) {
+ if (verbose) LOG_FUNC("STUB: CGDisplayCopyDisplayMode called\n");
+ return NULL;
+};
+
+void* CGDisplayCreateImage(void) {
+ if (verbose) LOG_FUNC("STUB: CGDisplayCreateImage called\n");
+ return NULL;
+};
+
+void* CGDisplayCreateImageForRect(void) {
+ if (verbose) LOG_FUNC("STUB: CGDisplayCreateImageForRect called\n");
+ return NULL;
+};
+
+void* CGDisplayModeGetRefreshRate(void) {
+ if (verbose) LOG_FUNC("STUB: CGDisplayModeGetRefreshRate called\n");
+ return NULL;
+};
+
+void* CGDisplayModeRelease(void) {
+ if (verbose) LOG_FUNC("STUB: CGDisplayModeRelease called\n");
+ return NULL;
+};
+
+void* CGDisplayStreamStart(void) {
+ if (verbose) LOG_FUNC("STUB: CGDisplayStreamStart called\n");
+ return NULL;
+};
+
+void* CGDisplayStreamStop(void) {
+ if (verbose) LOG_FUNC("STUB: CGDisplayStreamStop called\n");
+ return NULL;
+};
+
+void* CGEventCopyIOHIDEvent(void) {
+ if (verbose) LOG_FUNC("STUB: CGEventCopyIOHIDEvent called\n");
+ return NULL;
+};
+
+void* CGEventCreate(void) {
+ if (verbose) LOG_FUNC("STUB: CGEventCreate called\n");
+ return NULL;
+};
+
+void* CGEventCreateKeyboardEvent(void) {
+ if (verbose) LOG_FUNC("STUB: CGEventCreateKeyboardEvent called\n");
+ return NULL;
+};
+
+void* CGEventCreateMouseEvent(void) {
+ if (verbose) LOG_FUNC("STUB: CGEventCreateMouseEvent called\n");
+ return NULL;
+};
+
+void* CGEventCreateScrollWheelEvent(void) {
+ if (verbose) LOG_FUNC("STUB: CGEventCreateScrollWheelEvent called\n");
+ return NULL;
+};
+
+void* CGEventGetFlags(void) {
+ if (verbose) LOG_FUNC("STUB: CGEventGetFlags called\n");
+ return NULL;
+};
+
+void* CGEventGetIntegerValueField(void) {
+ if (verbose) LOG_FUNC("STUB: CGEventGetIntegerValueField called\n");
+ return NULL;
+};
+
+void* CGEventGetLocation(void) {
+ if (verbose) LOG_FUNC("STUB: CGEventGetLocation called\n");
+ return NULL;
+};
+
+void* CGEventGetTimestamp(void) {
+ if (verbose) LOG_FUNC("STUB: CGEventGetTimestamp called\n");
+ return NULL;
+};
+
+void* CGEventKeyboardGetUnicodeString(void) {
+ if (verbose) LOG_FUNC("STUB: CGEventKeyboardGetUnicodeString called\n");
+ return NULL;
+};
+
+void* CGEventPost(void) {
+ if (verbose) LOG_FUNC("STUB: CGEventPost called\n");
+ return NULL;
+};
+
+void* CGEventSetFlags(void) {
+ if (verbose) LOG_FUNC("STUB: CGEventSetFlags called\n");
+ return NULL;
+};
+
+void* CGEventSetIntegerValueField(void) {
+ if (verbose) LOG_FUNC("STUB: CGEventSetIntegerValueField called\n");
+ return NULL;
+};
+
+void* CGEventSetSource(void) {
+ if (verbose) LOG_FUNC("STUB: CGEventSetSource called\n");
+ return NULL;
+};
+
+void* CGEventSetType(void) {
+ if (verbose) LOG_FUNC("STUB: CGEventSetType called\n");
+ return NULL;
+};
+
+void* CGEventSourceButtonState(void) {
+ if (verbose) LOG_FUNC("STUB: CGEventSourceButtonState called\n");
+ return NULL;
+};
+
+void* CGEventSourceCreate(void) {
+ if (verbose) LOG_FUNC("STUB: CGEventSourceCreate called\n");
+ return NULL;
+};
+
+void* CGEventSourceFlagsState(void) {
+ if (verbose) LOG_FUNC("STUB: CGEventSourceFlagsState called\n");
+ return NULL;
+};
+
+void* CGEventSourceGetKeyboardType(void) {
+ if (verbose) LOG_FUNC("STUB: CGEventSourceGetKeyboardType called\n");
+ return NULL;
+};
+
+void* CGEventSourceGetSourceStateID(void) {
+ if (verbose) LOG_FUNC("STUB: CGEventSourceGetSourceStateID called\n");
+ return NULL;
+};
+
+void* CGEventTapCreate(void) {
+ if (verbose) LOG_FUNC("STUB: CGEventTapCreate called\n");
+ return NULL;
+};
+
+void* CGEventTapEnable(void) {
+ if (verbose) LOG_FUNC("STUB: CGEventTapEnable called\n");
+ return NULL;
+};
+
+void* CGFloatIsValid(void) {
+ if (verbose) LOG_FUNC("STUB: CGFloatIsValid called\n");
+ return NULL;
+};
+
+void* CGFunctionCreate(void) {
+ if (verbose) LOG_FUNC("STUB: CGFunctionCreate called\n");
+ return NULL;
+};
+
+void* CGFunctionRelease(void) {
+ if (verbose) LOG_FUNC("STUB: CGFunctionRelease called\n");
+ return NULL;
+};
+
+void* CGGetActiveDisplayList(void) {
+ if (verbose) LOG_FUNC("STUB: CGGetActiveDisplayList called\n");
+ return NULL;
+};
+
+void* CGGetLastMouseDelta(void) {
+ if (verbose) LOG_FUNC("STUB: CGGetLastMouseDelta called\n");
+ return NULL;
+};
+
+void* CGGradientCreateWithColors(void) {
+ if (verbose) LOG_FUNC("STUB: CGGradientCreateWithColors called\n");
+ return NULL;
+};
+
+void* CGImageBlockGetBytesPerRow(void) {
+ if (verbose) LOG_FUNC("STUB: CGImageBlockGetBytesPerRow called\n");
+ return NULL;
+};
+
+void* CGImageBlockGetData(void) {
+ if (verbose) LOG_FUNC("STUB: CGImageBlockGetData called\n");
+ return NULL;
+};
+
+void* CGImageBlockGetRect(void) {
+ if (verbose) LOG_FUNC("STUB: CGImageBlockGetRect called\n");
+ return NULL;
+};
+
+void* CGImageBlockSetGetColorSpace(void) {
+ if (verbose) LOG_FUNC("STUB: CGImageBlockSetGetColorSpace called\n");
+ return NULL;
+};
+
+void* CGImageBlockSetGetComponentType(void) {
+ if (verbose) LOG_FUNC("STUB: CGImageBlockSetGetComponentType called\n");
+ return NULL;
+};
+
+void* CGImageBlockSetGetImageBlock(void) {
+ if (verbose) LOG_FUNC("STUB: CGImageBlockSetGetImageBlock called\n");
+ return NULL;
+};
+
+void* CGImageBlockSetGetPixelSize(void) {
+ if (verbose) LOG_FUNC("STUB: CGImageBlockSetGetPixelSize called\n");
+ return NULL;
+};
+
+void* CGImageBlockSetGetSize(void) {
+ if (verbose) LOG_FUNC("STUB: CGImageBlockSetGetSize called\n");
+ return NULL;
+};
+
+void* CGImageBlockSetRelease(void) {
+ if (verbose) LOG_FUNC("STUB: CGImageBlockSetRelease called\n");
+ return NULL;
+};
+
+void* CGImageCreate(void) {
+ if (verbose) LOG_FUNC("STUB: CGImageCreate called\n");
+ return NULL;
+};
+
+void* CGImageCreateWithImageInRect(void) {
+ if (verbose) LOG_FUNC("STUB: CGImageCreateWithImageInRect called\n");
+ return NULL;
+};
+
+void* CGImageCreateWithMaskingColors(void) {
+ if (verbose) LOG_FUNC("STUB: CGImageCreateWithMaskingColors called\n");
+ return NULL;
+};
+
+void* CGImageCreateWithPNGDataProvider(void) {
+ if (verbose) LOG_FUNC("STUB: CGImageCreateWithPNGDataProvider called\n");
+ return NULL;
+};
+
+void* CGImageGetAlphaInfo(void) {
+ if (verbose) LOG_FUNC("STUB: CGImageGetAlphaInfo called\n");
+ return NULL;
+};
+
+void* CGImageGetBitmapInfo(void) {
+ if (verbose) LOG_FUNC("STUB: CGImageGetBitmapInfo called\n");
+ return NULL;
+};
+
+void* CGImageGetBitsPerComponent(void) {
+ if (verbose) LOG_FUNC("STUB: CGImageGetBitsPerComponent called\n");
+ return NULL;
+};
+
+void* CGImageGetBitsPerPixel(void) {
+ if (verbose) LOG_FUNC("STUB: CGImageGetBitsPerPixel called\n");
+ return NULL;
+};
+
+void* CGImageGetBytesPerRow(void) {
+ if (verbose) LOG_FUNC("STUB: CGImageGetBytesPerRow called\n");
+ return NULL;
+};
+
+void* CGImageGetColorSpace(void) {
+ if (verbose) LOG_FUNC("STUB: CGImageGetColorSpace called\n");
+ return NULL;
+};
+
+void* CGImageGetDataProvider(void) {
+ if (verbose) LOG_FUNC("STUB: CGImageGetDataProvider called\n");
+ return NULL;
+};
+
+void* CGImageGetHeight(void) {
+ if (verbose) LOG_FUNC("STUB: CGImageGetHeight called\n");
+ return NULL;
+};
+
+void* CGImageGetImageProvider(void) {
+ if (verbose) LOG_FUNC("STUB: CGImageGetImageProvider called\n");
+ return NULL;
+};
+
+void* CGImageGetTypeID(void) {
+ if (verbose) LOG_FUNC("STUB: CGImageGetTypeID called\n");
+ return NULL;
+};
+
+void* CGImageGetWidth(void) {
+ if (verbose) LOG_FUNC("STUB: CGImageGetWidth called\n");
+ return NULL;
+};
+
+void* CGImageMaskCreate(void) {
+ if (verbose) LOG_FUNC("STUB: CGImageMaskCreate called\n");
+ return NULL;
+};
+
+void* CGImageProviderCopyImageBlockSetWithOptions(void) {
+ if (verbose) LOG_FUNC("STUB: CGImageProviderCopyImageBlockSetWithOptions called\n");
+ return NULL;
+};
+
+void* CGImageProviderGetAlphaInfo(void) {
+ if (verbose) LOG_FUNC("STUB: CGImageProviderGetAlphaInfo called\n");
+ return NULL;
+};
+
+void* CGImageRelease(void) {
+ if (verbose) LOG_FUNC("STUB: CGImageRelease called\n");
+ return NULL;
+};
+
+void* CGImageRetain(void) {
+ if (verbose) LOG_FUNC("STUB: CGImageRetain called\n");
+ return NULL;
+};
+
+void* CGLayerCreateWithContext(void) {
+ if (verbose) LOG_FUNC("STUB: CGLayerCreateWithContext called\n");
+ return NULL;
+};
+
+void* CGLayerGetContext(void) {
+ if (verbose) LOG_FUNC("STUB: CGLayerGetContext called\n");
+ return NULL;
+};
+
+void* CGLayerGetSize(void) {
+ if (verbose) LOG_FUNC("STUB: CGLayerGetSize called\n");
+ return NULL;
+};
+
+void* CGMainDisplayID(void) {
+ if (verbose) LOG_FUNC("STUB: CGMainDisplayID called\n");
+ return NULL;
+};
+
+void* CGPDFContextAddDestinationAtPoint(void) {
+ if (verbose) LOG_FUNC("STUB: CGPDFContextAddDestinationAtPoint called\n");
+ return NULL;
+};
+
+void* CGPDFContextBeginPage(void) {
+ if (verbose) LOG_FUNC("STUB: CGPDFContextBeginPage called\n");
+ return NULL;
+};
+
+void* CGPDFContextClose(void) {
+ if (verbose) LOG_FUNC("STUB: CGPDFContextClose called\n");
+ return NULL;
+};
+
+void* CGPDFContextCreate(void) {
+ if (verbose) LOG_FUNC("STUB: CGPDFContextCreate called\n");
+ return NULL;
+};
+
+void* CGPDFContextCreateWithURL(void) {
+ if (verbose) LOG_FUNC("STUB: CGPDFContextCreateWithURL called\n");
+ return NULL;
+};
+
+void* CGPDFContextEndPage(void) {
+ if (verbose) LOG_FUNC("STUB: CGPDFContextEndPage called\n");
+ return NULL;
+};
+
+void* CGPDFContextSetDestinationForRect(void) {
+ if (verbose) LOG_FUNC("STUB: CGPDFContextSetDestinationForRect called\n");
+ return NULL;
+};
+
+void* CGPDFContextSetURLForRect(void) {
+ if (verbose) LOG_FUNC("STUB: CGPDFContextSetURLForRect called\n");
+ return NULL;
+};
+
+void* CGPDFDocumentCreateWithProvider(void) {
+ if (verbose) LOG_FUNC("STUB: CGPDFDocumentCreateWithProvider called\n");
+ return NULL;
+};
+
+void* CGPDFDocumentGetNumberOfPages(void) {
+ if (verbose) LOG_FUNC("STUB: CGPDFDocumentGetNumberOfPages called\n");
+ return NULL;
+};
+
+void* CGPDFDocumentGetPage(void) {
+ if (verbose) LOG_FUNC("STUB: CGPDFDocumentGetPage called\n");
+ return NULL;
+};
+
+void* CGPDFDocumentRelease(void) {
+ if (verbose) LOG_FUNC("STUB: CGPDFDocumentRelease called\n");
+ return NULL;
+};
+
+void* CGPDFPageContainsWideGamutContent(void) {
+ if (verbose) LOG_FUNC("STUB: CGPDFPageContainsWideGamutContent called\n");
+ return NULL;
+};
+
+void* CGPDFPageGetBoxRect(void) {
+ if (verbose) LOG_FUNC("STUB: CGPDFPageGetBoxRect called\n");
+ return NULL;
+};
+
+void* CGPDFPageGetColorSpace(void) {
+ if (verbose) LOG_FUNC("STUB: CGPDFPageGetColorSpace called\n");
+ return NULL;
+};
+
+void* CGPDFPageGetDrawingTransform(void) {
+ if (verbose) LOG_FUNC("STUB: CGPDFPageGetDrawingTransform called\n");
+ return NULL;
+};
+
+void* CGPathAddArc(void) {
+ if (verbose) LOG_FUNC("STUB: CGPathAddArc called\n");
+ return NULL;
+};
+
+void* CGPathAddArcToPoint(void) {
+ if (verbose) LOG_FUNC("STUB: CGPathAddArcToPoint called\n");
+ return NULL;
+};
+
+void* CGPathAddCurveToPoint(void) {
+ if (verbose) LOG_FUNC("STUB: CGPathAddCurveToPoint called\n");
+ return NULL;
+};
+
+void* CGPathAddEllipseInRect(void) {
+ if (verbose) LOG_FUNC("STUB: CGPathAddEllipseInRect called\n");
+ return NULL;
+};
+
+void* CGPathAddLineToPoint(void) {
+ if (verbose) LOG_FUNC("STUB: CGPathAddLineToPoint called\n");
+ return NULL;
+};
+
+void* CGPathAddLines(void) {
+ if (verbose) LOG_FUNC("STUB: CGPathAddLines called\n");
+ return NULL;
+};
+
+void* CGPathAddPath(void) {
+ if (verbose) LOG_FUNC("STUB: CGPathAddPath called\n");
+ return NULL;
+};
+
+void* CGPathAddQuadCurveToPoint(void) {
+ if (verbose) LOG_FUNC("STUB: CGPathAddQuadCurveToPoint called\n");
+ return NULL;
+};
+
+void* CGPathAddRect(void) {
+ if (verbose) LOG_FUNC("STUB: CGPathAddRect called\n");
+ return NULL;
+};
+
+void* CGPathAddRects(void) {
+ if (verbose) LOG_FUNC("STUB: CGPathAddRects called\n");
+ return NULL;
+};
+
+void* CGPathAddRelativeArc(void) {
+ if (verbose) LOG_FUNC("STUB: CGPathAddRelativeArc called\n");
+ return NULL;
+};
+
+void* CGPathAddRoundedRect(void) {
+ if (verbose) LOG_FUNC("STUB: CGPathAddRoundedRect called\n");
+ return NULL;
+};
+
+void* CGPathApply(void) {
+ if (verbose) LOG_FUNC("STUB: CGPathApply called\n");
+ return NULL;
+};
+
+void* CGPathCloseSubpath(void) {
+ if (verbose) LOG_FUNC("STUB: CGPathCloseSubpath called\n");
+ return NULL;
+};
+
+void* CGPathContainsPoint(void) {
+ if (verbose) LOG_FUNC("STUB: CGPathContainsPoint called\n");
+ return NULL;
+};
+
+void* CGPathCreateCopy(void) {
+ if (verbose) LOG_FUNC("STUB: CGPathCreateCopy called\n");
+ return NULL;
+};
+
+void* CGPathCreateCopyByDashingPath(void) {
+ if (verbose) LOG_FUNC("STUB: CGPathCreateCopyByDashingPath called\n");
+ return NULL;
+};
+
+void* CGPathCreateCopyByStrokingPath(void) {
+ if (verbose) LOG_FUNC("STUB: CGPathCreateCopyByStrokingPath called\n");
+ return NULL;
+};
+
+void* CGPathCreateCopyByTransformingPath(void) {
+ if (verbose) LOG_FUNC("STUB: CGPathCreateCopyByTransformingPath called\n");
+ return NULL;
+};
+
+void* CGPathCreateMutable(void) {
+ if (verbose) LOG_FUNC("STUB: CGPathCreateMutable called\n");
+ return NULL;
+};
+
+void* CGPathCreateMutableCopy(void) {
+ if (verbose) LOG_FUNC("STUB: CGPathCreateMutableCopy called\n");
+ return NULL;
+};
+
+void* CGPathCreateWithEllipseInRect(void) {
+ if (verbose) LOG_FUNC("STUB: CGPathCreateWithEllipseInRect called\n");
+ return NULL;
+};
+
+void* CGPathCreateWithRect(void) {
+ if (verbose) LOG_FUNC("STUB: CGPathCreateWithRect called\n");
+ return NULL;
+};
+
+void* CGPathCreateWithRoundedRect(void) {
+ if (verbose) LOG_FUNC("STUB: CGPathCreateWithRoundedRect called\n");
+ return NULL;
+};
+
+void* CGPathGetBoundingBox(void) {
+ if (verbose) LOG_FUNC("STUB: CGPathGetBoundingBox called\n");
+ return NULL;
+};
+
+void* CGPathGetPathBoundingBox(void) {
+ if (verbose) LOG_FUNC("STUB: CGPathGetPathBoundingBox called\n");
+ return NULL;
+};
+
+void* CGPathIsEmpty(void) {
+ if (verbose) LOG_FUNC("STUB: CGPathIsEmpty called\n");
+ return NULL;
+};
+
+void* CGPathMoveToPoint(void) {
+ if (verbose) LOG_FUNC("STUB: CGPathMoveToPoint called\n");
+ return NULL;
+};
+
+void* CGPathRelease(void) {
+ if (verbose) LOG_FUNC("STUB: CGPathRelease called\n");
+ return NULL;
+};
+
+void* CGPatternCreate(void) {
+ if (verbose) LOG_FUNC("STUB: CGPatternCreate called\n");
+ return NULL;
+};
+
+void* CGPatternRelease(void) {
+ if (verbose) LOG_FUNC("STUB: CGPatternRelease called\n");
+ return NULL;
+};
+
+void* CGPointApplyAffineTransform(void) {
+ if (verbose) LOG_FUNC("STUB: CGPointApplyAffineTransform called\n");
+ return NULL;
+};
+
+void* CGPointCreateDictionaryRepresentation(void) {
+ if (verbose) LOG_FUNC("STUB: CGPointCreateDictionaryRepresentation called\n");
+ return NULL;
+};
+
+void* CGPointMakeWithDictionaryRepresentation(void) {
+ if (verbose) LOG_FUNC("STUB: CGPointMakeWithDictionaryRepresentation called\n");
+ return NULL;
+};
+
+void* CGRectApplyAffineTransform(void) {
+ if (verbose) LOG_FUNC("STUB: CGRectApplyAffineTransform called\n");
+ return NULL;
+};
+
+void* CGRectContainsPoint(void) {
+ if (verbose) LOG_FUNC("STUB: CGRectContainsPoint called\n");
+ return NULL;
+};
+
+void* CGRectContainsRect(void) {
+ if (verbose) LOG_FUNC("STUB: CGRectContainsRect called\n");
+ return NULL;
+};
+
+void* CGRectCreateDictionaryRepresentation(void) {
+ if (verbose) LOG_FUNC("STUB: CGRectCreateDictionaryRepresentation called\n");
+ return NULL;
+};
+
+void* CGRectDivide(void) {
+ if (verbose) LOG_FUNC("STUB: CGRectDivide called\n");
+ return NULL;
+};
+
+void* CGRectEqualToRect(void) {
+ if (verbose) LOG_FUNC("STUB: CGRectEqualToRect called\n");
+ return NULL;
+};
+
+void* CGRectGetHeight(void) {
+ if (verbose) LOG_FUNC("STUB: CGRectGetHeight called\n");
+ return NULL;
+};
+
+void* CGRectGetMaxX(void) {
+ if (verbose) LOG_FUNC("STUB: CGRectGetMaxX called\n");
+ return NULL;
+};
+
+void* CGRectGetMaxY(void) {
+ if (verbose) LOG_FUNC("STUB: CGRectGetMaxY called\n");
+ return NULL;
+};
+
+void* CGRectGetMidX(void) {
+ if (verbose) LOG_FUNC("STUB: CGRectGetMidX called\n");
+ return NULL;
+};
+
+void* CGRectGetMidY(void) {
+ if (verbose) LOG_FUNC("STUB: CGRectGetMidY called\n");
+ return NULL;
+};
+
+void* CGRectGetMinX(void) {
+ if (verbose) LOG_FUNC("STUB: CGRectGetMinX called\n");
+ return NULL;
+};
+
+void* CGRectGetMinY(void) {
+ if (verbose) LOG_FUNC("STUB: CGRectGetMinY called\n");
+ return NULL;
+};
+
+void* CGRectGetWidth(void) {
+ if (verbose) LOG_FUNC("STUB: CGRectGetWidth called\n");
+ return NULL;
+};
+
+void* CGRectInset(void) {
+ if (verbose) LOG_FUNC("STUB: CGRectInset called\n");
+ return NULL;
+};
+
+void* CGRectIntegral(void) {
+ if (verbose) LOG_FUNC("STUB: CGRectIntegral called\n");
+ return NULL;
+};
+
+void* CGRectIntersection(void) {
+ if (verbose) LOG_FUNC("STUB: CGRectIntersection called\n");
+ return NULL;
+};
+
+void* CGRectIntersectsRect(void) {
+ if (verbose) LOG_FUNC("STUB: CGRectIntersectsRect called\n");
+ return NULL;
+};
+
+void* CGRectIsEmpty(void) {
+ if (verbose) LOG_FUNC("STUB: CGRectIsEmpty called\n");
+ return NULL;
+};
+
+void* CGRectIsInfinite(void) {
+ if (verbose) LOG_FUNC("STUB: CGRectIsInfinite called\n");
+ return NULL;
+};
+
+void* CGRectIsNull(void) {
+ if (verbose) LOG_FUNC("STUB: CGRectIsNull called\n");
+ return NULL;
+};
+
+void* CGRectMakeWithDictionaryRepresentation(void) {
+ if (verbose) LOG_FUNC("STUB: CGRectMakeWithDictionaryRepresentation called\n");
+ return NULL;
+};
+
+void* CGRectOffset(void) {
+ if (verbose) LOG_FUNC("STUB: CGRectOffset called\n");
+ return NULL;
+};
+
+void* CGRectStandardize(void) {
+ if (verbose) LOG_FUNC("STUB: CGRectStandardize called\n");
+ return NULL;
+};
+
+void* CGRectUnion(void) {
+ if (verbose) LOG_FUNC("STUB: CGRectUnion called\n");
+ return NULL;
+};
+
+void* CGSAcceleratorForDisplayNumber(void) {
+ if (verbose) LOG_FUNC("STUB: CGSAcceleratorForDisplayNumber called\n");
+ return NULL;
+};
+
+void* CGSCopyDisplayInfoDictionary(void) {
+ if (verbose) LOG_FUNC("STUB: CGSCopyDisplayInfoDictionary called\n");
+ return NULL;
+};
+
+void* CGSCurrentInputPointerPosition(void) {
+ if (verbose) LOG_FUNC("STUB: CGSCurrentInputPointerPosition called\n");
+ return NULL;
+};
+
+void* CGSDisplayStatusQuery(void) {
+ if (verbose) LOG_FUNC("STUB: CGSDisplayStatusQuery called\n");
+ return NULL;
+};
+
+void* CGSFindWindowAndOwner(void) {
+ if (verbose) LOG_FUNC("STUB: CGSFindWindowAndOwner called\n");
+ return NULL;
+};
+
+void* CGSGetCurrentCursorLocation(void) {
+ if (verbose) LOG_FUNC("STUB: CGSGetCurrentCursorLocation called\n");
+ return NULL;
+};
+
+void* CGSGetCurrentDisplayMode(void) {
+ if (verbose) LOG_FUNC("STUB: CGSGetCurrentDisplayMode called\n");
+ return NULL;
+};
+
+void* CGSGetDisplayList(void) {
+ if (verbose) LOG_FUNC("STUB: CGSGetDisplayList called\n");
+ return NULL;
+};
+
+void* CGSGetDisplayModeDescriptionOfLength(void) {
+ if (verbose) LOG_FUNC("STUB: CGSGetDisplayModeDescriptionOfLength called\n");
+ return NULL;
+};
+
+void* CGSGetGlobalHotKeyOperatingMode(void) {
+ if (verbose) LOG_FUNC("STUB: CGSGetGlobalHotKeyOperatingMode called\n");
+ return NULL;
+};
+
+void* CGSGetSymbolicHotKeyValuesAndStates(void) {
+ if (verbose) LOG_FUNC("STUB: CGSGetSymbolicHotKeyValuesAndStates called\n");
+ return NULL;
+};
+
+void* CGSGetWindowTransformAtPlacement(void) {
+ if (verbose) LOG_FUNC("STUB: CGSGetWindowTransformAtPlacement called\n");
+ return NULL;
+};
+
+void* CGSInputButtonState(void) {
+ if (verbose) LOG_FUNC("STUB: CGSInputButtonState called\n");
+ return NULL;
+};
+
+void* CGSMainConnectionID(void) {
+ if (verbose) LOG_FUNC("STUB: CGSMainConnectionID called\n");
+ return NULL;
+};
+
+void* CGSRegisterNotifyProc(void) {
+ if (verbose) LOG_FUNC("STUB: CGSRegisterNotifyProc called\n");
+ return NULL;
+};
+
+void* CGSRemoveNotifyProc(void) {
+ if (verbose) LOG_FUNC("STUB: CGSRemoveNotifyProc called\n");
+ return NULL;
+};
+
+void* CGSServerOperationState(void) {
+ if (verbose) LOG_FUNC("STUB: CGSServerOperationState called\n");
+ return NULL;
+};
+
+void* CGSSessionCopyAllSessionProperties(void) {
+ if (verbose) LOG_FUNC("STUB: CGSSessionCopyAllSessionProperties called\n");
+ return NULL;
+};
+
+void* CGSSessionReleaseSessionID(void) {
+ if (verbose) LOG_FUNC("STUB: CGSSessionReleaseSessionID called\n");
+ return NULL;
+};
+
+void* CGSSetGlobalHotKeyOperatingMode(void) {
+ if (verbose) LOG_FUNC("STUB: CGSSetGlobalHotKeyOperatingMode called\n");
+ return NULL;
+};
+
+void* CGSSetWindowBackgroundBlurRadius(void) {
+ if (verbose) LOG_FUNC("STUB: CGSSetWindowBackgroundBlurRadius called\n");
+ return NULL;
+};
+
+void* CGSSetWindowTransformAtPlacement(void) {
+ if (verbose) LOG_FUNC("STUB: CGSSetWindowTransformAtPlacement called\n");
+ return NULL;
+};
+
+void* CGShadingCreateAxial(void) {
+ if (verbose) LOG_FUNC("STUB: CGShadingCreateAxial called\n");
+ return NULL;
+};
+
+void* CGShadingRelease(void) {
+ if (verbose) LOG_FUNC("STUB: CGShadingRelease called\n");
+ return NULL;
+};
+
+void* CGSizeEqualToSize(void) {
+ if (verbose) LOG_FUNC("STUB: CGSizeEqualToSize called\n");
+ return NULL;
+};
+
+void* CGSizeMakeWithDictionaryRepresentation(void) {
+ if (verbose) LOG_FUNC("STUB: CGSizeMakeWithDictionaryRepresentation called\n");
+ return NULL;
+};
+
+void* CGWindowLevelForKey(void) {
+ if (verbose) LOG_FUNC("STUB: CGWindowLevelForKey called\n");
+ return NULL;
+};
+
+void* CGWindowListCopyWindowInfo(void) {
+ if (verbose) LOG_FUNC("STUB: CGWindowListCopyWindowInfo called\n");
+ return NULL;
+};
+
+
+void* CGSSetDenyWindowServerConnections(void) {
+ if (verbose) LOG_FUNC("STUB: CGSSetDenyWindowServerConnections called\n");
+ return NULL;
+};
+
diff --git a/src/frameworks/dev-stubs/CoreText/CMakeLists.txt b/src/frameworks/dev-stubs/CoreText/CMakeLists.txt
new file mode 100644
index 000000000..7b3052239
--- /dev/null
+++ b/src/frameworks/dev-stubs/CoreText/CMakeLists.txt
@@ -0,0 +1,23 @@
+project(CoreText_stub)
+
+set(DYLIB_COMPAT_VERSION "1.0.0")
+set(DYLIB_CURRENT_VERSION "1.0.0")
+set(FRAMEWORK_VERSION "A")
+
+add_framework(CoreText
+ FAT
+ CURRENT_VERSION
+ VERSION ${FRAMEWORK_VERSION}
+ TARGET_NAME CoreText${STUB_SUFFIX}
+ ${NO_INSTALL_ARG}
+
+ SOURCES
+ src/classes.m
+ src/main.m
+
+ DEPENDENCIES
+ system
+ Foundation
+)
+
+#target_include_directories(CoreText${STUB_SUFFIX} BEFORE PRIVATE include)
diff --git a/src/frameworks/dev-stubs/CoreText/src/classes.m b/src/frameworks/dev-stubs/CoreText/src/classes.m
new file mode 100644
index 000000000..4de399fcd
--- /dev/null
+++ b/src/frameworks/dev-stubs/CoreText/src/classes.m
@@ -0,0 +1,21 @@
+/*
+ * This file is part of Darling.
+ *
+ * Copyright (C) 2023 Darling Developers
+ *
+ * Darling is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Darling is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Darling. If not, see .
+ */
+
+#import
+
diff --git a/src/frameworks/dev-stubs/CoreText/src/main.m b/src/frameworks/dev-stubs/CoreText/src/main.m
new file mode 100644
index 000000000..18e83e7b2
--- /dev/null
+++ b/src/frameworks/dev-stubs/CoreText/src/main.m
@@ -0,0 +1,251 @@
+/*
+ * This file is part of Darling.
+ *
+ * Copyright (C) 2023 Darling Developers
+ *
+ * Darling is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Darling is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Darling. If not, see .
+ */
+
+#import
+
+@interface NSString : NSObject
+@end
+
+#include
+#include
+
+static int verbose = 0;
+
+__attribute__((constructor))
+static void initme(void) {
+ verbose = getenv("STUB_VERBOSE") != NULL;
+}
+
+void __simple_kprintf(const char* format, ...) __attribute__((format(printf, 1, 2)));
+
+#define LOG_FUNC __simple_kprintf
+
+NSString *const kCTFontAttributeName = @"kCTFontAttributeName";
+NSString *const kCTFontFamilyNameAttribute = @"kCTFontFamilyNameAttribute";
+NSString *const kCTFontNameAttribute = @"kCTFontNameAttribute";
+NSString *const kCTFontStyleNameAttribute = @"kCTFontStyleNameAttribute";
+NSString *const kCTForegroundColorAttributeName = @"kCTForegroundColorAttributeName";
+NSString *const kCTFrameIntegerLineMetricsAttributeName = @"kCTFrameIntegerLineMetricsAttributeName";
+NSString *const kCTKernAttributeName = @"kCTKernAttributeName";
+NSString *const kCTParagraphStyleAttributeName = @"kCTParagraphStyleAttributeName";
+NSString *const kCTRunDelegateAttributeName = @"kCTRunDelegateAttributeName";
+NSString *const kCTUnderlineColorAttributeName = @"kCTUnderlineColorAttributeName";
+NSString *const kCTUnderlineStyleAttributeName = @"kCTUnderlineStyleAttributeName";
+
+void* CTFontCopyFamilyName(void) {
+ if (verbose) LOG_FUNC("STUB: CTFontCopyFamilyName called\n");
+ return NULL;
+};
+
+void* CTFontCopyFullName(void) {
+ if (verbose) LOG_FUNC("STUB: CTFontCopyFullName called\n");
+ return NULL;
+};
+
+void* CTFontCreatePathForGlyph(void) {
+ if (verbose) LOG_FUNC("STUB: CTFontCreatePathForGlyph called\n");
+ return NULL;
+};
+
+void* CTFontCreateWithName(void) {
+ if (verbose) LOG_FUNC("STUB: CTFontCreateWithName called\n");
+ return NULL;
+};
+
+void* CTFontDescriptorCopyAttribute(void) {
+ if (verbose) LOG_FUNC("STUB: CTFontDescriptorCopyAttribute called\n");
+ return NULL;
+};
+
+void* CTFontDescriptorCopyLocalizedAttribute(void) {
+ if (verbose) LOG_FUNC("STUB: CTFontDescriptorCopyLocalizedAttribute called\n");
+ return NULL;
+};
+
+void* CTFontDescriptorCreateMatchingFontDescriptors(void) {
+ if (verbose) LOG_FUNC("STUB: CTFontDescriptorCreateMatchingFontDescriptors called\n");
+ return NULL;
+};
+
+void* CTFontDescriptorCreateWithAttributes(void) {
+ if (verbose) LOG_FUNC("STUB: CTFontDescriptorCreateWithAttributes called\n");
+ return NULL;
+};
+
+void* CTFontDrawGlyphs(void) {
+ if (verbose) LOG_FUNC("STUB: CTFontDrawGlyphs called\n");
+ return NULL;
+};
+
+void* CTFontGetAdvancesForGlyphs(void) {
+ if (verbose) LOG_FUNC("STUB: CTFontGetAdvancesForGlyphs called\n");
+ return NULL;
+};
+
+void* CTFontGetGlyphsForCharacters(void) {
+ if (verbose) LOG_FUNC("STUB: CTFontGetGlyphsForCharacters called\n");
+ return NULL;
+};
+
+void* CTFontGetSymbolicTraits(void) {
+ if (verbose) LOG_FUNC("STUB: CTFontGetSymbolicTraits called\n");
+ return NULL;
+};
+
+void* CTFontManagerRegisterFontsForURL(void) {
+ if (verbose) LOG_FUNC("STUB: CTFontManagerRegisterFontsForURL called\n");
+ return NULL;
+};
+
+void* CTFrameDraw(void) {
+ if (verbose) LOG_FUNC("STUB: CTFrameDraw called\n");
+ return NULL;
+};
+
+void* CTFrameGetLineOrigins(void) {
+ if (verbose) LOG_FUNC("STUB: CTFrameGetLineOrigins called\n");
+ return NULL;
+};
+
+void* CTFrameGetLines(void) {
+ if (verbose) LOG_FUNC("STUB: CTFrameGetLines called\n");
+ return NULL;
+};
+
+void* CTFramesetterCreateFrame(void) {
+ if (verbose) LOG_FUNC("STUB: CTFramesetterCreateFrame called\n");
+ return NULL;
+};
+
+void* CTFramesetterCreateWithAttributedString(void) {
+ if (verbose) LOG_FUNC("STUB: CTFramesetterCreateWithAttributedString called\n");
+ return NULL;
+};
+
+void* CTFramesetterSuggestFrameSizeWithConstraints(void) {
+ if (verbose) LOG_FUNC("STUB: CTFramesetterSuggestFrameSizeWithConstraints called\n");
+ return NULL;
+};
+
+void* CTLineCreateTruncatedLine(void) {
+ if (verbose) LOG_FUNC("STUB: CTLineCreateTruncatedLine called\n");
+ return NULL;
+};
+
+void* CTLineCreateWithAttributedString(void) {
+ if (verbose) LOG_FUNC("STUB: CTLineCreateWithAttributedString called\n");
+ return NULL;
+};
+
+void* CTLineDraw(void) {
+ if (verbose) LOG_FUNC("STUB: CTLineDraw called\n");
+ return NULL;
+};
+
+void* CTLineGetBoundsWithOptions(void) {
+ if (verbose) LOG_FUNC("STUB: CTLineGetBoundsWithOptions called\n");
+ return NULL;
+};
+
+void* CTLineGetGlyphRuns(void) {
+ if (verbose) LOG_FUNC("STUB: CTLineGetGlyphRuns called\n");
+ return NULL;
+};
+
+void* CTLineGetImageBounds(void) {
+ if (verbose) LOG_FUNC("STUB: CTLineGetImageBounds called\n");
+ return NULL;
+};
+
+void* CTLineGetOffsetForStringIndex(void) {
+ if (verbose) LOG_FUNC("STUB: CTLineGetOffsetForStringIndex called\n");
+ return NULL;
+};
+
+void* CTLineGetStringIndexForPosition(void) {
+ if (verbose) LOG_FUNC("STUB: CTLineGetStringIndexForPosition called\n");
+ return NULL;
+};
+
+void* CTLineGetStringRange(void) {
+ if (verbose) LOG_FUNC("STUB: CTLineGetStringRange called\n");
+ return NULL;
+};
+
+void* CTLineGetTrailingWhitespaceWidth(void) {
+ if (verbose) LOG_FUNC("STUB: CTLineGetTrailingWhitespaceWidth called\n");
+ return NULL;
+};
+
+void* CTLineGetTypographicBounds(void) {
+ if (verbose) LOG_FUNC("STUB: CTLineGetTypographicBounds called\n");
+ return NULL;
+};
+
+void* CTParagraphStyleCreate(void) {
+ if (verbose) LOG_FUNC("STUB: CTParagraphStyleCreate called\n");
+ return NULL;
+};
+
+void* CTRunDelegateCreate(void) {
+ if (verbose) LOG_FUNC("STUB: CTRunDelegateCreate called\n");
+ return NULL;
+};
+
+void* CTRunDraw(void) {
+ if (verbose) LOG_FUNC("STUB: CTRunDraw called\n");
+ return NULL;
+};
+
+void* CTRunGetAttributes(void) {
+ if (verbose) LOG_FUNC("STUB: CTRunGetAttributes called\n");
+ return NULL;
+};
+
+void* CTRunGetGlyphCount(void) {
+ if (verbose) LOG_FUNC("STUB: CTRunGetGlyphCount called\n");
+ return NULL;
+};
+
+void* CTRunGetGlyphs(void) {
+ if (verbose) LOG_FUNC("STUB: CTRunGetGlyphs called\n");
+ return NULL;
+};
+
+void* CTRunGetPositions(void) {
+ if (verbose) LOG_FUNC("STUB: CTRunGetPositions called\n");
+ return NULL;
+};
+
+void* CTTypesetterCreateLineWithOffset(void) {
+ if (verbose) LOG_FUNC("STUB: CTTypesetterCreateLineWithOffset called\n");
+ return NULL;
+};
+
+void* CTTypesetterCreateWithAttributedString(void) {
+ if (verbose) LOG_FUNC("STUB: CTTypesetterCreateWithAttributedString called\n");
+ return NULL;
+};
+
+void* CTTypesetterSuggestClusterBreakWithOffset(void) {
+ if (verbose) LOG_FUNC("STUB: CTTypesetterSuggestClusterBreakWithOffset called\n");
+ return NULL;
+};
+
+
diff --git a/src/frameworks/dev-stubs/ImageIO/CMakeLists.txt b/src/frameworks/dev-stubs/ImageIO/CMakeLists.txt
new file mode 100644
index 000000000..a85e06579
--- /dev/null
+++ b/src/frameworks/dev-stubs/ImageIO/CMakeLists.txt
@@ -0,0 +1,23 @@
+project(ImageIO_stub)
+
+set(DYLIB_COMPAT_VERSION "1.0.0")
+set(DYLIB_CURRENT_VERSION "1.0.0")
+set(FRAMEWORK_VERSION "A")
+
+add_framework(ImageIO
+ FAT
+ CURRENT_VERSION
+ VERSION ${FRAMEWORK_VERSION}
+ TARGET_NAME ImageIO${STUB_SUFFIX}
+ ${NO_INSTALL_ARG}
+
+ SOURCES
+ src/classes.m
+ src/main.m
+
+ DEPENDENCIES
+ system
+ Foundation
+)
+
+#target_include_directories(ImageIO${STUB_SUFFIX} BEFORE PRIVATE include)
diff --git a/src/frameworks/dev-stubs/ImageIO/src/classes.m b/src/frameworks/dev-stubs/ImageIO/src/classes.m
new file mode 100644
index 000000000..4de399fcd
--- /dev/null
+++ b/src/frameworks/dev-stubs/ImageIO/src/classes.m
@@ -0,0 +1,21 @@
+/*
+ * This file is part of Darling.
+ *
+ * Copyright (C) 2023 Darling Developers
+ *
+ * Darling is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Darling is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Darling. If not, see .
+ */
+
+#import
+
diff --git a/src/frameworks/dev-stubs/ImageIO/src/main.m b/src/frameworks/dev-stubs/ImageIO/src/main.m
new file mode 100644
index 000000000..b7745df5b
--- /dev/null
+++ b/src/frameworks/dev-stubs/ImageIO/src/main.m
@@ -0,0 +1,153 @@
+/*
+ * This file is part of Darling.
+ *
+ * Copyright (C) 2023 Darling Developers
+ *
+ * Darling is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Darling is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Darling. If not, see .
+ */
+
+#import
+
+@interface NSString : NSObject
+@end
+
+#include
+#include
+
+static int verbose = 0;
+
+__attribute__((constructor))
+static void initme(void) {
+ verbose = getenv("STUB_VERBOSE") != NULL;
+}
+
+void __simple_kprintf(const char* format, ...) __attribute__((format(printf, 1, 2)));
+
+#define LOG_FUNC __simple_kprintf
+
+NSString *const kCGImageDestinationLossyCompressionQuality = @"kCGImageDestinationLossyCompressionQuality";
+NSString *const kCGImagePropertyAPNGDelayTime = @"kCGImagePropertyAPNGDelayTime";
+NSString *const kCGImagePropertyAPNGLoopCount = @"kCGImagePropertyAPNGLoopCount";
+NSString *const kCGImagePropertyDPIHeight = @"kCGImagePropertyDPIHeight";
+NSString *const kCGImagePropertyDPIWidth = @"kCGImagePropertyDPIWidth";
+NSString *const kCGImagePropertyHasAlpha = @"kCGImagePropertyHasAlpha";
+NSString *const kCGImagePropertyJFIFDensityUnit = @"kCGImagePropertyJFIFDensityUnit";
+NSString *const kCGImagePropertyJFIFDictionary = @"kCGImagePropertyJFIFDictionary";
+NSString *const kCGImagePropertyJFIFXDensity = @"kCGImagePropertyJFIFXDensity";
+NSString *const kCGImagePropertyJFIFYDensity = @"kCGImagePropertyJFIFYDensity";
+NSString *const kCGImagePropertyOrientation = @"kCGImagePropertyOrientation";
+NSString *const kCGImagePropertyPNGDictionary = @"kCGImagePropertyPNGDictionary";
+NSString *const kCGImagePropertyPNGXPixelsPerMeter = @"kCGImagePropertyPNGXPixelsPerMeter";
+NSString *const kCGImagePropertyPNGYPixelsPerMeter = @"kCGImagePropertyPNGYPixelsPerMeter";
+NSString *const kCGImagePropertyPixelHeight = @"kCGImagePropertyPixelHeight";
+NSString *const kCGImagePropertyPixelWidth = @"kCGImagePropertyPixelWidth";
+NSString *const kCGImagePropertyProfileName = @"kCGImagePropertyProfileName";
+NSString *const kCGImagePropertyTIFFDictionary = @"kCGImagePropertyTIFFDictionary";
+NSString *const kCGImagePropertyTIFFResolutionUnit = @"kCGImagePropertyTIFFResolutionUnit";
+NSString *const kCGImagePropertyTIFFXResolution = @"kCGImagePropertyTIFFXResolution";
+NSString *const kCGImagePropertyTIFFYResolution = @"kCGImagePropertyTIFFYResolution";
+NSString *const kCGImageSourceCreateThumbnailFromImageAlways = @"kCGImageSourceCreateThumbnailFromImageAlways";
+NSString *const kCGImageSourceCreateThumbnailFromImageIfAbsent = @"kCGImageSourceCreateThumbnailFromImageIfAbsent";
+NSString *const kCGImageSourceCreateThumbnailWithTransform = @"kCGImageSourceCreateThumbnailWithTransform";
+NSString *const kCGImageSourceShouldAllowFloat = @"kCGImageSourceShouldAllowFloat";
+NSString *const kCGImageSourceShouldCache = @"kCGImageSourceShouldCache";
+NSString *const kCGImageSourceSubsampleFactor = @"kCGImageSourceSubsampleFactor";
+NSString *const kCGImageSourceThumbnailMaxPixelSize = @"kCGImageSourceThumbnailMaxPixelSize";
+
+void* CGImageCreateByScaling(void) {
+ if (verbose) LOG_FUNC("STUB: CGImageCreateByScaling called\n");
+ return NULL;
+};
+
+void* CGImageDestinationAddImage(void) {
+ if (verbose) LOG_FUNC("STUB: CGImageDestinationAddImage called\n");
+ return NULL;
+};
+
+void* CGImageDestinationAddImageFromSource(void) {
+ if (verbose) LOG_FUNC("STUB: CGImageDestinationAddImageFromSource called\n");
+ return NULL;
+};
+
+void* CGImageDestinationCreateWithData(void) {
+ if (verbose) LOG_FUNC("STUB: CGImageDestinationCreateWithData called\n");
+ return NULL;
+};
+
+void* CGImageDestinationCreateWithDataConsumer(void) {
+ if (verbose) LOG_FUNC("STUB: CGImageDestinationCreateWithDataConsumer called\n");
+ return NULL;
+};
+
+void* CGImageDestinationCreateWithURL(void) {
+ if (verbose) LOG_FUNC("STUB: CGImageDestinationCreateWithURL called\n");
+ return NULL;
+};
+
+void* CGImageDestinationFinalize(void) {
+ if (verbose) LOG_FUNC("STUB: CGImageDestinationFinalize called\n");
+ return NULL;
+};
+
+void* CGImageDestinationSetProperties(void) {
+ if (verbose) LOG_FUNC("STUB: CGImageDestinationSetProperties called\n");
+ return NULL;
+};
+
+void* CGImageSourceCopyProperties(void) {
+ if (verbose) LOG_FUNC("STUB: CGImageSourceCopyProperties called\n");
+ return NULL;
+};
+
+void* CGImageSourceCopyPropertiesAtIndex(void) {
+ if (verbose) LOG_FUNC("STUB: CGImageSourceCopyPropertiesAtIndex called\n");
+ return NULL;
+};
+
+void* CGImageSourceCopyTypeIdentifiers(void) {
+ if (verbose) LOG_FUNC("STUB: CGImageSourceCopyTypeIdentifiers called\n");
+ return NULL;
+};
+
+void* CGImageSourceCreateImageAtIndex(void) {
+ if (verbose) LOG_FUNC("STUB: CGImageSourceCreateImageAtIndex called\n");
+ return NULL;
+};
+
+void* CGImageSourceCreateThumbnailAtIndex(void) {
+ if (verbose) LOG_FUNC("STUB: CGImageSourceCreateThumbnailAtIndex called\n");
+ return NULL;
+};
+
+void* CGImageSourceCreateWithData(void) {
+ if (verbose) LOG_FUNC("STUB: CGImageSourceCreateWithData called\n");
+ return NULL;
+};
+
+void* CGImageSourceCreateWithURL(void) {
+ if (verbose) LOG_FUNC("STUB: CGImageSourceCreateWithURL called\n");
+ return NULL;
+};
+
+void* CGImageSourceGetCount(void) {
+ if (verbose) LOG_FUNC("STUB: CGImageSourceGetCount called\n");
+ return NULL;
+};
+
+void* CGImageSourceGetType(void) {
+ if (verbose) LOG_FUNC("STUB: CGImageSourceGetType called\n");
+ return NULL;
+};
+
+
diff --git a/src/frameworks/dev-stubs/OpenGL/CMakeLists.txt b/src/frameworks/dev-stubs/OpenGL/CMakeLists.txt
new file mode 100644
index 000000000..02bb53ffe
--- /dev/null
+++ b/src/frameworks/dev-stubs/OpenGL/CMakeLists.txt
@@ -0,0 +1,23 @@
+project(OpenGL_stub)
+
+set(DYLIB_COMPAT_VERSION "1.0.0")
+set(DYLIB_CURRENT_VERSION "1.0.0")
+set(FRAMEWORK_VERSION "A")
+
+add_framework(OpenGL
+ FAT
+ CURRENT_VERSION
+ VERSION ${FRAMEWORK_VERSION}
+ TARGET_NAME OpenGL${STUB_SUFFIX}
+ ${NO_INSTALL_ARG}
+
+ SOURCES
+ src/classes.m
+ src/main.m
+
+ DEPENDENCIES
+ system
+ Foundation
+)
+
+#target_include_directories(OpenGL${STUB_SUFFIX} BEFORE PRIVATE include)
diff --git a/src/frameworks/dev-stubs/OpenGL/src/classes.m b/src/frameworks/dev-stubs/OpenGL/src/classes.m
new file mode 100644
index 000000000..4de399fcd
--- /dev/null
+++ b/src/frameworks/dev-stubs/OpenGL/src/classes.m
@@ -0,0 +1,21 @@
+/*
+ * This file is part of Darling.
+ *
+ * Copyright (C) 2023 Darling Developers
+ *
+ * Darling is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Darling is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Darling. If not, see .
+ */
+
+#import
+
diff --git a/src/frameworks/dev-stubs/OpenGL/src/main.m b/src/frameworks/dev-stubs/OpenGL/src/main.m
new file mode 100644
index 000000000..41f1f689f
--- /dev/null
+++ b/src/frameworks/dev-stubs/OpenGL/src/main.m
@@ -0,0 +1,360 @@
+/*
+ * This file is part of Darling.
+ *
+ * Copyright (C) 2023 Darling Developers
+ *
+ * Darling is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Darling is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Darling. If not, see .
+ */
+
+#import
+
+@interface NSString : NSObject
+@end
+
+#include
+#include
+
+static int verbose = 0;
+
+__attribute__((constructor))
+static void initme(void) {
+ verbose = getenv("STUB_VERBOSE") != NULL;
+}
+
+void __simple_kprintf(const char* format, ...) __attribute__((format(printf, 1, 2)));
+
+#define LOG_FUNC __simple_kprintf
+
+
+void* CGLBackDispatch(void) {
+ if (verbose) LOG_FUNC("STUB: CGLBackDispatch called\n");
+ return NULL;
+};
+
+void* CGLChoosePixelFormat(void) {
+ if (verbose) LOG_FUNC("STUB: CGLChoosePixelFormat called\n");
+ return NULL;
+};
+
+void* CGLCreateContext(void) {
+ if (verbose) LOG_FUNC("STUB: CGLCreateContext called\n");
+ return NULL;
+};
+
+void* CGLDestroyContext(void) {
+ if (verbose) LOG_FUNC("STUB: CGLDestroyContext called\n");
+ return NULL;
+};
+
+void* CGLDestroyPixelFormat(void) {
+ if (verbose) LOG_FUNC("STUB: CGLDestroyPixelFormat called\n");
+ return NULL;
+};
+
+void* CGLFrontDispatch(void) {
+ if (verbose) LOG_FUNC("STUB: CGLFrontDispatch called\n");
+ return NULL;
+};
+
+void* CGLGetCurrentContext(void) {
+ if (verbose) LOG_FUNC("STUB: CGLGetCurrentContext called\n");
+ return NULL;
+};
+
+void* CGLGetParameter(void) {
+ if (verbose) LOG_FUNC("STUB: CGLGetParameter called\n");
+ return NULL;
+};
+
+void* CGLGetShareGroup(void) {
+ if (verbose) LOG_FUNC("STUB: CGLGetShareGroup called\n");
+ return NULL;
+};
+
+void* CGLGetVirtualScreen(void) {
+ if (verbose) LOG_FUNC("STUB: CGLGetVirtualScreen called\n");
+ return NULL;
+};
+
+void* CGLLockContext(void) {
+ if (verbose) LOG_FUNC("STUB: CGLLockContext called\n");
+ return NULL;
+};
+
+void* CGLReleaseContext(void) {
+ if (verbose) LOG_FUNC("STUB: CGLReleaseContext called\n");
+ return NULL;
+};
+
+void* CGLReleasePixelFormat(void) {
+ if (verbose) LOG_FUNC("STUB: CGLReleasePixelFormat called\n");
+ return NULL;
+};
+
+void* CGLRetainContext(void) {
+ if (verbose) LOG_FUNC("STUB: CGLRetainContext called\n");
+ return NULL;
+};
+
+void* CGLSetCurrentContext(void) {
+ if (verbose) LOG_FUNC("STUB: CGLSetCurrentContext called\n");
+ return NULL;
+};
+
+void* CGLSetParameter(void) {
+ if (verbose) LOG_FUNC("STUB: CGLSetParameter called\n");
+ return NULL;
+};
+
+void* CGLTexImageIOSurface2D(void) {
+ if (verbose) LOG_FUNC("STUB: CGLTexImageIOSurface2D called\n");
+ return NULL;
+};
+
+void* CGLUnlockContext(void) {
+ if (verbose) LOG_FUNC("STUB: CGLUnlockContext called\n");
+ return NULL;
+};
+
+void* CGLUpdateContext(void) {
+ if (verbose) LOG_FUNC("STUB: CGLUpdateContext called\n");
+ return NULL;
+};
+
+void* glBegin(void) {
+ if (verbose) LOG_FUNC("STUB: glBegin called\n");
+ return NULL;
+};
+
+void* glBindFramebufferEXT(void) {
+ if (verbose) LOG_FUNC("STUB: glBindFramebufferEXT called\n");
+ return NULL;
+};
+
+void* glBindTexture(void) {
+ if (verbose) LOG_FUNC("STUB: glBindTexture called\n");
+ return NULL;
+};
+
+void* glBlendFunc(void) {
+ if (verbose) LOG_FUNC("STUB: glBlendFunc called\n");
+ return NULL;
+};
+
+void* glCheckFramebufferStatusEXT(void) {
+ if (verbose) LOG_FUNC("STUB: glCheckFramebufferStatusEXT called\n");
+ return NULL;
+};
+
+void* glClear(void) {
+ if (verbose) LOG_FUNC("STUB: glClear called\n");
+ return NULL;
+};
+
+void* glClearColor(void) {
+ if (verbose) LOG_FUNC("STUB: glClearColor called\n");
+ return NULL;
+};
+
+void* glColor4f(void) {
+ if (verbose) LOG_FUNC("STUB: glColor4f called\n");
+ return NULL;
+};
+
+void* glDisable(void) {
+ if (verbose) LOG_FUNC("STUB: glDisable called\n");
+ return NULL;
+};
+
+void* glDrawBuffer(void) {
+ if (verbose) LOG_FUNC("STUB: glDrawBuffer called\n");
+ return NULL;
+};
+
+void* glEnable(void) {
+ if (verbose) LOG_FUNC("STUB: glEnable called\n");
+ return NULL;
+};
+
+void* glEnd(void) {
+ if (verbose) LOG_FUNC("STUB: glEnd called\n");
+ return NULL;
+};
+
+void* glFinish(void) {
+ if (verbose) LOG_FUNC("STUB: glFinish called\n");
+ return NULL;
+};
+
+void* glFramebufferTexture2DEXT(void) {
+ if (verbose) LOG_FUNC("STUB: glFramebufferTexture2DEXT called\n");
+ return NULL;
+};
+
+void* glGenFramebuffersEXT(void) {
+ if (verbose) LOG_FUNC("STUB: glGenFramebuffersEXT called\n");
+ return NULL;
+};
+
+void* glGenTextures(void) {
+ if (verbose) LOG_FUNC("STUB: glGenTextures called\n");
+ return NULL;
+};
+
+void* glGetBooleanv(void) {
+ if (verbose) LOG_FUNC("STUB: glGetBooleanv called\n");
+ return NULL;
+};
+
+void* glGetError(void) {
+ if (verbose) LOG_FUNC("STUB: glGetError called\n");
+ return NULL;
+};
+
+void* glGetIntegerv(void) {
+ if (verbose) LOG_FUNC("STUB: glGetIntegerv called\n");
+ return NULL;
+};
+
+void* glLineWidth(void) {
+ if (verbose) LOG_FUNC("STUB: glLineWidth called\n");
+ return NULL;
+};
+
+void* glLoadIdentity(void) {
+ if (verbose) LOG_FUNC("STUB: glLoadIdentity called\n");
+ return NULL;
+};
+
+void* glMatrixMode(void) {
+ if (verbose) LOG_FUNC("STUB: glMatrixMode called\n");
+ return NULL;
+};
+
+void* glOrtho(void) {
+ if (verbose) LOG_FUNC("STUB: glOrtho called\n");
+ return NULL;
+};
+
+void* glPixelStorei(void) {
+ if (verbose) LOG_FUNC("STUB: glPixelStorei called\n");
+ return NULL;
+};
+
+void* glPointSize(void) {
+ if (verbose) LOG_FUNC("STUB: glPointSize called\n");
+ return NULL;
+};
+
+void* glPopMatrix(void) {
+ if (verbose) LOG_FUNC("STUB: glPopMatrix called\n");
+ return NULL;
+};
+
+void* glPushMatrix(void) {
+ if (verbose) LOG_FUNC("STUB: glPushMatrix called\n");
+ return NULL;
+};
+
+void* glReadPixels(void) {
+ if (verbose) LOG_FUNC("STUB: glReadPixels called\n");
+ return NULL;
+};
+
+void* glRotatef(void) {
+ if (verbose) LOG_FUNC("STUB: glRotatef called\n");
+ return NULL;
+};
+
+void* glSwapAPPLE(void) {
+ if (verbose) LOG_FUNC("STUB: glSwapAPPLE called\n");
+ return NULL;
+};
+
+void* glTexCoord2f(void) {
+ if (verbose) LOG_FUNC("STUB: glTexCoord2f called\n");
+ return NULL;
+};
+
+void* glTexImage2D(void) {
+ if (verbose) LOG_FUNC("STUB: glTexImage2D called\n");
+ return NULL;
+};
+
+void* glTexParameterfv(void) {
+ if (verbose) LOG_FUNC("STUB: glTexParameterfv called\n");
+ return NULL;
+};
+
+void* glTexParameteri(void) {
+ if (verbose) LOG_FUNC("STUB: glTexParameteri called\n");
+ return NULL;
+};
+
+void* glTranslatef(void) {
+ if (verbose) LOG_FUNC("STUB: glTranslatef called\n");
+ return NULL;
+};
+
+void* glUniform1f(void) {
+ if (verbose) LOG_FUNC("STUB: glUniform1f called\n");
+ return NULL;
+};
+
+void* glUniform1i(void) {
+ if (verbose) LOG_FUNC("STUB: glUniform1i called\n");
+ return NULL;
+};
+
+void* glUniform2f(void) {
+ if (verbose) LOG_FUNC("STUB: glUniform2f called\n");
+ return NULL;
+};
+
+void* glUniform3f(void) {
+ if (verbose) LOG_FUNC("STUB: glUniform3f called\n");
+ return NULL;
+};
+
+void* glUniform4f(void) {
+ if (verbose) LOG_FUNC("STUB: glUniform4f called\n");
+ return NULL;
+};
+
+void* glUniformMatrix2x3fv(void) {
+ if (verbose) LOG_FUNC("STUB: glUniformMatrix2x3fv called\n");
+ return NULL;
+};
+
+void* glUniformMatrix4x3fv(void) {
+ if (verbose) LOG_FUNC("STUB: glUniformMatrix4x3fv called\n");
+ return NULL;
+};
+
+void* glVertex2f(void) {
+ if (verbose) LOG_FUNC("STUB: glVertex2f called\n");
+ return NULL;
+};
+
+void* glVertex3f(void) {
+ if (verbose) LOG_FUNC("STUB: glVertex3f called\n");
+ return NULL;
+};
+
+void* glViewport(void) {
+ if (verbose) LOG_FUNC("STUB: glViewport called\n");
+ return NULL;
+};
+
+
diff --git a/src/frameworks/dev-stubs/QuartzCore/CMakeLists.txt b/src/frameworks/dev-stubs/QuartzCore/CMakeLists.txt
new file mode 100644
index 000000000..2fe4d69f9
--- /dev/null
+++ b/src/frameworks/dev-stubs/QuartzCore/CMakeLists.txt
@@ -0,0 +1,23 @@
+project(QuartzCore_stub)
+
+set(DYLIB_COMPAT_VERSION "1.0.0")
+set(DYLIB_CURRENT_VERSION "1.0.0")
+set(FRAMEWORK_VERSION "A")
+
+add_framework(QuartzCore
+ FAT
+ CURRENT_VERSION
+ VERSION ${FRAMEWORK_VERSION}
+ TARGET_NAME QuartzCore${STUB_SUFFIX}
+ ${NO_INSTALL_ARG}
+
+ SOURCES
+ src/classes.m
+ src/main.m
+
+ DEPENDENCIES
+ system
+ Foundation
+)
+
+#target_include_directories(QuartzCore${STUB_SUFFIX} BEFORE PRIVATE include)
diff --git a/src/frameworks/dev-stubs/QuartzCore/src/classes.m b/src/frameworks/dev-stubs/QuartzCore/src/classes.m
new file mode 100644
index 000000000..c2f6fcb63
--- /dev/null
+++ b/src/frameworks/dev-stubs/QuartzCore/src/classes.m
@@ -0,0 +1,344 @@
+/*
+ * This file is part of Darling.
+ *
+ * Copyright (C) 2023 Darling Developers
+ *
+ * Darling is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Darling is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Darling. If not, see .
+ */
+
+#import
+
+@interface CAAnimation : NSObject
+@end
+
+@implementation CAAnimation
+
+- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector
+{
+ return [NSMethodSignature signatureWithObjCTypes: "v@:"];
+}
+
+- (void)forwardInvocation:(NSInvocation *)anInvocation
+{
+ NSLog(@"Stub called: %@ in %@", NSStringFromSelector([anInvocation selector]), [self class]);
+}
+
+@end
+
+@interface CAAnimationGroup : NSObject
+@end
+
+@implementation CAAnimationGroup
+
+- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector
+{
+ return [NSMethodSignature signatureWithObjCTypes: "v@:"];
+}
+
+- (void)forwardInvocation:(NSInvocation *)anInvocation
+{
+ NSLog(@"Stub called: %@ in %@", NSStringFromSelector([anInvocation selector]), [self class]);
+}
+
+@end
+
+@interface CABasicAnimation : NSObject
+@end
+
+@implementation CABasicAnimation
+
+- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector
+{
+ return [NSMethodSignature signatureWithObjCTypes: "v@:"];
+}
+
+- (void)forwardInvocation:(NSInvocation *)anInvocation
+{
+ NSLog(@"Stub called: %@ in %@", NSStringFromSelector([anInvocation selector]), [self class]);
+}
+
+@end
+
+@interface CAConstraint : NSObject
+@end
+
+@implementation CAConstraint
+
+- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector
+{
+ return [NSMethodSignature signatureWithObjCTypes: "v@:"];
+}
+
+- (void)forwardInvocation:(NSInvocation *)anInvocation
+{
+ NSLog(@"Stub called: %@ in %@", NSStringFromSelector([anInvocation selector]), [self class]);
+}
+
+@end
+
+@interface CAConstraintLayoutManager : NSObject
+@end
+
+@implementation CAConstraintLayoutManager
+
+- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector
+{
+ return [NSMethodSignature signatureWithObjCTypes: "v@:"];
+}
+
+- (void)forwardInvocation:(NSInvocation *)anInvocation
+{
+ NSLog(@"Stub called: %@ in %@", NSStringFromSelector([anInvocation selector]), [self class]);
+}
+
+@end
+
+@interface CAFilter : NSObject
+@end
+
+@implementation CAFilter
+
+- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector
+{
+ return [NSMethodSignature signatureWithObjCTypes: "v@:"];
+}
+
+- (void)forwardInvocation:(NSInvocation *)anInvocation
+{
+ NSLog(@"Stub called: %@ in %@", NSStringFromSelector([anInvocation selector]), [self class]);
+}
+
+@end
+
+@interface CAGradientLayer : NSObject
+@end
+
+@implementation CAGradientLayer
+
+- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector
+{
+ return [NSMethodSignature signatureWithObjCTypes: "v@:"];
+}
+
+- (void)forwardInvocation:(NSInvocation *)anInvocation
+{
+ NSLog(@"Stub called: %@ in %@", NSStringFromSelector([anInvocation selector]), [self class]);
+}
+
+@end
+
+@interface CAKeyframeAnimation : NSObject
+@end
+
+@implementation CAKeyframeAnimation
+
+- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector
+{
+ return [NSMethodSignature signatureWithObjCTypes: "v@:"];
+}
+
+- (void)forwardInvocation:(NSInvocation *)anInvocation
+{
+ NSLog(@"Stub called: %@ in %@", NSStringFromSelector([anInvocation selector]), [self class]);
+}
+
+@end
+
+@interface CALayer : NSObject
+@end
+
+@implementation CALayer
+
+- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector
+{
+ return [NSMethodSignature signatureWithObjCTypes: "v@:"];
+}
+
+- (void)forwardInvocation:(NSInvocation *)anInvocation
+{
+ NSLog(@"Stub called: %@ in %@", NSStringFromSelector([anInvocation selector]), [self class]);
+}
+
+@end
+
+@interface CALayerHost : NSObject
+@end
+
+@implementation CALayerHost
+
+- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector
+{
+ return [NSMethodSignature signatureWithObjCTypes: "v@:"];
+}
+
+- (void)forwardInvocation:(NSInvocation *)anInvocation
+{
+ NSLog(@"Stub called: %@ in %@", NSStringFromSelector([anInvocation selector]), [self class]);
+}
+
+@end
+
+@interface CAMediaTimingFunction : NSObject
+@end
+
+@implementation CAMediaTimingFunction
+
+- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector
+{
+ return [NSMethodSignature signatureWithObjCTypes: "v@:"];
+}
+
+- (void)forwardInvocation:(NSInvocation *)anInvocation
+{
+ NSLog(@"Stub called: %@ in %@", NSStringFromSelector([anInvocation selector]), [self class]);
+}
+
+@end
+
+@interface CAMetalLayer : NSObject
+@end
+
+@implementation CAMetalLayer
+
+- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector
+{
+ return [NSMethodSignature signatureWithObjCTypes: "v@:"];
+}
+
+- (void)forwardInvocation:(NSInvocation *)anInvocation
+{
+ NSLog(@"Stub called: %@ in %@", NSStringFromSelector([anInvocation selector]), [self class]);
+}
+
+@end
+
+@interface CARenderer : NSObject
+@end
+
+@implementation CARenderer
+
+- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector
+{
+ return [NSMethodSignature signatureWithObjCTypes: "v@:"];
+}
+
+- (void)forwardInvocation:(NSInvocation *)anInvocation
+{
+ NSLog(@"Stub called: %@ in %@", NSStringFromSelector([anInvocation selector]), [self class]);
+}
+
+@end
+
+@interface CAShapeLayer : NSObject
+@end
+
+@implementation CAShapeLayer
+
+- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector
+{
+ return [NSMethodSignature signatureWithObjCTypes: "v@:"];
+}
+
+- (void)forwardInvocation:(NSInvocation *)anInvocation
+{
+ NSLog(@"Stub called: %@ in %@", NSStringFromSelector([anInvocation selector]), [self class]);
+}
+
+@end
+
+@interface CASpringAnimation : NSObject
+@end
+
+@implementation CASpringAnimation
+
+- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector
+{
+ return [NSMethodSignature signatureWithObjCTypes: "v@:"];
+}
+
+- (void)forwardInvocation:(NSInvocation *)anInvocation
+{
+ NSLog(@"Stub called: %@ in %@", NSStringFromSelector([anInvocation selector]), [self class]);
+}
+
+@end
+
+@interface CATextLayer : NSObject
+@end
+
+@implementation CATextLayer
+
+- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector
+{
+ return [NSMethodSignature signatureWithObjCTypes: "v@:"];
+}
+
+- (void)forwardInvocation:(NSInvocation *)anInvocation
+{
+ NSLog(@"Stub called: %@ in %@", NSStringFromSelector([anInvocation selector]), [self class]);
+}
+
+@end
+
+@interface CATransaction : NSObject
+@end
+
+@implementation CATransaction
+
+- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector
+{
+ return [NSMethodSignature signatureWithObjCTypes: "v@:"];
+}
+
+- (void)forwardInvocation:(NSInvocation *)anInvocation
+{
+ NSLog(@"Stub called: %@ in %@", NSStringFromSelector([anInvocation selector]), [self class]);
+}
+
+@end
+
+@interface CATransformLayer : NSObject
+@end
+
+@implementation CATransformLayer
+
+- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector
+{
+ return [NSMethodSignature signatureWithObjCTypes: "v@:"];
+}
+
+- (void)forwardInvocation:(NSInvocation *)anInvocation
+{
+ NSLog(@"Stub called: %@ in %@", NSStringFromSelector([anInvocation selector]), [self class]);
+}
+
+@end
+
+@interface CATransition : NSObject
+@end
+
+@implementation CATransition
+
+- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector
+{
+ return [NSMethodSignature signatureWithObjCTypes: "v@:"];
+}
+
+- (void)forwardInvocation:(NSInvocation *)anInvocation
+{
+ NSLog(@"Stub called: %@ in %@", NSStringFromSelector([anInvocation selector]), [self class]);
+}
+
+@end
+
diff --git a/src/frameworks/dev-stubs/QuartzCore/src/main.m b/src/frameworks/dev-stubs/QuartzCore/src/main.m
new file mode 100644
index 000000000..de59420a4
--- /dev/null
+++ b/src/frameworks/dev-stubs/QuartzCore/src/main.m
@@ -0,0 +1,135 @@
+/*
+ * This file is part of Darling.
+ *
+ * Copyright (C) 2023 Darling Developers
+ *
+ * Darling is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Darling is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Darling. If not, see .
+ */
+
+#import
+
+@interface NSString : NSObject
+@end
+
+#ifdef __LP64__
+ typedef double CGFloat;
+#else
+ typedef float CGFloat;
+#endif
+
+typedef struct {
+ CGFloat m11, m12, m13, m14;
+ CGFloat m21, m22, m23, m24;
+ CGFloat m31, m32, m33, m34;
+ CGFloat m41, m42, m43, m44;
+} CATransform3D;
+
+#include
+#include
+
+static int verbose = 0;
+
+__attribute__((constructor))
+static void initme(void) {
+ verbose = getenv("STUB_VERBOSE") != NULL;
+}
+
+void __simple_kprintf(const char* format, ...) __attribute__((format(printf, 1, 2)));
+
+#define LOG_FUNC __simple_kprintf
+
+const CATransform3D CATransform3DIdentity = {1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1};
+NSString *const kCAAlignmentCenter = @"kCAAlignmentCenter";
+NSString *const kCAAlignmentLeft = @"kCAAlignmentLeft";
+NSString *const kCAAlignmentRight = @"kCAAlignmentRight";
+NSString *const kCAAnimationCubic = @"kCAAnimationCubic";
+NSString *const kCAAnimationCubicPaced = @"kCAAnimationCubicPaced";
+NSString *const kCAAnimationLinear = @"kCAAnimationLinear";
+NSString *const kCAFillModeBoth = @"kCAFillModeBoth";
+NSString *const kCAFillModeForwards = @"kCAFillModeForwards";
+NSString *const kCAFillRuleEvenOdd = @"kCAFillRuleEvenOdd";
+NSString *const kCAFilterColorMatrix = @"kCAFilterColorMatrix";
+NSString *const kCAFilterLinear = @"kCAFilterLinear";
+NSString *const kCAFilterNearest = @"kCAFilterNearest";
+NSString *const kCAFilterTrilinear = @"kCAFilterTrilinear";
+NSString *const kCAGravityCenter = @"kCAGravityCenter";
+NSString *const kCAGravityLeft = @"kCAGravityLeft";
+NSString *const kCAGravityResize = @"kCAGravityResize";
+NSString *const kCAGravityResizeAspect = @"kCAGravityResizeAspect";
+NSString *const kCAGravityResizeAspectFill = @"kCAGravityResizeAspectFill";
+NSString *const kCAGravityTopLeft = @"kCAGravityTopLeft";
+NSString *const kCALineCapSquare = @"kCALineCapSquare";
+NSString *const kCAMediaTimingFunctionEaseIn = @"kCAMediaTimingFunctionEaseIn";
+NSString *const kCAMediaTimingFunctionEaseInEaseOut = @"kCAMediaTimingFunctionEaseInEaseOut";
+NSString *const kCAMediaTimingFunctionEaseOut = @"kCAMediaTimingFunctionEaseOut";
+NSString *const kCAMediaTimingFunctionLinear = @"kCAMediaTimingFunctionLinear";
+NSString *const kCARendererColorSpace = @"kCARendererColorSpace";
+NSString *const kCATransactionDisableActions = @"kCATransactionDisableActions";
+NSString *const kCATransitionFade = @"kCATransitionFade";
+NSString *const kCATransitionFromBottom = @"kCATransitionFromBottom";
+NSString *const kCATransitionFromLeft = @"kCATransitionFromLeft";
+NSString *const kCATransitionFromRight = @"kCATransitionFromRight";
+NSString *const kCATransitionFromTop = @"kCATransitionFromTop";
+NSString *const kCATransitionMoveIn = @"kCATransitionMoveIn";
+NSString *const kCATransitionPush = @"kCATransitionPush";
+NSString *const kCATransitionReveal = @"kCATransitionReveal";
+NSString *const kCATruncationEnd = @"kCATruncationEnd";
+NSString *const kCATruncationMiddle = @"kCATruncationMiddle";
+
+void* CACurrentMediaTime(void) {
+ if (verbose) LOG_FUNC("STUB: CACurrentMediaTime called\n");
+ return NULL;
+};
+
+void* CATransform3DConcat(void) {
+ if (verbose) LOG_FUNC("STUB: CATransform3DConcat called\n");
+ return NULL;
+};
+
+void* CATransform3DInvert(void) {
+ if (verbose) LOG_FUNC("STUB: CATransform3DInvert called\n");
+ return NULL;
+};
+
+void* CATransform3DMakeRotation(void) {
+ if (verbose) LOG_FUNC("STUB: CATransform3DMakeRotation called\n");
+ return NULL;
+};
+
+void* CATransform3DMakeScale(void) {
+ if (verbose) LOG_FUNC("STUB: CATransform3DMakeScale called\n");
+ return NULL;
+};
+
+void* CATransform3DMakeTranslation(void) {
+ if (verbose) LOG_FUNC("STUB: CATransform3DMakeTranslation called\n");
+ return NULL;
+};
+
+void* CATransform3DRotate(void) {
+ if (verbose) LOG_FUNC("STUB: CATransform3DRotate called\n");
+ return NULL;
+};
+
+void* CATransform3DScale(void) {
+ if (verbose) LOG_FUNC("STUB: CATransform3DScale called\n");
+ return NULL;
+};
+
+void* CATransform3DTranslate(void) {
+ if (verbose) LOG_FUNC("STUB: CATransform3DTranslate called\n");
+ return NULL;
+};
+
+
diff --git a/src/native/CMakeLists.txt b/src/native/CMakeLists.txt
index f785b60e7..46150659c 100644
--- a/src/native/CMakeLists.txt
+++ b/src/native/CMakeLists.txt
@@ -2,19 +2,21 @@ project(native)
include(wrap_elf)
-wrap_elf(FreeType libfreetype.so)
-wrap_elf(jpeg libjpeg.so)
-wrap_elf(png libpng.so)
-wrap_elf(tiff libtiff.so)
-wrap_elf(gif libgif.so)
-wrap_elf(X11 libX11.so)
-wrap_elf(Xext libXext.so)
-wrap_elf(XRandR libXrandr.so)
-wrap_elf(Xcursor libXcursor.so)
-wrap_elf(xkbfile libxkbfile.so)
-wrap_elf(cairo libcairo.so)
-wrap_elf(EGL libEGL.so)
-wrap_elf(fontconfig libfontconfig.so)
-wrap_elf(dbus libdbus-1.so)
-wrap_elf(GL libGL.so "/System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries")
-wrap_elf(GLU libGLU.so "/System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries")
+if (COMPONENT_gui)
+ wrap_elf(FreeType libfreetype.so)
+ wrap_elf(jpeg libjpeg.so)
+ wrap_elf(png libpng.so)
+ wrap_elf(tiff libtiff.so)
+ wrap_elf(gif libgif.so)
+ wrap_elf(EGL libEGL.so)
+ wrap_elf(fontconfig libfontconfig.so)
+ wrap_elf(X11 libX11.so)
+ wrap_elf(Xext libXext.so)
+ wrap_elf(XRandR libXrandr.so)
+ wrap_elf(Xcursor libXcursor.so)
+ wrap_elf(xkbfile libxkbfile.so)
+ wrap_elf(cairo libcairo.so)
+ wrap_elf(dbus libdbus-1.so)
+ wrap_elf(GL libGL.so "/System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries")
+ wrap_elf(GLU libGLU.so "/System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries")
+endif()
diff --git a/src/private-frameworks/CMakeLists.txt b/src/private-frameworks/CMakeLists.txt
index 09749a295..a4314a716 100644
--- a/src/private-frameworks/CMakeLists.txt
+++ b/src/private-frameworks/CMakeLists.txt
@@ -1,49 +1,68 @@
project(private-frameworks)
-add_subdirectory(AppleFSCompression)
-add_subdirectory(AppleSauce)
-add_subdirectory(AppleSystemInfo)
-add_subdirectory(AssertionServices)
-add_subdirectory(AssetCacheServices)
-add_subdirectory(AssistantServices)
-add_subdirectory(AuthKit)
-add_subdirectory(AuthKitUI)
-add_subdirectory(Bom)
-add_subdirectory(ConfigurationProfiles)
-add_subdirectory(CoreAnalytics)
-add_subdirectory(CoreSymbolication)
-add_subdirectory(CoreUI)
-add_subdirectory(CoreUtils)
-add_subdirectory(CrashReporterSupport)
-add_subdirectory(DataDetectors)
-add_subdirectory(DataDetectorsCore)
-add_subdirectory(DataDetectorsNaturalLanguage)
-add_subdirectory(DebugSymbols)
-add_subdirectory(DeviceLink)
-add_subdirectory(DiskImages)
-add_subdirectory(DiskManagement)
-add_subdirectory(Espresso)
-add_subdirectory(InternationalSupport)
-add_subdirectory(IOPlatformPluginFamily)
-add_subdirectory(kperf)
-add_subdirectory(LoggingSupport)
-add_subdirectory(login)
-add_subdirectory(MobileAsset)
-add_subdirectory(MobileDevice)
-add_subdirectory(NetworkStatistics)
-add_subdirectory(PackageKit)
-add_subdirectory(PerformanceAnalysis)
-add_subdirectory(PlugInKit)
-add_subdirectory(PowerLog)
-add_subdirectory(ProtocolBuffer)
-add_subdirectory(ServerInformation)
-add_subdirectory(SkyLight)
-add_subdirectory(Spotlight)
-add_subdirectory(SpotlightDaemon)
-add_subdirectory(SpotlightIndex)
-add_subdirectory(SpotlightReceiver)
-add_subdirectory(SpotlightServerKit)
-add_subdirectory(SpotlightServices)
-add_subdirectory(StreamingZip)
-add_subdirectory(TrustedPeers)
-add_subdirectory(ViewBridge)
+# this is mainly for frameworks that are required for Security,
+# since Security is built for both CLI and GUI
+if (COMPONENT_cli OR COMPONENT_dev_gui_common)
+ # these are also stubs, but they're needed for Security
+ add_subdirectory(AppleFSCompression)
+ add_subdirectory(AppleSystemInfo)
+ add_subdirectory(AuthKit)
+ add_subdirectory(ConfigurationProfiles)
+ add_subdirectory(CrashReporterSupport)
+ add_subdirectory(login)
+ add_subdirectory(MobileAsset)
+ add_subdirectory(ProtocolBuffer)
+ add_subdirectory(TrustedPeers)
+
+ # required for dtrace and IOKitTools
+ add_subdirectory(CoreSymbolication)
+endif()
+
+# this is mainly for anything that Xcode requires to run on the CLI
+if (COMPONENT_dev_gui_common)
+ add_subdirectory(DebugSymbols)
+endif()
+
+# same here, except this is for stubs that Xcode needs
+if (COMPONENT_dev_gui_stubs_common)
+ add_subdirectory(AppleSauce)
+ add_subdirectory(AssetCacheServices)
+ add_subdirectory(AssistantServices)
+ add_subdirectory(AuthKitUI)
+ add_subdirectory(CoreAnalytics)
+ add_subdirectory(CoreUI)
+ add_subdirectory(DataDetectors)
+ add_subdirectory(DataDetectorsCore)
+ add_subdirectory(DataDetectorsNaturalLanguage)
+ add_subdirectory(DeviceLink)
+ add_subdirectory(DiskImages)
+ add_subdirectory(DiskManagement)
+ add_subdirectory(Espresso)
+ add_subdirectory(IOPlatformPluginFamily)
+ add_subdirectory(kperf)
+ add_subdirectory(LoggingSupport)
+ add_subdirectory(MobileDevice)
+ add_subdirectory(NetworkStatistics)
+ add_subdirectory(PackageKit)
+ add_subdirectory(PlugInKit)
+ add_subdirectory(PowerLog)
+ add_subdirectory(SkyLight)
+ add_subdirectory(SpotlightIndex)
+ add_subdirectory(StreamingZip)
+ add_subdirectory(ViewBridge)
+endif()
+
+# this is for all the other stubbed frameworks
+if (COMPONENT_gui_stubs)
+ add_subdirectory(AssertionServices)
+ add_subdirectory(Bom)
+ add_subdirectory(CoreUtils)
+ add_subdirectory(InternationalSupport)
+ add_subdirectory(PerformanceAnalysis)
+ add_subdirectory(ServerInformation)
+ add_subdirectory(Spotlight)
+ add_subdirectory(SpotlightDaemon)
+ add_subdirectory(SpotlightReceiver)
+ add_subdirectory(SpotlightServerKit)
+ add_subdirectory(SpotlightServices)
+endif()
diff --git a/src/tools/CMakeLists.txt b/src/tools/CMakeLists.txt
index 545f1acc5..cf49a8c46 100644
--- a/src/tools/CMakeLists.txt
+++ b/src/tools/CMakeLists.txt
@@ -1,15 +1,21 @@
project(tools)
-add_darling_executable(sw_vers sw_vers.c)
-add_darling_executable(sudo sudo.c)
-add_darling_executable(codesign codesign.c)
-add_darling_executable(open open.m)
-add_darling_executable(dsmemberutil dsmemberutil.c)
-add_darling_executable(softwareupdate softwareupdate.c)
-add_darling_executable(spctl spctl.c)
-
-install(TARGETS sw_vers sudo codesign dsmemberutil open DESTINATION libexec/darling/usr/bin)
-install(TARGETS softwareupdate spctl DESTINATION libexec/darling/usr/sbin)
-
-target_link_libraries(sw_vers CoreFoundation)
-target_link_libraries(open CoreServices Foundation AppKit)
+if (COMPONENT_cli)
+ add_darling_executable(sw_vers sw_vers.c)
+ add_darling_executable(sudo sudo.c)
+ add_darling_executable(codesign codesign.c)
+ add_darling_executable(dsmemberutil dsmemberutil.c)
+ add_darling_executable(softwareupdate softwareupdate.c)
+ add_darling_executable(spctl spctl.c)
+
+ install(TARGETS sw_vers sudo codesign dsmemberutil DESTINATION libexec/darling/usr/bin)
+ install(TARGETS softwareupdate spctl DESTINATION libexec/darling/usr/sbin)
+
+ target_link_libraries(sw_vers CoreFoundation)
+endif()
+
+if (COMPONENT_gui)
+ add_darling_executable(open open.m)
+ target_link_libraries(open CoreServices Foundation AppKit)
+ install(TARGETS open DESTINATION libexec/darling/usr/bin)
+endif()