cad/camotics: adding CAMotics, Simulation & Computer Aided Machining

The latest stable release, v1.2.0, is for Python-2.7, this is why I
ported this -RC1, but it is somewhat buggy. Do not hesitate to report
any problem!

PR:		262763
Requested by:	luzpaz (at) pm.me
This commit is contained in:
Thierry Thomas
2022-05-21 10:56:42 +02:00
parent de46dbf272
commit 3a63bbd85b
6 changed files with 150 additions and 0 deletions
+1
View File
@@ -15,6 +15,7 @@
SUBDIR += brlcad
SUBDIR += calculix
SUBDIR += calculix-ccx
SUBDIR += camotics
SUBDIR += caneda
SUBDIR += cascade
SUBDIR += cascade-compiler
+102
View File
@@ -0,0 +1,102 @@
# Created by: thierry@pompo.net
PORTNAME= CAMotics
DISTVERSIONPREFIX= v
DISTVERSION= 1.2.2-rc1
CATEGORIES= cad
MAINTAINER= thierry@FreeBSD.org
COMMENT= 3-axis CNC GCode simulator
LICENSE= GPLv2+
BUILD_DEPENDS= boost-libs>0:devel/boost-libs \
${LOCALBASE}/lib/libdxflib.a:cad/qcad \
${PYTHON_PKGNAMEPREFIX}six>0:devel/py-six@${PY_FLAVOR}
LIB_DEPENDS= libv8.so:lang/v8 \
libre2.so:devel/re2 \
libcbang0.so:devel/cbang \
liblz4.so:archivers/liblz4 \
libevent.so:devel/libevent \
libexpat.so:textproc/expat2 \
libyaml.so:textproc/libyaml \
libsnappy.so:archivers/snappy \
libsysinfo.so:devel/libsysinfo \
libleveldb.so:databases/leveldb
USE_GITHUB= yes
GH_ACCOUNT= CauldronDevelopmentLLC
USES= compiler:c++14-lang desktop-file-utils gettext-runtime gl gnome \
localbase:ldflags mysql:client pkgconfig python qt:5 scons \
shared-mime-info shebangfix sqlite ssl
SHEBANG_FILES= examples/python/camotics_python_example.py
USE_GL= gl glu
USE_GNOME= cairo
USE_QT= assistant buildtools core dbus gui linguisttools network opengl \
websockets widgets
QT5_INC= -I${LOCALBASE}/include/qt5 \
-I${LOCALBASE}/include/qt5/QtCore \
-I${LOCALBASE}/include/qt5/QtGui \
-I${LOCALBASE}/include/qt5/QtNetwork \
-I${LOCALBASE}/include/qt5/QtOpenGL \
-I${LOCALBASE}/include/qt5/QtWidgets
QT5_LIBS_= ${qt-core_LIB} \
${qt-gui_LIB} \
${qt-network_LIB} \
${qt-opengl_LIB} \
${qt-websockets_LIB} \
${qt-widgets_LIB}
QT5_LIBS= -L${QT_LIBDIR} ${QT5_LIBS_:C/^lib/-l/:C/.so//}
OPTIONS_DEFINE= EXAMPLES
PORTEXAMPLES= *
MAKE_ARGS+= cc="${CC}" \
cxx="${CXX}" \
cxxstd="c++14" \
ccflags="${CCFLAGS}" \
cxxflags="${CXXFLAGS} ${QT5_INC}" \
linkflags="${LDFLAGS} ${QT5_LIBS}" \
libpath="${LIBPATH}" \
sharedlib=1 \
install_prefix="${STAGEDIR}${PREFIX}" \
compiler="${CHOSEN_COMPILER_TYPE:C/gcc/gnu/}" \
disable_local="zlib bzip2 lz4 sqlite3 expat libevent re2 libyaml"
MAKE_ENV+= QT5DIR="${LOCALBASE}" \
CBANG_HOME="${WRKDIR}/cbang"
.if defined(WITH_DEBUG)
MAKE_ARGS+= debug=1 strict=0
.endif
TEST_WRKSRC= ${WRKSRC}/tests
DO_MAKE_TEST= ${SETENV} ${TEST_ENV} ${MAKE_CMD} ${MAKE_FLAGS} ${MAKEFILE} ${TEST_ARGS}
pre-configure:
${CP} -R ${LOCALBASE}/share/cbang ${WRKDIR}
${RLN} ${LOCALBASE}/include ${WRKDIR}/cbang/
${REINPLACE_CMD} -e "/python_version/s|'3'|'${PYTHON_VER}'|" \
${WRKSRC}/SConstruct
${REINPLACE_CMD} -e 's|/usr/bin/env python2| ${PYTHON_CMD}|' \
${TEST_WRKSRC}/testHarness
post-install:
${MKDIR} ${STAGEDIR}${PREFIX}/share/metainfo \
${STAGEDIR}${PREFIX}/share/mime/packages
${INSTALL_DATA} ${WRKSRC}/CAMotics.desktop \
${STAGEDIR}${PREFIX}/share/applications/
${INSTALL_DATA} ${WRKSRC}/CAMotics.appdata.xml \
${STAGEDIR}${PREFIX}/share/metainfo
${INSTALL_DATA} ${WRKSRC}/mime.xml \
${STAGEDIR}${PREFIX}/share/mime/packages/${PORTNAME}.xml
${INSTALL_DATA} ${WRKSRC}/images/*.png \
${STAGEDIR}${PREFIX}/share/pixmaps
post-install-EXAMPLES-on:
${MKDIR} ${STAGEDIR}${EXAMPLESDIR}
cd ${WRKSRC}/examples && ${COPYTREE_SHARE} . ${STAGEDIR}${EXAMPLESDIR}
#do-test:
# (cd ${TEST_WRKSRC} && ./testHarness)
.include <bsd.port.mk>
+3
View File
@@ -0,0 +1,3 @@
TIMESTAMP = 1652128288
SHA256 (CauldronDevelopmentLLC-CAMotics-v1.2.2-rc1_GH0.tar.gz) = c928d58c31b42eb970ed4022fac86c73a082c67b336eb4a83cd1100d4dee2e60
SIZE (CauldronDevelopmentLLC-CAMotics-v1.2.2-rc1_GH0.tar.gz) = 12570228
@@ -0,0 +1,26 @@
--- config/qt5/__init__.py.orig 2021-07-27 23:51:08 UTC
+++ config/qt5/__init__.py
@@ -710,6 +710,13 @@ def generate(env):
Action = SCons.Action.Action
Builder = SCons.Builder.Builder
+ version = tuple(map(int, SCons.__version__.split('.')))
+
+ QT5_MOCDEFINES = \
+ '${_defines(QT5_MOCDEFPREFIX, CPPDEFINES, QT5_MOCDEFSUFFIX, __env__'
+ if (4, 2, 0) <= version: QT5_MOCDEFINES += ', TARGET, SOURCE'
+ QT5_MOCDEFINES += ')}'
+
env['QT5DIR'] = _detect(env)
env.Replace(
QT5DIR = _detect(env),
@@ -762,8 +769,7 @@ def generate(env):
QT5_QRCCXXPREFIX = 'qrc_',
QT5_MOCDEFPREFIX = '-D',
QT5_MOCDEFSUFFIX = '',
- QT5_MOCDEFINES = '${_defines(QT5_MOCDEFPREFIX, CPPDEFINES, '
- 'QT5_MOCDEFSUFFIX, __env__)}',
+ QT5_MOCDEFINES = QT5_MOCDEFINES,
QT5_MOCCPPPATH = [],
QT5_MOCINCFLAGS = '$( ${_concat(QT5_MOCINCPREFIX, QT5_MOCCPPPATH, '
'INCSUFFIX, __env__, RDirs)} $)',
+8
View File
@@ -0,0 +1,8 @@
CAMotics is an Open-Source software which can simulate 3-axis NC machining. It
is a fast, flexible and user friendly simulation software for the DIY and
Open-Source community.
WWW: http://camotics.org/
WWW: https://github.com/CauldronDevelopmentLLC/CAMotics
+10
View File
@@ -0,0 +1,10 @@
bin/camotics
bin/camsim
bin/gcodetool
bin/planner
bin/tplang
share/applications/CAMotics.desktop
share/metainfo/CAMotics.appdata.xml
share/mime/packages/CAMotics.xml
share/pixmaps/camotics-logo.png
share/pixmaps/camotics.png