aboutsummaryrefslogtreecommitdiff
path: root/math/curv
diff options
context:
space:
mode:
authorYuri Victorovich <yuri@FreeBSD.org>2019-05-15 05:22:36 +0000
committerYuri Victorovich <yuri@FreeBSD.org>2019-05-15 05:22:36 +0000
commit2ca02e530312970742e40626bacae8c71c2b86ec (patch)
tree99d2b86e8bf4b4a5dd969b742350f662d4c8587a /math/curv
parent2c32727d6161db6bd62ab59547dfaa965542c6cd (diff)
downloadports-2ca02e530312970742e40626bacae8c71c2b86ec.tar.gz
ports-2ca02e530312970742e40626bacae8c71c2b86ec.zip
Re-add: math/curv
Notes
Notes: svn path=/head/; revision=501686
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.txt57
-rw-r--r--math/curv/pkg-descr24
4 files changed, 128 insertions, 0 deletions
diff --git a/math/curv/Makefile b/math/curv/Makefile
new file mode 100644
index 000000000000..e670b70a833c
--- /dev/null
+++ b/math/curv/Makefile
@@ -0,0 +1,40 @@
+# $FreeBSD$
+
+PORTNAME= curv
+DISTVERSION= 0.4-88
+DISTVERSIONSUFFIX= -g8a4ca615
+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..974da22577d2
--- /dev/null
+++ b/math/curv/distinfo
@@ -0,0 +1,7 @@
+TIMESTAMP = 1557897316
+SHA256 (curv3d-curv-0.4-88-g8a4ca615_GH0.tar.gz) = 6245f896bc6d02335fc37d7f291f22345831167b12566d3ac53e0752cd4bea3d
+SIZE (curv3d-curv-0.4-88-g8a4ca615_GH0.tar.gz) = 14902642
+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..c4f2b1083103
--- /dev/null
+++ b/math/curv/files/patch-CMakeLists.txt
@@ -0,0 +1,57 @@
+--- CMakeLists.txt.orig 2019-05-11 14:42:40 UTC
++++ CMakeLists.txt
+@@ -10,18 +10,14 @@ execute_process(COMMAND sh -c "${CMAKE_S
+
+ list(APPEND CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake")
+
+-set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -g")
++#set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -g")
+
+ # 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/glm
+ extern/glad)
+
+ if (APPLE)
+@@ -30,19 +26,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 +76,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 +111,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/