summarylogtreecommitdiffstats
diff options
context:
space:
mode:
authorDylon Edwards2018-04-27 02:03:35 -0700
committerDylon Edwards2018-04-27 02:04:37 -0700
commit3c0f6a4ac0c95dbff4d622e6afa43632dd9a2ff1 (patch)
tree309130f1a499fb86695cf4ec75d2a384236ee53d
parentc42fd52dfa3272bf6e3e2bbf24c76ffa0dd3f035 (diff)
downloadaur-quartet-git.tar.gz
Builds quartet first as a library, then as an executable
-rw-r--r--.SRCINFO8
-rw-r--r--.gitignore3
-rw-r--r--PKGBUILD39
-rw-r--r--make-shared-lib.patch52
-rw-r--r--quartet-git.changelog3
5 files changed, 93 insertions, 12 deletions
diff --git a/.SRCINFO b/.SRCINFO
index 0dcc6ef8b367..c42dd1733eeb 100644
--- a/.SRCINFO
+++ b/.SRCINFO
@@ -1,17 +1,19 @@
pkgbase = quartet-git
pkgdesc = A tetrahedral mesh generator that does isosurface stuffing with an acute tetrahedral tile.
pkgver = r2.a99c049
- pkgrel = 1
+ pkgrel = 3
url = https://github.com/crawforddoran/quartet
changelog = quartet-git.changelog
arch = x86_64
license = ISC
makedepends = git
makedepends = gcc
- provides = quartet-git
- conflicts = quartet-git
+ provides = quartet
+ conflicts = quartet
source = git+https://github.com/crawforddoran/quartet.git
+ source = make-shared-lib.patch
md5sums = SKIP
+ md5sums = 8a34de71824f18b98d1c91c17857e174
pkgname = quartet-git
diff --git a/.gitignore b/.gitignore
index 3b174e9d006d..5cf9a840794e 100644
--- a/.gitignore
+++ b/.gitignore
@@ -5,4 +5,5 @@
!/.SRCINFO
!/.gitignore
!/PKGBUILD
-!/quartet-git.changelog \ No newline at end of file
+!/make-shared-lib.patch
+!/quartet-git.changelog
diff --git a/PKGBUILD b/PKGBUILD
index bd04a111be4e..a68015995621 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -3,7 +3,7 @@
pkgname='quartet-git'
pkgver=r2.a99c049
-pkgrel=2
+pkgrel=3
pkgdesc="A tetrahedral mesh generator that does isosurface stuffing with an acute tetrahedral tile."
arch=('x86_64')
url="https://github.com/crawforddoran/quartet"
@@ -12,22 +12,45 @@ changelog="${pkgname}.changelog"
makedepends=('git' 'gcc')
provides=("${pkgname%-git}")
conflicts=("${pkgname%-git}")
-source=("git+https://github.com/crawforddoran/${pkgname%-git}.git")
-md5sums=('SKIP')
+source=(
+ "git+https://github.com/crawforddoran/${pkgname%-git}.git"
+ "make-shared-lib.patch"
+)
+md5sums=(
+ SKIP
+ '8a34de71824f18b98d1c91c17857e174'
+)
pkgver() {
- cd "${srcdir}/${pkgname%-git}"
+ cd "${pkgname%-git}"
printf "r%s.%s" "$(git rev-list --count HEAD)" "$(git rev-parse --short HEAD)"
}
+prepare() {
+ cd "${pkgname%-git}"
+ git apply "${srcdir}/make-shared-lib.patch"
+}
+
build() {
- cd "$srcdir/${pkgname%-git}"
+ cd "${pkgname%-git}"
make depend
make release
}
package() {
- cd "$srcdir/${pkgname%-git}"
- install -m 755 -DT "quartet_release" "${pkgdir}/usr/bin/quartet"
- install -m 755 -DT "view_tet_release" "${pkgdir}/usr/bin/view_tet"
+ cd "${pkgname%-git}"
+ install -m 644 -D -t "${pkgdir}/usr/lib" libquartet.so
+ install -m 755 -D -t "${pkgdir}/usr/bin" quartet view_tet
+ install -m 644 -D -t "${pkgdir}/usr/include/quartet" \
+ src/geometry_queries.h \
+ src/sdf.h \
+ src/trimesh.h \
+ src/tet_mesh.h \
+ src/feature.h \
+ src/read_obj.h \
+ src/tet_quality.h \
+ src/match_features.h \
+ src/optimize_tet_mesh.h \
+ src/make_signed_distance.h \
+ src/make_tet_mesh.h
}
diff --git a/make-shared-lib.patch b/make-shared-lib.patch
new file mode 100644
index 000000000000..da48247b3599
--- /dev/null
+++ b/make-shared-lib.patch
@@ -0,0 +1,52 @@
+diff --git a/Makefile b/Makefile
+index 52bdd5a..832d4c6 100644
+--- a/Makefile
++++ b/Makefile
+@@ -49,19 +49,21 @@ all: debug
+
+ # how to make the main target (debug mode, the default)
+ $(MAIN_PROGRAM): $(DEBUG_OBJ)
+- $(LINK) $(DEBUG_LINKFLAGS) -o $@ $^ $(LINK_LIBS)
++ $(LINK) $(DEBUG_LINKFLAGS) -shared -o lib$(MAIN_PROGRAM).so $^ $(LINK_LIBS)
++ $(LINK) $(DEBUG_LINKFLAGS) -o $(MAIN_PROGRAM) -L. -l$(MAIN_PROGRAM) $^ $(LINK_LIBS)
+
+ # how to make the main target (release mode)
+ $(MAIN_PROGRAM)_release: $(RELEASE_OBJ)
+- $(LINK) $(RELEASE_LINKFLAGS) -o $@ $^ $(LINK_LIBS)
++ $(LINK) $(RELEASE_LINKFLAGS) -shared -o lib$(MAIN_PROGRAM).so $^ $(LINK_LIBS)
++ $(LINK) $(RELEASE_LINKFLAGS) -o $(MAIN_PROGRAM) -L. -l$(MAIN_PROGRAM) $^ $(LINK_LIBS)
+
+ # how to make the viewer application (debug mode, the default)
+ $(VIEWER_PROGRAM): $(VIEWER_DEBUG_OBJ)
+- $(LINK) $(DEBUG_LINKFLAGS) -o $@ $^ $(LINK_LIBS) $(VIEWER_LIBS)
++ $(LINK) $(DEBUG_LINKFLAGS) -o $(VIEWER_PROGRAM) $^ $(LINK_LIBS) $(VIEWER_LIBS)
+
+ # how to make the viewer application (release mode)
+ $(VIEWER_PROGRAM)_release: $(VIEWER_RELEASE_OBJ)
+- $(LINK) $(RELEASE_LINKFLAGS) -o $@ $^ $(LINK_LIBS) $(VIEWER_LIBS)
++ $(LINK) $(RELEASE_LINKFLAGS) -o $(VIEWER_PROGRAM) $^ $(LINK_LIBS) $(VIEWER_LIBS)
+
+ # how to compile the predicates.cpp source file
+ # This is different because optimization must be disabled
+@@ -88,7 +90,7 @@ obj_debug/%.o:
+ # cleaning up
+ .PHONY: clean
+ clean:
+- -rm -f obj/*.o $(MAIN_PROGRAM) $(VIEWER_PROGRAM) obj_debug/*.o $(MAIN_PROGRAM)_release $(VIEWER_PROGRAM)_release *core
++ -rm -f obj/*.o lib$(MAIN_PROGRAM).so $(MAIN_PROGRAM) $(VIEWER_PROGRAM) obj_debug/*.o *core
+
+ # dependencies are automatically generated
+ .PHONY: depend
+diff --git a/Makefile.defs b/Makefile.defs
+index eb321d8..6b80777 100644
+--- a/Makefile.defs
++++ b/Makefile.defs
+@@ -5,7 +5,7 @@
+
+ # For example, on a Linux PC this will likely work:
+ DEPEND = g++
+-CC = g++ -Wall
++CC = g++ -Wall -fpic
+ RELEASE_FLAGS = -O3 -DNDEBUG -funroll-loops
+ DEBUG_FLAGS = -g
+ LINK = g++
diff --git a/quartet-git.changelog b/quartet-git.changelog
index 059e7e24fce0..329cb55cccc4 100644
--- a/quartet-git.changelog
+++ b/quartet-git.changelog
@@ -1,2 +1,5 @@
+2018-04-27 Dylon Edwards <deltaecho at archlinux dot us>
+ * quartet-git r2.a99c049 Builds quartet first as a library, then as an executable
+
2018-04-26 Dylon Edwards <deltaecho at archlinux dot us>
* quartet-git r2.a99c049