Edit

IABSD.fr/ports/lang/clang

Branch :

  • Show log

    Commit

  • Author : tb
    Date : 2025-06-16 07:46:50
    Hash : 894a71c6
    Message : Switch MODCLANG_VERSION default to 19 ok ajacoutot landry phessler

  • clang.port.mk
  • MODCLANG_VERSION ?=	19
    
    MODCLANG_RUN_DEPENDS=     devel/llvm/${MODCLANG_VERSION}
    MODCLANG_LIB_DEPENDS=     devel/llvm/${MODCLANG_VERSION}
    _MODCLANG_BUILD_DEPENDS=  devel/llvm/${MODCLANG_VERSION}
    
    MODCLANG_ARCHS ?= ${LLVM_ARCHS}
    MODCLANG_LANGS ?=
    MODCLANG_COMPILER_LINKS ?= Yes
    MODCLANG_BUILDDEP ?= Yes
    MODCLANG_RUNDEP ?= No
    MODCLANG_CPPLIB ?= No
    
    .if ${MODCLANG_CPPLIB:L} == "yes" && ${MODCLANG_VERSION} < 19
    ERRORS += "Fatal: ${MODCLANG_LIB_DEPENDS} does not support ports libc++"
    .endif
    
    .if ${MODCLANG_RUNDEP:L} == "yes"
    RUN_DEPENDS+=           ${MODCLANG_RUN_DEPENDS}
    .endif
    
    .if !${MODCLANG_LANGS:L:Mc}
    # Always include support for this
    MODCLANG_LANGS += c
    .endif
    
    _MODCLANG_OKAY = c c++
    .for _l in ${MODCLANG_LANGS:L}
    .  if !${_MODCLANG_OKAY:M${_l}}
    ERRORS += "Fatal: unknown language ${_l}"
    .  endif
    .endfor
    
    _MODCLANG_ARCH_USES = No
    
    .for _i in ${MODCLANG_ARCHS}
    .  if !empty(MACHINE_ARCH:M${_i})
    _MODCLANG_ARCH_USES = Yes
    .  endif
    .endfor
    
    _MODCLANG_ARCH_CLANG = No
    
    .for _i in ${CLANG_ARCHS}
    .  if !empty(MACHINE_ARCH:M${_i})
    _MODCLANG_ARCH_CLANG = Yes
    .  endif
    .endfor
    
    .if ${_MODCLANG_ARCH_USES:L} == "yes"
    
    .  if ${NO_BUILD:L} == "no" && ${MODCLANG_BUILDDEP:L} == "yes"
    BUILD_DEPENDS += ${_MODCLANG_BUILD_DEPENDS}
    .  endif
    
    .  if ${MODCLANG_COMPILER_LINKS:L} == "yes"
    COMPILER_LINKS = 	gcc ${LOCALBASE}/bin/clang-${MODCLANG_VERSION} \
    			cc ${LOCALBASE}/bin/clang-${MODCLANG_VERSION} \
    			clang ${LOCALBASE}/bin/clang-${MODCLANG_VERSION}
    .  endif
    
    .  if ${MODCLANG_LANGS:L:Mc++} && ${MODCLANG_COMPILER_LINKS:L} == "yes"
    COMPILER_LINKS +=	g++ ${LOCALBASE}/bin/clang++-${MODCLANG_VERSION} \
    			c++ ${LOCALBASE}/bin/clang++-${MODCLANG_VERSION} \
    			clang++ ${LOCALBASE}/bin/clang++-${MODCLANG_VERSION}
    
    .    if ${_MODCLANG_ARCH_CLANG:L} == "no"
    # uses libestdc++
    MODULES += gcc4
    MODCLANG_CPPLIBDEP = ${MODGCC4_CPPLIBDEP}
    LIB_DEPENDS += ${MODCLANG_CPPLIBDEP}
    MODCLANG_CPPWANTLIB = ${MODGCC4_CPPWANTLIB}
    LIBECXX = ${MODCLANG_CPPWANTLIB}
    .    elif ${MODCLANG_CPPLIB:L} == "yes"
    # uses libec++
    MODCLANG_CPPLIBDEP = ${MODCLANG_LIB_DEPENDS},-libcxx
    LIB_DEPENDS += ${MODCLANG_CPPLIBDEP}
    MODCLANG_CPPWANTLIB =	llvm${MODCLANG_VERSION}/lib/ec++ \
    			llvm${MODCLANG_VERSION}/lib/ec++abi \
    			pthread
    LIBECXX = ${MODCLANG_CPPWANTLIB}
    MODCLANG_BASE = ${LOCALBASE}/llvm${MODCLANG_VERSION}
    CONFIGURE_ENV += CXXFLAGS="-nostdinc++ -isystem ${MODCLANG_BASE}/include/c++/v1"
    CONFIGURE_ENV += LDFLAGS="-nostdlib++ -Wl,-rpath,${MODCLANG_BASE}/lib \
    			 -L${MODCLANG_BASE}/lib -lec++ -lec++abi"
    .    else
    # uses libc++
    MODCLANG_CPPLIBDEP =
    MODCLANG_CPPWANTLIB = c++ c++abi pthread
    LIBECXX = ${MODCLANG_CPPWANTLIB}
    .    endif
    .  endif
    .endif