mirror of
https://github.com/Relintai/osxcross.git
synced 2025-04-24 05:43:21 +02:00
add p7zip sdk packaging method (closes #33)
This commit is contained in:
parent
b8594af6a8
commit
4450f62e1a
@ -4,6 +4,8 @@ changed:
|
|||||||
* improved and colorized wrapper error/warning/debug/info messages
|
* improved and colorized wrapper error/warning/debug/info messages
|
||||||
|
|
||||||
added:
|
added:
|
||||||
|
* p7zip sdk packaging script
|
||||||
|
* a minimalistic xcrun tool
|
||||||
* support for ccache symlinks
|
* support for ccache symlinks
|
||||||
* darling-dmg sdk packaging script
|
* darling-dmg sdk packaging script
|
||||||
* include path warnings for /usr/include and /usr/local/include
|
* include path warnings for /usr/include and /usr/local/include
|
||||||
|
@ -79,7 +79,7 @@ You can turn this behavior off with `OSXCROSS_GCC_NO_STATIC_RUNTIME=1` (env).
|
|||||||
4. Copy the packaged SDK (\*.tar.\* or \*.pkg) on a USB Stick
|
4. Copy the packaged SDK (\*.tar.\* or \*.pkg) on a USB Stick
|
||||||
5. (On Linux/BSD) Copy or move the SDK into the tarballs/ directory of OSXCross
|
5. (On Linux/BSD) Copy or move the SDK into the tarballs/ directory of OSXCross
|
||||||
|
|
||||||
\*\* Xcode 4.6, 5.0+, 6.0, and the 6.1 Betas are known to work.
|
\*\* Xcode up to 6.3.x is known to work; 7.x is not working (yet).
|
||||||
\*\*\* If you get a dialog with a crossed circle, ignore it, you don't need to install Xcode.
|
\*\*\* If you get a dialog with a crossed circle, ignore it, you don't need to install Xcode.
|
||||||
|
|
||||||
Step 1. and 2. can be skipped if you have Xcode installed.
|
Step 1. and 2. can be skipped if you have Xcode installed.
|
||||||
@ -104,6 +104,13 @@ Step 1. and 2. can be skipped if you have Xcode installed.
|
|||||||
3. Run `./gen_sdk_package_darling_dmg.sh <xcode>.dmg`
|
3. Run `./gen_sdk_package_darling_dmg.sh <xcode>.dmg`
|
||||||
4. Copy or move the SDK into the tarballs/ directory
|
4. Copy or move the SDK into the tarballs/ directory
|
||||||
|
|
||||||
|
##### Packing the SDK on Linux (and others), Method 3 (works with Xcode >= 4.3): #####
|
||||||
|
|
||||||
|
1. Download Xcode like described in 'Packaging the SDK on Mac OS X'
|
||||||
|
2. Ensure you have `clang` and `make` installed
|
||||||
|
3. Run `./gen_sdk_package_darling_p7zip.sh <xcode>.dmg`
|
||||||
|
4. Copy or move the SDK into the tarballs/ directory
|
||||||
|
|
||||||
### USAGE EXAMPLES: ###
|
### USAGE EXAMPLES: ###
|
||||||
|
|
||||||
##### Let's say you want to compile a file called test.cpp, then you can do this by running: #####
|
##### Let's say you want to compile a file called test.cpp, then you can do this by running: #####
|
||||||
|
@ -17,9 +17,13 @@ mkdir -p $BUILD_DIR
|
|||||||
|
|
||||||
require git
|
require git
|
||||||
require cmake
|
require cmake
|
||||||
|
require $MAKE
|
||||||
require modinfo
|
require modinfo
|
||||||
require fusermount
|
require fusermount
|
||||||
|
|
||||||
|
[ -n "$CC" ] && require $CC
|
||||||
|
[ -n "$CXX" ] && require $CXX
|
||||||
|
|
||||||
set +e
|
set +e
|
||||||
|
|
||||||
modinfo fuse &>/dev/null
|
modinfo fuse &>/dev/null
|
||||||
@ -34,7 +38,7 @@ set -e
|
|||||||
|
|
||||||
pushd $BUILD_DIR &>/dev/null
|
pushd $BUILD_DIR &>/dev/null
|
||||||
|
|
||||||
if [ ! -f $TARGET_DIR/bin/darling-dmg ]; then
|
if [ ! -f $TARGET_DIR/SDK/tools/bin/darling-dmg ]; then
|
||||||
rm -f have_darling_dmg
|
rm -f have_darling_dmg
|
||||||
fi
|
fi
|
||||||
|
|
||||||
@ -45,8 +49,8 @@ git clone https://github.com/LubosD/darling-dmg.git
|
|||||||
pushd darling-dmg &>/dev/null
|
pushd darling-dmg &>/dev/null
|
||||||
mkdir -p build
|
mkdir -p build
|
||||||
pushd build &>/dev/null
|
pushd build &>/dev/null
|
||||||
cmake .. -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=$TARGET_DIR
|
cmake .. -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=$TARGET_DIR/SDK/tools
|
||||||
make -j $JOBS install
|
$MAKE -j $JOBS install
|
||||||
popd &>/dev/null
|
popd &>/dev/null
|
||||||
popd &>/dev/null
|
popd &>/dev/null
|
||||||
|
|
||||||
@ -65,5 +69,5 @@ function cleanup() {
|
|||||||
|
|
||||||
trap cleanup EXIT
|
trap cleanup EXIT
|
||||||
|
|
||||||
$TARGET_DIR/bin/darling-dmg $1 $TMP
|
$TARGET_DIR/SDK/tools/bin/darling-dmg $1 $TMP
|
||||||
XCODEDIR=$TMP ./tools/gen_sdk_package.sh
|
XCODEDIR=$TMP ./tools/gen_sdk_package.sh
|
||||||
|
101
tools/gen_sdk_package_p7zip.sh
Executable file
101
tools/gen_sdk_package_p7zip.sh
Executable file
@ -0,0 +1,101 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
pushd "${0%/*}/.." &>/dev/null
|
||||||
|
source tools/tools.sh
|
||||||
|
|
||||||
|
if [ $PLATFORM == "Darwin" ]; then
|
||||||
|
echo "Use gen_sdk_package.sh on Mac OS X" 1>&2
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ $# -eq 0 ]; then
|
||||||
|
echo "Usage: $0 <xcode.dmg>" 1>&2
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
case $1 in
|
||||||
|
/*) XCODEDMG="$1" ;;
|
||||||
|
*) XCODEDMG="$PWD/$1" ;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
mkdir -p $BUILD_DIR
|
||||||
|
|
||||||
|
require git
|
||||||
|
require $MAKE
|
||||||
|
|
||||||
|
[ -n "$CC" ] && require $CC
|
||||||
|
[ -n "$CXX" ] && require $CXX
|
||||||
|
|
||||||
|
pushd $BUILD_DIR &>/dev/null
|
||||||
|
|
||||||
|
if [ ! -f $TARGET_DIR/SDK/tools/bin/7z ]; then
|
||||||
|
rm -f have_p7zip
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ ! -f "have_p7zip" ]; then
|
||||||
|
|
||||||
|
rm -rf p7zip*
|
||||||
|
git clone https://github.com/tpoechtrager/p7zip.git
|
||||||
|
pushd p7zip &>/dev/null
|
||||||
|
if [ -n "$CC" ] && [ -n "$CXX" ]; then
|
||||||
|
[[ $CC == *clang* ]] && CC="$CC -Qunused-arguments"
|
||||||
|
[[ $CXX == *clang* ]] && CXX="$CXX -Qunused-arguments"
|
||||||
|
$MAKE 7z -j $JOBS CC="$CC" CXX="$CXX"
|
||||||
|
else
|
||||||
|
$MAKE 7z -j $JOBS
|
||||||
|
fi
|
||||||
|
$MAKE install DEST_HOME=$TARGET_DIR/SDK/tools
|
||||||
|
find $TARGET_DIR/SDK/tools/share -type f -exec chmod 0664 {} \;
|
||||||
|
popd &>/dev/null
|
||||||
|
|
||||||
|
touch "have_p7zip"
|
||||||
|
|
||||||
|
fi
|
||||||
|
|
||||||
|
popd &>/dev/null
|
||||||
|
|
||||||
|
#/tmp is prone to run out of space
|
||||||
|
#TMP=$(mktemp -d /tmp/XXXXXXXXX)
|
||||||
|
|
||||||
|
for i in {1..100}; do
|
||||||
|
TMP="tmp_$RANDOM"
|
||||||
|
[ -e $TMP ] && continue
|
||||||
|
mkdir $TMP && break
|
||||||
|
done
|
||||||
|
|
||||||
|
if [ ! -d $TMP ]; then
|
||||||
|
echo "cannot create $PWD/$TMP directory" 1>&2
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
function cleanup() {
|
||||||
|
popd &>/dev/null || true
|
||||||
|
rm -rf $TMP
|
||||||
|
}
|
||||||
|
|
||||||
|
trap cleanup EXIT
|
||||||
|
|
||||||
|
pushd $TMP &>/dev/null
|
||||||
|
|
||||||
|
set +e
|
||||||
|
|
||||||
|
$TARGET_DIR/SDK/tools/bin/7z x \
|
||||||
|
$XCODEDMG \
|
||||||
|
"*/Xcode.app/Contents/Developer/Platforms/MacOSX.platform" \
|
||||||
|
"*/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain"
|
||||||
|
|
||||||
|
[ $? -ne 0 -a $? -ne 2 ] && exit 1
|
||||||
|
|
||||||
|
if [ -z "$(ls -A)" ]; then
|
||||||
|
$TARGET_DIR/SDK/tools/bin/7z x $XCODEDMG "*/Packages/MacOSX*.pkg"
|
||||||
|
[ $? -ne 0 -a $? -ne 2 ] && exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
[ -z "$(ls -A)" ] && exit 1
|
||||||
|
|
||||||
|
set -e
|
||||||
|
|
||||||
|
popd &>/dev/null
|
||||||
|
|
||||||
|
XCODEDIR="$TMP/$(ls $TMP | grep "code" | head -n1)" \
|
||||||
|
./tools/gen_sdk_package.sh
|
Loading…
Reference in New Issue
Block a user