Explicitly link to libcrypto and libssl to avoid error: Failed to load libssl/libcrypto.
This commit is contained in:
parent
52eb082aec
commit
a293d441d7
|
@ -167,7 +167,6 @@ macos_task_template: &MACOS_TASK_TEMPLATE
|
|||
PIP_CACHE_DIR: ${HOME}/.cache/pip
|
||||
LDFLAGS: "-L$QTDIR/lib"
|
||||
CPPFLAGS: "-I$QTDIR/include"
|
||||
PKG_CONFIG_PATH: "/opt/homebrew/opt/qt6/lib/pkgconfig"
|
||||
local_homebrew_cache:
|
||||
folder: "$HOME/Library/Caches/Homebrew"
|
||||
global_conan_cache:
|
||||
|
@ -182,12 +181,14 @@ macos_task_template: &MACOS_TASK_TEMPLATE
|
|||
- sudo xcode-select -p
|
||||
- brew update > /dev/null
|
||||
- brew outdated
|
||||
- brew install --force qt6 coreutils ccache qbs cmake git
|
||||
- brew upgrade qt6 coreutils ccache qbs cmake git
|
||||
- brew install --force qt6 coreutils ccache qbs cmake git openssl@1.1
|
||||
- brew upgrade qt6 coreutils ccache qbs cmake git openssl@1.1
|
||||
- echo $PATH
|
||||
- export PATH="${HOME}/.local/bin:`python3 -m site --user-base`/bin:$PATH"
|
||||
- echo $PATH
|
||||
- chmod -R 755 /opt/homebrew/opt/qt6/*
|
||||
- chmod -R 755 /opt/homebrew/opt/openssl@1.1/*
|
||||
- export PKG_CONFIG_PATH="$(brew --prefix qt6)/lib/pkgconfig:$(brew --prefix openssl@1.1)/lib/pkgconfig"
|
||||
- python3 --version
|
||||
- pip3 install --user --upgrade pip dropbox conan==1.60
|
||||
- ccache --set-config=sloppiness=pch_defines,time_macros
|
||||
|
|
115
appveyor.yml
115
appveyor.yml
|
@ -581,6 +581,107 @@ for:
|
|||
only:
|
||||
- job_name: MacOS_12_Qt_6_4 (multibundle)
|
||||
- job_name: MacOS_12_Qt_6_4 (singlebundle)
|
||||
|
||||
environment:
|
||||
CONAN_USER_HOME: /Users/appveyor/.conan
|
||||
HOMEBREW_NO_INSTALL_CLEANUP: 1
|
||||
|
||||
cache:
|
||||
- /Users/appveyor/.conan/data -> conan-cache
|
||||
- /Users/appveyor/cache_dir
|
||||
|
||||
init:
|
||||
- find /Applications -maxdepth 1 -type d -name 'Xcode*.app'
|
||||
- sudo xcode-select -p
|
||||
- sudo xcode-select -s /Applications/Xcode-$XCODE_VERSION.app
|
||||
- sudo xcode-select -p
|
||||
|
||||
before_build:
|
||||
- ls ${HOME}/Qt
|
||||
- export QTDIR="${HOME}/${QT}"
|
||||
- export PATH="$QTDIR/bin:$HOME/.local/bin:`python3 -m site --user-base`/bin:${HOME}/Qt/Qt Creator.app/Contents/MacOS:$PATH"
|
||||
- echo $PATH
|
||||
- python3 --version
|
||||
- |-
|
||||
|
||||
###############################################################
|
||||
# Set up macOS dependencies
|
||||
|
||||
sudo ln -s /usr/local /opt/local;
|
||||
|
||||
cache_tag=usr_local_1 # this can be modified to rebuild deps
|
||||
|
||||
cdir=$HOME/cache_dir
|
||||
cache_tar=$cdir/$cache_tag.tar
|
||||
cache=$cache_tar.xz
|
||||
|
||||
CPUS=$(sysctl -n hw.ncpu)
|
||||
|
||||
if [ -d $cdir ] && [ -f $cache ]; then
|
||||
echo "=== Unpacking cached Homebrew $cache ==="
|
||||
(
|
||||
cd /
|
||||
tar xf $cache
|
||||
)
|
||||
echo "done"
|
||||
else
|
||||
echo "=== Building dependencies ==="
|
||||
echo "Couldn't find cache $cache"
|
||||
ls -alrt "$cdir"
|
||||
|
||||
echo "Recording /usr/local state"
|
||||
python3 ./scripts/treestate.py scan /usr/local usrlocal.json
|
||||
|
||||
brew update
|
||||
brew install coreutils ccache git openssl@1.1
|
||||
|
||||
# The build environment is now ready for use. We can complete
|
||||
# the rest of the process of creating the Homebrew archive
|
||||
# during the rest of the build, using idle CPU time. To minimise
|
||||
# the amount of space needed for the archive, we compress with
|
||||
# xz, which adds only about a minute to the non-cached build.
|
||||
(
|
||||
echo "=== Creating cache tarball $cache ==="
|
||||
echo "Check /usr/local for updates"
|
||||
python3 ./scripts/treestate.py updates usrlocal.json /usr/local | fgrep -v .git > updated_list
|
||||
echo Need to record $( wc -l updated_list ) updates
|
||||
|
||||
mkdir -p $cdir
|
||||
rm -f $cdir/*
|
||||
nice tar cf $cache_tar -T updated_list
|
||||
echo nice xz -9 -T$CPUS $cache_tar
|
||||
nice xz -9 -T$CPUS $cache_tar
|
||||
du -h $cdir
|
||||
) 2>&1 | sed 's/^/CACHE: /' &
|
||||
|
||||
fi
|
||||
|
||||
export PKG_CONFIG_PATH="$(brew --prefix openssl@1.1)/lib/pkgconfig";
|
||||
- sudo python3 -m pip install --upgrade pip
|
||||
- pip3 install --user --upgrade pip dropbox conan==1.60
|
||||
- conan --version
|
||||
- clang --version
|
||||
- qmake --version
|
||||
- which qmake
|
||||
- qbs --version
|
||||
- cd ${APPVEYOR_BUILD_FOLDER}
|
||||
|
||||
build_script:
|
||||
- pwd
|
||||
- conan install . -s os=Macos -s os.version=${MACOS_DEPLOYMENT_TARGET} --build=missing
|
||||
- qbs setup-toolchains --detect
|
||||
- qbs config --list profiles
|
||||
- qbs setup-qt ${QTDIR}/bin/qmake qt6
|
||||
- qbs config defaultProfile qt6
|
||||
- qbs config profiles.qt6.baseProfile clang
|
||||
- qbs build -f valentina.qbs -d ${APPVEYOR_BUILD_FOLDER}/build --jobs $(nproc) config:release modules.buildconfig.enableUnitTests:false modules.buildconfig.enableMultiBundle:${MULTI_BUNDLE} qbs.installRoot:${APPVEYOR_BUILD_FOLDER}/build/install-root profile:qt6 project.enableConan:true project.minimumMacosVersion:${MACOS_DEPLOYMENT_TARGET} modules.buildconfig.enableCcache:false
|
||||
|
||||
deploy_script:
|
||||
- CIRRUS_WORKING_DIR=${APPVEYOR_BUILD_FOLDER} CIRRUS_CHANGE_IN_REPO=${APPVEYOR_REPO_COMMIT} CIRRUS_BRANCH=${APPVEYOR_REPO_BRANCH} ${APPVEYOR_BUILD_FOLDER}/scripts/cirrus-deploy.sh
|
||||
|
||||
-
|
||||
matrix:
|
||||
only:
|
||||
- job_name: MacOS_10_15_Qt_5_15 (qbs, multibundle)
|
||||
- job_name: MacOS_10_15_Qt_5_15 (qbs, singlebundle)
|
||||
|
||||
|
@ -596,6 +697,8 @@ for:
|
|||
- sudo xcode-select -p
|
||||
- sudo xcode-select -s /Applications/Xcode-$XCODE_VERSION.app
|
||||
- sudo xcode-select -p
|
||||
|
||||
before_build:
|
||||
- ls ${HOME}/Qt
|
||||
- export QTDIR="${HOME}/${QT}"
|
||||
- export PATH="$QTDIR/bin:$HOME/.local/bin:`python3 -m site --user-base`/bin:${HOME}/Qt/Qt Creator.app/Contents/MacOS:$PATH"
|
||||
|
@ -608,8 +711,6 @@ for:
|
|||
- qmake --version
|
||||
- which qmake
|
||||
- qbs --version
|
||||
|
||||
before_build:
|
||||
- cd ${APPVEYOR_BUILD_FOLDER}
|
||||
|
||||
build_script:
|
||||
|
@ -631,18 +732,18 @@ for:
|
|||
- job_name: MacOS_10_15_Qt_5_15 (make)
|
||||
|
||||
init:
|
||||
- export QTDIR="${HOME}/${QT}"
|
||||
- export PATH="$QTDIR/bin:$PATH"
|
||||
- echo $PATH
|
||||
- find /Applications -maxdepth 1 -type d -name 'Xcode*.app'
|
||||
- sudo xcode-select -p
|
||||
- sudo xcode-select -s /Applications/Xcode-$XCODE_VERSION.app
|
||||
- sudo xcode-select -p
|
||||
|
||||
before_build:
|
||||
- export QTDIR="${HOME}/${QT}"
|
||||
- export PATH="$QTDIR/bin:$PATH"
|
||||
- echo $PATH
|
||||
- clang --version
|
||||
- qmake --version
|
||||
- which qmake
|
||||
|
||||
before_build:
|
||||
- cd ${APPVEYOR_BUILD_FOLDER}
|
||||
- mkdir build
|
||||
- cd build
|
||||
|
|
93
scripts/treestate.py
Normal file
93
scripts/treestate.py
Normal file
|
@ -0,0 +1,93 @@
|
|||
#!/usr/bin/env python3
|
||||
# Record the current state of a tree in the filesystem
|
||||
# Original idea: https://github.com/hydrogen-music/hydrogen/blob/master/treestate.py
|
||||
|
||||
import os
|
||||
import sys
|
||||
import json
|
||||
|
||||
DIR = 1
|
||||
LINK = 2
|
||||
FILE = 3
|
||||
|
||||
# Scan filesystem
|
||||
def scanTreeState(path):
|
||||
if os.path.islink(path):
|
||||
yield [LINK, path ]
|
||||
elif os.path.isdir(path):
|
||||
yield [DIR, path]
|
||||
for leaf in os.listdir(path):
|
||||
p = os.path.join(path, leaf)
|
||||
for item in scanTreeState(p):
|
||||
yield item
|
||||
else:
|
||||
yield [FILE, path, os.path.getmtime(path)]
|
||||
|
||||
# Write the tree in JSON format
|
||||
def writeTree(filename, tree):
|
||||
with open(filename, 'w') as f:
|
||||
json.dump(list(tree), f, indent=1)
|
||||
|
||||
def readTree(filename):
|
||||
with open(filename, "r") as f:
|
||||
if f == None:
|
||||
print("*** couldn't open {} ***".format(filename))
|
||||
return json.load(f)
|
||||
|
||||
# Find updates in tree between states A and B
|
||||
def findUpdates(a, b):
|
||||
a_map = {}
|
||||
|
||||
# Build mapping of filename -> modified time in A
|
||||
for o in a:
|
||||
if o[0] == FILE:
|
||||
a_map[ o[1] ] = o[2]
|
||||
else:
|
||||
a_map[ o[1] ] = True
|
||||
|
||||
# Find updated or new items in B
|
||||
for o in b:
|
||||
if o[1] in a_map:
|
||||
if o[0] == FILE and o[2] != a_map[ o[1] ]:
|
||||
print(o[1])
|
||||
|
||||
elif o[0] == FILE or o[0] == LINK:
|
||||
print(o[1])
|
||||
|
||||
|
||||
def help():
|
||||
print("Syntax:")
|
||||
print(" {} scan path stateFile".format(sys.argv[0]))
|
||||
print(" Record the state of <path> in <stateFile>")
|
||||
print(" {} updates stateFile path".format(sys.argv[0]))
|
||||
print(" Print the paths of objects in <path> which have updated since <stateFile>")
|
||||
exit()
|
||||
|
||||
|
||||
# Process arguments
|
||||
if len(sys.argv) < 2:
|
||||
help()
|
||||
|
||||
if sys.argv[1] == 'scan':
|
||||
if len(sys.argv) != 4:
|
||||
help()
|
||||
|
||||
path = sys.argv[2]
|
||||
stateFile = sys.argv[3]
|
||||
|
||||
tree = scanTreeState(path)
|
||||
writeTree(stateFile, tree)
|
||||
|
||||
elif sys.argv[1] == 'updates':
|
||||
if len(sys.argv) != 4:
|
||||
help()
|
||||
|
||||
a = sys.argv[2]
|
||||
b = sys.argv[3]
|
||||
|
||||
findUpdates(readTree(a), scanTreeState(b))
|
||||
|
||||
else:
|
||||
print("Unknown command: {}".format(sys.argv[1]))
|
||||
help()
|
||||
|
|
@ -1,5 +1,6 @@
|
|||
import qbs.FileInfo
|
||||
import qbs.File
|
||||
import qbs.Utilities
|
||||
|
||||
VToolApp {
|
||||
Depends { name: "buildconfig" }
|
||||
|
@ -14,6 +15,19 @@ VToolApp {
|
|||
Depends { name: "multibundle"; }
|
||||
Depends { name: "VGAnalyticsLib" }
|
||||
|
||||
// Explicitly link to libcrypto and libssl to avoid error: Failed to load libssl/libcrypto.
|
||||
// Path must be inside PKG_CONFIG_PATH variable.
|
||||
// Explicit linking will help macdeployqt undertsand that we want to see them inside the bundle.
|
||||
Depends {
|
||||
name: "libcrypto"
|
||||
condition: qbs.targetOS.contains("macos") && Utilities.versionCompare(Qt.core.version, "6") >= 0
|
||||
}
|
||||
|
||||
Depends {
|
||||
name: "libssl"
|
||||
condition: qbs.targetOS.contains("macos") && Utilities.versionCompare(Qt.core.version, "6") >= 0
|
||||
}
|
||||
|
||||
name: "Puzzle"
|
||||
buildconfig.appTarget: qbs.targetOS.contains("macos") ? "Puzzle" : "puzzle"
|
||||
targetName: buildconfig.appTarget
|
||||
|
|
|
@ -26,6 +26,19 @@ VToolApp {
|
|||
condition: Utilities.versionCompare(Qt.core.version, "6") >= 0 && buildconfig.useConanPackages
|
||||
}
|
||||
|
||||
// Explicitly link to libcrypto and libssl to avoid error: Failed to load libssl/libcrypto.
|
||||
// Path must be inside PKG_CONFIG_PATH variable.
|
||||
// Explicit linking will help macdeployqt undertsand that we want to see them inside the bundle.
|
||||
Depends {
|
||||
name: "libcrypto"
|
||||
condition: qbs.targetOS.contains("macos") && Utilities.versionCompare(Qt.core.version, "6") >= 0
|
||||
}
|
||||
|
||||
Depends {
|
||||
name: "libssl"
|
||||
condition: qbs.targetOS.contains("macos") && Utilities.versionCompare(Qt.core.version, "6") >= 0
|
||||
}
|
||||
|
||||
name: "Tape"
|
||||
buildconfig.appTarget: qbs.targetOS.contains("macos") ? "Tape" : "tape"
|
||||
targetName: buildconfig.appTarget
|
||||
|
|
|
@ -28,6 +28,19 @@ VToolApp {
|
|||
required: false
|
||||
}
|
||||
|
||||
// Explicitly link to libcrypto and libssl to avoid error: Failed to load libssl/libcrypto.
|
||||
// Path must be inside PKG_CONFIG_PATH variable.
|
||||
// Explicit linking will help macdeployqt undertsand that we want to see them inside the bundle.
|
||||
Depends {
|
||||
name: "libcrypto"
|
||||
condition: qbs.targetOS.contains("macos") && Utilities.versionCompare(Qt.core.version, "6") >= 0
|
||||
}
|
||||
|
||||
Depends {
|
||||
name: "libssl"
|
||||
condition: qbs.targetOS.contains("macos") && Utilities.versionCompare(Qt.core.version, "6") >= 0
|
||||
}
|
||||
|
||||
primaryApp: true
|
||||
|
||||
name: "Valentina"
|
||||
|
|
Loading…
Reference in New Issue
Block a user