summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYuri Victorovich <yuri@FreeBSD.org>2025-01-11 01:36:48 -0800
committerYuri Victorovich <yuri@FreeBSD.org>2025-01-11 01:36:48 -0800
commit8377f46f68dc4487205ab18cb6a85cd9d5243030 (patch)
tree5cf54e260421a3adca53909fa130e6108388eea7
parentmisc/py-pytorch: Broken on armv7 (diff)
math/curv: Revert "math/curv: Fails to build with boost-1.85+ and GitHub repository is marked archived"
This reverts commit 84e07469e6efa150aca110c60072c98bcf52f00f. Reported by: Thierry Thomas <thierry@freebsd.org>
-rw-r--r--MOVED1
-rw-r--r--math/Makefile1
-rw-r--r--math/curv/Makefile49
-rw-r--r--math/curv/distinfo9
-rw-r--r--math/curv/files/patch-CMakeLists.txt75
-rw-r--r--math/curv/files/patch-cmake_FindILMBase.cmake10
-rw-r--r--math/curv/files/patch-libcurv_viewer_fbo.cc10
-rw-r--r--math/curv/files/patch-libcurv_viewer_mesh.cc10
-rw-r--r--math/curv/files/patch-libcurv_viewer_text.cc10
-rw-r--r--math/curv/files/patch-libcurv_viewer_vertexLayout.cc9
-rw-r--r--math/curv/pkg-descr22
11 files changed, 205 insertions, 1 deletions
diff --git a/MOVED b/MOVED
index 6f92d48a772f..97685b571a8a 100644
--- a/MOVED
+++ b/MOVED
@@ -4001,4 +4001,3 @@ devel/py-pyls-black||2025-01-04|Repository has been archived by the owner. Use t
net-im/telegram-desktop@qt5|net-im/telegram-desktop|2025-01-05|Flavorization has been removed. Qt 5.x has been long deprecated upstream. Please use unflavored net-im/telegram-desktop port based on Qt 6.x instead
net-im/telegram-desktop@qt6|net-im/telegram-desktop|2025-01-05|Flavorization has been removed. Continue to enjoy net-im/telegram-desktop based on Qt 6.x as usual
deskutils/iconbrowser|deskutils/elementary-iconbrowser|2025-01-06|Switch to reverse domain name notation
-math/curv||2025-01-10|Fails to build with boost-1.85+ and GitHub repository is marked archived
diff --git a/math/Makefile b/math/Makefile
index be451a531e4e..42e9839c877f 100644
--- a/math/Makefile
+++ b/math/Makefile
@@ -272,6 +272,7 @@
SUBDIR += csdp
SUBDIR += ctl-sat
SUBDIR += cudd
+ SUBDIR += curv
SUBDIR += cvc5
SUBDIR += dbcsr
SUBDIR += ddfun
diff --git a/math/curv/Makefile b/math/curv/Makefile
new file mode 100644
index 000000000000..451adec458df
--- /dev/null
+++ b/math/curv/Makefile
@@ -0,0 +1,49 @@
+PORTNAME= curv
+DISTVERSION= 0.5
+PORTREVISION= 23
+CATEGORIES= math lang graphics
+
+MAINTAINER= yuri@FreeBSD.org
+COMMENT= Language for making art using mathematics
+WWW= https://github.com/curv3d/curv/
+
+LICENSE= APACHE20
+LICENSE_FILE= ${WRKSRC}/LICENSE
+
+.if !exists(/usr/include/omp.h)
+BROKEN= requires OpenMP support that is missing on this architecture
+.endif
+
+BROKEN= fails to build with boost-1.85+
+BUILD_DEPENDS= glm>0:math/glm
+LIB_DEPENDS= libboost_system.so:devel/boost-libs \
+ libdouble-conversion.so:devel/double-conversion \
+ libglfw.so:graphics/glfw \
+ libImath.so:math/Imath \
+ libtbb.so:devel/onetbb \
+ libopenvdb.so:misc/openvdb
+
+USES= cmake compiler:c++14-lang gl localbase:ldflags xorg
+USE_GL= gl
+USE_XORG= x11
+
+USE_GITHUB= yes
+GH_ACCOUNT= curv3d
+GH_TUPLE= ocornut:imgui:e0cab56:imgui/extern/imgui \
+ Tessil:ordered-map:4051af7:om/extern/ordered-map \
+ AmokHuginnsson:replxx:b901d5f:replxx/extern/replxx
+
+LDFLAGS+= -lopenvdb
+
+PLIST_FILES= bin/curv \
+ lib/curv/lib/blend.curv \
+ lib/curv/lib/builder.curv \
+ lib/curv/lib/noise.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..c5de5a8cfbc6
--- /dev/null
+++ b/math/curv/distinfo
@@ -0,0 +1,9 @@
+TIMESTAMP = 1633246172
+SHA256 (curv3d-curv-0.5_GH0.tar.gz) = 4c6949d62653e1ccb6f18cfa298833bfe9941a6a52d2738859f2f6a8c588632a
+SIZE (curv3d-curv-0.5_GH0.tar.gz) = 18443440
+SHA256 (ocornut-imgui-e0cab56_GH0.tar.gz) = 3a8aa936cf02f39fe49a17aba535b2d3e65a1611725284e62ad4445bbb7d4f2b
+SIZE (ocornut-imgui-e0cab56_GH0.tar.gz) = 1078436
+SHA256 (Tessil-ordered-map-4051af7_GH0.tar.gz) = 13d64a071835d96465343c84441ee42aa1a558f9e759da812049839cf0c7499c
+SIZE (Tessil-ordered-map-4051af7_GH0.tar.gz) = 68413
+SHA256 (AmokHuginnsson-replxx-b901d5f_GH0.tar.gz) = 485480b0c8da9971ef186f021123c19a77c44e565f6c578d6156d5af632d45e0
+SIZE (AmokHuginnsson-replxx-b901d5f_GH0.tar.gz) = 85903
diff --git a/math/curv/files/patch-CMakeLists.txt b/math/curv/files/patch-CMakeLists.txt
new file mode 100644
index 000000000000..926827f3a431
--- /dev/null
+++ b/math/curv/files/patch-CMakeLists.txt
@@ -0,0 +1,75 @@
+--- CMakeLists.txt.orig 2021-09-29 21:29:01 UTC
++++ CMakeLists.txt
+@@ -10,23 +10,23 @@ execute_process(COMMAND sh -c "${CMAKE_SOURCE_DIR}/cma
+
+ 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")
+
+ # Configure global include directories, visible in subdirectories.
+ include_directories(.
+- extern/double-conversion
++ #extern/double-conversion
+ extern/ordered-map/include
+ extern/blosc
+ extern/stb
+- extern/glfw/include
+- extern/glm
++ #extern/glfw/include
++ #extern/glm
+ extern/glad)
+ if (MSYS)
+ # On MSYS we use MinGW packages for OpenVDB and GoogleTest
+ else ()
+ include_directories(
+ extern/googletest/googletest/include
+- extern/openvdb/openvdb)
++ )
+ endif ()
+
+ if (APPLE)
+@@ -45,6 +45,7 @@ endif (APPLE)
+ # Libraries
+ # ===============================================
+
++# REPLxx used to be unbundled, but due to the incompatibilities (see Bug#241205) it was bundled again
+ # REPLxx library
+ file(GLOB ReplxxSrc "extern/replxx/src/*.cxx" "extern/replxx/src/*.cpp")
+ add_library(replxx ${ReplxxSrc})
+@@ -55,9 +56,9 @@ set_property(TARGET replxx PROPERTY CXX_STANDARD 17)
+ target_compile_definitions(replxx PRIVATE REPLXX_STATIC=1)
+
+ # 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 17)
++#file(GLOB DoubleConversionSrc "extern/double-conversion/double-conversion/*.cc")
++#add_library(double-conversion ${DoubleConversionSrc})
++#set_property(TARGET double-conversion PROPERTY CXX_STANDARD 17)
+
+ # glad library, an OpenGL loader
+ add_library(glad
+@@ -100,7 +101,7 @@ if (MSYS)
+ set( LibOpenVDB "openvdb" )
+ set( LibHalf "Half" )
+ else ()
+- set( LibOpenVDB "openvdb_static" )
++ #set( LibOpenVDB "openvdb_static" )
+ set( LibHalf "" )
+ endif ()
+
+@@ -194,9 +195,9 @@ if (NOT DEFINED MSYS)
+ add_library(dummy cmake/dummy.cc)
+ add_library(Blosc::blosc ALIAS dummy)
+ add_library(TBB::tbb ALIAS dummy)
+- add_subdirectory(extern/openvdb/openvdb/openvdb EXCLUDE_FROM_ALL)
+- set_property(TARGET openvdb_static PROPERTY CXX_STANDARD 14)
+- add_subdirectory(extern/googletest/googletest EXCLUDE_FROM_ALL)
++ #add_subdirectory(extern/openvdb/openvdb/openvdb EXCLUDE_FROM_ALL)
++ #set_property(TARGET openvdb_static PROPERTY CXX_STANDARD 14)
++ #add_subdirectory(extern/googletest/googletest EXCLUDE_FROM_ALL)
+ endif ()
+
+-add_subdirectory(extern/glfw EXCLUDE_FROM_ALL)
++#add_subdirectory(extern/glfw EXCLUDE_FROM_ALL)
diff --git a/math/curv/files/patch-cmake_FindILMBase.cmake b/math/curv/files/patch-cmake_FindILMBase.cmake
new file mode 100644
index 000000000000..df960f135ab6
--- /dev/null
+++ b/math/curv/files/patch-cmake_FindILMBase.cmake
@@ -0,0 +1,10 @@
+--- cmake/FindILMBase.cmake.orig 2019-12-08 04:12:07 UTC
++++ cmake/FindILMBase.cmake
+@@ -6,6 +6,6 @@
+
+ SET( ILMBASE_FOUND TRUE )
+ SET( ILMBASE_INCLUDE_DIR "" )
+-SET( Ilmbase_HALF_LIBRARY -lHalf )
++SET( Ilmbase_HALF_LIBRARY -lImath )
+ SET( Ilmbase_IEX_LIBRARY -lIex )
+ SET( Ilmbase_ILMTHREAD_LIBRARY -lIlmThread )
diff --git a/math/curv/files/patch-libcurv_viewer_fbo.cc b/math/curv/files/patch-libcurv_viewer_fbo.cc
new file mode 100644
index 000000000000..b29439332695
--- /dev/null
+++ b/math/curv/files/patch-libcurv_viewer_fbo.cc
@@ -0,0 +1,10 @@
+--- libcurv/viewer/fbo.cc.orig 2019-10-22 18:20:49 UTC
++++ libcurv/viewer/fbo.cc
+@@ -25,6 +25,7 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH D
+
+ #include "fbo.h"
+ #include <iostream>
++#include <sys/types.h>
+
+ Fbo::Fbo():m_id(0), m_old_fbo_id(0), m_texture(0), m_depth_buffer(0), m_width(0), m_height(0), m_allocated(false), m_binded(false) {
+ }
diff --git a/math/curv/files/patch-libcurv_viewer_mesh.cc b/math/curv/files/patch-libcurv_viewer_mesh.cc
new file mode 100644
index 000000000000..8d0d213e8461
--- /dev/null
+++ b/math/curv/files/patch-libcurv_viewer_mesh.cc
@@ -0,0 +1,10 @@
+--- libcurv/viewer/mesh.cc.orig 2019-10-22 18:21:49 UTC
++++ libcurv/viewer/mesh.cc
+@@ -2,6 +2,7 @@
+
+ #include <iostream>
+ #include <fstream>
++#include <sys/types.h>
+
+ //#include "fs.h"
+ #include "geom.h"
diff --git a/math/curv/files/patch-libcurv_viewer_text.cc b/math/curv/files/patch-libcurv_viewer_text.cc
new file mode 100644
index 000000000000..60b01cdb0b05
--- /dev/null
+++ b/math/curv/files/patch-libcurv_viewer_text.cc
@@ -0,0 +1,10 @@
+--- libcurv/viewer/text.cc.orig 2019-10-22 18:22:58 UTC
++++ libcurv/viewer/text.cc
+@@ -1,6 +1,7 @@
+ #include "text.h"
+
+ #include <algorithm>
++#include <sys/types.h>
+
+ std::string getLower(const std::string& _string) {
+ std::string std = _string;
diff --git a/math/curv/files/patch-libcurv_viewer_vertexLayout.cc b/math/curv/files/patch-libcurv_viewer_vertexLayout.cc
new file mode 100644
index 000000000000..e28ecafd60c9
--- /dev/null
+++ b/math/curv/files/patch-libcurv_viewer_vertexLayout.cc
@@ -0,0 +1,9 @@
+--- libcurv/viewer/vertexLayout.cc.orig 2019-10-22 18:23:57 UTC
++++ libcurv/viewer/vertexLayout.cc
+@@ -1,5 +1,6 @@
+ #include "vertexLayout.h"
+ #include "text.h"
++#include <sys/types.h>
+
+ std::map<GLint, GLuint> VertexLayout::s_enabledAttribs = std::map<GLint, GLuint>();
+
diff --git a/math/curv/pkg-descr b/math/curv/pkg-descr
new file mode 100644
index 000000000000..f002475d1f9d
--- /dev/null
+++ b/math/curv/pkg-descr
@@ -0,0 +1,22 @@
+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.