environment/toolchain-freebsd.cmake
Rama master · réplica de lectura del repositorio original.
set(CMAKE_SYSTEM_NAME FreeBSD)
execute_process(
COMMAND uname -m
OUTPUT_VARIABLE uname_result
OUTPUT_STRIP_TRAILING_WHITESPACE
)
# FreeBSD calls it amd64, while dependencies that gate SIMD kernels on the processor name
# test for x86_64. Setting CMAKE_SYSTEM_NAME above is what makes this value stick: on a
# native build CMake otherwise recomputes the processor during project().
if (uname_result STREQUAL "amd64")
set(CMAKE_SYSTEM_PROCESSOR "x86_64")
else()
set(CMAKE_SYSTEM_PROCESSOR "${uname_result}")
endif()
set(CMAKE_CXX_STANDARD 20)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
if (DEFINED ENV{MG_TOOLCHAIN_ROOT})
set(MG_TOOLCHAIN_ROOT "$ENV{MG_TOOLCHAIN_ROOT}")
endif()
if (MG_TOOLCHAIN_ROOT AND IS_DIRECTORY "${MG_TOOLCHAIN_ROOT}")
message(STATUS "FreeBSD toolchain directory: ${MG_TOOLCHAIN_ROOT}")
set(CMAKE_FIND_ROOT_PATH "${CMAKE_FIND_ROOT_PATH};${MG_TOOLCHAIN_ROOT}")
set(CMAKE_C_COMPILER "${MG_TOOLCHAIN_ROOT}/bin/clang" CACHE STRING "" FORCE)
set(CMAKE_CXX_COMPILER "${MG_TOOLCHAIN_ROOT}/bin/clang++" CACHE STRING "" FORCE)
set(CMAKE_CXX_COMPILER_AR "${MG_TOOLCHAIN_ROOT}/bin/llvm-ar" CACHE FILEPATH "" FORCE)
set(CMAKE_CXX_COMPILER_RANLIB "${MG_TOOLCHAIN_ROOT}/bin/llvm-ranlib" CACHE FILEPATH "" FORCE)
set(CMAKE_C_COMPILER_AR "${MG_TOOLCHAIN_ROOT}/bin/llvm-ar" CACHE FILEPATH "" FORCE)
set(CMAKE_C_COMPILER_RANLIB "${MG_TOOLCHAIN_ROOT}/bin/llvm-ranlib" CACHE FILEPATH "" FORCE)
set(CMAKE_AR "${MG_TOOLCHAIN_ROOT}/bin/llvm-ar" CACHE FILEPATH "" FORCE)
set(CMAKE_RANLIB "${MG_TOOLCHAIN_ROOT}/bin/llvm-ranlib" CACHE FILEPATH "" FORCE)
set(CMAKE_LINKER "${MG_TOOLCHAIN_ROOT}/bin/lld")
set(CMAKE_LINKER_TYPE LLD)
set(CMAKE_NM "${MG_TOOLCHAIN_ROOT}/bin/llvm-nm")
set(CMAKE_OBJCOPY "${MG_TOOLCHAIN_ROOT}/bin/llvm-objcopy")
set(CMAKE_OBJDUMP "${MG_TOOLCHAIN_ROOT}/bin/llvm-objdump")
set(CMAKE_STRIP "${MG_TOOLCHAIN_ROOT}/bin/llvm-strip")
set(CMAKE_CXX_COMPILER_CLANG_SCAN_DEPS "${MG_TOOLCHAIN_ROOT}/bin/clang-scan-deps" CACHE STRING "" FORCE)
list(APPEND CMAKE_PREFIX_PATH "${MG_TOOLCHAIN_ROOT}")
list(APPEND CMAKE_IGNORE_PATH "${MG_TOOLCHAIN_ROOT}/lib/cmake/OpenSSL")
else()
message(STATUS "Using system LLVM toolchain (no MG_TOOLCHAIN_ROOT set)")
endif()
set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY BOTH)
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE BOTH)
set(CMAKE_FIND_ROOT_PATH_MODE_PACKAGE BOTH)