mirror of https://git.wownero.com/dsc/mxe.git
commit
2e86ace952
|
@ -1,8 +1,8 @@
|
|||
README of copydlldeps.sh
|
||||
========================
|
||||
This document was created 2016-02-05. It belongs to copydlldeps.sh and is part of the MXE project.
|
||||
This document belongs to copydlldeps.sh and is a part of the MXE project.
|
||||
|
||||
I call it on the command line like:
|
||||
It can be invoked on the command line like:
|
||||
|
||||
```
|
||||
/share/mxe/tools/copydlldeps.sh --infile /home/mxeuser/test/i686-w64-mingw32.shared/Application.exe \
|
||||
|
@ -19,7 +19,7 @@ It got embedded in a build script like:
|
|||
```
|
||||
MXEPATH=/path/to/mxe
|
||||
compiler=i686-w64-mingw32.shared
|
||||
orgDir=/path/to/my/nsis/dll #nsis is then copying all dlls in there to the place where the exe is located
|
||||
orgDir=/path/to/my/nsis/dll # nsis is then copying all dlls in there to the place where the exe is located
|
||||
|
||||
if [ ! $( echo $compiler | grep -q "shared" ) ]; then
|
||||
echo "\$compiler=$compiler and contains the word 'shared'" | tee -a $CURLOG
|
||||
|
@ -28,36 +28,44 @@ if [ ! $( echo $compiler | grep -q "shared" ) ]; then
|
|||
echo "| Starting new MXE copydlldeps.sh by LHE DL5RCW | " | tee -a $CURLOG
|
||||
echo "+-----------------------------------------------+ " | tee -a $CURLOG
|
||||
echo "currently working in $( pwd ) " | tee -a $CURLOG
|
||||
executable=$( find . -name "*.exe" | tail -n 1 )
|
||||
if [ -e $MXEPATH/usr/bin/$compiler-objdump ]; then
|
||||
echo "now populating dir=${orgDir}/nsis/sharedLibs with dll dependencies of executable=$executable" | tee -a $CURLOG
|
||||
executable=$( find . -name "*.exe" | tail -n 1 )
|
||||
sharedLibsDir="${orgDir}/nsis/sharedLibs"
|
||||
echo "populating dir $sharedLibsDir with dll dependencies of $executable" | tee -a $CURLOG
|
||||
OBJDUMP=objdump
|
||||
if [ -e "$MXEPATH/usr/bin/$compiler-objdump" ]; then
|
||||
OBJDUMP="$MXEPATH/usr/bin/$compiler-objdump"
|
||||
fi
|
||||
$MXEPATH/tools/copydlldeps.sh --infile $executable \
|
||||
--destdir ${orgDir}/nsis/sharedLibs \
|
||||
--recursivesrcdir $MXEPATH/usr/$compiler/ \
|
||||
--enforce $MXEPATH/usr/$compiler/qt5/plugins/platforms/ \
|
||||
--destdir "$sharedLibsDir" \
|
||||
--recursivesrcdir "$MXEPATH/usr/$compiler/" \
|
||||
--enforce "$MXEPATH/usr/$compiler/qt5/plugins/platforms/" \
|
||||
--copy \
|
||||
--objdump $MXEPATH/usr/bin/$compiler-objdump | tee -a $CURLOG
|
||||
else
|
||||
echo "now populating dir=${orgDir}/nsis/sharedLibs with dll dependencies of executable=$executable" | tee -a $CURLOG
|
||||
$MXEPATH/tools/copydlldeps.sh --infile $executable \
|
||||
--destdir ${orgDir}/nsis/sharedLibs \
|
||||
--recursivesrcdir $MXEPATH/usr/$compiler/ \
|
||||
--enforce $MXEPATH/usr/$compiler/qt5/plugins/platforms/ \
|
||||
--copy | tee -a $CURLOG
|
||||
--objdump "$OBJDUMP" \
|
||||
| tee -a $CURLOG
|
||||
fi
|
||||
```
|
||||
|
||||
Additional hints
|
||||
================
|
||||
|
||||
objdump
|
||||
-------
|
||||
I checked if there is a mxe objdump. If not, I took the native one on my server. I actually do not know the difference but decided to include it in the script in case it is important to someone
|
||||
I checked if there is a mxe objdump. If not, I took the native one on my server.
|
||||
I actually do not know the difference but decided to include it in the script
|
||||
in case it is important to someone.
|
||||
|
||||
enforce
|
||||
-------
|
||||
My application is using Qt5 and objdump did not return the needed qwindows.dll - so I enforce the platform folder. You may add multiple --enforce directories using --enforce /path/folder1 --enforce /path/folder2 --enforce /path/folder3
|
||||
My application is using Qt5 and objdump did not return the needed qwindows.dll -
|
||||
so I enforce the platform folder. You may add multiple --enforce directories using
|
||||
`--enforce /path/folder1 --enforce /path/folder2 --enforce /path/folder3`.
|
||||
|
||||
They are NOT recursively copied, only flat. See:
|
||||
|
||||
```bash
|
||||
string=$( find $enforcedDirectory -maxdepth 1 -iregex '.*\(dll\|exe\)' | tr '\n' ' ' )
|
||||
```
|
||||
|
||||
If you would remove the -maxdepth 1, it would become recoursive. Does anyone need that?
|
||||
If you would remove the `-maxdepth 1`, it would become recoursive.
|
||||
|
||||
2016-02-10 Lars Holger Engelhard - DL5RCW
|
||||
February, 2, 2016. Lars Holger Engelhard aka [DL5RCW](https://github.com/dl5rcw).
|
||||
|
|
Loading…
Reference in New Issue