diff --git a/.arcconfig b/.arcconfig new file mode 100644 index 0000000..377c7ec --- /dev/null +++ b/.arcconfig @@ -0,0 +1,3 @@ +{ + "phabricator.uri" : "https://phabricator.kde.org/" +} diff --git a/CMakeLists.txt b/CMakeLists.txt index 550775e..43c8eab 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,78 +1,80 @@ project(Knights) cmake_minimum_required (VERSION 3.5 FATAL_ERROR) set(CMAKE_CXX_STANDARD 11) set(CMAKE_CXX_STANDARD_REQUIRED ON) set(CMAKE_CXX_EXTENSIONS OFF) set (QT_MIN_VERSION "5.7.0") set (KF5_MIN_VERSION "5.30.0") find_package(ECM ${KF5_MIN_VERSION} REQUIRED CONFIG) set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${ECM_MODULE_PATH} ${ECM_KDE_MODULE_DIR}) -set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wextra -Wundef -Wpointer-arith -Wcast-align -Wunreachable-code -fno-omit-frame-pointer -fstack-protector -fno-exceptions") +if(CMAKE_COMPILER_IS_GNUCXX) + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wpointer-arith -Wunreachable-code -fno-omit-frame-pointer -fstack-protector") +endif(CMAKE_COMPILER_IS_GNUCXX) #set(CMAKE_CXX_FLAGS_PROFILE "-fprofile-arcs -ftest-coverage -pg") include(FeatureSummary) find_package(Qt5 ${QT_MIN_VERSION} REQUIRED NO_MODULE COMPONENTS Concurrent Core Gui Widgets Svg ) find_package(Qt5TextToSpeech ${QT_REQUIRED_VERSION} QUIET) set_package_properties(Qt5TextToSpeech PROPERTIES PURPOSE "Speaking of opponents moves") if (Qt5TextToSpeech_FOUND) add_definitions(-DHAVE_SPEECH) endif () find_package(KF5 ${KF5_MIN_VERSION} REQUIRED COMPONENTS DBusAddons ConfigWidgets Crash TextWidgets XmlGui KIO Plotting DocTools Wallet Plasma ) find_package(KF5KDEGames 4.9.0 REQUIRED) include(FeatureSummary) include(ECMAddAppIcon) include(ECMInstallIcons) include(ECMQtDeclareLoggingCategory) include(KDEInstallDirs) include(KDEFrameworkCompilerSettings NO_POLICY_SCOPE) include(KDECMakeSettings) add_definitions(-DQT_DISABLE_DEPRECATED_BEFORE=0x060000) if (${KF5Config_VERSION} STRGREATER "5.56.0") add_definitions(-DQT_NO_FOREACH) MESSAGE(STATUS "compile without foreach") endif() add_subdirectory(doc) add_subdirectory(icons) add_subdirectory(sounds) add_subdirectory(src) add_subdirectory(themes) if (${ECM_VERSION} STRGREATER "5.58.0") install(FILES knights.categories DESTINATION ${KDE_INSTALL_LOGGINGCATEGORIESDIR}) else() install(FILES knights.categories DESTINATION ${KDE_INSTALL_CONFDIR}) endif() feature_summary(WHAT ALL INCLUDE_QUIET_PACKAGES FATAL_ON_MISSING_REQUIRED_PACKAGES) diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 87b0b82..678d0a8 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -1,94 +1,97 @@ include_directories( ${CMAKE_SOURCE_DIR} ${CMAKE_BINARY_DIR} ) set(knights_SRCS core/pos.cpp core/move.cpp core/item.cpp core/piece.cpp proto/protocol.cpp proto/localprotocol.cpp proto/textprotocol.cpp proto/ficsprotocol.cpp proto/computerprotocol.cpp proto/xboardprotocol.cpp proto/uciprotocol.cpp proto/seekgraph.cpp proto/chatwidget.cpp proto/ficsdialog.cpp rules/chessrules.cpp difficultydialog.cpp gamedialog.cpp offerwidget.cpp clock.cpp clockwidget.cpp historywidget.cpp enginesettings.cpp externalcontrol.cpp gamemanager.cpp board.cpp knightsview.cpp knights.cpp main.cpp ) ki18n_wrap_ui(knights_SRCS knightsview_base.ui prefs_base.ui prefs_access.ui gamedialog.ui clockwidget.ui historywidget.ui promotiondialog.ui proto/ficsdialog.ui proto/chatwidget.ui popup.ui enginesettings.ui customdifficultydialog.ui ) kconfig_add_kcfg_files(knights_SRCS settings.kcfgc ) qt5_add_dbus_adaptor(knights_SRCS org.kde.Knights.xml externalcontrol.h Knights::ExternalControl) ecm_qt_declare_logging_category(knights_SRCS HEADER knightsdebug.h IDENTIFIER LOG_KNIGHTS CATEGORY_NAME log_knights) + +file(GLOB ICON_SRCS "${CMAKE_CURRENT_SOURCE_DIR}/../icons/*-apps-knights.png") +ecm_add_app_icon(knights_SRCS ICONS ${ICON_SRCS}) add_executable(knights ${knights_SRCS}) if (Qt5TextToSpeech_FOUND) target_link_libraries(knights Qt5::TextToSpeech) endif() target_link_libraries(knights Qt5::Network Qt5::Svg Qt5::Gui Qt5::Concurrent KF5::Crash KF5::Solid KF5::WidgetsAddons KF5::DBusAddons KF5::XmlGui KF5KDEGames KF5::Plotting KF5::Plasma KF5::Completion KF5::TextWidgets KF5::Wallet) install(TARGETS knights ${KDE_INSTALL_TARGETS_DEFAULT_ARGS} ) ########### install files ############### install( PROGRAMS org.kde.knights.desktop DESTINATION ${KDE_INSTALL_APPDIR} ) install( FILES knights.kcfg DESTINATION ${KCFG_INSTALL_DIR} ) install( FILES knightsui.rc DESTINATION ${KDE_INSTALL_KXMLGUI5DIR}/knights ) install( FILES knights.knsrc DESTINATION ${KDE_INSTALL_CONFDIR} ) install( FILES org.kde.Knights.xml DESTINATION ${DBUS_INTERFACES_INSTALL_DIR} ) install( FILES org.kde.knights.appdata.xml DESTINATION ${KDE_INSTALL_METAINFODIR} )