#!/bin/bash cd $(dirname $0); outfile="$1"; function usage { echo "Usage: HOST=$(gcc -dumpmachine) $0 outfile"; } if [[ "x$outfile" == "x" ]]; then usage echo "outfile not specified" exit 1; fi if [[ "x$HOST" == "x" ]]; then usage echo "HOST env missing" exit 2 fi outdir=$(dirname $outfile) if [[ ! -d "$outdir" ]]; then usage echo "$outdir doesn't exist" exit 3 fi set -x source $HOST/_source_me sed -e "s|@HOST@|$TARGET|g" \ -e "s|@CC@|$CC|g" \ -e "s|@CXX@|$CXX|g" \ -e "s|@AR@|$AR|g" \ -e "s|@RANLIB@|$RANLIB|g" \ -e "s|@NM@|$NM|g" \ -e "s|@STRIP@|$STRIP|g" \ -e "s|@CFLAGS@|$CFLAGS|g" \ -e "s|@CXXFLAGS@|$CXXFLAGS|g" \ -e "s|@CPPFLAGS@|$CPPFLAGS|g" \ -e "s|@LDFLAGS@|$LDFLAGS|g" \ -e "s|@release_type@|Release|g" \ -e "s|@build_tests@|OFF|g" \ -e "s|@cmake_system_name@|$CMAKE_SYSTEM_NAME|g" \ -e "s|@prefix@|$PREFIX|g" \ -e "s|@nativeprefix@|$NATIVEPREFIX|g" \ -e "s|@arch@|$ARCH|g" > $outfile < CMAKE_SYSROOT = \$ENV{SDK_PATH}") elseif(DEFINED ENV{SYSROOT}) set(CMAKE_SYSROOT "\$ENV{SYSROOT}" CACHE PATH "" FORCE) set(CMAKE_OSX_SYSROOT "\$ENV{SYSROOT}" CACHE PATH "" FORCE) message(STATUS "toolchain: SYSROOT -> CMAKE_SYSROOT = \$ENV{SYSROOT}") else() # if this is an iOS simulator/native iOS mapping and no SDK_PATH was set, # set the logical name so CMake + Apple toolchain can pick it up if available if(_ios_simulator) set(CMAKE_OSX_SYSROOT iphonesimulator CACHE STRING "" FORCE) elseif(DEFINED _ios_simulator AND NOT _ios_simulator) set(CMAKE_OSX_SYSROOT iphoneos CACHE STRING "" FORCE) endif() endif() if(DEFINED ENV{OSX_MIN_VERSION}) set(CMAKE_OSX_DEPLOYMENT_TARGET "\$ENV{OSX_MIN_VERSION}" CACHE STRING "" FORCE) message(STATUS "toolchain: CMAKE_OSX_DEPLOYMENT_TARGET = \$ENV{OSX_MIN_VERSION}") endif() if(DEFINED ENV{PREFIX}) set(CMAKE_FIND_ROOT_PATH "\$ENV{PREFIX}" CACHE PATH "" FORCE) set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER) set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY) set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY) message(STATUS "toolchain: CMAKE_FIND_ROOT_PATH = \$ENV{PREFIX}") endif() if(DEFINED ENV{PKG_CONFIG_PATH}) set(ENV{PKG_CONFIG_PATH} "\$ENV{PKG_CONFIG_PATH}") message(STATUS "toolchain: PKG_CONFIG_PATH = \$ENV{PKG_CONFIG_PATH}") endif() if(DEFINED CMAKE_C_COMPILER) else() message(WARNING "toolchain: C compiler not set (ENV{CC} missing).") endif() if(DEFINED CMAKE_CXX_COMPILER) else() message(WARNING "toolchain: C++ compiler not set (ENV{CXX} missing).") endif() EOF