diff --git a/.gitignore b/.gitignore index 3fc3d09..0160936 100644 --- a/.gitignore +++ b/.gitignore @@ -4,3 +4,5 @@ *.dll *.o *.so +cwrapper.jl +cwrapper.cpp diff --git a/deps/build.jl b/deps/build.jl index d49ad6b..ee6e109 100644 --- a/deps/build.jl +++ b/deps/build.jl @@ -1,13 +1,16 @@ +if is_windows() + using WinRPM +end + function find_gpp() if is_windows() #TODO, is this really the hardcoded way to get the WinRPM path to g++ ? gpp = Pkg.dir("WinRPM","deps","usr","x86_64-w64-mingw32","sys-root","mingw","bin","g++") if !isfile(gpp*".exe") info("g++ not found. installing gcc-c++ using WinRPM") - @eval using WinRPM - WinRPM.install("gcc-c++"; yes = true) - WinRPM.install("gcc"; yes = true) - WinRPM.install("headers"; yes = true) + WinRPM.install("gcc-c++", yes = true) + WinRPM.install("gcc", yes = true) + WinRPM.install("headers", yes = true) end RPMbindir = Pkg.dir("WinRPM","deps","usr","x86_64-w64-mingw32","sys-root","mingw","bin") incdir = Pkg.dir("WinRPM","deps","usr","x86_64-w64-mingw32","sys-root","mingw","include") diff --git a/deps/cwrapper.cpp b/deps/cwrapper.cpp deleted file mode 100644 index c5fcade..0000000 --- a/deps/cwrapper.cpp +++ /dev/null @@ -1,119 +0,0 @@ -#include "earcut/earcut.hpp" -template using Polygon = std::vector>; -struct Arrayui32{ - uint32_t* data; - int length; -}; - -using Pointf64 = std::pair; -using Polygonf64 = Polygon; - -extern "C" { - Arrayui32 u32_triangulate_f64(Pointf64** polygon, uint32_t* lengths, uint32_t len) { - Polygonf64 v_polygon(len); - for(int i = 0; i < len; i++){ - int len2 = lengths[i]; - std::vector v_line(len2); - for(int j = 0; j < len2; j++){ - v_line[j] = polygon[i][j]; - } - v_polygon[i] = v_line; - } - std::vector indices = mapbox::earcut(v_polygon); - uint32_t *result; - int n = indices.size(); - result = new uint32_t[n]; - for(int i = 0; i < n; i++){ - result[i] = indices[i]; - } - struct Arrayui32 result_array; - result_array.data = result; - result_array.length = n / 3; //these are triangles in real life - return result_array; - } -} - -using Pointf32 = std::pair; -using Polygonf32 = Polygon; - -extern "C" { - Arrayui32 u32_triangulate_f32(Pointf32** polygon, uint32_t* lengths, uint32_t len) { - Polygonf32 v_polygon(len); - for(int i = 0; i < len; i++){ - int len2 = lengths[i]; - std::vector v_line(len2); - for(int j = 0; j < len2; j++){ - v_line[j] = polygon[i][j]; - } - v_polygon[i] = v_line; - } - std::vector indices = mapbox::earcut(v_polygon); - uint32_t *result; - int n = indices.size(); - result = new uint32_t[n]; - for(int i = 0; i < n; i++){ - result[i] = indices[i]; - } - struct Arrayui32 result_array; - result_array.data = result; - result_array.length = n / 3; //these are triangles in real life - return result_array; - } -} - -using Pointi64 = std::pair; -using Polygoni64 = Polygon; - -extern "C" { - Arrayui32 u32_triangulate_i64(Pointi64** polygon, uint32_t* lengths, uint32_t len) { - Polygoni64 v_polygon(len); - for(int i = 0; i < len; i++){ - int len2 = lengths[i]; - std::vector v_line(len2); - for(int j = 0; j < len2; j++){ - v_line[j] = polygon[i][j]; - } - v_polygon[i] = v_line; - } - std::vector indices = mapbox::earcut(v_polygon); - uint32_t *result; - int n = indices.size(); - result = new uint32_t[n]; - for(int i = 0; i < n; i++){ - result[i] = indices[i]; - } - struct Arrayui32 result_array; - result_array.data = result; - result_array.length = n / 3; //these are triangles in real life - return result_array; - } -} - -using Pointi32 = std::pair; -using Polygoni32 = Polygon; - -extern "C" { - Arrayui32 u32_triangulate_i32(Pointi32** polygon, uint32_t* lengths, uint32_t len) { - Polygoni32 v_polygon(len); - for(int i = 0; i < len; i++){ - int len2 = lengths[i]; - std::vector v_line(len2); - for(int j = 0; j < len2; j++){ - v_line[j] = polygon[i][j]; - } - v_polygon[i] = v_line; - } - std::vector indices = mapbox::earcut(v_polygon); - uint32_t *result; - int n = indices.size(); - result = new uint32_t[n]; - for(int i = 0; i < n; i++){ - result[i] = indices[i]; - } - struct Arrayui32 result_array; - result_array.data = result; - result_array.length = n / 3; //these are triangles in real life - return result_array; - } -} -