-
Notifications
You must be signed in to change notification settings - Fork 8.3k
Expand file tree
/
Copy pathCMakeLists.txt
More file actions
76 lines (67 loc) · 3.09 KB
/
Copy pathCMakeLists.txt
File metadata and controls
76 lines (67 loc) · 3.09 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
include(FetchContent)
set(BUILD_SHARED_LIBS OFF)
# PDFium needs to be fetched first (uses FetchContent)
if (NOT GPT4ALL_USING_QTPDF)
# If we do not use QtPDF, we need to get PDFium.
set(GPT4ALL_PDFIUM_TAG "chromium/6996")
if (CMAKE_SYSTEM_NAME MATCHES Linux)
FetchContent_Declare(
pdfium
URL "https://github.com/bblanchon/pdfium-binaries/releases/download/${GPT4ALL_PDFIUM_TAG}/pdfium-linux-x64.tgz"
URL_HASH "SHA256=68b381b87efed539f2e33ae1e280304c9a42643a878cc296c1d66a93b0cb4335"
)
elseif (CMAKE_SYSTEM_NAME MATCHES Windows)
if (CMAKE_SYSTEM_PROCESSOR MATCHES "^(x86_64|AMD64|amd64)$")
FetchContent_Declare(
pdfium
URL "https://github.com/bblanchon/pdfium-binaries/releases/download/${GPT4ALL_PDFIUM_TAG}/pdfium-win-x64.tgz"
URL_HASH "SHA256=83e714c302ceacccf403826d5cb57ea39b77f393d83b8d5781283012774a9378"
)
elseif (CMAKE_SYSTEM_PROCESSOR MATCHES "^(aarch64|AARCH64|arm64|ARM64)$")
FetchContent_Declare(
pdfium
URL "https://github.com/bblanchon/pdfium-binaries/releases/download/${GPT4ALL_PDFIUM_TAG}/pdfium-win-arm64.tgz"
URL_HASH "SHA256=78e77e871453a4915cbf66fb381b951c9932f88a747c6b2b33c9f27ec2371445"
)
endif()
elseif (CMAKE_SYSTEM_NAME MATCHES Darwin)
FetchContent_Declare(
pdfium
URL "https://github.com/bblanchon/pdfium-binaries/releases/download/${GPT4ALL_PDFIUM_TAG}/pdfium-mac-univ.tgz"
URL_HASH "SHA256=e7577f3242ff9c1df50025f9615673a43601a201bc51ee4792975f98920793a2"
)
endif()
FetchContent_MakeAvailable(pdfium)
find_package(PDFium REQUIRED PATHS "${pdfium_SOURCE_DIR}" NO_DEFAULT_PATH)
endif()
set(FMT_INSTALL OFF)
add_subdirectory(fmt)
set(QAPPLICATION_CLASS QApplication)
add_subdirectory(SingleApplication)
set(DUCKX_INSTALL OFF)
add_subdirectory(DuckX)
# Use system QXlsx on Linux (both submodule and system package are incompatible with Qt 6.8+ due to GuiPrivate)
# Manually create the target using system library and headers
if (CMAKE_SYSTEM_NAME MATCHES Linux AND NOT DEFINED ENV{GPT4ALL_USE_SUBMODULE_QXLSX})
if(NOT TARGET QXlsx)
add_library(QXlsx SHARED IMPORTED)
set_target_properties(QXlsx PROPERTIES
IMPORTED_LOCATION "/usr/lib/libQXlsxQt6.so"
IMPORTED_NO_SONAME ON
INTERFACE_COMPILE_DEFINITIONS "QXlsx_SHAREDLIB"
INTERFACE_COMPILE_FEATURES "cxx_std_11"
INTERFACE_INCLUDE_DIRECTORIES "/usr/include/QXlsxQt6"
)
endif()
# Add the Qt dependencies to QXlsx since system package references removed GuiPrivate
if(TARGET QXlsx)
get_target_property(_existing_libs QXlsx INTERFACE_LINK_LIBRARIES)
if(NOT _existing_libs)
set_property(TARGET QXlsx APPEND PROPERTY INTERFACE_LINK_LIBRARIES Qt6::Core)
set_property(TARGET QXlsx APPEND PROPERTY INTERFACE_LINK_LIBRARIES Qt6::Gui)
endif()
endif()
else()
set(QT_VERSION_MAJOR 6)
add_subdirectory(QXlsx/QXlsx)
endif()