/
CMakeLists.txt
140 lines (109 loc) · 5.32 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
134
135
136
137
138
139
140
PROJECT(QtWebKit)
# Name and version of our package
SET(PACKAGE_NAME QtWebKit)
SET(PACKAGE_VERSION 5.6.2)
# Version of our library
SET(MAJOR_LIBRARY_VERSION 5)
SET(LIBRARY_VERSION ${MAJOR_LIBRARY_VERSION}.6.2)
# Git tag for our library
SET(GIT_TAG v5.6.2)
# Specify where our local package will be installed
SET(FULL_LOCAL_EXTERNAL_PACKAGE_DIR ${PROJECT_SOURCE_DIR}/${LOCAL_EXTERNAL_PACKAGE_DIR})
# Name of our package's shared library (and of its import library, if any)
IF(WIN32)
SET(QTWEBKIT_SHARED_LIBRARY QtWebKit${QT_VERSION_MAJOR}${CMAKE_SHARED_LIBRARY_SUFFIX})
SET(QTWEBKIT_IMPORT_LIBRARY QtWebKit${QT_VERSION_MAJOR}${CMAKE_IMPORT_LIBRARY_SUFFIX})
SET(QTWEBKITWIDGETS_SHARED_LIBRARY QtWebKitWidgets${QT_VERSION_MAJOR}${CMAKE_SHARED_LIBRARY_SUFFIX})
SET(QTWEBKITWIDGETS_IMPORT_LIBRARY QtWebKitWidgets${QT_VERSION_MAJOR}${CMAKE_IMPORT_LIBRARY_SUFFIX})
ELSE(APPLE)
SET(QTWEBKIT_SHARED_LIBRARY QtWebKit.framework/Versions/${QT_VERSION_MAJOR}/QtWebKit)
SET(QTWEBKIT_IMPORT_LIBRARY ${QTWEBKIT_SHARED_LIBRARY})
SET(QTWEBKITWIDGETS_SHARED_LIBRARY QtWebKitWidgets.framework/Versions/${QT_VERSION_MAJOR}/QtWebKitWidgets)
SET(QTWEBKITWIDGETS_IMPORT_LIBRARY ${QTWEBKITWIDGETS_SHARED_LIBRARY})
ELSE()
SET(QTWEBKIT_SHARED_LIBRARY ${CMAKE_SHARED_LIBRARY_PREFIX}QtWebKit${QT_VERSION_MAJOR}${CMAKE_SHARED_LIBRARY_SUFFIX_PRE}.${MAJOR_LIBRARY_VERSION}${CMAKE_SHARED_LIBRARY_SUFFIX_POST})
SET(QTWEBKIT_IMPORT_LIBRARY ${QTWEBKIT_SHARED_LIBRARY})
SET(QTWEBKITWIDGETS_SHARED_LIBRARY ${CMAKE_SHARED_LIBRARY_PREFIX}QtWebKitWidgets${QT_VERSION_MAJOR}${CMAKE_SHARED_LIBRARY_SUFFIX_PRE}.${MAJOR_LIBRARY_VERSION}${CMAKE_SHARED_LIBRARY_SUFFIX_POST})
SET(QTWEBKITWIDGETS_IMPORT_LIBRARY ${QTWEBKITWIDGETS_SHARED_LIBRARY})
ENDIF()
# Retrieve our package's binaries
SET(EXTERNAL_BINARIES_DIR ${FULL_LOCAL_EXTERNAL_PACKAGE_DIR}/lib)
SET(EXTERNAL_BINARIES
${QTWEBKIT_SHARED_LIBRARY}
${QTWEBKITWIDGETS_SHARED_LIBRARY}
)
# Specify the files that need to have their SHA-1 value checked
SET(SHA1_FILES
lib/${QTWEBKIT_SHARED_LIBRARY}
lib/${QTWEBKITWIDGETS_SHARED_LIBRARY}
)
IF(WIN32)
LIST(APPEND SHA1_FILES
lib/${QTWEBKIT_IMPORT_LIBRARY}
lib/${QTWEBKITWIDGETS_IMPORT_LIBRARY}
)
ENDIF()
# Use the pre-built version of our package unless instructed otherwise
IF(USE_PREBUILT_QTWEBKIT_PACKAGE)
# Retrieve the plugin's package
STRING(REPLACE "${${CMAKE_PROJECT_NAME}_SOURCE_DIR}/" ""
RELATIVE_PROJECT_SOURCE_DIR "${PROJECT_SOURCE_DIR}/${REMOTE_EXTERNAL_PACKAGE_DIR}")
IF(WIN32)
IF(RELEASE_MODE)
RETRIEVE_PACKAGE_FILE(${PACKAGE_NAME} ${PACKAGE_VERSION}
${RELATIVE_PROJECT_SOURCE_DIR} XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
SHA1_FILES ${SHA1_FILES}
SHA1_VALUES XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX)
ELSE()
RETRIEVE_PACKAGE_FILE(${PACKAGE_NAME} ${PACKAGE_VERSION}
${RELATIVE_PROJECT_SOURCE_DIR} XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
SHA1_FILES ${SHA1_FILES}
SHA1_VALUES XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX)
ENDIF()
ELSEIF(APPLE)
RETRIEVE_PACKAGE_FILE(${PACKAGE_NAME} ${PACKAGE_VERSION}
${RELATIVE_PROJECT_SOURCE_DIR} XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
SHA1_FILES ${SHA1_FILES}
SHA1_VALUES XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX)
ELSE()
RETRIEVE_PACKAGE_FILE(${PACKAGE_NAME} ${PACKAGE_VERSION}
${RELATIVE_PROJECT_SOURCE_DIR} XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
SHA1_FILES ${SHA1_FILES}
SHA1_VALUES XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX)
ENDIF()
ELSE()
# Build QtWebKit as an external project
SET(PACKAGE_BUILD ${PACKAGE_NAME}Build)
ExternalProject_Add(${PACKAGE_BUILD}
SOURCE_DIR
${CMAKE_SOURCE_DIR}/ext/${PACKAGE_NAME}
INSTALL_DIR
${FULL_LOCAL_EXTERNAL_PACKAGE_DIR}
GIT_REPOSITORY
https://github.com/opencor/qtwebkit
GIT_TAG
${GIT_TAG}
CONFIGURE_COMMAND
${QT_QMAKE} <SOURCE_DIR>
BUILD_COMMAND
${MAKE_COMMAND}
INSTALL_COMMAND
${MAKE_COMMAND} install
BUILD_BYPRODUCTS
<INSTALL_DIR>/lib/${QTWEBKIT_IMPORT_LIBRARY}
<INSTALL_DIR>/lib/${QTWEBKITWIDGETS_IMPORT_LIBRARY}
)
# Package our external project
CREATE_PACKAGE_FILE(${PACKAGE_NAME} ${PACKAGE_VERSION}
${LOCAL_EXTERNAL_PACKAGE_DIR}
PACKAGED_FILES include ${SHA1_FILES}
SHA1_FILES ${SHA1_FILES}
TARGET ${PACKAGE_BUILD})
SET(DEPENDS_ON ${PACKAGE_BUILD})
ENDIF()
# Make sure that QtWebKit's CMake files can be found
SET(QTWEBKIT_DIR ${CMAKE_SOURCE_DIR}/src/3rdparty/QtWebKit)
LIST(APPEND CMAKE_PREFIX_PATH ${QTWEBKIT_DIR}/cmake/${PLATFORM_DIR}/Qt5WebKit)
LIST(APPEND CMAKE_PREFIX_PATH ${QTWEBKIT_DIR}/cmake/${PLATFORM_DIR}/Qt5WebKitWidgets)