Skip to content

Commit

Permalink
feat(setup)!: rewrite ibus-setup-chewing using libadwaita
Browse files Browse the repository at this point in the history
  • Loading branch information
kanru committed Feb 4, 2024
1 parent 9449232 commit b29b405
Show file tree
Hide file tree
Showing 28 changed files with 813 additions and 2,258 deletions.
2 changes: 2 additions & 0 deletions .clang-format
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
BasedOnStyle: LLVM
IndentWidth: 4
12 changes: 2 additions & 10 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -34,8 +34,6 @@ enable_testing()
include(GNUInstallDirs)

option(GNOME_SHELL "Enable GNOME Shell support" ON)
option(GCONF2_SUPPORT "Enable GConf2 support" OFF)
option(GSETTINGS_SUPPORT "Enable GSettings support" ON)

find_package(PkgConfig REQUIRED)
pkg_check_modules(IBUS REQUIRED IMPORTED_TARGET ibus-1.0>=1.3)
Expand All @@ -53,14 +51,10 @@ pkg_check_modules(GTK4 REQUIRED IMPORTED_TARGET gtk4)
pkg_check_modules(LIBADWAITA REQUIRED IMPORTED_TARGET libadwaita-1)
pkg_check_modules(X11 REQUIRED IMPORTED_TARGET x11)

find_program(GLIB_COMPILE_RESOURCES NAMES glib-compile-resources REQUIRED)

set(CMAKE_C_STANDARD 99)
add_compile_definitions(_XOPEN_SOURCE)
if(GSETTINGS_SUPPORT)
add_compile_definitions(USE_GSETTINGS)
endif()
if(GCONF2_SUPPORT)
add_compile_definitions(USE_GCONF2)
endif()

# Directory that store ibus-chewing icons
add_compile_definitions(PRJ_ICON_DIR="${CMAKE_INSTALL_DATADIR}/ibus-chewing/icons")
Expand All @@ -73,8 +67,6 @@ add_compile_definitions(
PROJECT_SCHEMA_BASE=/desktop/ibus/engine
PROJECT_SCHEMA_SECTION=chewing
PROJECT_SCHEMA_DIR=/desktop/ibus/engine/chewing
PROJECT_GCONF2_SCHEMA_SECTION=Chewing
PROJECT_GCONF2_SCHEMA_DIR=/desktop/ibus/engine/Chewing
PROJECT_SCHEMA_PATH=/desktop/ibus/engine/chewing/
)

Expand Down
86 changes: 51 additions & 35 deletions src/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -23,20 +23,9 @@ target_link_libraries(common PUBLIC
)

add_library(gui-core STATIC
maker-dialog.c
maker-dialog.h
maker-dialog-private.h
IBusConfigBackend.c
IBusConfigBackend.h
MakerDialogWidget.c
MakerDialogWidget.h
GSettingsBackend.c
GSettingsBackend.h
)
if(GSETTINGS_SUPPORT)
target_sources(gui-core PRIVATE
GSettingsBackend.c
GSettingsBackend.h
)
endif()
target_link_libraries(gui-core PUBLIC
common
PkgConfig::GLIB2
Expand All @@ -47,8 +36,37 @@ target_link_libraries(gui-core PUBLIC
PkgConfig::CHEWING
)

add_executable(ibus-setup-chewing ibus-setup-chewing.c)
target_link_libraries(ibus-setup-chewing gui-core)
add_custom_command(
OUTPUT ibus-setup-chewing-window-ui.c
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/setup
COMMAND ${GLIB_COMPILE_RESOURCES}
ARGS
--generate
--target=${CMAKE_CURRENT_BINARY_DIR}/ibus-setup-chewing-window-ui.c
ibus-setup-chewing.gresource.xml
VERBATIM
MAIN_DEPENDENCY setup/ibus-setup-chewing.gresource.xml
DEPENDS
setup/ibus-setup-chewing-window.ui
)
set_source_files_properties(
${CMAKE_CURRENT_BINARY_DIR}/ibus-setup-chewing-window-ui.c
PROPERTIES GENERATED TRUE
)
add_executable(ibus-setup-chewing
setup/ibus-setup-chewing-application.c
setup/ibus-setup-chewing-application.h
setup/ibus-setup-chewing-window.c
setup/ibus-setup-chewing-window.h
setup/main.c
${CMAKE_CURRENT_BINARY_DIR}/ibus-setup-chewing-window-ui.c
)
target_compile_definitions(ibus-setup-chewing PRIVATE
GETTEXT_PACKAGE="ibus-setup-chewing"
LOCALEDIR="${CMAKE_INSTALL_LOCALEDIR}"
)
target_include_directories(ibus-setup-chewing PRIVATE setup)
target_link_libraries(ibus-setup-chewing PkgConfig::LIBADWAITA)

add_executable(ibus-engine-chewing
ibus-chewing-engine.c
Expand All @@ -70,30 +88,28 @@ target_include_directories(ibus-engine-chewing

target_link_libraries(ibus-engine-chewing gui-core)

if(GSETTINGS_SUPPORT)
set(PROJECT_GSCHEMA_XML ${PROJECT_SCHEMA_ID}.gschema.xml)
set(GSETTINGS_SCHEMAS_DIR ${CMAKE_INSTALL_DATADIR}/glib-2.0/schemas)
set(PROJECT_GSCHEMA_XML ${PROJECT_SCHEMA_ID}.gschema.xml)
set(GSETTINGS_SCHEMAS_DIR ${CMAKE_INSTALL_DATADIR}/glib-2.0/schemas)

add_executable(generate-gsettings-schemas
GSettingsBackend.c
GSettingsBackend.h
generate-gsettings-schemas.c
)
target_link_libraries(generate-gsettings-schemas common)
# add_executable(generate-gsettings-schemas
# GSettingsBackend.c
# GSettingsBackend.h
# generate-gsettings-schemas.c
# )
# target_link_libraries(generate-gsettings-schemas common)

install(FILES ${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_GSCHEMA_XML}
DESTINATION ${GSETTINGS_SCHEMAS_DIR}
)
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_GSCHEMA_XML}
DESTINATION ${GSETTINGS_SCHEMAS_DIR}
)

add_custom_target(schemas_gsettings ALL
COMMAND G_MESSAGES_DEBUG=all "${CMAKE_CURRENT_BINARY_DIR}/generate-gsettings-schemas" -v 5 "${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_GSCHEMA_XML}"
COMMAND G_MESSAGES_DEBUG=all glib-compile-schemas "${CMAKE_CURRENT_BINARY_DIR}"
COMMENT "Generating gsettings schemas ${PROJECT_GSCHEMA_XML}"
VERBATIM
)
# add_custom_target(schemas_gsettings ALL
# COMMAND G_MESSAGES_DEBUG=all "${CMAKE_CURRENT_BINARY_DIR}/generate-gsettings-schemas" -v 5 "${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_GSCHEMA_XML}"
# COMMAND G_MESSAGES_DEBUG=all glib-compile-schemas "${CMAKE_CURRENT_BINARY_DIR}"
# COMMENT "Generating gsettings schemas ${PROJECT_GSCHEMA_XML}"
# VERBATIM
# )

add_dependencies(schemas_gsettings generate-gsettings-schemas)
endif()
# add_dependencies(schemas_gsettings generate-gsettings-schemas)

install(TARGETS ibus-engine-chewing ibus-setup-chewing
DESTINATION ${CMAKE_INSTALL_LIBEXECDIR})
193 changes: 0 additions & 193 deletions src/GConf2Backend.c

This file was deleted.

46 changes: 0 additions & 46 deletions src/GConf2Backend.h

This file was deleted.

Loading

0 comments on commit b29b405

Please sign in to comment.