Menu

[efa3d9]: / CMakeLists.txt  Maximize  Restore  History

Download this file

185 lines (143 with data), 5.8 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
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
cmake_minimum_required(VERSION 3.16)
project(ViewYourMind-develop LANGUAGES CXX)
# See also https://doc.qt.io/qt-6.5/cmake-get-started.html
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
if (CMAKE_SYSTEM_NAME STREQUAL Linux)
message(STATUS "using UNIX in cmake") # FIXME-0 still required?
endif()
set(QtComponents
LinguistTools
Network
PrintSupport
Qml
Svg
SvgWidgets
Widgets
Xml
)
set(QtLibraries
Qt6::Network
Qt6::PrintSupport
Qt6::Qml
Qt6::Svg
Qt6::SvgWidgets
Qt6::Widgets
Qt6::Xml
)
# Switch on Debug mode on command line with
# cmake -DCMAKE_BUILD_TYPE=Debug .
#
# or uncomment here:
# set(CMAKE_BUILD_TYPE Debug)
set(CMAKE_AUTOMOC ON)
set(CMAKE_AUTOUIC ON)
set(CMAKE_AUTORCC ON)
# On Linux DBUS is used for IPC with vym
# On openSUSE install it using: zypper install dbus-1-devel
if (CMAKE_SYSTEM_NAME STREQUAL Linux)
find_package(DBus1)
if(DBus1_FOUND)
LIST(APPEND QtComponents DBus)
LIST(APPEND QtLibraries Qt6::DBus)
endif()
endif()
if(WIN32)
set(OPENSSL_ROOT_DIR "C:/OpenSSL-Win64")
find_package(OpenSSL)
if( OPENSSL_FOUND )
include_directories(${OPENSSL_INCLUDE_DIRS})
link_directories(${OPENSSL_LIBRARIES})
message(STATUS "Using OpenSSL version: ${OPENSSL_VERSION}")
else()
message(STATUS "No openSSL found?!")
# Error; with REQUIRED, pkg_search_module() will throw an error by it's own
endif()
#target_link_libraries(${YOUR_TARGET_HERE} ${OPENSSL_LIBRARIES})
#target_link_libraries(project_name /path/of/libssl.so /path/of/libcrypto.so)
set(CMAKE_INSTALL_DATAROOTDIR ".")
endif()
include(GNUInstallDirs)
find_package(Qt6 COMPONENTS ${QtComponents} REQUIRED)
list(APPEND CMAKE_AUTOUIC_SEARCH_PATHS "${CMAKE_SOURCE_DIR}/forms")
get_target_property(QtLibraryType Qt6::Widgets TYPE)
if(QtLibraryType STREQUAL STATIC_LIBRARY)
message(STATUS "Static Qt linkage")
list(APPEND QtLibraries Qt6::QSvgPlugin)
endif()
include_directories(
${CMAKE_SOURCE_DIR}
)
# Source files
file(GLOB VymSources RELATIVE ${CMAKE_SOURCE_DIR} "src/*.cpp")
if(WIN32)
list(APPEND VymSources
src/mkdtemp.cpp
vym.rc
)
ADD_COMPILE_DEFINITIONS(_USE_MATH_DEFINES)
endif()
# Add DBUS interfaces, if DBUS is available on platform
if(DBus1_FOUND)
list(APPEND VymSources src/dbus/adaptormodel.cpp src/dbus/adaptorvym.cpp)
include_directories(${CMAKE_SOURCE_DIR}/src/dbus ${CMAKE_SOURCE_DIR}/src)
ADD_COMPILE_DEFINITIONS(VYM_DBUS)
endif()
# Translations (release)
# To update the translation files based on source code changes
# first call manually
# lupdate-qt5 src/ -ts lang/*.ts
#
# Qt6 will have a dedicated macro:
# https://doc.qt.io/qt-6/qtlinguist-cmake-qt-add-lrelease.html
#file(GLOB ts_files ABSOLUTE ${CMAKE_BINARY_DIR} "lang/*.ts")
file(GLOB ts_files RELATIVE ${CMAKE_SOURCE_DIR} "lang/*.ts")
message(STATUS "Creating ${CMAKE_BINARY_DIR}/translations")
file(MAKE_DIRECTORY "${CMAKE_BINARY_DIR}/translations")
set_source_files_properties(${ts_files} PROPERTIES OUTPUT_LOCATION ${CMAKE_BINARY_DIR}/translations)
#set_source_files_properties(${ts_files} PROPERTIES OUTPUT_LOCATION ${CMAKE_SOURCE_DIR}/translations)
#QT5_create_translation(qm_files ${CMAKE_SOURCE_DIR} ${ts_files})
#QT5_create_translation(qm_files ${CMAKE_BINARY_DIR} ${ts_files})
#QT5_create_translation(qm_files ${CMAKE_SOURCE_DIR}/src)
QT6_add_translation(qm_files ${ts_files})
add_compile_definitions(CMAKE_SOURCE_DIR)
message(STATUS "CMAKE_BINARY_DIR: ${CMAKE_BINARY_DIR}")
message(STATUS "ts_files: ${ts_files}")
message(STATUS "qm_files: ${qm_files}")
ADD_COMPILE_DEFINITIONS(VYMBASEDIR="${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_DATAROOTDIR}")
add_executable(vym ${VymSources} vym.qrc ${qm_files})
target_link_libraries(vym ${QtLibraries})
if(WIN32)
set_target_properties(vym PROPERTIES WIN32_EXECUTABLE TRUE)
install(TARGETS vym DESTINATION "${CMAKE_INSTALL_PREFIX}")
else()
install(TARGETS vym DESTINATION bin)
endif()
if(APPLE)
message(STATUS "Detected APPLE")
set_target_properties(vym PROPERTIES MACOSX_BUNDLE TRUE )
# Add property to Info.plist
set(MACOSX_BUNDLE_ICON_FILE vym.icns)
# tell CMake where to find and install the file itself
set(APP_ICON_MACOSX ${CMAKE_CURRENT_SOURCE_DIR}/icons/vym.icns)
set_source_files_properties(${APP_ICON_MACOSX} PROPERTIES
MACOSX_PACKAGE_LOCATION "Resources")
#FIXME-0 add_executable(vym MACOSX_BUNDLE main.cpp ${APP_ICON_MACOSX})
target_sources(vym PUBLIC ${APP_ICON_MACOSX})
endif()
add_custom_target(make-translations-directory ALL
COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_BINARY_DIR}/translations)
add_dependencies(vym make-translations-directory)
install(DIRECTORY demos DESTINATION ${CMAKE_INSTALL_DATAROOTDIR})
install(DIRECTORY doc DESTINATION ${CMAKE_INSTALL_DOCDIR} FILES_MATCHING PATTERN "*.pdf")
install(FILES doc/vym.1.gz DESTINATION ${CMAKE_INSTALL_MANDIR})
install(FILES README.md LICENSE.txt DESTINATION ${CMAKE_INSTALL_DOCDIR})
install(DIRECTORY exports flags icons macros ${CMAKE_BINARY_DIR}/translations scripts styles DESTINATION ${CMAKE_INSTALL_DATAROOTDIR})
if(UNIX)
install(FILES icons/vym.png DESTINATION ${CMAKE_INSTALL_PREFIX}/share/icons/hicolor/48x48/apps)
# Disabling PR #109 for now:
# file(CREATE_LINK ../apps/vym.png application-x-vym.png SYMBOLIC)
# install(FILES ${CMAKE_BINARY_DIR}/application-x-vym.png DESTINATION ${CMAKE_INSTALL_PREFIX}/share/icons/hicolor/48x48/mimetypes)
install(FILES config/vym.xml DESTINATION ${CMAKE_INSTALL_PREFIX}/share/mime/packages)
install(FILES config/vym.desktop DESTINATION ${CMAKE_INSTALL_PREFIX}/share/applications)
endif()
Want the latest updates on software, tech news, and AI?
Get latest updates about software, tech news, and AI from SourceForge directly in your inbox once a month.