forked from mgsxx/QEverCloud
-
Notifications
You must be signed in to change notification settings - Fork 6
/
Copy pathCMakeLists.txt
133 lines (106 loc) · 4.9 KB
/
CMakeLists.txt
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
cmake_minimum_required(VERSION 3.16.3)
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_CURRENT_SOURCE_DIR}/QEverCloud/cmake/modules")
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_CURRENT_SOURCE_DIR}/QEverCloud/cmake/modules/sanitizers")
include(QEverCloudCMakePolicies)
SET_POLICIES()
project(QEverCloud
VERSION 6.2.0)
set(PROJECT_VENDOR "Dmitry Ivanov")
set(PROJECT_COPYRIGHT_YEAR "2015-2020")
set(PROJECT_DOMAIN_FIRST "qevercloud")
set(PROJECT_DOMAIN_SECOND "com")
set(PROJECT_DOMAIN "${PROJECT_DOMAIN_FIRST}.${PROJECT_DOMAIN_SECOND}")
include(QEverCloudDoxygen)
set(BUILD_DOCUMENTATION ON CACHE BOOL "Build documentation for QEverCloud")
set(BUILD_QCH_DOCUMENTATION OFF CACHE BOOL "Build documentation for QEverCloud in qch format")
set(BUILD_WITH_OAUTH_SUPPORT ON CACHE BOOL "Build QEverCloud with OAuth support")
set(BUILD_WITH_Q_NAMESPACE ON CACHE BOOL "Use Q_NAMESPACE and Q_ENUM_NS macros for introspection")
set(BUILD_TRANSLATIONS ON CACHE BOOL "Build translations")
if(BUILD_DOCUMENTATION)
# set Doxygen documentation properties
set(DOXY_INPUT "${PROJECT_SOURCE_DIR}/QEverCloud/headers ${PROJECT_SOURCE_DIR}/README.md")
set(DOXY_USE_MDFILE_AS_MAINPAGE "${PROJECT_SOURCE_DIR}/README.md")
set(DOXY_RECURSIVE "YES")
set(DOXY_PROJECT_NAME ${PROJECT_NAME})
set(DOXY_PROJECT_NUMBER "${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}.${PROJECT_VERSION_PATCH}")
set(DOXY_PROJECT_BRIEF "\"Unofficial Evernote Cloud API for Qt\"")
set(DOXY_OUTPUT_DIRECTORY "${PROJECT_BINARY_DIR}/doc")
set(DOXY_WARN_IF_UNDOCUMENTED "NO")
set(DOXY_EXTRACT_ALL "YES")
if(BUILD_QCH_DOCUMENTATION)
set(DOXY_GENERATE_QHP "YES")
else()
set(DOXY_GENERATE_QHP "NO")
endif()
ADD_DOCUMENTATION(doc Doxyfile)
endif()
include(QEverCloudCompilerSettings)
include(QEverCloudSetupQt)
include(QEverCloudUpdateTranslations)
set(QEVERCLOUD_QT_VERSION "qt5")
if(NOT CMAKE_INSTALL_LIBDIR)
set(CMAKE_INSTALL_LIBDIR "lib")
endif()
if(NOT CMAKE_INSTALL_BINDIR)
set(CMAKE_INSTALL_BINDIR "bin")
endif()
if(NOT CMAKE_INSTALL_INCLUDEDIR)
set(CMAKE_INSTALL_INCLUDEDIR "include")
endif()
if(NOT CMAKE_INSTALL_TRANSLATIONSDIR)
set(CMAKE_INSTALL_TRANSLATIONSDIR "share/${PROJECT_NAME}/translations")
endif()
if(NOT INSTALL_CMAKE_DIR)
if(WIN32 AND NOT CYGWIN)
set(INSTALL_CMAKE_DIR "CMake")
else()
set(INSTALL_CMAKE_DIR "${CMAKE_INSTALL_LIBDIR}/cmake/QEverCloud-${QEVERCLOUD_QT_VERSION}")
endif()
endif()
set(BUILD_SHARED ON CACHE BOOL "Build shared library, otherwise static library")
if(MSVC)
set(QEVERCLOUD_LIBNAME_PREFIX "lib")
else()
set(QEVERCLOUD_LIBNAME_PREFIX "")
endif()
if(QEVERCLOUD_USE_QT_WEB_ENGINE)
set(QEVERCLOUD_USES_QT_WEB_ENGINE "set(QEVERCLOUD_USE_QT_WEB_ENGINE TRUE)")
else()
set(QEVERCLOUD_USES_QT_WEB_ENGINE "set(QEVERCLOUD_USE_QT_WEB_ENGINE FALSE)")
endif()
if(QEVERCLOUD_USE_SYSTEM_BROWSER)
set(QEVERCLOUD_USES_SYSTEM_BROWSER "set(QEVERCLOUD_USE_SYSTEM_BROWSER TRUE)")
else()
set(QEVERCLOUD_USES_SYSTEM_BROWSER "set(QEVERCLOUD_USE_SYSTEM_BROWSER FALSE)")
endif()
if(BUILD_WITH_OAUTH_SUPPORT)
set(QEVERCLOUD_HAS_OAUTH "set(QEVERCLOUD_HAS_OAUTH TRUE)")
else()
set(QEVERCLOUD_HAS_OAUTH "set(QEVERCLOUD_HAS_OAUTH FALSE)")
endif()
configure_file(QEverCloud/cmake/modules/QEverCloudBuildTreeSettings.cmake.in
${PROJECT_BINARY_DIR}/QEverCloud-${QEVERCLOUD_QT_VERSION}BuildTreeSettings.cmake @ONLY)
configure_file(QEverCloud/cmake/modules/QEverCloudConfig.cmake.in
${PROJECT_BINARY_DIR}/QEverCloud-${QEVERCLOUD_QT_VERSION}Config.cmake @ONLY)
configure_file(QEverCloud/cmake/modules/QEverCloudConfigVersion.cmake.in
${PROJECT_BINARY_DIR}/QEverCloud-${QEVERCLOUD_QT_VERSION}ConfigVersion.cmake @ONLY)
file(COPY QEverCloud/cmake/modules/QEverCloudFindQt5DependenciesCore.cmake DESTINATION ${PROJECT_BINARY_DIR})
file(RENAME ${PROJECT_BINARY_DIR}/QEverCloudFindQt5DependenciesCore.cmake ${PROJECT_BINARY_DIR}/QEverCloud-${QEVERCLOUD_QT_VERSION}FindQtDependencies.cmake)
if(BUILD_TRANSLATIONS)
file(READ QEverCloud/cmake/modules/QEverCloudFindQt5DependenciesTranslations.cmake TRANSLATIONS_DEPS_FILE)
file(APPEND ${PROJECT_BINARY_DIR}/QEverCloud-${QEVERCLOUD_QT_VERSION}FindQtDependencies.cmake "${TRANSLATIONS_DEPS_FILE}")
endif()
if(BUILD_WITH_OAUTH_SUPPORT)
if(USE_QT5_WEBKIT OR Qt5Core_VERSION VERSION_LESS "5.6.0")
file(READ QEverCloud/cmake/modules/QEverCloudFindQt5DependenciesWebKit.cmake WEBKIT_DEPS_FILE)
file(APPEND ${PROJECT_BINARY_DIR}/QEverCloud-${QEVERCLOUD_QT_VERSION}FindQtDependencies.cmake "${WEBKIT_DEPS_FILE}")
elseif(NOT QEVERCLOUD_USE_SYSTEM_BROWSER)
file(READ QEverCloud/cmake/modules/QEverCloudFindQt5DependenciesWebEngineCore.cmake WEBENGINE_CORE_DEPS_FILE)
file(APPEND ${PROJECT_BINARY_DIR}/QEverCloud-${QEVERCLOUD_QT_VERSION}FindQtDependencies.cmake "${WEBENGINE_CORE_DEPS_FILE}")
endif()
endif()
find_package(Sanitizers)
set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
enable_testing()
add_subdirectory(QEverCloud)
add_custom_target(check COMMAND "${CMAKE_CTEST_COMMAND}" "--verbose")