mirror of
https://github.com/Relintai/osxcross.git
synced 2025-02-03 22:45:56 +01:00
add CMake
This commit is contained in:
parent
1a1733a773
commit
f394d6a890
12
build.sh
12
build.sh
@ -322,6 +322,18 @@ elif [ $(osxcross-cmp $OSX_VERSION_MIN "<" 10.4) -eq 1 ]; then
|
||||
exit 1
|
||||
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
|
||||
|
||||
test_compiler o32-clang $BASE_DIR/oclang/test.c
|
||||
|
16
tools/osxcross-cmake
Executable file
16
tools/osxcross-cmake
Executable 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 "$@"
|
50
tools/toolchain.cmake
Normal file
50
tools/toolchain.cmake
Normal file
@ -0,0 +1,50 @@
|
||||
# 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(ENV{PKG_CONFIG_LIBDIR} "${OSXCROSS_TARGET_DIR}/macports/pkgs/opt/local/lib/pkgconfig")
|
||||
set(ENV{PKG_CONFIG_SYSROOT_DIR} "${OSXCROSS_TARGET_DIR}/macports/pkgs")
|
Loading…
Reference in New Issue
Block a user