mirror of
https://github.com/xiaoyifang/goldendict-ng.git
synced 2024-11-27 15:24:05 +00:00
feat(cmake): various updates
* recursive file including * with xapian * use iconv * feature summary
This commit is contained in:
parent
5c5db459b5
commit
747ebf3a82
512
CMakeLists.txt
512
CMakeLists.txt
|
@ -1,30 +1,18 @@
|
||||||
cmake_minimum_required(VERSION 3.23)
|
cmake_minimum_required(VERSION 3.25) # ubuntu 23.04 Fedora 36
|
||||||
|
|
||||||
# Experimental Cmake build only supposed to be used by dev
|
# Experimental Cmake build only supposed to be used by dev
|
||||||
# Qt6.4+ only
|
# Qt6.4+ only
|
||||||
# LINUX, APPLE and MSVC are used to detect system
|
|
||||||
|
|
||||||
option(WITH_FFMPEG_PLAYER "Enable support for FFMPEG player" ON)
|
option(WITH_FFMPEG_PLAYER "Enable support for FFMPEG player" ON)
|
||||||
option(WITH_EPWING_SUPPORT "Enable epwing support" ON)
|
option(WITH_EPWING_SUPPORT "Enable epwing support" ON)
|
||||||
# Remove this once cmake 5.25 becomes minimum version
|
option(WITH_XAPIAN "enable Xapian support" ON)
|
||||||
if(UNIX AND NOT APPLE)
|
|
||||||
set(LINUX TRUE)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
if (APPLE)
|
include(FeatureSummary)
|
||||||
if(WITH_EPWING_SUPPORT)
|
|
||||||
add_subdirectory(thirdparty/eb)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
include_directories(/usr/local/include /opt/homebrew/include)
|
|
||||||
endif ()
|
|
||||||
|
|
||||||
project(goldendict
|
project(goldendict
|
||||||
VERSION 22.11.20
|
VERSION 22.11.20
|
||||||
LANGUAGES CXX C)
|
LANGUAGES CXX C)
|
||||||
|
|
||||||
set(CMAKE_INCLUDE_CURRENT_DIR ON)
|
|
||||||
|
|
||||||
set(CMAKE_AUTOUIC ON)
|
set(CMAKE_AUTOUIC ON)
|
||||||
set(CMAKE_AUTOMOC ON)
|
set(CMAKE_AUTOMOC ON)
|
||||||
set(CMAKE_AUTORCC ON)
|
set(CMAKE_AUTORCC ON)
|
||||||
|
@ -32,12 +20,18 @@ set(CMAKE_AUTORCC ON)
|
||||||
set(CMAKE_CXX_STANDARD 17)
|
set(CMAKE_CXX_STANDARD 17)
|
||||||
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
||||||
|
|
||||||
|
if (APPLE)
|
||||||
|
if (WITH_EPWING_SUPPORT)
|
||||||
|
add_subdirectory(thirdparty/eb)
|
||||||
|
endif ()
|
||||||
|
include_directories(/usr/local/include /opt/homebrew/include)
|
||||||
|
endif ()
|
||||||
|
|
||||||
#### Importing Libraries
|
#### Importing Libraries
|
||||||
|
|
||||||
find_package(Qt6 REQUIRED COMPONENTS
|
find_package(Qt6 REQUIRED COMPONENTS
|
||||||
Concurrent
|
Concurrent
|
||||||
Core5Compat
|
Core5Compat
|
||||||
Help
|
|
||||||
LinguistTools
|
LinguistTools
|
||||||
Multimedia
|
Multimedia
|
||||||
WebEngineWidgets
|
WebEngineWidgets
|
||||||
|
@ -47,6 +41,7 @@ find_package(Qt6 REQUIRED COMPONENTS
|
||||||
TextToSpeech
|
TextToSpeech
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
if (APPLE)
|
if (APPLE)
|
||||||
find_library(CARBON_LIBRARY Carbon REQUIRED)
|
find_library(CARBON_LIBRARY Carbon REQUIRED)
|
||||||
endif ()
|
endif ()
|
||||||
|
@ -55,10 +50,14 @@ if (UNIX)
|
||||||
# Provided by Cmake
|
# Provided by Cmake
|
||||||
find_package(ZLIB REQUIRED)
|
find_package(ZLIB REQUIRED)
|
||||||
find_package(BZip2 REQUIRED)
|
find_package(BZip2 REQUIRED)
|
||||||
|
find_package(Iconv REQUIRED)
|
||||||
|
if (WITH_XAPIAN)
|
||||||
|
find_package(Xapian REQUIRED) # https://github.com/xapian/xapian/tree/master/xapian-core/cmake
|
||||||
|
endif ()
|
||||||
|
|
||||||
# PkgConfig only packages
|
# PkgConfig only packages
|
||||||
find_package (PkgConfig REQUIRED)
|
find_package(PkgConfig REQUIRED)
|
||||||
pkg_check_modules (PKGCONFIG_DEPS IMPORTED_TARGET
|
pkg_check_modules(PKGCONFIG_DEPS IMPORTED_TARGET
|
||||||
hunspell
|
hunspell
|
||||||
lzo2
|
lzo2
|
||||||
opencc
|
opencc
|
||||||
|
@ -77,17 +76,17 @@ if (UNIX)
|
||||||
endif ()
|
endif ()
|
||||||
endif ()
|
endif ()
|
||||||
|
|
||||||
if(LINUX)
|
if (LINUX)
|
||||||
find_package(X11 REQUIRED)
|
find_package(X11 REQUIRED)
|
||||||
pkg_check_modules (LIBXTST IMPORTED_TARGET xtst)
|
pkg_check_modules(LIBXTST IMPORTED_TARGET xtst)
|
||||||
|
|
||||||
if(WITH_EPWING_SUPPORT)
|
if (WITH_EPWING_SUPPORT)
|
||||||
add_subdirectory(thirdparty/eb EXCLUDE_FROM_ALL)
|
add_subdirectory(thirdparty/eb EXCLUDE_FROM_ALL)
|
||||||
endif()
|
endif ()
|
||||||
# add_library(libeb SHARED IMPORTED)
|
# add_library(libeb SHARED IMPORTED)
|
||||||
# set_target_properties(libeb PROPERTIES IMPORTED_LOCATION /usr/lib/libeb.so)
|
# set_target_properties(libeb PROPERTIES IMPORTED_LOCATION /usr/lib/libeb.so)
|
||||||
# set_target_properties(libeb PROPERTIES INCLUDE_DIRECTORIES /usr/include/)
|
# set_target_properties(libeb PROPERTIES INCLUDE_DIRECTORIES /usr/include/)
|
||||||
endif()
|
endif ()
|
||||||
|
|
||||||
#### Compile time files and preprocessor flags
|
#### Compile time files and preprocessor flags
|
||||||
|
|
||||||
|
@ -102,352 +101,44 @@ execute_process(
|
||||||
string(TIMESTAMP date_for_version_file) # note: this variable is cached for every run, but for user installation, this doesn't matter much
|
string(TIMESTAMP date_for_version_file) # note: this variable is cached for every run, but for user installation, this doesn't matter much
|
||||||
configure_file(version.txt.in ${CMAKE_SOURCE_DIR}/version.txt)
|
configure_file(version.txt.in ${CMAKE_SOURCE_DIR}/version.txt)
|
||||||
|
|
||||||
# hack -> this string will be compared with another string, thus having surrounding " "
|
|
||||||
add_compile_definitions(PROGRAM_VERSION="${PROJECT_VERSION}")
|
|
||||||
|
|
||||||
add_compile_definitions(CMAKE_USED_HACK) # temporal hack to avoid breaking qmake build
|
|
||||||
add_compile_definitions(
|
|
||||||
MAKE_ZIM_SUPPORT
|
|
||||||
MAKE_QTMULTIMEDIA_PLAYER
|
|
||||||
MAKE_CHINESE_CONVERSION_SUPPORT
|
|
||||||
)
|
|
||||||
|
|
||||||
if (WITH_FFMPEG_PLAYER)
|
|
||||||
add_compile_definitions(MAKE_FFMPEG_PLAYER)
|
|
||||||
endif ()
|
|
||||||
|
|
||||||
if(LINUX)
|
|
||||||
add_compile_definitions(HAVE_X11)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
if(MSVC)
|
|
||||||
add_compile_definitions(NO_EPWING_SUPPORT
|
|
||||||
__WIN32)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
#### Sources Files
|
#### Sources Files
|
||||||
|
|
||||||
set(QRC_RESOURCES
|
|
||||||
flags.qrc
|
|
||||||
resources.qrc
|
|
||||||
scripts.qrc
|
|
||||||
src/stylesheets/css.qrc
|
|
||||||
)
|
|
||||||
|
|
||||||
# auto discovery of ui files https://cmake.org/cmake/help/v3.26/prop_tgt/AUTOUIC_SEARCH_PATHS.html
|
# auto discovery of ui files https://cmake.org/cmake/help/v3.26/prop_tgt/AUTOUIC_SEARCH_PATHS.html
|
||||||
set(CMAKE_AUTOUIC_SEARCH_PATHS "${CMAKE_CURRENT_SOURCE_DIR}/src/ui/")
|
set(CMAKE_AUTOUIC_SEARCH_PATHS "${CMAKE_CURRENT_SOURCE_DIR}/src/ui/")
|
||||||
|
|
||||||
if(WITH_EPWING_SUPPORT)
|
# https://cmake.org/cmake/help/latest/command/file.html#filesystem
|
||||||
set(EPWING_SUPPORT_SRC
|
# ! Using GLOB_RECURSE is not recommended by cmake's documentation
|
||||||
epwing.cc
|
# CONFIGURE_DEPENDS will trigger file tree recheck in every rebuilds.
|
||||||
epwing.hh
|
file(GLOB_RECURSE ALL_SOURCE_FILES CONFIGURE_DEPENDS src/*.cc src/*.hh src/*.c)
|
||||||
epwing_book.cc
|
|
||||||
epwing_book.hh
|
|
||||||
epwing_charmap.cc
|
|
||||||
epwing_charmap.hh
|
|
||||||
)
|
|
||||||
else()
|
|
||||||
add_compile_definitions(NO_EPWING_SUPPORT)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
if (APPLE)
|
if (APPLE)
|
||||||
set(MAC_SRC
|
file(GLOB_RECURSE MACOS_SOURCE_FILES CONFIGURE_DEPENDS src/macos/*.mm)
|
||||||
machotkeywrapper.mm
|
|
||||||
macmouseover.hh
|
|
||||||
macmouseover.mm
|
|
||||||
|
|
||||||
src/platform/gd_clipboard.cpp
|
|
||||||
src/platform/gd_clipboard.h
|
|
||||||
)
|
|
||||||
endif ()
|
endif ()
|
||||||
|
|
||||||
|
set(QSINGLEAPP_SOURCE_FILES
|
||||||
if(WITH_FFMPEG_PLAYER)
|
|
||||||
set(FFMPEG_SUPPORT_SRC
|
|
||||||
ffmpegaudio.cc
|
|
||||||
ffmpegaudio.hh
|
|
||||||
ffmpegaudioplayer.hh
|
|
||||||
)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
set(PROJECT_SOURCES
|
|
||||||
${MAC_SRC}
|
|
||||||
${QRC_RESOURCES}
|
|
||||||
${EPWING_SUPPORT_SRC}
|
|
||||||
${FFMPEG_SUPPORT_SRC}
|
|
||||||
aard.cc
|
|
||||||
aard.hh
|
|
||||||
about.cc
|
|
||||||
about.hh
|
|
||||||
ankiconnector.cpp
|
|
||||||
ankiconnector.h
|
|
||||||
article_inspect.cpp
|
|
||||||
article_inspect.h
|
|
||||||
article_maker.cc
|
|
||||||
article_maker.hh
|
|
||||||
article_netmgr.cc
|
|
||||||
article_netmgr.hh
|
|
||||||
articlewebpage.cpp
|
|
||||||
articlewebpage.h
|
|
||||||
articlewebview.cc
|
|
||||||
articlewebview.hh
|
|
||||||
atomic_rename.cc
|
|
||||||
atomic_rename.hh
|
|
||||||
audiolink.cc
|
|
||||||
audiolink.hh
|
|
||||||
audiooutput.cpp
|
|
||||||
audiooutput.h
|
|
||||||
audioplayerfactory.cc
|
|
||||||
audioplayerfactory.hh
|
|
||||||
audioplayerinterface.hh
|
|
||||||
base/globalregex.cc
|
|
||||||
base/globalregex.hh
|
|
||||||
belarusiantranslit.cc
|
|
||||||
belarusiantranslit.hh
|
|
||||||
bgl.cc
|
|
||||||
bgl.hh
|
|
||||||
bgl_babylon.cc
|
|
||||||
bgl_babylon.hh
|
|
||||||
btreeidx.cc
|
|
||||||
btreeidx.hh
|
|
||||||
chinese.cc
|
|
||||||
chinese.hh
|
|
||||||
chineseconversion.cc
|
|
||||||
chineseconversion.hh
|
|
||||||
chunkedstorage.cc
|
|
||||||
chunkedstorage.hh
|
|
||||||
config.cc
|
|
||||||
config.hh
|
|
||||||
country.cc
|
|
||||||
country.hh
|
|
||||||
decompress.cc
|
|
||||||
decompress.hh
|
|
||||||
delegate.cc
|
|
||||||
delegate.hh
|
|
||||||
dictdfiles.cc
|
|
||||||
dictdfiles.hh
|
|
||||||
dictheadwords.cc
|
|
||||||
dictheadwords.hh
|
|
||||||
dictinfo.cc
|
|
||||||
dictinfo.hh
|
|
||||||
dictionary.cc
|
|
||||||
dictionary.hh
|
|
||||||
dictionarybar.cc
|
|
||||||
dictionarybar.hh
|
|
||||||
dictserver.cc
|
|
||||||
dictserver.hh
|
|
||||||
dictspanewidget.hh
|
|
||||||
dictzip.c
|
|
||||||
dictzip.h
|
|
||||||
dsl.cc
|
|
||||||
dsl.hh
|
|
||||||
dsl_details.cc
|
|
||||||
dsl_details.hh
|
|
||||||
editdictionaries.cc
|
|
||||||
editdictionaries.hh
|
|
||||||
ex.hh
|
|
||||||
externalaudioplayer.cc
|
|
||||||
externalaudioplayer.hh
|
|
||||||
externalviewer.cc
|
|
||||||
externalviewer.hh
|
|
||||||
favoritespanewidget.cc
|
|
||||||
favoritespanewidget.hh
|
|
||||||
file.cc
|
|
||||||
file.hh
|
|
||||||
filetype.cc
|
|
||||||
filetype.hh
|
|
||||||
fixx11h.h
|
|
||||||
folding.cc
|
|
||||||
folding.hh
|
|
||||||
forvo.cc
|
|
||||||
forvo.hh
|
|
||||||
fsencoding.cc
|
|
||||||
fsencoding.hh
|
|
||||||
ftshelpers.cc
|
|
||||||
ftshelpers.hh
|
|
||||||
fulltextsearch.cc
|
|
||||||
fulltextsearch.hh
|
|
||||||
gddebug.cc
|
|
||||||
gddebug.hh
|
|
||||||
german.cc
|
|
||||||
german.hh
|
|
||||||
gestures.cc
|
|
||||||
gestures.hh
|
|
||||||
globalbroadcaster.cpp
|
|
||||||
globalbroadcaster.h
|
|
||||||
gls.cc
|
|
||||||
gls.hh
|
|
||||||
greektranslit.cc
|
|
||||||
greektranslit.hh
|
|
||||||
groupcombobox.cc
|
|
||||||
groupcombobox.hh
|
|
||||||
groups.cc
|
|
||||||
groups.hh
|
|
||||||
groups_widgets.cc
|
|
||||||
groups_widgets.hh
|
|
||||||
headwordsmodel.cpp
|
|
||||||
headwordsmodel.h
|
|
||||||
history.cc
|
|
||||||
history.hh
|
|
||||||
historypanewidget.cc
|
|
||||||
historypanewidget.hh
|
|
||||||
hotkeywrapper.cc
|
|
||||||
hotkeywrapper.hh
|
|
||||||
htmlescape.cc
|
|
||||||
htmlescape.hh
|
|
||||||
hunspell.cc
|
|
||||||
hunspell.hh
|
|
||||||
iconv.cc
|
|
||||||
iconv.hh
|
|
||||||
iframeschemehandler.cpp
|
|
||||||
iframeschemehandler.h
|
|
||||||
inc_case_folding.hh
|
|
||||||
inc_diacritic_folding.hh
|
|
||||||
indexedzip.cc
|
|
||||||
indexedzip.hh
|
|
||||||
initializing.cc
|
|
||||||
initializing.hh
|
|
||||||
instances.cc
|
|
||||||
instances.hh
|
|
||||||
keyboardstate.cc
|
|
||||||
keyboardstate.hh
|
|
||||||
langcoder.cc
|
|
||||||
langcoder.hh
|
|
||||||
language.cc
|
|
||||||
language.hh
|
|
||||||
loaddictionaries.cc
|
|
||||||
loaddictionaries.hh
|
|
||||||
lsa.cc
|
|
||||||
lsa.hh
|
|
||||||
main.cc
|
|
||||||
mainstatusbar.cc
|
|
||||||
mainstatusbar.hh
|
|
||||||
maintabwidget.cc
|
|
||||||
maintabwidget.hh
|
|
||||||
mainwindow.cc
|
|
||||||
mainwindow.hh
|
|
||||||
mdictparser.cc
|
|
||||||
mdictparser.hh
|
|
||||||
mdx.cc
|
|
||||||
mdx.hh
|
|
||||||
mediawiki.cc
|
|
||||||
mediawiki.hh
|
|
||||||
mruqmenu.cc
|
|
||||||
mruqmenu.hh
|
|
||||||
multimediaaudioplayer.cc
|
|
||||||
multimediaaudioplayer.hh
|
|
||||||
mutex.cc
|
|
||||||
mutex.hh
|
|
||||||
orderandprops.cc
|
|
||||||
orderandprops.hh
|
|
||||||
parsecmdline.cc
|
|
||||||
parsecmdline.hh
|
|
||||||
preferences.cc
|
|
||||||
preferences.hh
|
|
||||||
programs.cc
|
|
||||||
programs.hh
|
|
||||||
resourceschemehandler.cpp
|
|
||||||
resourceschemehandler.h
|
|
||||||
ripemd.cc
|
|
||||||
ripemd.hh
|
|
||||||
romaji.cc
|
|
||||||
romaji.hh
|
|
||||||
russiantranslit.cc
|
|
||||||
russiantranslit.hh
|
|
||||||
scanflag.cc
|
|
||||||
scanflag.hh
|
|
||||||
scanpopup.cc
|
|
||||||
scanpopup.hh
|
|
||||||
sdict.cc
|
|
||||||
sdict.hh
|
|
||||||
searchpanewidget.hh
|
|
||||||
slob.cc
|
|
||||||
slob.hh
|
|
||||||
sounddir.cc
|
|
||||||
sounddir.hh
|
|
||||||
sources.cc
|
|
||||||
sources.hh
|
|
||||||
splitfile.cc
|
|
||||||
splitfile.hh
|
|
||||||
sptr.hh
|
|
||||||
stardict.cc
|
|
||||||
stardict.hh
|
|
||||||
stylescombobox.cc
|
|
||||||
stylescombobox.hh
|
|
||||||
termination.cc
|
|
||||||
termination.hh
|
|
||||||
thirdparty/qtsingleapplication/src/qtlocalpeer.cpp
|
thirdparty/qtsingleapplication/src/qtlocalpeer.cpp
|
||||||
thirdparty/qtsingleapplication/src/qtlocalpeer.h
|
thirdparty/qtsingleapplication/src/qtlocalpeer.h
|
||||||
thirdparty/qtsingleapplication/src/qtsingleapplication.cpp
|
thirdparty/qtsingleapplication/src/qtsingleapplication.cpp
|
||||||
thirdparty/qtsingleapplication/src/qtsingleapplication.h
|
thirdparty/qtsingleapplication/src/qtsingleapplication.h
|
||||||
thirdparty/qtsingleapplication/src/qtsinglecoreapplication.cpp
|
thirdparty/qtsingleapplication/src/qtsinglecoreapplication.cpp
|
||||||
thirdparty/qtsingleapplication/src/qtsinglecoreapplication.h
|
thirdparty/qtsingleapplication/src/qtsinglecoreapplication.h
|
||||||
tiff.cc
|
|
||||||
tiff.hh
|
|
||||||
translatebox.cc
|
|
||||||
translatebox.hh
|
|
||||||
transliteration.cc
|
|
||||||
transliteration.hh
|
|
||||||
ufile.cc
|
|
||||||
ufile.hh
|
|
||||||
utf8.cc
|
|
||||||
utf8.hh
|
|
||||||
utils.cc
|
|
||||||
utils.hh
|
|
||||||
voiceengines.cc
|
|
||||||
voiceengines.hh
|
|
||||||
webmultimediadownload.cc
|
|
||||||
webmultimediadownload.hh
|
|
||||||
website.cc
|
|
||||||
website.hh
|
|
||||||
weburlrequestinterceptor.cpp
|
|
||||||
weburlrequestinterceptor.h
|
|
||||||
wildcard.cc
|
|
||||||
wildcard.hh
|
|
||||||
wordfinder.cc
|
|
||||||
wordfinder.hh
|
|
||||||
wordlist.cc
|
|
||||||
wordlist.hh
|
|
||||||
wstring.hh
|
|
||||||
wstring_qt.cc
|
|
||||||
wstring_qt.hh
|
|
||||||
xdxf.cc
|
|
||||||
xdxf.hh
|
|
||||||
xdxf2html.cc
|
|
||||||
xdxf2html.hh
|
|
||||||
zim.cc
|
|
||||||
zim.hh
|
|
||||||
zipfile.cc
|
|
||||||
zipfile.hh
|
|
||||||
zipsounds.cc
|
|
||||||
zipsounds.hh
|
|
||||||
src/dict/lingualibre.cpp src/dict/lingualibre.h
|
|
||||||
src/ui/articleview.cpp src/ui/articleview.h
|
|
||||||
src/ui/ftssearchpanel.cpp src/ui/ftssearchpanel.h
|
|
||||||
src/ui/searchpanel.cpp src/ui/searchpanel.h
|
|
||||||
speechclient.hh
|
|
||||||
speechclient.cc
|
|
||||||
texttospeechsource.cc
|
|
||||||
texttospeechsource.hh
|
|
||||||
)
|
)
|
||||||
|
|
||||||
qt_add_executable(${CMAKE_PROJECT_NAME}
|
qt_add_executable(${CMAKE_PROJECT_NAME}
|
||||||
MANUAL_FINALIZATION
|
MANUAL_FINALIZATION
|
||||||
${PROJECT_SOURCES})
|
icons/flags.qrc
|
||||||
|
resources.qrc
|
||||||
|
src/scripts/scripts.qrc
|
||||||
|
src/stylesheets/css.qrc
|
||||||
|
${ALL_SOURCE_FILES}
|
||||||
|
${MACOS_SOURCE_FILES}
|
||||||
|
${QSINGLEAPP_SOURCE_FILES})
|
||||||
|
|
||||||
target_include_directories(${CMAKE_PROJECT_NAME} PUBLIC
|
|
||||||
${PROJECT_SOURCE_DIR}/thirdparty/qtsingleapplication/src
|
|
||||||
${PROJECT_SOURCE_DIR}/src/)
|
|
||||||
|
|
||||||
if(MSVC)
|
### Common parts amount all platforms
|
||||||
add_compile_definitions(INCLUDE_LIBRARY_PATH)
|
|
||||||
target_include_directories(${CMAKE_PROJECT_NAME} PUBLIC
|
|
||||||
${CMAKE_SOURCE_DIR}/winlibs/include/
|
|
||||||
)
|
|
||||||
|
|
||||||
set_property(TARGET ${CMAKE_PROJECT_NAME} PROPERTY
|
# hack -> this string will be compared with another string, thus having surrounding " "
|
||||||
MSVC_RUNTIME_LIBRARY "MultiThreaded$<$<CONFIG:Debug>:Debug>DLL")
|
add_compile_definitions(PROGRAM_VERSION="${PROJECT_VERSION}")
|
||||||
endif()
|
|
||||||
|
|
||||||
target_link_libraries(${CMAKE_PROJECT_NAME} PRIVATE
|
target_link_libraries(${CMAKE_PROJECT_NAME} PRIVATE
|
||||||
Qt6::Xml
|
Qt6::Xml
|
||||||
|
@ -460,48 +151,96 @@ target_link_libraries(${CMAKE_PROJECT_NAME} PRIVATE
|
||||||
Qt6::TextToSpeech
|
Qt6::TextToSpeech
|
||||||
)
|
)
|
||||||
|
|
||||||
if(APPLE)
|
target_compile_definitions(${CMAKE_PROJECT_NAME} PUBLIC
|
||||||
if(WITH_EPWING_SUPPORT)
|
CMAKE_USED_HACK # temporal hack to avoid breaking qmake build
|
||||||
target_link_libraries(${CMAKE_PROJECT_NAME} PRIVATE eb)
|
USE_ICONV
|
||||||
endif()
|
MAKE_ZIM_SUPPORT
|
||||||
endif()
|
MAKE_QTMULTIMEDIA_PLAYER
|
||||||
|
MAKE_CHINESE_CONVERSION_SUPPORT)
|
||||||
|
|
||||||
if(UNIX)
|
target_include_directories(${CMAKE_PROJECT_NAME} PUBLIC
|
||||||
|
${PROJECT_SOURCE_DIR}/thirdparty/qtsingleapplication/src
|
||||||
|
${PROJECT_SOURCE_DIR}/src/
|
||||||
|
${PROJECT_SOURCE_DIR}/src/common
|
||||||
|
${PROJECT_SOURCE_DIR}/src/dict
|
||||||
|
${PROJECT_SOURCE_DIR}/src/ui)
|
||||||
|
|
||||||
|
|
||||||
|
if (WITH_FFMPEG_PLAYER)
|
||||||
|
target_compile_definitions(${CMAKE_PROJECT_NAME} PUBLIC MAKE_FFMPEG_PLAYER)
|
||||||
|
if (UNIX)
|
||||||
|
target_link_libraries(${CMAKE_PROJECT_NAME} PRIVATE PkgConfig::FFMPEG)
|
||||||
|
endif ()
|
||||||
|
endif ()
|
||||||
|
|
||||||
|
|
||||||
|
if (NOT WITH_EPWING_SUPPORT)
|
||||||
|
target_compile_definitions(${CMAKE_PROJECT_NAME} PUBLIC NO_EPWING_SUPPORT)
|
||||||
|
endif ()
|
||||||
|
|
||||||
|
|
||||||
|
if (WITH_XAPIAN)
|
||||||
|
target_compile_definitions(${CMAKE_PROJECT_NAME} PUBLIC USE_XAPIAN)
|
||||||
|
|
||||||
|
if (UNIX)
|
||||||
|
target_link_libraries(${CMAKE_PROJECT_NAME} PRIVATE ${XAPIAN_LIBRARIES})
|
||||||
|
endif ()
|
||||||
|
endif ()
|
||||||
|
|
||||||
|
|
||||||
|
### Parts where different platforms disagree
|
||||||
|
|
||||||
|
if (LINUX)
|
||||||
|
target_compile_definitions(${CMAKE_PROJECT_NAME} PUBLIC HAVE_X11)
|
||||||
|
target_link_libraries(${CMAKE_PROJECT_NAME} PRIVATE X11 PkgConfig::LIBXTST)
|
||||||
|
|
||||||
|
if (WITH_EPWING_SUPPORT)
|
||||||
|
target_link_libraries(${CMAKE_PROJECT_NAME} PRIVATE eb)
|
||||||
|
endif ()
|
||||||
|
|
||||||
|
endif ()
|
||||||
|
|
||||||
|
if (MSVC)
|
||||||
|
target_compile_definitions(${CMAKE_PROJECT_NAME} PUBLIC
|
||||||
|
__WIN32
|
||||||
|
NO_EPWING_SUPPORT
|
||||||
|
INCLUDE_LIBRARY_PATH
|
||||||
|
)
|
||||||
|
|
||||||
|
target_include_directories(${CMAKE_PROJECT_NAME} PUBLIC
|
||||||
|
${CMAKE_SOURCE_DIR}/winlibs/include/
|
||||||
|
)
|
||||||
|
|
||||||
|
set_property(TARGET ${CMAKE_PROJECT_NAME} PROPERTY
|
||||||
|
MSVC_RUNTIME_LIBRARY "MultiThreaded$<$<CONFIG:Debug>:Debug>DLL")
|
||||||
|
|
||||||
|
file(GLOB WINLIBS_FILES "${CMAKE_SOURCE_DIR}/winlibs/lib/msvc/*.lib")
|
||||||
|
foreach (A_WIN_LIB ${WINLIBS_FILES})
|
||||||
|
target_link_libraries(${CMAKE_PROJECT_NAME} PRIVATE ${A_WIN_LIB})
|
||||||
|
endforeach ()
|
||||||
|
|
||||||
|
endif ()
|
||||||
|
|
||||||
|
|
||||||
|
if (APPLE)
|
||||||
|
target_link_libraries(${CMAKE_PROJECT_NAME} PRIVATE ${CARBON_LIBRARY})
|
||||||
|
|
||||||
|
if (WITH_EPWING_SUPPORT)
|
||||||
|
target_link_libraries(${CMAKE_PROJECT_NAME} PRIVATE eb)
|
||||||
|
endif ()
|
||||||
|
endif ()
|
||||||
|
|
||||||
|
if (UNIX)
|
||||||
target_include_directories(${CMAKE_PROJECT_NAME} PRIVATE
|
target_include_directories(${CMAKE_PROJECT_NAME} PRIVATE
|
||||||
${PROJECT_SOURCE_DIR}/thirdparty)
|
${PROJECT_SOURCE_DIR}/thirdparty)
|
||||||
|
|
||||||
target_link_libraries(${CMAKE_PROJECT_NAME} PRIVATE
|
target_link_libraries(${CMAKE_PROJECT_NAME} PRIVATE
|
||||||
# pkg-config packages need manually link
|
# pkg-config packages need manually link
|
||||||
PkgConfig::PKGCONFIG_DEPS
|
PkgConfig::PKGCONFIG_DEPS
|
||||||
BZip2::BZip2
|
BZip2::BZip2
|
||||||
ZLIB::ZLIB #hidden requirement of dsl_details.cc and more?
|
ZLIB::ZLIB #hidden requirement of dsl_details.cc and more?
|
||||||
|
Iconv::Iconv
|
||||||
)
|
)
|
||||||
endif()
|
|
||||||
|
|
||||||
if(MSVC)
|
|
||||||
file(GLOB WINLIBS_FILES "${CMAKE_SOURCE_DIR}/winlibs/lib/msvc/*.lib")
|
|
||||||
foreach(A_WIN_LIB ${WINLIBS_FILES})
|
|
||||||
target_link_libraries(${CMAKE_PROJECT_NAME} PRIVATE ${A_WIN_LIB})
|
|
||||||
endforeach()
|
|
||||||
endif()
|
|
||||||
|
|
||||||
|
|
||||||
if(LINUX)
|
|
||||||
target_link_libraries(${CMAKE_PROJECT_NAME} PRIVATE X11 PkgConfig::LIBXTST)
|
|
||||||
|
|
||||||
if(WITH_EPWING_SUPPORT)
|
|
||||||
target_link_libraries(${CMAKE_PROJECT_NAME} PRIVATE eb )
|
|
||||||
endif()
|
|
||||||
endif ()
|
|
||||||
|
|
||||||
if(APPLE)
|
|
||||||
target_link_libraries(${CMAKE_PROJECT_NAME} PRIVATE ${CARBON_LIBRARY})
|
|
||||||
endif()
|
|
||||||
|
|
||||||
if (WITH_FFMPEG_PLAYER)
|
|
||||||
if (APPLE OR LINUX)
|
|
||||||
target_link_libraries(${CMAKE_PROJECT_NAME} PRIVATE PkgConfig::FFMPEG)
|
|
||||||
endif ()
|
|
||||||
endif ()
|
endif ()
|
||||||
|
|
||||||
set_target_properties(${CMAKE_PROJECT_NAME} PROPERTIES
|
set_target_properties(${CMAKE_PROJECT_NAME} PROPERTIES
|
||||||
|
@ -516,7 +255,6 @@ install(TARGETS ${CMAKE_PROJECT_NAME}
|
||||||
BUNDLE DESTINATION .
|
BUNDLE DESTINATION .
|
||||||
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR})
|
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR})
|
||||||
|
|
||||||
|
|
||||||
# include all *ts files under locale
|
# include all *ts files under locale
|
||||||
file(GLOB TRANS_FILES "locale/*.ts")
|
file(GLOB TRANS_FILES "locale/*.ts")
|
||||||
|
|
||||||
|
@ -537,13 +275,15 @@ if (LINUX)
|
||||||
install(FILES ${CMAKE_SOURCE_DIR}/redist/icons/goldendict.png DESTINATION share/pixmaps)
|
install(FILES ${CMAKE_SOURCE_DIR}/redist/icons/goldendict.png DESTINATION share/pixmaps)
|
||||||
|
|
||||||
install(FILES ${qm_files} DESTINATION share/goldendict/locale)
|
install(FILES ${qm_files} DESTINATION share/goldendict/locale)
|
||||||
endif()
|
endif ()
|
||||||
|
|
||||||
# Copy .dlls to output dir
|
# Copy .dlls to output dir
|
||||||
if(MSVC)
|
if (MSVC)
|
||||||
file(GLOB DLL_FILES LIST_DIRECTORIES false "${CMAKE_SOURCE_DIR}/winlibs/lib/msvc/*.dll")
|
file(GLOB DLL_FILES LIST_DIRECTORIES false "${CMAKE_SOURCE_DIR}/winlibs/lib/msvc/*.dll")
|
||||||
foreach(A_DLL_FILE ${DLL_FILES})
|
foreach (A_DLL_FILE ${DLL_FILES})
|
||||||
get_filename_component(TEMP_VAR_HOLDING_DLL_FILENAME ${A_DLL_FILE} NAME)
|
get_filename_component(TEMP_VAR_HOLDING_DLL_FILENAME ${A_DLL_FILE} NAME)
|
||||||
configure_file("${A_DLL_FILE}" "${CMAKE_BINARY_DIR}/${TEMP_VAR_HOLDING_DLL_FILENAME}" COPYONLY)
|
configure_file("${A_DLL_FILE}" "${CMAKE_BINARY_DIR}/${TEMP_VAR_HOLDING_DLL_FILENAME}" COPYONLY)
|
||||||
endforeach()
|
endforeach ()
|
||||||
endif()
|
endif ()
|
||||||
|
|
||||||
|
feature_summary(WHAT ALL DESCRIPTION "Build configuration:")
|
|
@ -1,3 +1,5 @@
|
||||||
|
#ifdef __APPLE__
|
||||||
|
|
||||||
#include "gd_clipboard.hh"
|
#include "gd_clipboard.hh"
|
||||||
#include <QGuiApplication>
|
#include <QGuiApplication>
|
||||||
|
|
||||||
|
@ -33,4 +35,6 @@ void gd_clipboard::stop() {
|
||||||
|
|
||||||
void gd_clipboard::start() {
|
void gd_clipboard::start() {
|
||||||
m_monitoringTimer.start(1000); // 1s
|
m_monitoringTimer.start(1000); // 1s
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
|
@ -1,3 +1,4 @@
|
||||||
|
#ifdef __APPLE__
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
#include <QClipboard>
|
#include <QClipboard>
|
||||||
|
@ -36,3 +37,4 @@ signals:
|
||||||
void changed(QClipboard::Mode mode);
|
void changed(QClipboard::Mode mode);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
|
@ -1,3 +1,5 @@
|
||||||
|
#ifdef __APPLE__
|
||||||
|
|
||||||
#ifndef __MACMOUSEOVER_HH_INCLUDED__
|
#ifndef __MACMOUSEOVER_HH_INCLUDED__
|
||||||
#define __MACMOUSEOVER_HH_INCLUDED__
|
#define __MACMOUSEOVER_HH_INCLUDED__
|
||||||
|
|
||||||
|
@ -63,3 +65,4 @@ private:
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
|
@ -62,6 +62,10 @@ About::About( QWidget * parent, std::vector< sptr< Dictionary::Class > > * dicto
|
||||||
+" NO_EPWING_SUPPORT"
|
+" NO_EPWING_SUPPORT"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifdef USE_ICONV
|
||||||
|
+" USE_ICONV"
|
||||||
|
#endif
|
||||||
|
|
||||||
#ifdef MAKE_CHINESE_CONVERSION_SUPPORT
|
#ifdef MAKE_CHINESE_CONVERSION_SUPPORT
|
||||||
+" MAKE_CHINESE_CONVERSION_SUPPORT"
|
+" MAKE_CHINESE_CONVERSION_SUPPORT"
|
||||||
#endif
|
#endif
|
||||||
|
|
Loading…
Reference in a new issue