diff options
| author | Stefano Sinigardi <stesinigardi@hotmail.com> | 2019-05-24 23:42:47 +0200 |
|---|---|---|
| committer | Robert Schumacher <roschuma@microsoft.com> | 2019-05-24 14:42:47 -0700 |
| commit | ff77285e6beed8254d09c801444f0a8529606802 (patch) | |
| tree | 810c481daf27af53741469d36444f5e78ba223fb | |
| parent | 09e6b4dd9dc9941204fc7537ff0146ba82946f77 (diff) | |
| download | vcpkg-ff77285e6beed8254d09c801444f0a8529606802.tar.gz vcpkg-ff77285e6beed8254d09c801444f0a8529606802.zip | |
[mathgl] draft port (#6463)
* [mathgl] draft port
* [mathgl] fix unmatching symbols
| -rw-r--r-- | ports/mathgl/CONTROL | 48 | ||||
| -rw-r--r-- | ports/mathgl/portfile.cmake | 121 | ||||
| -rw-r--r-- | ports/mathgl/type_fix.patch | 62 |
3 files changed, 231 insertions, 0 deletions
diff --git a/ports/mathgl/CONTROL b/ports/mathgl/CONTROL new file mode 100644 index 000000000..211c435e8 --- /dev/null +++ b/ports/mathgl/CONTROL @@ -0,0 +1,48 @@ +Source: mathgl +Version: 2.4.3 +Description: MathGL is a free library of fast C++ routines for the plotting of the data varied in one or more dimensions +Default-Features: opengl, jpeg, png, zlib + +Feature: hdf5 +Build-Depends: hdf5 +Description: hdf5 module + +Feature: fltk +Build-Depends: fltk +Description: fltk module + +Feature: gif +Build-Depends: giflib +Description: gif module + +Feature: png +Build-Depends: libpng +Description: png module + +Feature: zlib +Build-Depends: zlib +Description: zlib module + +Feature: jpeg +Build-Depends: libjpeg-turbo +Description: jpeg module + +Feature: gsl +Build-Depends: gsl +Description: gsl module + +Feature: opengl +Build-Depends: opengl +Description: opengl module + +Feature: glut +Build-Depends: freeglut +Description: glut module + +Feature: wx +Build-Depends: wxwidgets +Description: wx module + +Feature: qt5 +Build-Depends: qt5 +Description: qt5 module diff --git a/ports/mathgl/portfile.cmake b/ports/mathgl/portfile.cmake new file mode 100644 index 000000000..dd44353e0 --- /dev/null +++ b/ports/mathgl/portfile.cmake @@ -0,0 +1,121 @@ +include(vcpkg_common_functions) + +set(MATHGL_VERSION "2.4.3") +vcpkg_download_distfile(ARCHIVE + URLS "https://downloads.sourceforge.net/project/mathgl/mathgl/mathgl%20${MATHGL_VERSION}/mathgl-${MATHGL_VERSION}.tar.gz" + FILENAME "mathgl-${MATHGL_VERSION}.tar.gz" + SHA512 e47fc8171ce80c8b33a8f03d9375bc036455dae539b47cf4ee922f8fa36f5afcf8b3f0666997764e453eb698c0e8c03da36dd0ac2bf71c158e95309b247d27de +) + +vcpkg_extract_source_archive_ex( + OUT_SOURCE_PATH SOURCE_PATH + ARCHIVE ${ARCHIVE} + REF ${MATHGL_VERSION} + PATCHES + type_fix.patch +) + +set(enable-hdf5 OFF) +if("hdf5" IN_LIST FEATURES) + set(enable-hdf5 ON) +endif() + +set(enable-fltk OFF) +if("fltk" IN_LIST FEATURES) + set(enable-fltk ON) +endif() + +set(enable-gif OFF) +if("gif" IN_LIST FEATURES) + set(enable-gif ON) +endif() + +set(enable-png OFF) +if("png" IN_LIST FEATURES) + set(enable-png ON) +endif() + +set(enable-zlib OFF) +if("zlib" IN_LIST FEATURES) + set(enable-zlib ON) +endif() + +set(enable-jpeg OFF) +if("jpeg" IN_LIST FEATURES) + set(enable-jpeg ON) +endif() + +set(enable-gsl OFF) +if("gsl" IN_LIST FEATURES) + set(enable-gsl ON) +endif() + +set(enable-opengl OFF) +if("opengl" IN_LIST FEATURES) + set(enable-opengl ON) +endif() + +set(enable-glut OFF) +if("glut" IN_LIST FEATURES) + set(enable-glut ON) +endif() + +set(enable-wx OFF) +if("wx" IN_LIST FEATURES) + set(enable-wx ON) +endif() + +set(enable-qt5 OFF) +if("qt5" IN_LIST FEATURES) + set(enable-qt5 ON) +endif() + +vcpkg_configure_cmake( + SOURCE_PATH ${SOURCE_PATH} + PREFER_NINJA + OPTIONS + -Denable-hdf5=${enable-hdf5} + -Denable-fltk=${enable-fltk} + -Denable-gif=${enable-gif} + -Denable-png=${enable-png} + -Denable-zlib=${enable-zlib} + -Denable-jpeg=${enable-jpeg} + -Denable-gsl=${enable-gsl} + -Denable-opengl=${enable-opengl} + -Denable-glut=${enable-glut} + -Denable-wx=${enable-wx} + -Denable-qt5=${enable-qt5} +) + +vcpkg_install_cmake() +file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include) + +if(NOT VCPKG_CMAKE_SYSTEM_NAME OR VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore") + vcpkg_fixup_cmake_targets(CONFIG_PATH cmake TARGET_PATH share/mathgl) + file(REMOVE ${CURRENT_PACKAGES_DIR}/mathgl2-config.cmake) + file(REMOVE ${CURRENT_PACKAGES_DIR}/debug/mathgl2-config.cmake) +else() + vcpkg_fixup_cmake_targets(CONFIG_PATH lib/cmake/mathgl TARGET_PATH share/mathgl) +endif() + +file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/share) + +#somehow the native CMAKE_EXECUTABLE_SUFFIX does not work, so here we emulate it +if(CMAKE_HOST_WIN32) + set(EXECUTABLE_SUFFIX ".exe") +else() + set(EXECUTABLE_SUFFIX "") +endif() + +file(REMOVE ${CURRENT_PACKAGES_DIR}/debug/bin/mglconv${EXECUTABLE_SUFFIX}) +file(REMOVE ${CURRENT_PACKAGES_DIR}/debug/bin/mgltask${EXECUTABLE_SUFFIX}) +file(MAKE_DIRECTORY ${CURRENT_PACKAGES_DIR}/tools/mathgl/) +file(RENAME ${CURRENT_PACKAGES_DIR}/bin/mglconv${EXECUTABLE_SUFFIX} ${CURRENT_PACKAGES_DIR}/tools/mathgl/mglconv${EXECUTABLE_SUFFIX}) +file(RENAME ${CURRENT_PACKAGES_DIR}/bin/mgltask${EXECUTABLE_SUFFIX} ${CURRENT_PACKAGES_DIR}/tools/mathgl/mgltask${EXECUTABLE_SUFFIX}) +vcpkg_copy_tool_dependencies(${CURRENT_PACKAGES_DIR}/tools/mathgl) + +if(VCPKG_LIBRARY_LINKAGE STREQUAL static) + file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/bin ${CURRENT_PACKAGES_DIR}/debug/bin) +endif() + +file(INSTALL ${SOURCE_PATH}/COPYING DESTINATION ${CURRENT_PACKAGES_DIR}/share/mathgl RENAME copyright) diff --git a/ports/mathgl/type_fix.patch b/ports/mathgl/type_fix.patch new file mode 100644 index 000000000..288f6b1a0 --- /dev/null +++ b/ports/mathgl/type_fix.patch @@ -0,0 +1,62 @@ +diff --git a/src/complex.cpp b/src/complex.cpp +index 2fcc14c..fb3498f 100755 +--- a/src/complex.cpp ++++ b/src/complex.cpp +@@ -863,12 +863,12 @@ void MGL_EXPORT mgl_datac_insert_(uintptr_t *d, const char *dir, int *at, int *n + void MGL_EXPORT mgl_datac_delete_(uintptr_t *d, const char *dir, int *at, int *num, int) + { mgl_datac_delete(_DC_,*dir,*at,*num); } + //----------------------------------------------------------------------------- +-void MGL_EXPORT mgl_datac_set_value(HADT dat, dual v, long i, long j, long k) ++void MGL_EXPORT mgl_datac_set_value(HADT dat, mdual v, long i, long j, long k) + { + if(i>=0 && i<dat->nx && j>=0 && j<dat->ny && k>=0 && k<dat->nz) + dat->a[i+dat->nx*(j+dat->ny*k)]=v; + } +-void MGL_EXPORT mgl_datac_set_value_(uintptr_t *d, dual *v, int *i, int *j, int *k) ++void MGL_EXPORT mgl_datac_set_value_(uintptr_t *d, mdual *v, int *i, int *j, int *k) + { mgl_datac_set_value(_DC_,*v,*i,*j,*k); } + //----------------------------------------------------------------------------- + cmdual MGL_EXPORT mgl_datac_get_value(HCDT dat, long i, long j, long k) +diff --git a/src/complex_io.cpp b/src/complex_io.cpp +index 2fcd40a..49feb5c 100755 +--- a/src/complex_io.cpp ++++ b/src/complex_io.cpp +@@ -343,14 +343,14 @@ void MGL_EXPORT mgl_datac_create(HADT d,long mx,long my,long mz) + void MGL_EXPORT mgl_datac_create_(uintptr_t *d, int *nx,int *ny,int *nz) + { mgl_datac_create(_DC_,*nx,*ny,*nz); } + //----------------------------------------------------------------------------- +-void MGL_EXPORT mgl_datac_link(HADT d, dual *A, long mx,long my,long mz) ++void MGL_EXPORT mgl_datac_link(HADT d, mdual *A, long mx,long my,long mz) + { + if(!A) return; + if(!d->link && d->a) delete [](d->a); + d->nx = mx>0 ? mx:1; d->ny = my>0 ? my:1; d->nz = mz>0 ? mz:1; +- d->link=true; d->a=A; d->NewId(); ++ d->link=true; d->a=(dual*)A; d->NewId(); + } +-void MGL_EXPORT mgl_datac_link_(uintptr_t *d, dual *A, int *nx,int *ny,int *nz) ++void MGL_EXPORT mgl_datac_link_(uintptr_t *d, mdual *A, int *nx,int *ny,int *nz) + { mgl_datac_link(_DC_,A,*nx,*ny,*nz); } + //----------------------------------------------------------------------------- + int MGL_EXPORT mgl_datac_read_dim(HADT d, const char *fname,long mx,long my,long mz) +diff --git a/utils/mgltask.cpp b/utils/mgltask.cpp +index b9bb7da..4566512 100755 +--- a/utils/mgltask.cpp ++++ b/utils/mgltask.cpp +@@ -2,6 +2,7 @@ + #include <string.h> + #include <stdio.h> + #include <stdlib.h> ++#define _USE_MATH_DEFINES + #include <math.h> + #include <time.h> + //=================================================================== +@@ -100,7 +101,7 @@ int main(int argc, char *argv[]) + double x1[10],x2[10],dx[10],x[10]; + int k,i,n=argc-3;//=(argc==4) ? 1:2; + FILE *fm,*fo; +- ++ + // first place zeros + for(i=0;i<10;i++) + { |
