anotherim-desktop/main/CMakeLists.txt

281 lines
10 KiB
CMake
Raw Permalink Normal View History

2017-04-07 09:09:47 +00:00
set(GETTEXT_PACKAGE "dino")
find_package(Gettext)
include(${GETTEXT_USE_FILE})
gettext_compile(${GETTEXT_PACKAGE} SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/po TARGET_NAME ${GETTEXT_PACKAGE}-translations)
find_package(GTK4 REQUIRED)
find_packages(MAIN_PACKAGES REQUIRED
Gee
2019-12-22 03:10:53 +00:00
GLib
GModule
GObject
2022-02-14 13:55:59 +00:00
GTK4
2019-12-22 03:10:53 +00:00
ICU
2022-09-08 08:31:37 +00:00
Adwaita
2017-03-10 18:34:56 +00:00
)
2017-03-11 22:52:12 +00:00
set(RESOURCE_LIST
dino-conversation-list-placeholder-arrow.svg
2022-10-11 11:37:48 +00:00
icons/scalable/actions/dino-emoticon-add-symbolic.svg
icons/scalable/actions/dino-qr-code-symbolic.svg
2022-05-14 12:45:59 +00:00
2022-08-20 19:23:35 +00:00
icons/scalable/apps/im.dino.Dino.svg
2022-02-14 13:55:59 +00:00
icons/scalable/apps/im.dino.Dino-symbolic.svg
icons/scalable/devices/dino-device-desktop-symbolic.svg
icons/scalable/devices/dino-device-phone-symbolic.svg
icons/scalable/devices/dino-phone-hangup-symbolic.svg
icons/scalable/devices/dino-phone-in-talk-symbolic.svg
icons/scalable/devices/dino-phone-missed-symbolic.svg
icons/scalable/devices/dino-phone-ring-symbolic.svg
icons/scalable/devices/dino-phone-symbolic.svg
icons/scalable/mimetypes/dino-file-document-symbolic.svg
icons/scalable/mimetypes/dino-file-download-symbolic.svg
icons/scalable/mimetypes/dino-file-image-symbolic.svg
icons/scalable/mimetypes/dino-file-music-symbolic.svg
icons/scalable/mimetypes/dino-file-symbolic.svg
icons/scalable/mimetypes/dino-file-table-symbolic.svg
icons/scalable/mimetypes/dino-file-video-symbolic.svg
icons/scalable/status/dino-bell-large-none-symbolic.svg
icons/scalable/status/dino-bell-large-symbolic.svg
icons/scalable/status/dino-block-symbolic.svg
2022-02-14 13:55:59 +00:00
icons/scalable/status/dino-double-tick-symbolic.svg
icons/scalable/status/dino-party-popper-symbolic.svg
2022-02-14 13:55:59 +00:00
icons/scalable/status/dino-security-high-symbolic.svg
2022-08-20 19:23:35 +00:00
icons/scalable/status/dino-status-away.svg
icons/scalable/status/dino-status-chat.svg
icons/scalable/status/dino-status-dnd.svg
icons/scalable/status/dino-status-online.svg
2022-02-14 13:55:59 +00:00
icons/scalable/status/dino-tick-symbolic.svg
icons/scalable/status/dino-video-off-symbolic.svg
icons/scalable/status/dino-video-symbolic.svg
2019-08-06 14:47:06 +00:00
2017-03-11 22:52:12 +00:00
add_conversation/add_contact_dialog.ui
add_conversation/add_groupchat_dialog.ui
add_conversation/conference_details_fragment.ui
add_conversation/list_row.ui
add_conversation/select_jid_fragment.ui
2021-03-19 22:09:56 +00:00
call_widget.ui
2017-03-11 22:52:12 +00:00
chat_input.ui
2023-09-24 17:54:04 +00:00
conversation_details.ui
2022-02-14 13:55:59 +00:00
conversation_item_widget.ui
2017-03-11 22:52:12 +00:00
conversation_list_titlebar.ui
conversation_list_titlebar_csd.ui
conversation_row.ui
conversation_view.ui
2020-04-10 19:08:23 +00:00
file_default_widget.ui
2020-04-22 13:44:12 +00:00
file_send_overlay.ui
2018-07-09 22:31:39 +00:00
global_search.ui
gtk/help-overlay.ui
2023-09-24 17:54:04 +00:00
join_room_dialog.ui
join_room_dialog1.ui
join_room_dialog2.ui
conversation_content_view/item_metadata_header.ui
conversation_content_view/view.ui
2017-03-11 22:52:12 +00:00
manage_accounts/account_row.ui
manage_accounts/add_account_dialog.ui
manage_accounts/dialog.ui
menu_add.ui
menu_app.ui
menu_conversation.ui
menu_encryption.ui
message_item_widget_edit_mode.ui
2017-03-11 22:52:12 +00:00
occupant_list.ui
occupant_list_item.ui
quote.ui
search_autocomplete.ui
2017-03-11 22:52:12 +00:00
settings_dialog.ui
2018-07-04 21:38:28 +00:00
unified_main_content.ui
unified_window_placeholder.ui
2017-08-29 19:55:15 +00:00
2023-09-24 17:54:04 +00:00
conversation_details.css
2023-01-08 20:40:09 +00:00
style.css
style-dark.css
2017-03-11 22:52:12 +00:00
)
compile_gresources(
MAIN_GRESOURCES_TARGET
MAIN_GRESOURCES_XML
TARGET ${CMAKE_CURRENT_BINARY_DIR}/resources/resources.c
TYPE EMBED_C
RESOURCES ${RESOURCE_LIST}
PREFIX /im/dino/Dino
2017-03-11 22:52:12 +00:00
SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/data
)
2017-04-15 20:02:05 +00:00
unset(MAIN_EXTRA_OPTIONS)
unset(MAIN_EXTRA_PACKAGES)
set(MAIN_EXTRA_OPTIONS ${MAIN_EXTRA_OPTIONS} --vapidir=${CMAKE_CURRENT_SOURCE_DIR}/vapi)
2017-04-15 20:02:05 +00:00
set(MAIN_DEFINITIONS)
if(GTK4_VERSION VERSION_GREATER_EQUAL "4.6")
set(MAIN_DEFINITIONS ${MAIN_DEFINITIONS} GTK_4_6)
endif()
2023-01-24 17:57:04 +00:00
if(GTK4_VERSION VERSION_GREATER_EQUAL "4.8")
set(MAIN_DEFINITIONS ${MAIN_DEFINITIONS} GTK_4_8)
endif()
if(GTK4_VERSION VERSION_GREATER_EQUAL "4.12")
set(MAIN_DEFINITIONS ${MAIN_DEFINITIONS} GTK_4_12)
endif()
if(Adwaita_VERSION VERSION_GREATER_EQUAL "1.2")
set(MAIN_DEFINITIONS ${MAIN_DEFINITIONS} Adw_1_2)
endif()
2023-09-24 17:54:04 +00:00
if(Adwaita_VERSION VERSION_GREATER_EQUAL "1.3")
set(MAIN_DEFINITIONS ${MAIN_DEFINITIONS} Adw_1_3)
endif()
if(Adwaita_VERSION VERSION_GREATER_EQUAL "1.4")
set(MAIN_DEFINITIONS ${MAIN_DEFINITIONS} Adw_1_4)
endif()
if(VALA_VERSION VERSION_GREATER_EQUAL "0.56.5" AND VALA_VERSION VERSION_LESS "0.58")
set(MAIN_DEFINITIONS ${MAIN_DEFINITIONS} VALA_0_56_GREATER_5)
endif()
if(VALA_VERSION VERSION_GREATER_EQUAL "0.56.11" AND VALA_VERSION VERSION_LESS "0.58")
set(MAIN_DEFINITIONS ${MAIN_DEFINITIONS} VALA_0_56_GREATER_11)
endif()
if(VALA_VERSION VERSION_EQUAL "0.56.11")
set(MAIN_DEFINITIONS ${MAIN_DEFINITIONS} VALA_0_56_11)
endif()
if(VALA_VERSION VERSION_EQUAL "0.56.12")
set(MAIN_DEFINITIONS ${MAIN_DEFINITIONS} VALA_0_56_12)
endif()
2017-03-10 18:34:56 +00:00
vala_precompile(MAIN_VALA_C
SOURCES
src/main.vala
2017-03-11 22:52:12 +00:00
src/ui/application.vala
2019-08-02 01:15:12 +00:00
src/ui/conversation_list_titlebar.vala
src/ui/conversation_view.vala
src/ui/conversation_view_controller.vala
2020-04-22 13:44:12 +00:00
src/ui/file_send_overlay.vala
2019-08-02 01:15:12 +00:00
src/ui/global_search.vala
src/ui/notifier_freedesktop.vala
src/ui/notifier_gnotifications.vala
2019-08-02 01:15:12 +00:00
src/ui/settings_dialog.vala
2020-02-21 02:06:27 +00:00
src/ui/main_window.vala
src/ui/main_window_controller.vala
2019-08-02 01:15:12 +00:00
src/ui/add_conversation/add_conference_dialog.vala
src/ui/add_conversation/add_contact_dialog.vala
src/ui/add_conversation/add_groupchat_dialog.vala
src/ui/add_conversation/conference_details_fragment.vala
src/ui/add_conversation/conference_list.vala
2017-03-11 22:52:12 +00:00
src/ui/add_conversation/list_row.vala
src/ui/add_conversation/roster_list.vala
src/ui/add_conversation/select_contact_dialog.vala
2017-03-11 22:52:12 +00:00
src/ui/add_conversation/select_jid_fragment.vala
2019-08-02 01:15:12 +00:00
2021-03-19 22:09:56 +00:00
src/ui/call_window/audio_settings_popover.vala
src/ui/call_window/call_bottom_bar.vala
2021-11-04 16:35:11 +00:00
src/ui/call_window/call_connection_details_window.vala
src/ui/call_window/call_encryption_button.vala
2021-03-19 22:09:56 +00:00
src/ui/call_window/call_window.vala
src/ui/call_window/call_window_controller.vala
2021-11-04 16:35:11 +00:00
src/ui/call_window/participant_widget.vala
2021-03-19 22:09:56 +00:00
src/ui/call_window/video_settings_popover.vala
2022-02-14 13:55:59 +00:00
src/ui/conversation_content_view/call_widget.vala
src/ui/conversation_content_view/chat_state_populator.vala
src/ui/conversation_content_view/content_populator.vala
src/ui/conversation_content_view/conversation_item_skeleton.vala
src/ui/conversation_content_view/conversation_view.vala
src/ui/conversation_content_view/date_separator_populator.vala
src/ui/conversation_content_view/file_default_widget.vala
src/ui/conversation_content_view/file_image_widget.vala
src/ui/conversation_content_view/file_widget.vala
src/ui/conversation_content_view/item_actions.vala
2022-02-14 13:55:59 +00:00
src/ui/conversation_content_view/message_widget.vala
src/ui/conversation_content_view/quote_widget.vala
2022-10-11 11:37:48 +00:00
src/ui/conversation_content_view/reactions_widget.vala
2022-02-14 13:55:59 +00:00
src/ui/conversation_content_view/subscription_notification.vala
src/ui/conversation_content_view/unread_indicator_populator.vala
2022-02-14 13:55:59 +00:00
src/ui/chat_input/chat_input_controller.vala
src/ui/chat_input/chat_text_view.vala
src/ui/chat_input/encryption_button.vala
2017-03-23 23:15:00 +00:00
src/ui/chat_input/occupants_tab_completer.vala
src/ui/chat_input/smiley_converter.vala
src/ui/chat_input/view.vala
2019-08-02 01:15:12 +00:00
2017-05-30 20:47:16 +00:00
src/ui/contact_details/settings_provider.vala
src/ui/contact_details/permissions_provider.vala
2023-09-24 17:54:04 +00:00
src/ui/conversation_details.vala
2019-08-02 01:15:12 +00:00
2019-04-12 15:43:47 +00:00
src/ui/conversation_selector/conversation_selector.vala
2022-02-14 13:55:59 +00:00
src/ui/conversation_selector/conversation_selector_row.vala
2019-08-02 01:15:12 +00:00
2021-03-19 22:09:56 +00:00
src/ui/conversation_titlebar/call_entry.vala
2017-08-02 15:29:55 +00:00
src/ui/conversation_titlebar/menu_entry.vala
src/ui/conversation_titlebar/occupants_entry.vala
2018-07-09 22:31:39 +00:00
src/ui/conversation_titlebar/search_entry.vala
2019-04-12 15:43:47 +00:00
src/ui/conversation_titlebar/conversation_titlebar.vala
2019-08-02 01:15:12 +00:00
2017-03-11 22:52:12 +00:00
src/ui/manage_accounts/account_row.vala
src/ui/manage_accounts/add_account_dialog.vala
src/ui/manage_accounts/dialog.vala
2019-08-02 01:15:12 +00:00
src/ui/occupant_menu/list.vala
src/ui/occupant_menu/list_row.vala
src/ui/occupant_menu/view.vala
2019-08-02 01:15:12 +00:00
src/ui/util/accounts_combo_box.vala
src/ui/util/config.vala
2018-08-19 22:27:02 +00:00
src/ui/util/data_forms.vala
2017-05-30 20:47:16 +00:00
src/ui/util/helper.vala
src/ui/util/label_hybrid.vala
src/ui/util/sizing_bin.vala
src/ui/util/size_request_box.vala
2023-01-24 17:57:04 +00:00
2023-01-24 17:59:46 +00:00
src/ui/widgets/avatar_picture.vala
2023-01-31 13:46:02 +00:00
src/ui/widgets/date_separator.vala
2023-01-24 17:57:04 +00:00
src/ui/widgets/fixed_ratio_picture.vala
src/ui/widgets/natural_size_increase.vala
2023-09-24 17:54:04 +00:00
src/view_model/conversation_details.vala
src/view_model/preferences_row.vala
src/windows/conversation_details.vala
2017-03-10 18:34:56 +00:00
CUSTOM_VAPIS
${CMAKE_BINARY_DIR}/exports/xmpp-vala.vapi
${CMAKE_BINARY_DIR}/exports/qlite.vapi
${CMAKE_BINARY_DIR}/exports/dino_internal.vapi
2017-03-10 18:34:56 +00:00
PACKAGES
${MAIN_PACKAGES}
2017-04-15 20:02:05 +00:00
${MAIN_EXTRA_PACKAGES}
2017-03-11 22:52:12 +00:00
GRESOURCES
${MAIN_GRESOURCES_XML}
DEFINITIONS
${MAIN_DEFINITIONS}
2017-04-15 20:02:05 +00:00
OPTIONS
${MAIN_EXTRA_OPTIONS}
2017-03-10 18:34:56 +00:00
)
2022-07-27 17:41:05 +00:00
add_definitions(${VALA_CFLAGS} -DGETTEXT_PACKAGE=\"${GETTEXT_PACKAGE}\" -DLOCALE_INSTALL_DIR=\"${LOCALE_INSTALL_DIR}\" -DG_LOG_DOMAIN="dino")
if(WIN32)
add_link_options("-Wl,--export-all-symbols")
set(CMAKE_RC_COMPILE_OBJECT "<CMAKE_RC_COMPILER> --use-temp-file -O coff <DEFINES> -i <SOURCE> -o <OBJECT>")
add_executable(dino ${MAIN_VALA_C} ${MAIN_GRESOURCES_TARGET} dino-info.rc)
else(WIN32)
add_executable(dino ${MAIN_VALA_C} ${MAIN_GRESOURCES_TARGET})
endif(WIN32)
add_dependencies(dino ${GETTEXT_PACKAGE}-translations)
target_include_directories(dino PRIVATE src)
target_link_libraries(dino libdino ${MAIN_PACKAGES})
set_target_properties(dino PROPERTIES ENABLE_EXPORTS TRUE)
if(WIN32)
target_link_libraries(dino -mwindows)
endif(WIN32)
install(TARGETS dino ${TARGET_INSTALL})
install(FILES data/im.dino.Dino.appdata.xml DESTINATION ${APPDATA_FILE_INSTALL_DIR})
install(FILES data/im.dino.Dino.desktop DESTINATION ${DESKTOP_FILE_INSTALL_DIR})
install(FILES data/im.dino.Dino.service DESTINATION ${SERVICE_FILE_INSTALL_DIR})
2022-08-20 19:23:35 +00:00
install(FILES data/icons/scalable/apps/im.dino.Dino.svg DESTINATION ${ICON_INSTALL_DIR}/hicolor/scalable/apps)
install(FILES data/icons/scalable/apps/im.dino.Dino-symbolic.svg DESTINATION ${ICON_INSTALL_DIR}/hicolor/symbolic/apps)