diff --git a/CMakeLists.txt b/CMakeLists.txt index b1a9f23..79ad66c 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,119 +1,127 @@ project(kpat) cmake_minimum_required (VERSION 2.8.12 FATAL_ERROR) set (QT_MIN_VERSION "5.7.0") set (KF5_MIN_VERSION "5.30.0") include(FindPkgConfig) pkg_check_modules(FC_SOLVE REQUIRED libfreecell-solver) find_package(ECM ${KF5_MIN_VERSION} REQUIRED CONFIG) set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${ECM_MODULE_PATH} ${ECM_KDE_MODULE_DIR}) -find_package(Qt5 ${QT_MIN_VERSION} REQUIRED NO_MODULE COMPONENTS Widgets Svg) +find_package(Qt5 ${QT_MIN_VERSION} REQUIRED NO_MODULE COMPONENTS Widgets Svg Test) find_package(KF5 ${KF5_MIN_VERSION} REQUIRED COMPONENTS Completion Config ConfigWidgets CoreAddons Crash DBusAddons DocTools GuiAddons I18n KIO NewStuff WidgetsAddons XmlGui ) find_package(KF5KDEGames 4.9.0 REQUIRED) include(FeatureSummary) include(ECMAddAppIcon) include(ECMInstallIcons) include(KDEInstallDirs) include(KDECompilerSettings NO_POLICY_SCOPE) include(KDECMakeSettings) add_definitions(-DQT_USE_FAST_CONCATENATION -DQT_USE_FAST_OPERATOR_PLUS) include_directories(${CMAKE_CURRENT_SOURCE_DIR}/libkcardgame/include) add_subdirectory(icons) add_subdirectory(libkcardgame) add_subdirectory(mimetypes) add_subdirectory(previews) add_subdirectory(sounds) add_subdirectory(themes) add_subdirectory(doc) set(kpat_SRCS ${libfcs_SRCS} main.cpp dealer.cpp dealerinfo.cpp gameselectionscene.cpp mainwindow.cpp messagebox.cpp numbereddealdialog.cpp patpile.cpp pileutils.cpp renderer.cpp soundengine.cpp statisticsdialog.cpp view.cpp patsolve/abstract_fc_solve_solver.cpp patsolve/memory.cpp patsolve/patsolve.cpp clock.cpp patsolve/clocksolver.cpp fortyeight.cpp patsolve/fortyeightsolver.cpp freecell.cpp patsolve/freecellsolver.cpp golf.cpp patsolve/golfsolver.cpp grandf.cpp patsolve/grandfsolver.cpp gypsy.cpp patsolve/gypsysolver.cpp idiot.cpp patsolve/idiotsolver.cpp klondike.cpp patsolve/klondikesolver.cpp mod3.cpp patsolve/mod3solver.cpp simon.cpp patsolve/simonsolver.cpp spider.cpp patsolve/spidersolver.cpp yukon.cpp patsolve/yukonsolver.cpp ) ki18n_wrap_ui( kpat_SRCS statisticsdialog.ui ) kconfig_add_kcfg_files( kpat_SRCS settings.kcfgc ) file(GLOB ICONS_SRCS "${CMAKE_CURRENT_SOURCE_DIR}/icons/*-apps-kpat.png") ecm_add_app_icon(kpat_SRCS ICONS ${ICONS_SRCS}) add_executable(kpat ${kpat_SRCS}) target_link_libraries(kpat KF5::Crash KF5::DBusAddons KF5::I18n KF5::KIOCore KF5KDEGames kcardgame ${FC_SOLVE_LDFLAGS} ) install(TARGETS kpat ${KDE_INSTALL_TARGETS_DEFAULT_ARGS}) ########### install files ############### install(PROGRAMS org.kde.kpat.desktop DESTINATION ${KDE_INSTALL_APPDIR}) install(FILES kpatui.rc DESTINATION ${KDE_INSTALL_KXMLGUI5DIR}/kpat) install(FILES kpat.kcfg DESTINATION ${KDE_INSTALL_KCFGDIR}) feature_summary(WHAT ALL INCLUDE_QUIET_PACKAGES FATAL_ON_MISSING_REQUIRED_PACKAGES) + +include(ECMAddTests) +ecm_add_test( + shuffle_test.cpp + TEST_NAME ShuffleTest + LINK_LIBRARIES Qt5::Test + NAME_PREFIX "kpat-" +) diff --git a/shuffle_test.cpp b/shuffle_test.cpp new file mode 100644 index 0000000..d1aa759 --- /dev/null +++ b/shuffle_test.cpp @@ -0,0 +1,25 @@ +/* + * shuffle_test.cpp + * Copyright (C) 2018 Shlomi Fish + * + * Distributed under terms of the MIT license. + */ + +#include +#include "shuffle.h" + +class TestQString: public QObject +{ + Q_OBJECT +private slots: + void toUpper(); +}; + +void TestQString::toUpper() +{ + QString str = "Hello"; + QCOMPARE(str.toUpper(), QString("HELLO")); +} + +QTEST_MAIN(TestQString) +#include "shuffle_test.moc"