-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathCMakeLists.txt
More file actions
122 lines (105 loc) · 3.97 KB
/
CMakeLists.txt
File metadata and controls
122 lines (105 loc) · 3.97 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
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
cmake_minimum_required(VERSION 3.16)
project(LaTeXEditor VERSION 1.0 LANGUAGES CXX)
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_AUTOMOC ON)
set(CMAKE_AUTORCC ON)
set(CMAKE_AUTOUIC ON)
# Set the deployment target to macOS 14.3 (Sonoma)
set(CMAKE_OSX_DEPLOYMENT_TARGET "11.0" CACHE STRING "Minimum OS X deployment version")
# Ensure we're building for x86_64
set(CMAKE_OSX_ARCHITECTURES "x86_64")
# Find the Qt installation
if(DEFINED ENV{Qt6_DIR} AND NOT DEFINED Qt6_DIR)
set(Qt6_DIR $ENV{Qt6_DIR})
endif()
find_package(Qt6 COMPONENTS Widgets PrintSupport REQUIRED)
if (Qt6WebEngineWidgets_FOUND)
add_definitions(-DQT_WEBENGINEWIDGETS_LIB)
message(STATUS "Qt6WebEngineWidgets found, enabling web-based preview")
else ()
message(STATUS "Qt6WebEngineWidgets not found, falling back to QTextBrowser for preview")
endif ()
# Find Hunspell (optional)
find_package(PkgConfig)
if (PKG_CONFIG_FOUND)
pkg_check_modules(HUNSPELL hunspell)
if (HUNSPELL_FOUND)
add_definitions(-DHAVE_HUNSPELL)
message(STATUS "Hunspell found, enabling spell checking")
else ()
message(STATUS "Hunspell not found, spell checking will be disabled")
endif ()
else ()
message(STATUS "PkgConfig not found, spell checking will be disabled")
endif ()
add_definitions(-DQT_MESSAGELOGCONTEXT)
set(SOURCE_FILES
src/main.cpp
src/models/DocumentModel.cpp
src/models/Theme.cpp
src/models/ProjectModel.cpp
src/views/MainWindow.cpp
src/views/LatexToolbar.cpp
src/views/PreviewWindow.cpp
src/views/FindReplaceDialog.cpp
src/views/ProjectTreeWidget.cpp
src/controllers/EditorController.cpp
src/controllers/FileController.cpp
src/controllers/LatexToolbarController.cpp
src/controllers/PreviewController.cpp
src/controllers/AutoSaveController.cpp
src/utils/LaTeXHighlighter.cpp
src/utils/ThemeManager.cpp
src/utils/CodeEditor.cpp
src/utils/LaTeXErrorChecker.cpp
src/utils/SpellChecker.cpp
src/utils/SpellCheckHighlighter.cpp
src/utils/LaTeXToHtmlConverter.cpp
resources.qrc
)
if(APPLE)
set(ICON_FILE ${CMAKE_CURRENT_SOURCE_DIR}/latex_editor_icon.icns)
if(EXISTS ${ICON_FILE})
set(MACOSX_BUNDLE_ICON_FILE latex_editor_icon.icns)
set_source_files_properties(${ICON_FILE} PROPERTIES MACOSX_PACKAGE_LOCATION "Resources")
list(APPEND SOURCE_FILES ${ICON_FILE})
else()
message(WARNING "Icon file ${ICON_FILE} not found. The application will be built without an icon.")
endif()
endif()
add_executable(LaTeXEditor MACOSX_BUNDLE ${SOURCE_FILES})
target_link_libraries(LaTeXEditor PRIVATE Qt6::Widgets Qt6::PrintSupport)
if (Qt6WebEngineWidgets_FOUND)
target_link_libraries(LaTeXEditor PRIVATE Qt6::WebEngineWidgets)
endif ()
if (HUNSPELL_FOUND)
target_include_directories(LaTeXEditor PRIVATE ${HUNSPELL_INCLUDE_DIRS})
target_link_libraries(LaTeXEditor PRIVATE ${HUNSPELL_LIBRARIES})
endif ()
if(APPLE)
set_target_properties(LaTeXEditor PROPERTIES
MACOSX_BUNDLE TRUE
MACOSX_BUNDLE_GUI_IDENTIFIER com.yourcompany.LaTeXEditor
MACOSX_BUNDLE_BUNDLE_VERSION ${PROJECT_VERSION}
MACOSX_BUNDLE_SHORT_VERSION_STRING ${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}
MACOSX_BUNDLE_INFO_PLIST ${CMAKE_CURRENT_SOURCE_DIR}/Info.plist.in
)
endif()
# Install rules
install(TARGETS LaTeXEditor
BUNDLE DESTINATION .
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
)
# Include a custom command for macdeployqt if on macOS
if(APPLE)
find_program(MACDEPLOYQT_EXECUTABLE macdeployqt HINTS "${Qt6_DIR}/../../../bin")
if(MACDEPLOYQT_EXECUTABLE)
add_custom_command(TARGET LaTeXEditor POST_BUILD
COMMAND "${MACDEPLOYQT_EXECUTABLE}"
"$<TARGET_FILE_DIR:LaTeXEditor>/../.."
-always-overwrite
COMMENT "Running macdeployqt..."
)
endif()
endif()