aboutsummaryrefslogtreecommitdiff
path: root/math/curv
diff options
context:
space:
mode:
authorYuri Victorovich <yuri@FreeBSD.org>2019-05-11 17:32:54 +0000
committerYuri Victorovich <yuri@FreeBSD.org>2019-05-11 17:32:54 +0000
commitc2ec7815776d6d072f999543fbd9fdeba112b78b (patch)
treee129469f8ddedd75fabab48f177d4f3608a62bfe /math/curv
parent90aa58df5c0874bcff3511a0af693756ce641963 (diff)
downloadports-c2ec7815776d6d072f999543fbd9fdeba112b78b.tar.gz
ports-c2ec7815776d6d072f999543fbd9fdeba112b78b.zip
Notes
Diffstat (limited to 'math/curv')
-rw-r--r--math/curv/Makefile40
-rw-r--r--math/curv/distinfo7
-rw-r--r--math/curv/files/patch-CMakeLists.txt51
-rw-r--r--math/curv/pkg-descr24
4 files changed, 122 insertions, 0 deletions
diff --git a/math/curv/Makefile b/math/curv/Makefile
new file mode 100644
index 000000000000..9eb3025387be
--- /dev/null
+++ b/math/curv/Makefile
@@ -0,0 +1,40 @@
+# $FreeBSD$
+
+PORTNAME= curv
+DISTVERSION= 0.4-87
+DISTVERSIONSUFFIX= -g947ca71e
+CATEGORIES= math lang graphics
+
+MAINTAINER= yuri@FreeBSD.org
+COMMENT= Language for making art using mathematics
+
+LICENSE= APACHE20
+LICENSE_FILE= ${WRKSRC}/LICENSE
+
+BUILD_DEPENDS= glm>0:math/glm \
+ replxx>0:devel/replxx
+LIB_DEPENDS= libboost_system.so:devel/boost-libs \
+ libdouble-conversion.so:devel/double-conversion \
+ libglfw.so:graphics/glfw \
+ libHalf.so:graphics/ilmbase \
+ libopenvdb.so:misc/openvdb \
+ libtbb.so:devel/tbb
+
+USES= cmake compiler:c++14-lang gl localbase:ldflags
+USE_GITHUB= yes
+GH_ACCOUNT= curv3d
+GH_TUPLE= ocornut:imgui:e0cab5664adf02c030f9cf2a05d2c334638a85f8:imgui/extern/imgui \
+ Tessil:ordered-map:3c1415148f38409e4e68c13c55117107ece0187d:om/extern/ordered-map
+USE_GL= gl
+USE_XORG= x11
+
+PLIST_FILES= bin/curv \
+ lib/curv/lib/blend.curv \
+ lib/curv/lib/web_colour.curv \
+ lib/curv/std.curv \
+ share/gtksourceview-3.0/language-specs/curv.lang
+
+post-install:
+ @${RM} ${STAGEDIR}${PREFIX}/lib/curv/lib/README
+
+.include <bsd.port.mk>
diff --git a/math/curv/distinfo b/math/curv/distinfo
new file mode 100644
index 000000000000..9dc58f3aff7b
--- /dev/null
+++ b/math/curv/distinfo
@@ -0,0 +1,7 @@
+TIMESTAMP = 1557595165
+SHA256 (curv3d-curv-0.4-87-g947ca71e_GH0.tar.gz) = 8c19ff84bfedfaf7be31489b9b3a7468246be0f117dc26424f3db020d154986c
+SIZE (curv3d-curv-0.4-87-g947ca71e_GH0.tar.gz) = 14899872
+SHA256 (ocornut-imgui-e0cab5664adf02c030f9cf2a05d2c334638a85f8_GH0.tar.gz) = 934d582eda967f4a6d19c9cc75ee25d73ead36294c552a5cd59c2194042b0741
+SIZE (ocornut-imgui-e0cab5664adf02c030f9cf2a05d2c334638a85f8_GH0.tar.gz) = 1078917
+SHA256 (Tessil-ordered-map-3c1415148f38409e4e68c13c55117107ece0187d_GH0.tar.gz) = a9b17d185641ddba06b5a3aed0df47603674fc021aea192ca7f831273a88a196
+SIZE (Tessil-ordered-map-3c1415148f38409e4e68c13c55117107ece0187d_GH0.tar.gz) = 60180
diff --git a/math/curv/files/patch-CMakeLists.txt b/math/curv/files/patch-CMakeLists.txt
new file mode 100644
index 000000000000..d2f932372de4
--- /dev/null
+++ b/math/curv/files/patch-CMakeLists.txt
@@ -0,0 +1,51 @@
+--- CMakeLists.txt.orig 2019-05-11 14:42:40 UTC
++++ CMakeLists.txt
+@@ -15,12 +15,10 @@ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}
+ # Global include directories, visible in subdirectories.
+ include_directories(.
+ extern/googletest/googletest/include
+- extern/double-conversion
+ extern/ordered-map/include
+- extern/openvdb
+ extern/blosc
+ extern/stb
+- extern/glfw/include
++ extern/gglfwglfwlfw/include
+ extern/glm
+ extern/glad)
+
+@@ -30,19 +28,6 @@ if (APPLE)
+ link_directories(/usr/local/lib)
+ endif (APPLE)
+
+-# REPLxx library
+-file(GLOB ReplxxSrc "extern/replxx/src/*.cxx" "extern/replxx/src/*.cpp")
+-add_library(replxx ${ReplxxSrc})
+-target_include_directories(replxx
+- PUBLIC extern/replxx/include
+- PRIVATE extern/replxx/src)
+-set_property(TARGET replxx PROPERTY CXX_STANDARD 14)
+-
+-# double-conversion library
+-file(GLOB DoubleConversionSrc "extern/double-conversion/double-conversion/*.cc")
+-add_library(double-conversion ${DoubleConversionSrc})
+-set_property(TARGET double-conversion PROPERTY CXX_STANDARD 14)
+-
+ # glad library, an OpenGL loader
+ add_library(glad
+ extern/glad/glad/glad.c)
+@@ -93,7 +78,7 @@ target_link_libraries(libcurv_geom PUBLI
+
+ file(GLOB Src "curv/*.c" "curv/*.cc")
+ add_executable(curv ${Src})
+-target_link_libraries(curv PUBLIC libcurv_geom libcurv imgui glfw glad ${LibOpenGL} replxx double-conversion boost_iostreams boost_filesystem boost_system openvdb_static Half tbb dl pthread)
++target_link_libraries(curv PUBLIC libcurv_geom libcurv imgui glfw glad ${LibOpenGL} replxx double-conversion boost_iostreams boost_filesystem boost_system openvdb Half tbb dl pthread)
+
+ file(GLOB CurvcSrc "curvc/*.cc")
+ add_executable(curvc EXCLUDE_FROM_ALL ${CurvcSrc})
+@@ -128,5 +113,3 @@ if (NOT TARGET uninstall)
+ endif()
+
+ add_subdirectory(extern/googletest/googletest EXCLUDE_FROM_ALL)
+-add_subdirectory(extern/openvdb/openvdb EXCLUDE_FROM_ALL)
+-add_subdirectory(extern/glfw EXCLUDE_FROM_ALL)
diff --git a/math/curv/pkg-descr b/math/curv/pkg-descr
new file mode 100644
index 000000000000..56139816c225
--- /dev/null
+++ b/math/curv/pkg-descr
@@ -0,0 +1,24 @@
+Curv is a programming language for creating art using mathematics. It's a 2D and
+3D geometric modelling tool that supports full colour, animation and 3D
+printing.
+
+Features:
+* Curv is a simple, powerful, dynamically typed, pure functional programming
+ language.
+* Curv is easy to use for beginners. It has a standard library of predefined
+ geometric shapes, plus operators for transforming and combining shapes. These
+ can be plugged together like Lego to make 2D and 3D models.
+* Coloured shapes are represented using Function Representation (F-Rep). They
+ can be infinitely detailed, infinitely large, and any shape or colour pattern
+ that can be described using mathematics can be represented exactly.
+* Curv exposes the full power of F-Rep programming to experts. The standard
+ geometry library is written entirely in Curv. Many of the demos seen on
+ shadertoy.com can be reproduced in Curv, using shorter, simpler programs.
+ Experts can package techniques used on shadertoy as high level operations for
+ use by beginners.
+* Curv can export meshes to STL, OBJ and X3D files for 3D printing. The X3D
+ format supports full colour 3D printing (on Shapeways.com, at least). These
+ meshes are defect free: watertight, manifold, with no self intersections,
+ degenerate triangles, or flipped triangles.
+
+WWW: https://github.com/curv3d/curv/