forked from Sigil-Ebook/Sigil
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Building_Sigil_On_MacOSX.txt
131 lines (105 loc) · 7.26 KB
/
Building_Sigil_On_MacOSX.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
# FIRST: See Building_Qt5_From_Source_on_MacOSX.txt
#
# SECOND: See Building_A_Relocatable_Python_3.8_Framework_on_MacOSX.txt
#
# Also make sure you have the latest XCode and ** Command Line tools** Installed
# via: xcode-select --install
#
# You will need to have CMake 3.0 or later installed and in your path
# standard deployment target
export MACOSX_DEPLOYMENT_TARGET=10.12
# Set the location of where the relocatable Python framework was installed
# See "Building_A_Relocatable_Python_3.8_Framework_on_MacOSX.txt
# Remember to stay away from /tmp locations as Mac OSX has a daemon that will delete
# files in tmp older than 3 days right out from underneath the user
export MYDEST=/Users/$USER/devtools/Frameworks
# Set the location of where Qt is installed
export MYQTHOME=~/Qt5129
# Set the location of where you want your Sigil repo to be stored
export MYSIGILREPO=~/repo
# clone the Sigil git repo
cd ${MYSIGILREPO}
git clone https://github.com/Sigil-Ebook/Sigil.git
# Add Qt to the path
export PATH=${PATH}:${MYQTHOME}/bin
# Make sure the newly created relocatable python framework is found first
# **before** any system version of Python3
export PATH=${MYDEST}/Python.framework/Versions/3.8/bin:${PATH}
mkdir build
cd build
# Select the appropriate cmake command from thge following depending
# on XCode version installed and macOS version
# Mac OS Sierra (OSX 10.12) use the following with XCode 8 or XCode 9
cmake -DPKG_SYSTEM_PYTHON=1 \
-DCMAKE_OSX_DEPLOYMENT_TARGET=10.12 \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_CXX_FLAGS=-Wno-inconsistent-missing-override \
-DCMAKE_PREFIX_PATH=${MYQTHOME}/lib/cmake \
-DCMAKE_OSX_SYSROOT=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.12.sdk/ \
../Sigil
# Mac OS High Sierra (OSX 10.13) use the following with XCode 9 or 10
cmake -DPKG_SYSTEM_PYTHON=1 \
-DCMAKE_OSX_DEPLOYMENT_TARGET=10.12 \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_CXX_FLAGS=-Wno-inconsistent-missing-override \
-DCMAKE_PREFIX_PATH=${MYQTHOME}/lib/cmake \
-DCMAKE_OSX_SYSROOT=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/ \
../Sigil
# Mac OS Mojave (OSX 10.14) use the following with XCode 10 or XCode 11
cmake -DPKG_SYSTEM_PYTHON=1 \
-DCMAKE_OSX_DEPLOYMENT_TARGET=10.12 \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_CXX_FLAGS=-Wno-inconsistent-missing-override \
-DCMAKE_PREFIX_PATH=${MYQTHOME}/lib/cmake \
-DCMAKE_OSX_SYSROOT=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.14.sdk/ \
../Sigil
# Mac OS Catalina (OSX 10.15) should use the following with XCode 11
cmake -DPKG_SYSTEM_PYTHON=1 \
-DCMAKE_OSX_DEPLOYMENT_TARGET=10.12 \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_CXX_FLAGS=-Wno-inconsistent-missing-override \
-DCMAKE_PREFIX_PATH=${MYQTHOME}/lib/cmake \
-DCMAKE_OSX_SYSROOT=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.15.sdk/ \
../Sigil
# After cmake completes
make
make addframeworks
As of Qt 5.12 and later there is one final step required.
Qt's macdeployqt does not properly add the rpaths needed for the
Qt plugins to find the Qt Frameworks when embedded
inside an app even one using the specified Qt app layout.
These installed Qt plugins need to have an specific @loader_path rpath added
as follows:
install_name_tool -add_rpath @loader_path/../../Frameworks ./bin/Sigil.app/Contents/PlugIns/bearer/libqgenericbearer.dylib
install_name_tool -add_rpath @loader_path/../../Frameworks ./bin/Sigil.app/Contents/PlugIns/iconengines/libqsvgicon.dylib
install_name_tool -add_rpath @loader_path/../../Frameworks ./bin/Sigil.app/Contents/PlugIns/imageformats/libqgif.dylib
install_name_tool -add_rpath @loader_path/../../Frameworks ./bin/Sigil.app/Contents/PlugIns/imageformats/libqicns.dylib
install_name_tool -add_rpath @loader_path/../../Frameworks ./bin/Sigil.app/Contents/PlugIns/imageformats/libqico.dylib
install_name_tool -add_rpath @loader_path/../../Frameworks ./bin/Sigil.app/Contents/PlugIns/imageformats/libqjpeg.dylib
install_name_tool -add_rpath @loader_path/../../Frameworks ./bin/Sigil.app/Contents/PlugIns/imageformats/libqmacheif.dylib
install_name_tool -add_rpath @loader_path/../../Frameworks ./bin/Sigil.app/Contents/PlugIns/imageformats/libqmacjp2.dylib
install_name_tool -add_rpath @loader_path/../../Frameworks ./bin/Sigil.app/Contents/PlugIns/imageformats/libqsvg.dylib
install_name_tool -add_rpath @loader_path/../../Frameworks ./bin/Sigil.app/Contents/PlugIns/imageformats/libqtga.dylib
install_name_tool -add_rpath @loader_path/../../Frameworks ./bin/Sigil.app/Contents/PlugIns/imageformats/libqtiff.dylib
install_name_tool -add_rpath @loader_path/../../Frameworks ./bin/Sigil.app/Contents/PlugIns/imageformats/libqwbmp.dylib
install_name_tool -add_rpath @loader_path/../../Frameworks ./bin/Sigil.app/Contents/PlugIns/imageformats/libqwebp.dylib
install_name_tool -add_rpath @loader_path/../../Frameworks ./bin/Sigil.app/Contents/PlugIns/platforminputcontexts/libqtvirtualkeyboardplugin.dylib
install_name_tool -add_rpath @loader_path/../../Frameworks ./bin/Sigil.app/Contents/PlugIns/platforms/libqcocoa.dylib
install_name_tool -add_rpath @loader_path/../../Frameworks ./bin/Sigil.app/Contents/PlugIns/position/libqtposition_cl.dylib
install_name_tool -add_rpath @loader_path/../../Frameworks ./bin/Sigil.app/Contents/PlugIns/position/libqtposition_positionpoll.dylib
install_name_tool -add_rpath @loader_path/../../Frameworks ./bin/Sigil.app/Contents/PlugIns/position/libqtposition_serialnmea.dylib
install_name_tool -add_rpath @loader_path/../../Frameworks ./bin/Sigil.app/Contents/PlugIns/printsupport/libcocoaprintersupport.dylib
install_name_tool -add_rpath @loader_path/../../Frameworks ./bin/Sigil.app/Contents/PlugIns/styles/libqmacstyle.dylib
install_name_tool -add_rpath @loader_path/../../Frameworks ./bin/Sigil.app/Contents/PlugIns/virtualkeyboard/libqtvirtualkeyboard_hangul.dylib
install_name_tool -add_rpath @loader_path/../../Frameworks ./bin/Sigil.app/Contents/PlugIns/virtualkeyboard/libqtvirtualkeyboard_openwnn.dylib
install_name_tool -add_rpath @loader_path/../../Frameworks ./bin/Sigil.app/Contents/PlugIns/virtualkeyboard/libqtvirtualkeyboard_pinyin.dylib
install_name_tool -add_rpath @loader_path/../../Frameworks ./bin/Sigil.app/Contents/PlugIns/virtualkeyboard/libqtvirtualkeyboard_tcime.dylib
install_name_tool -add_rpath @loader_path/../../Frameworks ./bin/Sigil.app/Contents/PlugIns/virtualkeyboard/libqtvirtualkeyboard_thai.dylib
# In ${MYSIGILREPO}/build/bin you will find the newly built Sigil.app
# To test if the newly bundled python 3 version of Sigil is working properly ypou can do the following:
1. download testplugin_v018.zip from https://github.com/Sigil-Ebook/Sigil/tree/master/docs
2. open Sigil.app to the normal nearly blank template epub it generates when opened
3. use Plugins->Manage Plugins menu and make sure the "Use Bundled Python" checkbox is checked
4. use the "Add Plugin" button to navigate to and add testplugin.zip and then hit "Okay" to exit the Manage Plugins Dialog
5. use Plugins->Edit->testplugins to launch the plugin and hit the "Start" button to run it
6. check the plugin output window for your missing or broken plugin test results