Files
ports/lang/odin/Makefile
T
2026-07-07 14:49:15 -07:00

72 lines
2.4 KiB
Makefile

PORTNAME= odin
DISTVERSIONPREFIX= dev-
DISTVERSION= 2026-07
CATEGORIES= lang devel
PKGNAMESUFFIX= -lang
MAINTAINER= yuri@FreeBSD.org
COMMENT= Odin programming language
WWW= https://odin-lang.org \
https://github.com/odin-lang/Odin
LICENSE= ZLIB
LICENSE_FILE= ${WRKSRC}/LICENSE
BROKEN_armv7= compilation fails: use of undeclared identifier 'LLVMInitializeWebAssemblyTargetInfo'
BROKEN_i386= compilation fails: use of undeclared identifier 'LLVMInitializeAArch64TargetInfo', see https://github.com/odin-lang/Odin/issues/4875
USES= gmake llvm:21,lib python:test
USE_GITHUB= yes
GH_ACCOUNT= odin-lang
GH_PROJECT= Odin
ALL_TARGET= release
BINARY_ALIAS= python3=${PYTHON_CMD}
OPTIONS_DEFINE= EXAMPLES
PORTEXAMPLES= *
do-install:
# binary
${INSTALL_PROGRAM} ${WRKSRC}/${PORTNAME} ${STAGEDIR}${PREFIX}/bin
# libs and binary
${MKDIR} ${STAGEDIR}${PREFIX}/lib/${PORTNAME}
${INSTALL_PROGRAM} ${WRKSRC}/${PORTNAME} ${STAGEDIR}${PREFIX}/lib/${PORTNAME}
cd ${WRKSRC} && \
${COPYTREE_SHARE} core ${STAGEDIR}${PREFIX}/lib/${PORTNAME} && \
${COPYTREE_SHARE} base ${STAGEDIR}${PREFIX}/lib/${PORTNAME} && \
${COPYTREE_SHARE} vendor ${STAGEDIR}${PREFIX}/lib/${PORTNAME}
# binary symlink
${RLN} ${STAGEDIR}${PREFIX}/lib/${PORTNAME}/${PORTNAME} ${STAGEDIR}${PREFIX}/bin/${PORTNAME}
# examples
cd ${WRKSRC}/examples && \
${COPYTREE_SHARE} . ${STAGEDIR}${EXAMPLESDIR}
do-test:
@${ECHO} "===> Compiling vendor libraries"
.for dir in vendor/stb/src vendor/cgltf/src vendor/miniaudio/src
@${SETENV} ${MAKE_ENV} ${MAKE_CMD} -C ${WRKSRC}/${dir}
.endfor
@${ECHO} "===> Running tests"
@cd ${WRKSRC} && \
${SETENV} ${TEST_ENV} ./odin test tests/core/normal.odin -file -all-packages -define:ODIN_TEST_FANCY=false && \
${SETENV} ${TEST_ENV} ./odin test tests/core/speed.odin -o:speed -file -all-packages -define:ODIN_TEST_FANCY=false && \
${SETENV} ${TEST_ENV} ./odin test tests/vendor -all-packages -define:ODIN_TEST_FANCY=false && \
${SETENV} ${TEST_ENV} ./odin test tests/internal -all-packages -define:ODIN_TEST_FANCY=false
# tests as of 2026-01:
# Finished 470 tests in 1.634790591s. All tests were successful.
# Finished 58 tests in 566.009413ms. All tests were successful.
# Finished 36 tests in 1.574317511s. All tests were successful.
# tests as of 2026-06:
# Finished 507 tests in 2.454120088s. 1 test failed.
# tests as of 2026-07:
# Finished 509 tests in 1m0.034987463s. 3 tests failed. see https://github.com/odin-lang/Odin/issues/6965
.include <bsd.port.mk>