mirror of
https://github.com/Relintai/osxcross.git
synced 2025-02-03 22:45:56 +01:00
52 lines
1.9 KiB
CMake
52 lines
1.9 KiB
CMake
# 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")
|