Skip to content

Commit 9cc3cf5

Browse files
committed
Improve setup script for static libraries and MacOS
1 parent e4e6bb4 commit 9cc3cf5

File tree

1 file changed

+34
-16
lines changed

1 file changed

+34
-16
lines changed

setup.sh

Lines changed: 34 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -33,10 +33,16 @@ if [[ "$OSTYPE" == "linux-gnu"* ]]; then
3333
else
3434
COMPILER="gcc_64"
3535
fi
36+
CMAKE=cmake
37+
CPACK=cpack
38+
PATH=$PATH:~/Qt/Tools/QtInstallerFramework/4.8/bin
3639
elif [[ "$OSTYPE" == "darwin"* ]]; then
3740
PLATFORM="macos"
3841
CMAKE_INSTALL_PREFIX="/usr"
3942
COMPILER="macos"
43+
CMAKE=~/Qt/Tools/CMake/CMake.app/Contents/bin/cmake
44+
CPACK=~/Qt/Tools/CMake/CMake.app/Contents/bin/cpack
45+
PATH=$PATH:~/Qt/Tools/QtInstallerFramework/4.8/bin
4046
elif [[ "$OSTYPE" == "win32" || "$OSTYPE" == "msys" ]]; then
4147
PLATFORM="windows"
4248
CMAKE_INSTALL_PREFIX="install"
@@ -45,14 +51,20 @@ elif [[ "$OSTYPE" == "win32" || "$OSTYPE" == "msys" ]]; then
4551
else
4652
COMPILER="msvc2019_64"
4753
fi
54+
CMAKE=cmake
55+
CPACK=cpack
4856
elif [[ "$OSTYPE" == "freebsd"* ]]; then
4957
PLATFORM="freebsd"
5058
CMAKE_INSTALL_PREFIX="/usr"
5159
COMPILER="gcc"
60+
CMAKE=cmake
61+
CPACK=cpack
5262
else
5363
PLATFORM="unix"
5464
CMAKE_INSTALL_PREFIX="/usr"
5565
COMPILER="gcc"
66+
CMAKE=cmake
67+
CPACK=cpack
5668
fi
5769

5870
CMAKE_CONFIGURATION_TYPES="Debug;Release;RelWithDebInfo;MinSizeRel"
@@ -122,6 +134,7 @@ else
122134
fi
123135

124136
# Constants
137+
BUILD_SHARED_LIBS="OFF"
125138
if [[ "$PLATFORM" == "windows" ]]; then
126139
AppDir=""
127140
AppDirUsr="install"
@@ -141,9 +154,7 @@ elif $CLEAR # QPrompt
141154
fi
142155
mkdir -p build install
143156

144-
if [[ "$PLATFORM" == "macos" ]]; then
145-
brew install ninja
146-
elif [[ "$PLATFORM" == "windows" ]]; then
157+
if [[ "$PLATFORM" == "windows" ]]; then
147158
winget install -e --id Kitware.CMake
148159
winget install -e --id Ninja-build.Ninja
149160
winget install -e --id JRSoftware.InnoSetup
@@ -193,7 +204,6 @@ tier_0="
193204
"
194205
tier_1="
195206
./3rdparty/kcoreaddons
196-
./3rdparty/kcrash
197207
./3rdparty/kirigami
198208
"
199209
tier_2="
@@ -205,30 +215,38 @@ for dependency in $tier_0 $tier_1 $tier_2 $tier_3; do
205215
if $CLEAR_ALL; then
206216
rm -dRf $dependency/build
207217
fi
208-
cmake -DCMAKE_CONFIGURATION_TYPES=$CMAKE_CONFIGURATION_TYPES -DBUILD_TESTING=OFF -BUILD_QCH=OFF -DCMAKE_PREFIX_PATH=$CMAKE_PREFIX_PATH -DCMAKE_INSTALL_PREFIX=$CMAKE_INSTALL_PREFIX -B ./$dependency/build ./$dependency/
209-
cmake --build ./$dependency/build --config $CMAKE_BUILD_TYPE
210-
DESTDIR=$AppDir cmake --install ./$dependency/build
218+
$CMAKE -DCMAKE_CONFIGURATION_TYPES=$CMAKE_CONFIGURATION_TYPES -DBUILD_TESTING=OFF -BUILD_QCH=OFF -DBUILD_SHARED_LIBS=$BUILD_SHARED_LIBS -DCMAKE_PREFIX_PATH=$CMAKE_PREFIX_PATH -DCMAKE_INSTALL_PREFIX=$CMAKE_INSTALL_PREFIX -B ./$dependency/build ./$dependency/
219+
$CMAKE --build ./$dependency/build --config $CMAKE_BUILD_TYPE
220+
DESTDIR=$AppDir $CMAKE --install ./$dependency/build
211221
cp -r $AppDirUsr/* $CMAKE_PREFIX_PATH
212222
done
213223

214224
echo "QHotkey"
215225
if $CLEAR_ALL; then
216226
rm -dRf 3rdparty/QHotkey/build
217227
fi
218-
cmake -DCMAKE_CONFIGURATION_TYPES=$CMAKE_CONFIGURATION_TYPES -DCMAKE_PREFIX_PATH=$CMAKE_PREFIX_PATH -DCMAKE_INSTALL_PREFIX=$CMAKE_INSTALL_PREFIX -DBUILD_SHARED_LIBS=ON -DQT_DEFAULT_MAJOR_VERSION=$QT_MAJOR_VERSION -B ./3rdparty/QHotkey/build ./3rdparty/QHotkey/
219-
cmake --build ./3rdparty/QHotkey/build --config $CMAKE_BUILD_TYPE
220-
DESTDIR=$AppDir cmake --install ./3rdparty/QHotkey/build
228+
$CMAKE -DCMAKE_CONFIGURATION_TYPES=$CMAKE_CONFIGURATION_TYPES -DBUILD_SHARED_LIBS=ON -DCMAKE_PREFIX_PATH=$CMAKE_PREFIX_PATH -DCMAKE_INSTALL_PREFIX=$CMAKE_INSTALL_PREFIX -DQT_DEFAULT_MAJOR_VERSION=$QT_MAJOR_VERSION -B ./3rdparty/QHotkey/build ./3rdparty/QHotkey/
229+
$CMAKE --build ./3rdparty/QHotkey/build --config $CMAKE_BUILD_TYPE
230+
DESTDIR=$AppDir $CMAKE --install ./3rdparty/QHotkey/build
221231
cp -r $AppDirUsr/* $CMAKE_PREFIX_PATH
222232

223233
echo "QPrompt"
224-
cmake -DCMAKE_CONFIGURATION_TYPES=$CMAKE_CONFIGURATION_TYPES -DCMAKE_PREFIX_PATH=$CMAKE_PREFIX_PATH -DCMAKE_INSTALL_PREFIX=$CMAKE_INSTALL_PREFIX -B ./build .
225-
cmake --build ./build --config $CMAKE_BUILD_TYPE
226-
DESTDIR=$AppDir cmake --install ./build
234+
$CMAKE -DCMAKE_CONFIGURATION_TYPES=$CMAKE_CONFIGURATION_TYPES -DBUILD_SHARED_LIBS=$BUILD_SHARED_LIBS -DCMAKE_PREFIX_PATH=$CMAKE_PREFIX_PATH -DCMAKE_INSTALL_PREFIX=$CMAKE_INSTALL_PREFIX -B ./build .
235+
$CMAKE --build ./build --config $CMAKE_BUILD_TYPE
236+
DESTDIR=$AppDir $CMAKE --install ./build
227237

228238
# Copy Qt libraries into install directory
229239
if [[ "$PLATFORM" == "windows" ]]; then
230240
PATH=$PATH:"C:\Program Files (x86)\NSIS"
231241
$CMAKE_PREFIX_PATH/bin/windeployqt.exe ./install/bin/$CMAKE_BUILD_TYPE/QPrompt.exe
242+
cd build
243+
$CPACK
244+
cd ..
245+
elif [[ "$PLATFORM" == "macos" ]]; then
246+
# $CMAKE_PREFIX_PATH/bin/macdeployqt ./build/bin/QPrompt.app -qmldir=./build/bin -dmg
247+
cd build
248+
$CPACK
249+
cd ..
232250
elif [[ "$PLATFORM" == "linux" ]]; then
233251
if [ "$ARCHITECTURE" == "aarch64" ]; then
234252
cp -r $AppDirUsr/lib/aarch64-linux-gnu/* $CMAKE_PREFIX_PATH/lib/
@@ -250,7 +268,7 @@ elif [[ "$PLATFORM" == "linux" ]]; then
250268
fi
251269
export EXTRA_QT_MODULES="core;quick;quickcontrols2;svg;widgets;network;"
252270
QMAKE=$CMAKE_PREFIX_PATH/bin/qmake $LINUX_DEPLOY --appdir $AppDir --output appimage --plugin qt
271+
cd build
272+
$CPACK
273+
cd ..
253274
fi
254-
cd build
255-
cpack
256-
cd ..

0 commit comments

Comments
 (0)