Commit 5ccc76e7 authored by Pino Toscano's avatar Pino Toscano

New upstream version 18.11.80

parent f966b97d
build
.kdev4
Knights.kdev4
*~
project(Knights)
find_package(KDE4 REQUIRED)
find_package(KDEGames REQUIRED)
include (KDE4Defaults)
cmake_minimum_required (VERSION 3.2.0 FATAL_ERROR)
set(CMAKE_CXX_STANDARD 11)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_CXX_EXTENSIONS OFF)
set(CMAKE_CXX_FLAGS_PROFILE "-fprofile-arcs -ftest-coverage -pg")
add_definitions( -DQT_NO_CAST_FROM_ASCII )
add_definitions( -DQT_NO_CAST_TO_ASCII )
add_definitions(-DQT_USE_FAST_CONCATENATION -DQT_USE_FAST_OPERATOR_PLUS)
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")
#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
)
include_directories( ${KDE4_INCLUDES} ${QT_INCLUDES} ${KDEGAMES_INCLUDE_DIRS} )
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_USE_FAST_CONCATENATION -DQT_USE_FAST_OPERATOR_PLUS)
add_definitions(-DQT_NO_CAST_FROM_ASCII -DQT_NO_CAST_TO_ASCII)
add_definitions(-DQT_DISABLE_DEPRECATED_BEFORE=0x50600)
add_subdirectory( src )
add_subdirectory( icons )
add_subdirectory( themes )
add_subdirectory( doc )
add_subdirectory(doc)
add_subdirectory(icons)
add_subdirectory(sounds)
add_subdirectory(src)
add_subdirectory(themes)
macro_display_feature_log()
install( FILES knights.categories DESTINATION ${KDE_INSTALL_CONFDIR} )
include(MacroOptionalAddSubdirectory)
macro_optional_add_subdirectory( po )
feature_summary(WHAT ALL
INCLUDE_QUIET_PACKAGES
FATAL_ON_MISSING_REQUIRED_PACKAGES)
include(MacroOptionalAddSubdirectory)
macro_optional_add_subdirectory( doc )
ki18n_install(po)
if (KF5DocTools_FOUND)
kdoctools_install(po)
endif()
-----2.6.0-----
* Auto detect installed open-source chess engines
Bug fixes:
BUG 315091 - Enable column sorting for rating, time, etc. in the FICS dialog
BUG 315912 - Don't allow to store engine settings with incomplete information
BUG 330398 - Clock shows 59:59 upon time running out
BUG 330399 - Set the pause action unchecked upon a new game request
BUG 331885 - Stop chess engines after time has expired
BUG 333256 - Fixed incorrect pawn promotion in the Xboard protocol
-----2.5.0-----
* Port to new KDEGames library, compatible with KDE 4.9
-----2.4.2-----
* A handful of usability fixes
-----2.4.1-----
* Support for the UCI protocol
* Setting the difficulty level of chess engines
* Game history display
* Loading and saving PGN files.
-----2.4.0-----
* Voice support
* Possibility of external control by dbus
* Couple of bug fixes.
-----2.3.2-----
* Bugfix release with several fixes, mostly by Dave Kaye. It fixes drag-coused freezes, dropping pieces outside of the board, and a theme appearing twice in the selection dialog.
-----2.3.1-----
* Fixed exactly one bug; the peace captured by en-passant is now properly removed.
-----2.3.0-----
* Watching two engines play
* Improved time control support for chess engines
* Better support for the XBoard protocol means Knights can play with more engines, including Crafty, Sloppy, Sjeng and Phalanx.
* Players can now make and receive offer for draw, pause, undo, adjourn and abort. All except Draw are only used when playing on the chess server.
* Players can now undo their moves.
* Improved game dialog, with more game options.
* Improved server dialog, with a seek graph.
* Ability to interact with a chess server or a computer engine via a text console.
* Simple chat widget for talking to your remote opponent.
* Selecting and moving pieces by clicking, without dragging.
Needed Packages
-=-=-=-=-=-=-=-=-=-=-=-=-=
You will need KDE and libkdegames libraries and headers.
They will probably be installed by the libkdegames-dev or libkdegames-devel packages in your distribution.
How To Build Knights
-=-=-=-=-=-=-=-=-=-=-=-=-=
cd <project_name_path>
mkdir build
cd build
cmake -DCMAKE_INSTALL_PREFIX=$KDEDIRS .. <- do not forget the ..
make
make install or sudo make install or su -c 'make install'
to uninstall the project:
make uninstall or sudo make uninstall or su -c 'make uninstall'
Note: you can use another build path. Then cd in your build dir and:
export KDE_SRC=path_to_your_src
cmake $KDE_SRC -DCMAKE_INSTALL_PREFIX=$KDEDIR
----------------------------
Please send all comments to:
Miha Čančula
miha.cancula@gmail.com
Last update: March 2010
# Knights
Knights is KDE's chess frontend. It supports playing local games against human players or against chess engines (XBoard and UIC)
[![](https://cdn.kde.org/screenshots/knights/knights_main.png "Main Window - Human vs. Engine")](https://cdn.kde.org/screenshots/knights/knights_main.png)
as well as playing online games on FICS server:
[![](https://cdn.kde.org/screenshots/knights/knights_seek_graph.png "Seek Graph")](https://cdn.kde.org/screenshots/knights/knights_seek_graph.png)
Furthermore, it is possible to watch two different chess engines playing against each other:
[![](https://cdn.kde.org/screenshots/knights/knights_main_2.png "Main Window - Engine vs. Engine")](https://cdn.kde.org/screenshots/knights/knights_main_2.png)
Knights is not bound to any specific chess engine and talks to every engine supporting either the XBoard or the UIC protocols. For couple of well known open-source chess engines provided by linux distributions, knights has an auto-detection of installed engines which simplifies the initial configuration:
[![](https://cdn.kde.org/screenshots/knights/knights_auto_detect_engines.png "Auto Detection of Chess Engines")](https://cdn.kde.org/screenshots/knights/knights_auto_detect_engines.png)
# Required Packages
* CMake version 2.8.12 or higher
* ECM (extra cmake modules)
* KDE Frameworks (including the devel-package)
* KDE Games libraries (including the devel-package)
* Qt version 5.6 or higher (including the devel-package, libqt5-devel or similar)
# How To Build Knights
To build and to install the project, execute
* cd <project_name_path>
* mkdir build
* cd build
* cmake -DCMAKE_INSTALL_PREFIX=<path_to_install_>
* make
* make install or sudo make install or su -c 'make install'
To uninstall the project, execute
* make uninstall or sudo make uninstall or su -c 'make uninstall'
# Bug Reports and Wishes
Use [KDE Bugtracking System](https://bugs.kde.org/) to report any kind of issues with Knights.
http://astyle.sourceforge.net/astyle.html
Use the following astyle options to format your code:
astyle --style=java --indent=tab --attach-namespaces --attach-classes --indent-switches --remove-brackets src/my_file.cpp
optionally: --break-blocks
###############################################################
General information
###############################################################
https://github.com/google/sanitizers/wiki
http://clang.llvm.org/docs/index.html
https://llvm.org/svn/llvm-project/compiler-rt/trunk/lib/asan/scripts/asan_symbolize.py
http://developerblog.redhat.com/2014/10/16/gcc-undefined-behavior-sanitizer-ubsan/
###############################################################
Address sanitizer
###############################################################
1. add -fsanitize=address -fPIE to the compiler flags and re-compile
2. ASAN_OPTIONS=symbolize=0 build_clang/src/labplot2 2> log.txt
3. python admin/asan_symbolize.py / < log.txt | c++filt
\ No newline at end of file
######### Suppression file: ##########
to generate a file suppressing a lot of valgrind messages found for Qt, run
# valgrind --leak-check=full --show-reachable=yes --error-limit=no --gen-suppressions=all --log-file=labplot.supp ../build/src/labplot2
# cat labplot.supp | parse_valgrind_suppressions.sh > labplot_minimal.supp
To use this file run
# valgrind --suppressions=labplot_minimal.supp ../build/src/labplot2
More on valgrind's suppression files can be found here:
http://valgrind.org/docs/manual/manual-core.html#manual-core.suppress
http://wiki.wxwidgets.org/Valgrind_Suppression_File_Howto
#!/bin/bash
if ! [ -d build ]; then
mkdir build
fi
cd build
cmake .. -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr && make -j 4
#!/bin/bash
if ! [ -d build_clang ]; then
mkdir build_clang
fi
cd build_clang
export CC=/usr/bin/clang
export CXX=/usr/bin/clang++
cmake .. -DCMAKE_BUILD_TYPE=DebugFull -DCMAKE_CXX_FLAGS="-D_GNU_SOURCE -Wall -Wextra -Wundef -Wpointer-arith -Wcast-align -Wunreachable-code -fno-omit-frame-pointer -fstack-protector -fno-exceptions -fsanitize=address -fPIE" -DCMAKE_INSTALL_PREFIX=/usr && make -j 2
#!/bin/bash
if ! [ -d build_debug ]; then
mkdir build_debug
fi
cd build_debug
cmake .. -DCMAKE_BUILD_TYPE=DebugFull -DCMAKE_INSTALL_PREFIX=/usr && make -j 4
add_subdirectory(sv)
add_subdirectory(de)
add_subdirectory(pt_BR)
add_subdirectory(it)
add_subdirectory(et)
add_subdirectory(uk)
add_subdirectory(pt)
add_subdirectory(nl)
add_subdirectory(es)
add_subdirectory(en_US)
add_subdirectory(ru)
kdoctools_create_handbook(index.docbook INSTALL_DESTINATION ${KDE_INSTALL_DOCBUNDLEDIR}/en SUBDIR knights)
kde4_create_handbook(index.docbook INSTALL_DESTINATION ${HTML_INSTALL_DIR}/de SUBDIR knights )
kde4_create_handbook(index.docbook INSTALL_DESTINATION ${HTML_INSTALL_DIR}/en SUBDIR knights )
kde4_create_handbook(index.docbook INSTALL_DESTINATION ${HTML_INSTALL_DIR}/es SUBDIR knights )
kde4_create_handbook(index.docbook INSTALL_DESTINATION ${HTML_INSTALL_DIR}/et SUBDIR knights )
<?xml version="1.0" ?>
<!DOCTYPE book PUBLIC "-//KDE//DTD DocBook XML V4.2-Based Variant V1.1//EN" "dtd/kdex.dtd" [
<!DOCTYPE book PUBLIC "-//KDE//DTD DocBook XML V4.5-Based Variant V1.1//EN" "dtd/kdedbx45.dtd" [
<!ENTITY knights "<application>Knights</application>">
<!ENTITY kappname "&knights;">
<!ENTITY package "extragear/games">
<!ENTITY kappversion "2.5.0"><!--Application version. Use this variable everywhere it's needed.-->
<!ENTITY % addindex "IGNORE">
<!ENTITY % English "INCLUDE">
]>
<book lang="&language;">
<book id="knights" lang="&language;">
<bookinfo>
<title>The &knights; Handbook</title>
......@@ -32,8 +31,8 @@
<legalnotice>&FDLNotice;
</legalnotice>
<date>2012-08-08</date><!-- Date of (re)writing, or update.-->
<releaseinfo>&kappversion; (&kde; 4.9)
<date>2015-01-07</date><!-- Date of (re)writing, or update.-->
<releaseinfo>&kappversion;
</releaseinfo><!-- Application version number. Use the variable definitions within header to change this value.-->
<abstract>
......@@ -50,7 +49,6 @@
<keyword>board</keyword>
<keyword>chess</keyword>
<keyword>knights</keyword>
<keyword>Knights</keyword>
</keywordset>
</bookinfo>
......@@ -715,8 +713,8 @@ http://noughmad.com/2011/10/25/upcoming-features-in-knights/
</sect1>
</chapter>
<chapter id="credits-and-licenses">
<title>Credits and Licenses</title>
<chapter id="credits-and-license">
<title>Credits and License</title>
<para>&knights;</para>
......@@ -742,14 +740,4 @@ http://noughmad.com/2011/10/25/upcoming-features-in-knights/
</chapter>
<appendix id="installation">
<title>Installation</title>
&install.intro.documentation;
&install.compile.documentation;
</appendix>
</book>
kde4_create_handbook(index.docbook INSTALL_DESTINATION ${HTML_INSTALL_DIR}/it SUBDIR knights )
This diff is collapsed.
kde4_create_handbook(index.docbook INSTALL_DESTINATION ${HTML_INSTALL_DIR}/nl SUBDIR knights )
kde4_create_handbook(index.docbook INSTALL_DESTINATION ${HTML_INSTALL_DIR}/pt SUBDIR knights )
kde4_create_handbook(index.docbook INSTALL_DESTINATION ${HTML_INSTALL_DIR}/pt_BR SUBDIR knights )
kde4_create_handbook(index.docbook INSTALL_DESTINATION ${HTML_INSTALL_DIR}/ru SUBDIR knights )
kde4_create_handbook(index.docbook INSTALL_DESTINATION ${HTML_INSTALL_DIR}/sv SUBDIR knights )
kde4_create_handbook(index.docbook INSTALL_DESTINATION ${HTML_INSTALL_DIR}/uk SUBDIR knights )
kde4_install_icons( ${ICON_INSTALL_DIR} )
file(GLOB ICONS_SRCS "${CMAKE_CURRENT_SOURCE_DIR}/*-apps-knights.png")
ecm_add_app_icon(knights_SRCS ICONS ${ICONS_SRCS})
ecm_install_icons(ICONS ${ICONS_SRCS} DESTINATION ${KDE_INSTALL_ICONDIR} THEME hicolor)
log_knights knights IDENTIFIER [LOG_KNIGHTS]
find_package(Gettext REQUIRED)
if (NOT GETTEXT_MSGMERGE_EXECUTABLE)
MESSAGE(FATAL_ERROR "Please install msgmerge binary")
endif (NOT GETTEXT_MSGMERGE_EXECUTABLE)
if (NOT GETTEXT_MSGFMT_EXECUTABLE)
MESSAGE(FATAL_ERROR "Please install msgmerge binary")
endif (NOT GETTEXT_MSGFMT_EXECUTABLE)
add_subdirectory(ca@valencia)
add_subdirectory(da)
add_subdirectory(el)
add_subdirectory(bs)
add_subdirectory(sv)
add_subdirectory(de)
add_subdirectory(gl)
add_subdirectory(pt_BR)
add_subdirectory(nb)
add_subdirectory(it)
add_subdirectory(km)
add_subdirectory(sr@latin)
add_subdirectory(pl)
add_subdirectory(et)
add_subdirectory(uk)
add_subdirectory(fi)
add_subdirectory(nds)
add_subdirectory(sr)
add_subdirectory(cs)
add_subdirectory(zh_TW)
add_subdirectory(pt)
add_subdirectory(sr@ijekavian)
add_subdirectory(nl)
add_subdirectory(lt)
add_subdirectory(sl)
add_subdirectory(nn)
add_subdirectory(fr)
add_subdirectory(ca)
add_subdirectory(es)
add_subdirectory(sr@ijekavianlatin)
add_subdirectory(ga)
add_subdirectory(ru)
This diff is collapsed.
file(GLOB _po_files *.po)
GETTEXT_PROCESS_PO_FILES(bs ALL INSTALL_DESTINATION ${LOCALE_INSTALL_DIR} ${_po_files} )
This diff is collapsed.
file(GLOB _po_files *.po)
GETTEXT_PROCESS_PO_FILES(ca ALL INSTALL_DESTINATION ${LOCALE_INSTALL_DIR} ${_po_files} )
This diff is collapsed.
This diff is collapsed.
file(GLOB _po_files *.po)
GETTEXT_PROCESS_PO_FILES(ca@valencia ALL INSTALL_DESTINATION ${LOCALE_INSTALL_DIR} ${_po_files} )
This diff is collapsed.
file(GLOB _po_files *.po)
GETTEXT_PROCESS_PO_FILES(cs ALL INSTALL_DESTINATION ${LOCALE_INSTALL_DIR} ${_po_files} )
This diff is collapsed.
file(GLOB _po_files *.po)
GETTEXT_PROCESS_PO_FILES(da ALL INSTALL_DESTINATION ${LOCALE_INSTALL_DIR} ${_po_files} )
This diff is collapsed.
file(GLOB _po_files *.po)
GETTEXT_PROCESS_PO_FILES(de ALL INSTALL_DESTINATION ${LOCALE_INSTALL_DIR} ${_po_files} )
<?xml version="1.0" ?>
<!DOCTYPE book PUBLIC "-//KDE//DTD DocBook XML V4.2-Based Variant V1.1//EN" "dtd/kdex.dtd" [
<!DOCTYPE book PUBLIC "-//KDE//DTD DocBook XML V4.5-Based Variant V1.1//EN" "dtd/kdedbx45.dtd" [
<!ENTITY knights "<application
>Knights</application
>">
<!ENTITY kappname "&knights;">
<!ENTITY package "extragear/games">
<!ENTITY kappversion "2.5.0"
><!--Application version. Use this variable everywhere it's needed.-->
<!ENTITY % addindex "IGNORE">
<!ENTITY % German "INCLUDE">
]>
<book lang="&language;">
<book id="knights" lang="&language;">
<bookinfo>
<title
>Das Handbuch zu &knights;</title>
......@@ -57,10 +56,10 @@
</legalnotice>
<date
>2012-08-08</date
>2015-01-07</date
><!-- Date of (re)writing, or update.-->
<releaseinfo
>&kappversion; (&kde; 4.9) </releaseinfo
>&kappversion; </releaseinfo
><!-- Application version number. Use the variable definitions within header to change this value.-->
<abstract>
......@@ -84,8 +83,6 @@
>Schach</keyword>
<keyword
>knights</keyword>
<keyword
>Knights</keyword>
</keywordset>
</bookinfo>
......@@ -897,7 +894,7 @@ http://noughmad.com/2011/10/25/upcoming-features-in-knights/
</sect1>
</chapter>
<chapter id="credits-and-licenses">
<chapter id="credits-and-license">
<title
>Danksagungen und Lizenz</title>
......@@ -924,15 +921,4 @@ http://noughmad.com/2011/10/25/upcoming-features-in-knights/
>
&underFDL; &underGPL; </chapter>
<appendix id="installation">
<title
>Installation</title>
&install.intro.documentation;
&install.compile.documentation;
</appendix>
</book>
This diff is collapsed.
file(GLOB _po_files *.po)
GETTEXT_PROCESS_PO_FILES(el ALL INSTALL_DESTINATION ${LOCALE_INSTALL_DIR} ${_po_files} )
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
file(GLOB _po_files *.po)
GETTEXT_PROCESS_PO_FILES(es ALL INSTALL_DESTINATION ${LOCALE_INSTALL_DIR} ${_po_files} )
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.