First pass at handling menus in wine.
This commit is contained in:
1 parent
cc6523e6fd
commit
0992ffee0d
9 files changed
+520
-18
No files matched your search
@@ -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}")
|
||||
Reference in new issue
Block a user