Merge pull request #148 from jpcima/cmake

add CMake
This commit is contained in:
Thomas Pöchtrager 2018-09-09 08:52:23 +02:00 committed by GitHub
commit f4ba4facae
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 79 additions and 0 deletions

View File

@ -325,6 +325,18 @@ elif [ $(osxcross-cmp $OSX_VERSION_MIN "<" 10.4) -eq 1 ]; then
exit 1 exit 1
fi fi
# CMAKE
echo "installing CMake"
cp -f "$BASE_DIR/tools/toolchain.cmake" "$TARGET_DIR/"
cp -f "$BASE_DIR/tools/osxcross-cmake" "$TARGET_DIR/bin/"
chmod 755 "$TARGET_DIR/bin/osxcross-cmake"
create_symlink osxcross-cmake "$TARGET_DIR/bin/i386-apple-$TARGET-cmake"
create_symlink osxcross-cmake "$TARGET_DIR/bin/x86_64-apple-$TARGET-cmake"
# CMAKE END
unset MACOSX_DEPLOYMENT_TARGET unset MACOSX_DEPLOYMENT_TARGET
test_compiler o32-clang $BASE_DIR/oclang/test.c test_compiler o32-clang $BASE_DIR/oclang/test.c

16
tools/osxcross-cmake Executable file
View File

@ -0,0 +1,16 @@
#!/usr/bin/env bash
set -e
dir=`dirname "$0"`
progname=`basename "$0"`
host=${progname%-cmake}
if test "$host" = "osxcross" ; then
echo "Do not invoke this script directly."
exit 1
fi
eval "`$dir/$host-osxcross-conf`"
export OSXCROSS_HOST="$host"
exec cmake -DCMAKE_TOOLCHAIN_FILE="$OSXCROSS_TARGET_DIR"/toolchain.cmake "$@"

51
tools/toolchain.cmake Normal file
View File

@ -0,0 +1,51 @@
# OSXCross toolchain
macro(osxcross_getconf VAR)
if(NOT ${VAR})
set(${VAR} "$ENV{${VAR}}")
if(${VAR})
set(${VAR} "${${VAR}}" CACHE STRING "${VAR}")
message(STATUS "Found ${VAR}: ${${VAR}}")
else()
message(FATAL_ERROR "Cannot determine \"${VAR}\"")
endif()
endif()
endmacro()
osxcross_getconf(OSXCROSS_HOST)
osxcross_getconf(OSXCROSS_TARGET_DIR)
osxcross_getconf(OSXCROSS_TARGET)
osxcross_getconf(OSXCROSS_SDK)
set(CMAKE_SYSTEM_NAME "Darwin")
string(REGEX REPLACE "-.*" "" CMAKE_SYSTEM_PROCESSOR "${OSXCROSS_HOST}")
# specify the cross compiler
if(CMAKE_SYSTEM_PROCESSOR MATCHES "^i.86$")
set(CMAKE_C_COMPILER "${OSXCROSS_TARGET_DIR}/bin/o32-clang")
set(CMAKE_CXX_COMPILER "${OSXCROSS_TARGET_DIR}/bin/o32-clang++")
elseif(CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
set(CMAKE_C_COMPILER "${OSXCROSS_TARGET_DIR}/bin/o64-clang")
set(CMAKE_CXX_COMPILER "${OSXCROSS_TARGET_DIR}/bin/o64-clang++")
else()
message(FATAL_ERROR "Unrecognized target architecture")
endif()
# where is the target environment
set(CMAKE_FIND_ROOT_PATH
"${OSXCROSS_SDK}"
"${OSXCROSS_TARGET_DIR}/macports/pkgs/opt/local")
# search for programs in the build host directories
set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
# for libraries and headers in the target directories
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
set(CMAKE_FIND_ROOT_PATH_MODE_PACKAGE ONLY)
set(CMAKE_AR "${OSXCROSS_TARGET_DIR}/bin/${OSXCROSS_HOST}-ar" CACHE FILEPATH "ar")
set(CMAKE_RANLIB "${OSXCROSS_TARGET_DIR}/bin/${OSXCROSS_HOST}-ranlib" CACHE FILEPATH "ranlib")
set(CMAKE_INSTALL_NAME_TOOL "${OSXCROSS_TARGET_DIR}/bin/${OSXCROSS_HOST}-install_name_tool" CACHE FILEPATH "install_name_tool")
set(ENV{PKG_CONFIG_LIBDIR} "${OSXCROSS_TARGET_DIR}/macports/pkgs/opt/local/lib/pkgconfig")
set(ENV{PKG_CONFIG_SYSROOT_DIR} "${OSXCROSS_TARGET_DIR}/macports/pkgs")