First pass at handling menus in wine.

This commit is contained in:
Storm Dragon committed 2026-10-09 15:45:18 -04:00
1 parent cc6523e6fd
commit 0992ffee0d
9 files changed
+520 -18

No files matched your search

+14
View File
@@ -7,6 +7,18 @@ set(WINE_ACCESS_INSTALL_DIR "${CMAKE_INSTALL_LIBEXECDIR}/cthulhu/wine" CACHE PAT
find_package(PkgConfig REQUIRED)
pkg_check_modules(GIO REQUIRED IMPORTED_TARGET gio-2.0)
find_program(WIDL_EXECUTABLE widl REQUIRED)
find_program(MINGW_C_COMPILER x86_64-w64-mingw32-gcc REQUIRED)
# A PE hook DLL can be loaded into ordinary Wine applications without any
# GLib dependencies. Keep it alongside the Winelib helper.
set(menu_hook "${CMAKE_CURRENT_BINARY_DIR}/wine-access-menu.dll")
add_custom_command(OUTPUT "${menu_hook}"
COMMAND "${MINGW_C_COMPILER}" -std=c11 -O2 -Wall -Wextra -shared
-static-libgcc -o "${menu_hook}" "${CMAKE_CURRENT_SOURCE_DIR}/menu_hook.c"
-luser32
DEPENDS menu_hook.c menu_bridge.h
VERBATIM)
add_custom_target(wine-access-menu ALL DEPENDS "${menu_hook}")
set(generated_dir "${CMAKE_CURRENT_BINARY_DIR}/generated")
set(generated_header "${generated_dir}/nvdaController.h")
@@ -21,6 +33,7 @@ add_custom_command(
VERBATIM)
add_executable(cthulhu-wine-access main.cpp "${generated_server}")
add_dependencies(cthulhu-wine-access wine-access-menu)
target_compile_features(cthulhu-wine-access PRIVATE cxx_std_20)
target_include_directories(cthulhu-wine-access PRIVATE "${generated_dir}")
target_link_libraries(cthulhu-wine-access PRIVATE
@@ -35,4 +48,5 @@ target_compile_options(cthulhu-wine-access PRIVATE
install(FILES
"${CMAKE_CURRENT_BINARY_DIR}/cthulhu-wine-access.exe"
"${CMAKE_CURRENT_BINARY_DIR}/cthulhu-wine-access.exe.so"
"${menu_hook}"
DESTINATION "${WINE_ACCESS_INSTALL_DIR}")