# 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")