Bonjour,

Je développe une application cross plateforme Windows/MacOS.
Etant un débutant sous MAC, j'ai du mal à finaliser mon appli:
Je développe avec Qt une application qui utilise des librairies externes tel que opencascade.
Cette application dispose d'un système de plugin (dylib déguisés).
Je souhaiterais lancer mon application (mon .app) sauf qu’apparemment il ne trouve pas les
dylib tierces qu j'utilise.
J'ai fait un qtmacdeploy
je les ai copiées dans monApp.app/Contents/Frameworks
j'ai vu qu'il faudrait utiliser la commande install_name_tool (mais je ne comprends pas vraiment ce qu'elle fait ni comment s'en servir)
d'après des exemples pas vraiment documentés j'ai fait ce script:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
projectPath=$PWD
outputDir=$PWD/build/$1
applicationLibPath=$PWD/build/$1/MediaCad.app/Contents/Frameworks
applicationPath=$PWD/build/$1/MediaCad.app/Contents/MacOS
teighaModulePath=$PWD/tx/macx
teighaDylibDir=$PWD/bin/macx
occDylib=$PWD/bin/macx/OCC

#copie des modules tx
cd $projectPath
echo copy teigha tx
cp $teighaModulePath/*.tx $applicationPath

#copie des modules txv
echo copy teigha txv
cp $teighaModulePath/*.txv $applicationPath

#copie des modules mrx compilés
echo copy compiled mrx
cp $outputDir/*.mrx $applicationPath

#copie des modules txv compilés
echo copy compiled txv
cp $outputDir/*.txv $applicationPath

#copie des modules tx compilés
echo copy compiled tx
cp $outputDir/*.tx $applicationPath

echo copy extern files
cp -R $projectPath/ExternFiles/* $applicationPath

echo macdeploy
macdeployqt $outputDir/MediaCad.app


echo copy info.pList
cp $projectPath/Mediacad/Info.plist $outputDir/MediaCad.app/Contents

echo relink dylib
cd $applicationLibPath
compiledFileList=$(ls *.dylib)

echo copy teigha dylib
cp $teighaDylibDir/*.dylib $applicationLibPath

#relink dylib générés
for dylibFile in $compiledFileList
do
    for teighaLib in $teighaDylibFileList
    do
        install_name_tool -id $teighaLib $applicationLibPath/$teighaLib
        install_name_tool -change $teighaLib @executable_path/../Frameworks/$teighaLib $dylibFile
    done
done

cd $applicationLibPath
dylibFileList=$(ls *.dylib)

cd $applicationPath
moduleFileList=$(ls *.tx *.txv *.mrx)

#relink des modules tx mrx txv
for dylibFile in $dylibFileList
do
    for module in $moduleFileList
    do
        install_name_tool -change $dylibFile @executable_path/../Frameworks/$dylibFile $module
    done
done