For Travis CI - enable URHO3D_LUAJIT build option on iOS CI builds.
Upgrade to CMake 3.4.1 for OSX CI build jobs. Close #1146
This commit is contained in:
parent
17734a1b77
commit
cff5fe2d3d
@ -46,11 +46,14 @@ install:
|
||||
if ($env:URHO3D_LIB_TYPE -eq "STATIC" -and ($env:Platform -eq "x64")) { $env:SF_DEFAULT = "windows:Windows-64bit-STATIC-3D11.zip" };
|
||||
do { "Installing doxygen and graphviz..."; choco install doxygen.portable graphviz.portable >$null } until ($?);
|
||||
}
|
||||
else
|
||||
{
|
||||
iex ((new-object net.webclient).DownloadString('https://raw.githubusercontent.com/appveyor/ci/master/scripts/enable-desktop.ps1'))
|
||||
}
|
||||
build_script:
|
||||
- if "%PLATFORM%" == "x64" set "URHO3D_64BIT=1"
|
||||
# Our free AppVeyor account is slow for normal daily CI, speed up the build a little bit by excluding Assimp and other tools in the normal build and use the Debug build configuration instead
|
||||
- if "%PACKAGE_UPLOAD%" == "" set "URHO3D_TOOLS=0" && set "config=Debug"
|
||||
- ps: if ($env:PACKAGE_UPLOAD -ne "1") { iex ((new-object net.webclient).DownloadString('https://raw.githubusercontent.com/appveyor/ci/master/scripts/enable-desktop.ps1')) }
|
||||
- rake ci && if "%PACKAGE_UPLOAD%" == "1" rake ci_package_upload
|
||||
test: off
|
||||
artifacts:
|
||||
|
17
.travis.yml
17
.travis.yml
@ -104,6 +104,7 @@ matrix:
|
||||
# compiler: i686-w64-mingw32-gcc-d3d11-shared
|
||||
# env: WIN32=1 URHO3D_LIB_TYPE=SHARED URHO3D_64BIT=0 URHO3D_D3D11=1
|
||||
before_script:
|
||||
- SECONDS=0
|
||||
- export TAG=$(git describe --exact-match $TRAVIS_COMMIT 2>/dev/null); if [[ $TAG =~ [[:digit:]]+\.[[:digit:]]+ ]]; then export RELEASE_TAG=$TAG; fi
|
||||
- export COMMIT_MESSAGE=$(git log --format=%B -n 1 $TRAVIS_COMMIT)
|
||||
- if [ $RELEASE_TAG ] || ([ "$TRAVIS_BRANCH" == "master" ] && [ "$TRAVIS_PULL_REQUEST" == "false" ]); then if [ ${TRAVIS_JOB_NUMBER##*.} == 1 ]; then export SITE_UPDATE=1; fi; if [ "$CC" == "gcc" ] && ([ $RELEASE_TAG ] || echo $COMMIT_MESSAGE |grep -cq '\[ci package\]'); then export PACKAGE_UPLOAD=1; fi; fi
|
||||
@ -117,7 +118,7 @@ before_script:
|
||||
# For some reason clang compiler toolchain installation in Travis CI VM does not have symlink in the ccache symlinks directory, so workaround it
|
||||
- if [ "$CC" == "clang" ]; then ln -s $(which ccache) $HOME/clang && ln -s $(which ccache) $HOME/clang++ && export PATH=$HOME:$PATH; fi
|
||||
- rake ci_setup_cache
|
||||
script: rake ci && if [ $SITE_UPDATE ]; then rake ci_site_update; fi && if [ $PACKAGE_UPLOAD ]; then rake ci_package_upload && if [ $LINUX ] && [ ! "$URHO3D_64BIT" == "0" ]; then rake ci_package_upload URHO3D_USE_LIB64_RPM=1; fi; fi
|
||||
script: ELAPSED=$SECONDS rake ci && if [ $SITE_UPDATE ]; then rake ci_site_update; fi && if [ $PACKAGE_UPLOAD ]; then ELAPSED=$SECONDS rake ci_package_upload && if [ $LINUX ] && [ ! "$URHO3D_64BIT" == "0" ]; then ELAPSED=$SECONDS rake ci_package_upload URHO3D_USE_LIB64_RPM=1; fi; fi
|
||||
after_script:
|
||||
- rake ci_teardown_cache
|
||||
- if [ ${TRAVIS_JOB_NUMBER##*.} == 1 ] && [ "$TRAVIS_PULL_REQUEST" == "false" ]; then rake ci_create_mirrors; fi
|
||||
@ -245,6 +246,7 @@ matrix:
|
||||
- &cache5
|
||||
env: ANDROID_NATIVE_API_LEVEL=19 ANDROID_ABI=armeabi-v7a URHO3D_LIB_TYPE=SHARED AVD=test_19_armeabi-v7a USE_CCACHE=1
|
||||
before_script:
|
||||
- SECONDS=0
|
||||
- export TRAVIS_COMMIT=$TRAVIS_COMMIT~
|
||||
- export TAG=$(git describe --exact-match $TRAVIS_COMMIT 2>/dev/null); if [[ $TAG =~ [[:digit:]]+\.[[:digit:]]+ ]]; then export RELEASE_TAG=$TAG; fi
|
||||
- export COMMIT_MESSAGE=$(git log --format=%B -n1 $TRAVIS_COMMIT)
|
||||
@ -256,7 +258,7 @@ before_script:
|
||||
- if [ "$ANDROID_ABI" == "armeabi-v7a" ]; then export C_PATH=$(pwd)/android-ndk/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64/bin C_PREFIX=arm-linux-androideabi; fi
|
||||
- export PATH=$(whereis -b ccache |grep -o '\S*lib\S*'):$C_PATH:$PATH; for f in $C_PATH/$C_PREFIX-{gcc,g++}; do touch -d "2015-01-01 00:00:00 +0800" $f; done
|
||||
- rake ci_setup_cache
|
||||
script: rake ci && if [ $PACKAGE_UPLOAD ]; then rake ci_package_upload; fi
|
||||
script: ELAPSED=$SECONDS rake ci && if [ $PACKAGE_UPLOAD ]; then ELAPSED=$SECONDS rake ci_package_upload; fi
|
||||
after_script: rake ci_teardown_cache
|
||||
|
||||
---
|
||||
@ -293,6 +295,7 @@ matrix:
|
||||
- compiler: gcc-armeabi-v7a-with-NEON-shared
|
||||
env: URHO3D_LIB_TYPE=SHARED RPI_ABI='armeabi-v7a with NEON'
|
||||
before_script:
|
||||
- SECONDS=0
|
||||
- git clone --depth 1 https://github.com/raspberrypi/tools.git rpi-tools && export RPI_PREFIX=$(pwd)/rpi-tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian-x64/bin/arm-linux-gnueabihf && git clone --depth 1 https://github.com/urho3d/rpi-sysroot.git && export RPI_SYSROOT=$(pwd)/rpi-sysroot && for f in $RPI_PREFIX-{gcc,g++}; do touch -d "2015-01-01 00:00:00 +0800" $f; done
|
||||
- export TRAVIS_COMMIT=$TRAVIS_COMMIT~
|
||||
- export TAG=$(git describe --exact-match $TRAVIS_COMMIT 2>/dev/null); if [[ $TAG =~ [[:digit:]]+\.[[:digit:]]+ ]]; then export RELEASE_TAG=$TAG; fi
|
||||
@ -300,7 +303,7 @@ before_script:
|
||||
- if [ ${TRAVIS_JOB_NUMBER##*.} -lt $PACKAGE_JOB_END ] && ([ $RELEASE_TAG ] || (! [[ $TRAVIS_BRANCH =~ [^-]+-[^-]+-CI ]] && echo $COMMIT_MESSAGE |grep -cq '\[ci package\]')); then export PACKAGE_UPLOAD=1; fi
|
||||
- export PATH=$(whereis -b ccache |grep -o '\S*lib\S*'):${RPI_PREFIX%/*}:$PATH
|
||||
- rake ci_setup_cache
|
||||
script: rake ci && if [ $PACKAGE_UPLOAD ]; then rake ci_package_upload; fi
|
||||
script: ELAPSED=$SECONDS rake ci && if [ $PACKAGE_UPLOAD ]; then ELAPSED=$SECONDS rake ci_package_upload; fi
|
||||
after_script: rake ci_teardown_cache
|
||||
|
||||
---
|
||||
@ -332,14 +335,15 @@ before_script:
|
||||
- export TAG=$(git describe --exact-match $TRAVIS_COMMIT 2>/dev/null); if [[ $TAG =~ [[:digit:]]+\.[[:digit:]]+ ]]; then export RELEASE_TAG=$TAG; fi
|
||||
- export COMMIT_MESSAGE=$(git log --format=%B -n 1 $TRAVIS_COMMIT)
|
||||
- if [ $XCODE ] && ([ $RELEASE_TAG ] || (! [[ $TRAVIS_BRANCH =~ [^-]+-[^-]+-CI ]] && echo $COMMIT_MESSAGE |grep -cq '\[ci package\]')); then export PACKAGE_UPLOAD=1; fi
|
||||
# travis_retry brew update >/dev/null # Intentionally do not update homebrew formulas to avoid pulling in CMake 3.4 which has caused unexplained iOS build tree configuration problem on Travis CI
|
||||
- if [ $IOS ] && echo $COMMIT_MESSAGE |grep -cq '\[ccache clear\]'; then export IOS_HALF_ARCH_HACK=1; fi
|
||||
- travis_retry brew update >/dev/null
|
||||
- which cmake >/dev/null 2>&1 || cmake=cmake
|
||||
- if [ $PACKAGE_UPLOAD ]; then doxygen='doxygen graphviz'; fi
|
||||
- travis_retry brew install ccache $cmake $doxygen
|
||||
- export PATH=$(brew info ccache |grep -o '\S*lib\S*'):$PATH
|
||||
- if [ $XCODE ]; then sudo cp -p $(which ccache) $(dirname $(xcodebuild -find-executable clang)) && for compiler in clang clang++; do path=$(xcodebuild -find-executable $compiler); sudo mv $path{,.orig} && sudo ln -sf $(dirname $path)/clang.orig /usr/bin/$compiler && sudo ln -sf ccache $path; done; sudo rm -rf /Applications/Xcode.app/Contents/Developer/Platforms/{AppleTV,Watch}{OS,Simulator}.platform; fi
|
||||
- rake ci_setup_cache
|
||||
script: rake ci && if [ $PACKAGE_UPLOAD ] && (($SECONDS / 60 < 40)); then rake ci_package_upload; fi
|
||||
script: ELAPSED=$SECONDS rake ci && if [ $PACKAGE_UPLOAD ]; then ELAPSED=$SECONDS rake ci_package_upload; fi
|
||||
after_script: rake ci_teardown_cache
|
||||
|
||||
---
|
||||
@ -368,6 +372,7 @@ matrix:
|
||||
- compiler: gcc-linked-bitcode
|
||||
env: URHO3D_LIB_TYPE=SHARED
|
||||
before_script:
|
||||
- SECONDS=0
|
||||
- export TRAVIS_COMMIT=$TRAVIS_COMMIT~
|
||||
- export TAG=$(git describe --exact-match $TRAVIS_COMMIT 2>/dev/null); if [[ $TAG =~ [[:digit:]]+\.[[:digit:]]+ ]]; then export RELEASE_TAG=$TAG; fi
|
||||
- export COMMIT_MESSAGE=$(git log --format=%B -n 1 $TRAVIS_COMMIT)
|
||||
@ -376,7 +381,7 @@ before_script:
|
||||
- git clone --depth 1 https://github.com/urho3d/emscripten-sdk.git && emscripten-sdk/emsdk activate --build=Release sdk-master-64bit && source emscripten-sdk/emsdk_env.sh
|
||||
- export PATH=$(whereis -b ccache |grep -o '\S*lib\S*'):$PATH; for f in $EMSCRIPTEN/{emcc,em++}; do touch -d "2015-09-01 00:00:00 +0800" $f; done
|
||||
- rake ci_setup_cache
|
||||
script: rake ci && if [ $PACKAGE_UPLOAD ]; then rake ci_package_upload && if [ "$URHO3D_LIB_TYPE" == "SHARED" ]; then rake ci_emscripten_samples_update; fi; fi
|
||||
script: ELAPSED=$SECONDS rake ci && if [ $PACKAGE_UPLOAD ]; then ELAPSED=$SECONDS rake ci_package_upload && if [ "$URHO3D_LIB_TYPE" == "SHARED" ]; then rake ci_emscripten_samples_update; fi; fi
|
||||
after_script: rake ci_teardown_cache
|
||||
|
||||
...
|
||||
|
@ -530,7 +530,11 @@ if (APPLE)
|
||||
# IOS-specific setup
|
||||
add_definitions (-DIOS)
|
||||
if (URHO3D_64BIT)
|
||||
set (CMAKE_OSX_ARCHITECTURES $(ARCHS_STANDARD))
|
||||
if (DEFINED ENV{IOS_HALF_ARCH_HACK}) # This environment variable is set when ccache is just being cleared in Travis CI VM
|
||||
set (CMAKE_OSX_ARCHITECTURES "arm64 x86_64") # This is a hack used in Travis-CI iOS build only (it only builds 2 out of 4 archs)
|
||||
else ()
|
||||
set (CMAKE_OSX_ARCHITECTURES $(ARCHS_STANDARD))
|
||||
endif ()
|
||||
else ()
|
||||
set (CMAKE_OSX_ARCHITECTURES $(ARCHS_STANDARD_32_BIT))
|
||||
endif ()
|
||||
@ -1544,6 +1548,9 @@ macro (define_dependency_libs TARGET)
|
||||
# Special handling when both debug and release libraries are found
|
||||
target_link_libraries (${TARGET_NAME} debug ${URHO3D_LIBRARIES_DBG} optimized ${URHO3D_LIBRARIES_REL})
|
||||
else ()
|
||||
if (TARGET ${TARGET}_universal)
|
||||
add_dependencies (${TARGET_NAME} ${TARGET}_universal)
|
||||
endif ()
|
||||
list (APPEND ABSOLUTE_PATH_LIBS ${URHO3D_LIBRARIES})
|
||||
endif ()
|
||||
endif ()
|
||||
|
42
Rakefile
42
Rakefile
@ -211,9 +211,21 @@ task :ci_push_bindings do
|
||||
system "rm -rf fastcomp-clang && git config user.name $GIT_NAME && git config user.email $GIT_EMAIL && git remote set-url --push origin https://$GH_TOKEN@github.com/$TRAVIS_REPO_SLUG.git && git add -A Source/Urho3D && if git commit -qm 'Result of AutoBinder tool. [ci skip]'; then git push -q origin HEAD:#{ENV['TRAVIS_BRANCH']} >/dev/null 2>&1; fi" or abort "Failed to push #{ENV['TRAVIS_BRANCH']} branch"
|
||||
end
|
||||
|
||||
def timeup
|
||||
unless $start_time
|
||||
puts; $stdout.flush
|
||||
return nil
|
||||
end
|
||||
elapsed_time = (Time.now - $start_time) / 60
|
||||
puts "\nCheckpoint reached, elapsed time: #{elapsed_time.to_i} minutes\n\n" unless $already_timeup
|
||||
$stdout.flush
|
||||
return $already_timeup = elapsed_time > 40
|
||||
end
|
||||
|
||||
# Usage: NOT intended to be used manually
|
||||
desc 'Configure, build, and test Urho3D project'
|
||||
task :ci do
|
||||
$start_time = Time.now - ENV['ELAPSED'].to_i + 30 if ENV['ELAPSED'] # Plus 30 seconds for rounding up to the next nearest minute
|
||||
# Skip if only performing CI for selected branches and the current branch is not in the list
|
||||
unless ENV['RELEASE_TAG']
|
||||
matched = /\[ci only:(.*?)\]/.match(ENV['COMMIT_MESSAGE'])
|
||||
@ -227,7 +239,7 @@ task :ci do
|
||||
system "bash -c 'git fetch --unshallow'" or abort 'Failed to unshallow cloned repository'
|
||||
end
|
||||
# Show CMake version
|
||||
system "bash -c 'cmake --version'" or abort 'Failed to find CMake'
|
||||
system "bash -c 'echo && cmake --version && echo'" or abort 'Could not find CMake'
|
||||
# Using out-of-source build tree when using Travis-CI; 'build_tree' environment variable is already set when on AppVeyor
|
||||
ENV['build_tree'] = '../Build' unless ENV['APPVEYOR']
|
||||
# Always use a same build configuration to keep ccache's cache size small; single-config generator needs the option when configuring, while multi-config when building
|
||||
@ -237,8 +249,8 @@ task :ci do
|
||||
# When not explicitly specified then use generic generator
|
||||
generator = ENV['XCODE'] ? 'xcode' : (ENV['APPVEYOR'] ? 'vs2015' : '')
|
||||
# LuaJIT on MinGW build is not possible on Travis-CI with Ubuntu LTS 12.04 as its GCC cross-compiler version is too old, wait until we have Ubuntu LTS 14.04
|
||||
# LuaJIT on Web platform is not possible and LuaJIT on iOS platform is not allowed
|
||||
jit = (ENV['WIN32'] && ENV['TRAVIS']) || ENV['WEB'] || ENV['IOS'] ? '' : 'JIT=1 URHO3D_LUAJIT_AMALG='
|
||||
# LuaJIT on Web platform is not possible
|
||||
jit = (ENV['WIN32'] && ENV['TRAVIS']) || ENV['WEB'] ? '' : 'JIT=1 URHO3D_LUAJIT_AMALG='
|
||||
system "bash -c 'rake cmake #{generator} URHO3D_LUA#{jit}=1 URHO3D_DATABASE_SQLITE=1 URHO3D_EXTRAS=1'" or abort 'Failed to configure Urho3D library build'
|
||||
if ENV['AVD'] && !ENV['PACKAGE_UPLOAD'] # Skip APK test run when packaging
|
||||
# Prepare a new AVD in another process to avoid busy waiting
|
||||
@ -250,13 +262,19 @@ task :ci do
|
||||
system 'rake ci_push_bindings' or abort
|
||||
next
|
||||
end
|
||||
# Multi-config CMake generators use different target name than single-config ones for no good reason
|
||||
test = ENV['URHO3D_TESTING'] ? "&& rake make target=#{ENV['OS'] || ENV['XCODE'] ? 'RUN_TESTS' : 'test'}" : ''
|
||||
system "bash -c 'rake make #{test}'" or abort 'Failed to build or test Urho3D library'
|
||||
unless ENV['CI'] && (ENV['IOS'] || ENV['WEB']) && ENV['PACKAGE_UPLOAD'] # Skip scaffolding test when packaging for iOS and Web platform
|
||||
system "bash -c 'rake make'" or abort 'Failed to build Urho3D library'
|
||||
if ENV['URHO3D_TESTING'] && !timeup
|
||||
# Multi-config CMake generators use different test target name than single-config ones for no good reason
|
||||
test = "rake make target=#{ENV['OS'] || ENV['XCODE'] ? 'RUN_TESTS' : 'test'}"
|
||||
system "bash -c '#{test}'" or abort 'Failed to test Urho3D library'
|
||||
test = "&& echo && #{test}"
|
||||
else
|
||||
test = ''
|
||||
end
|
||||
unless ENV['CI'] && (ENV['IOS'] || ENV['WEB']) && ENV['PACKAGE_UPLOAD'] || timeup # Skip scaffolding test when packaging for iOS and Web platform
|
||||
# Staged-install Urho3D SDK when on Travis-CI; normal install when on AppVeyor
|
||||
ENV['DESTDIR'] = ENV['HOME'] || Dir.home unless ENV['APPVEYOR']
|
||||
puts "\nInstalling Urho3D SDK to #{ENV['DESTDIR'] ? "#{ENV['DESTDIR']}/usr/local" : 'default system-wide location'}..."; $stdout.flush
|
||||
puts "Installing Urho3D SDK to #{ENV['DESTDIR'] ? "#{ENV['DESTDIR']}/usr/local" : 'default system-wide location'}..."; $stdout.flush
|
||||
system "bash -c 'rake make target=install >/dev/null'" or abort 'Failed to install Urho3D SDK'
|
||||
# Alternate to use in-the-source build tree for test coverage
|
||||
ENV['build_tree'] = '.' unless ENV['APPVEYOR']
|
||||
@ -267,13 +285,13 @@ task :ci do
|
||||
prefix = ENV['APPVEYOR'] ? '' : '../Build/generated/'
|
||||
# Create a new project on the fly that uses newly installed Urho3D SDK
|
||||
Dir.chdir scaffolding "#{prefix}UsingSDK" do
|
||||
puts "\nConfiguring downstream project using Urho3D SDK..."; $stdout.flush
|
||||
puts "\nConfiguring downstream project using Urho3D SDK...\n\n"; $stdout.flush
|
||||
# SDK installation to a system-wide location does not need URHO3D_HOME to be defined, staged-installation does
|
||||
system "bash -c '#{ENV['DESTDIR'] ? 'URHO3D_HOME=~/usr/local' : ''} rake cmake #{generator} URHO3D_LUA=1 && rake make #{test}'" or abort 'Failed to configure/build/test temporary downstream project using Urho3D as external library'
|
||||
end
|
||||
# Create a new project on the fly that uses newly built Urho3D library in the build tree
|
||||
Dir.chdir scaffolding "#{prefix}UsingBuildTree" do
|
||||
puts "\nConfiguring downstream project using Urho3D library in its build tree..."; $stdout.flush
|
||||
puts "\nConfiguring downstream project using Urho3D library in its build tree...\n\n"; $stdout.flush
|
||||
system "bash -c 'rake cmake #{generator} URHO3D_HOME=../..#{ENV['APPVEYOR'] ? '/Build' : ''} URHO3D_LUA=1 && rake make #{test}'" or abort 'Failed to configure/build/test temporary downstream project using Urho3D as external library'
|
||||
end
|
||||
end
|
||||
@ -420,6 +438,8 @@ end
|
||||
# Usage: NOT intended to be used manually
|
||||
desc 'Make binary package and upload it to a designated central hosting server'
|
||||
task :ci_package_upload do
|
||||
$start_time = Time.now - ENV['ELAPSED'].to_i + 30 if ENV['ELAPSED'] # Plus 30 seconds for rounding up to the next nearest minute
|
||||
next if timeup
|
||||
# Using out-of-source build tree when using Travis-CI; 'build_tree' environment variable is already set when on AppVeyor
|
||||
ENV['build_tree'] = '../Build' unless ENV['APPVEYOR']
|
||||
# Always use Release build configuration when using Xcode; 'config' environment variable is already set when on AppVeyor
|
||||
@ -433,7 +453,7 @@ task :ci_package_upload do
|
||||
ENV['SITE_UPDATE'] = nil
|
||||
end
|
||||
elsif !File.exists?("#{ENV['build_tree']}/Docs/html/index.html")
|
||||
puts "\nGenerating documentation..."
|
||||
puts "Generating documentation..."
|
||||
# Ignore the exit status from 'make doc' on Windows host system only due to Doxygen may not return exit status correctly on Windows
|
||||
system "bash -c 'rake make target=doc >/dev/null'" or ENV['OS'] or abort 'Failed to generate documentation'
|
||||
end
|
||||
|
@ -272,7 +272,8 @@ endif ()
|
||||
if (IOS)
|
||||
# Add a custom target to build Mach-O universal binary consisting of iphoneos (universal ARM archs including 'arm64' if 64-bit is enabled) and iphonesimulator (i386 arch and also x86_64 arch if 64-bit is enabled)
|
||||
add_custom_target (${TARGET_NAME}_universal ALL
|
||||
COMMAND if lipo -info $<TARGET_FILE:${TARGET_NAME}> 2>/dev/null |egrep -cq 'i386.*armv7|armv7.*i386'\; then echo $<TARGET_FILE:${TARGET_NAME}> is already a Mach-O universal binary consisting of both iphoneos and iphonesimulator archs\; else mv $<TARGET_FILE:${TARGET_NAME}>{,.ori} && if lipo -info $<TARGET_FILE:${TARGET_NAME}>.ori 2>/dev/null |grep -cq i386\; then sdk=iphoneos\; else sdk=iphonesimulator\; fi && xcodebuild -target ${TARGET_NAME} -configuration $(CONFIGURATION) -sdk $$sdk 2>&1 && mv $<TARGET_FILE:${TARGET_NAME}>{,.new} && lipo -create -output $<TARGET_FILE:${TARGET_NAME}>{,.ori,.new} && rm $<TARGET_FILE:${TARGET_NAME}>{.ori,.new}\; fi
|
||||
COMMAND if lipo -info $<TARGET_FILE:${TARGET_NAME}> 2>/dev/null |egrep -cq 'i386.*armv7|armv7.*i386|x86_64.*arm64|arm64.*x86_64'\; then echo $<TARGET_FILE:${TARGET_NAME}> is already a Mach-O universal binary consisting of both iphoneos and iphonesimulator archs\; else mv $<TARGET_FILE:${TARGET_NAME}>{,.ori} && if lipo -info $<TARGET_FILE:${TARGET_NAME}>.ori 2>/dev/null |egrep -cq 'i386|x86_64'\; then sdk=iphoneos\; else sdk=iphonesimulator\; fi && xcodebuild -target ${TARGET_NAME} -configuration $(CONFIGURATION) -sdk $$sdk 2>&1 && mv $<TARGET_FILE:${TARGET_NAME}>{,.new} && lipo -create -output $<TARGET_FILE:${TARGET_NAME}>{,.ori,.new} && rm $<TARGET_FILE:${TARGET_NAME}>{.ori,.new}\; fi
|
||||
DEPENDS ${TARGET_NAME}
|
||||
WORKING_DIRECTORY ${CMAKE_BINARY_DIR}
|
||||
COMMENT "Creating Mach-O universal binary library consisting of both iphoneos and iphonesimulator archs")
|
||||
install (FILES $<TARGET_FILE:${TARGET_NAME}> DESTINATION ${DEST_LIBRARY_DIR})
|
||||
|
Loading…
Reference in New Issue
Block a user