diff --git a/build.sh b/build.sh index 095c5c26168d817edf8af8339b026f965a37f0eb..cf3f3f2e7c46e19f96ab0d23917c5fadfbbb3fd0 100755 --- a/build.sh +++ b/build.sh @@ -21,6 +21,15 @@ MHERE="$DIR" export SOURCES=${MHERE}/../ +case "${UNAME_OUT}" in + Linux*) MACHINE=Linux;; + Darwin*) MACHINE=Mac;; + CYGWIN*) MACHINE=Cygwin;; + MINGW*) MACHINE=MinGw;; + MSYS_NT*) MACHINE=Git;; + *) MACHINE="UNKNOWN:${UNAME_OUT}" +esac + #validate input params . ${MHERE}/validate.sh @@ -83,7 +92,14 @@ fi mkdir -p ${BUILD_DIR}/build mkdir -p ${BUILD_DIR}/dist -echo "Build [${BUILD_TYPE}] binaries for [$BUILD_TARGET] in [${BUILD_DIR}] on $(nproc) threads" +if [ "$MACHINE" != "Mac" ] +then + NPROC="$(nproc)" +else + NPROC="$(sysctl -n hw.ncpu)" +fi + +echo "Build [${BUILD_TYPE}] binaries for [$BUILD_TARGET] in [${BUILD_DIR}] on $NPROC threads" echo "with options: [${BUILD_OPTIONS[@]}]" cd ${BUILD_DIR}/build @@ -94,5 +110,5 @@ echo "${CMAKE[@]} ${MHERE}/../ -DCREATE_DEFAULT_CONFIG=OFF ${BUILD_OPTIONS[@]}" #echo $HERE export INSTALL_ROOT=${BUILD_DIR}/dist "${CMAKE[@]}" ${MHERE}/../ -DCREATE_DEFAULT_CONFIG=OFF ${BUILD_OPTIONS[@]} -"${MAKE[@]}" -j$(nproc) +"${MAKE[@]}" -j $NPROC "${MAKE[@]}" install DESTDIR=${INSTALL_ROOT} diff --git a/targets/osx.sh b/targets/osx.sh index 067a0018f0791482022116bec64f970fabcc3d6f..5d8305664ebba99972338f80b04b425b3094e2ec 100644 --- a/targets/osx.sh +++ b/targets/osx.sh @@ -22,34 +22,60 @@ RDIR=$( dirname "$SOURCE" ) DIR=$( cd -P "$( dirname "$SOURCE" )" >/dev/null 2>&1 && pwd ) HERE="$DIR" +UNAME_OUT="$(uname -s)" +case "${UNAME_OUT}" in + Linux*) MACHINE=Linux;; + Darwin*) MACHINE=Mac;; + CYGWIN*) MACHINE=Cygwin;; + MINGW*) MACHINE=MinGw;; + MSYS_NT*) MACHINE=Git;; + *) MACHINE="UNKNOWN:${UNAME_OUT}" +esac - -if [ -z "$OSXCROSS_QT_ROOT" ] +if [ "$MACHINE" != "Mac" ] then - echo "Please, export OSXCROSS_QT_ROOT variable, pointing to Qt-builds locations for osxcross environment" - exit 255 -fi + echo "Host is $MACHINE, use osx-cross build target" + if [ -z "$OSXCROSS_QT_ROOT" ] + then + echo "Please, export OSXCROSS_QT_ROOT variable, pointing to Qt-builds locations for osxcross environment" + exit 255 + fi -if [ -z "$OSXCROSS_QT_VERSION" ] -then - echo "Please, export OSXCROSS_QT_VERSION variable, scpecifying Qt-version in OSXCROSS_QT_ROOT directory." - exit 255 -fi + if [ -z "$OSXCROSS_QT_VERSION" ] + then + echo "Please, export OSXCROSS_QT_VERSION variable, scpecifying Qt-version in OSXCROSS_QT_ROOT directory." + exit 255 + fi + + echo "Using QT ${OSXCROSS_QT_VERSION} from ${OSXCROSS_QT_ROOT}/${OSXCROSS_QT_VERSION}" -echo "Using QT ${OSXCROSS_QT_VERSION} from ${OSXCROSS_QT_ROOT}/${OSXCROSS_QT_VERSION}" + [ ! -d ${OSXCROSS_QT_ROOT}/${OSXCROSS_QT_VERSION} ] && { echo "No QT ${OSXCROSS_QT_VERSION} found in ${OSXCROSS_QT_ROOT}" && exit 255; } -[ ! -d ${OSXCROSS_QT_ROOT}/${OSXCROSS_QT_VERSION} ] && { echo "No QT ${OSXCROSS_QT_VERSION} found in ${OSXCROSS_QT_ROOT}" && exit 255; } + $(${OSXCROSS_ROOT}/bin/osxcross-conf) -$(${OSXCROSS_ROOT}/bin/osxcross-conf) + export OSXCROSS_HOST=x86_64-apple-darwin20.4 + CMAKE=(cmake -DCMAKE_TOOLCHAIN_FILE=${OSXCROSS_ROOT}/toolchain.cmake) -export OSXCROSS_HOST=x86_64-apple-darwin20.4 -CMAKE=(cmake -DCMAKE_TOOLCHAIN_FILE=${OSXCROSS_ROOT}/toolchain.cmake) + ##everything else can be done by default make + MAKE=(make) -##everything else can be done by default make -MAKE=(make) + +else + echo "Host is $MACHINE, use native build toolchain" + if [ -f "/Users/$USER/Qt/Tools/CMake/CMake.app/Contents/bin/cmake" ] + then + CMAKE=(/Users/$USER/Qt/Tools/CMake/CMake.app/Contents/bin/cmake ) -echo "OSXcross target" + echo "Found cmake at $CMAKE, using it" + else + echo "Not found cmake at default qt location, asuming it is in PATH" + CMAKE=(cmake) + fi + + ##everything else can be done by default make + MAKE=(make) +fi echo "CMAKE=${CMAKE[@]}" echo "MAKE=${MAKE[@]}"