Skip to content

Commit 152238d

Browse files
authored
Merge branch 'master' into alecjacobson-patch-1
2 parents c906e25 + 2466492 commit 152238d

18 files changed

Lines changed: 138 additions & 680 deletions

.gitignore

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,3 +33,6 @@ ttt.py
3333
htmlcov
3434
junit
3535
.ipynb_checkpoints/tutorials-checkpoint.ipynb
36+
.*.un~
37+
.*.swp
38+
.*.swo

CMakeLists.txt

Lines changed: 2 additions & 53 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,4 @@
1-
# set(CMAKE_TRY_COMPILE_TARGET_TYPE "STATIC_LIBRARY")
2-
# SET(CMAKE_C_COMPILER_WORKS 1)
3-
# SET(CMAKE_CXX_COMPILER_WORKS 1)
4-
5-
cmake_minimum_required(VERSION 3.2)
1+
cmake_minimum_required(VERSION 3.16.0)
62
project(pyigl)
73

84
if (NOT DEFINED ${PYLIBIGL_EXTERNAL})
@@ -19,85 +15,39 @@ include(Warnings)
1915
# Use C++11/14
2016
include(CXXFeatures)
2117

22-
23-
24-
25-
MESSAGE(STATUS "I am here!")
26-
27-
28-
29-
# LibIGL
30-
option(LIBIGL_USE_STATIC_LIBRARY "Use libigl as static library" OFF)
31-
option(LIBIGL_WITH_ANTTWEAKBAR "Use AntTweakBar" OFF)
32-
option(LIBIGL_WITH_CGAL "Use CGAL" OFF)
33-
option(LIBIGL_WITH_COMISO "Use CoMiso" OFF)
34-
option(LIBIGL_WITH_CORK "Use Cork" OFF)
35-
option(LIBIGL_WITH_EMBREE "Use Embree" OFF)
36-
option(LIBIGL_WITH_LIM "Use LIM" OFF)
37-
option(LIBIGL_WITH_MATLAB "Use Matlab" OFF)
38-
option(LIBIGL_WITH_MOSEK "Use MOSEK" OFF)
39-
option(LIBIGL_WITH_NANOGUI "Use Nanogui menu" OFF)
40-
option(LIBIGL_WITH_OPENGL "Use OpenGL" OFF)
41-
option(LIBIGL_WITH_OPENGL_GLFW "Use GLFW" OFF)
42-
option(LIBIGL_WITH_PNG "Use PNG" OFF)
43-
option(LIBIGL_WITH_TETGEN "Use Tetgen" OFF)
44-
option(LIBIGL_WITH_TRIANGLE "Use Triangle" OFF)
45-
option(LIBIGL_WITH_PREDICATES "Use exact predicates" ON)
46-
option(LIBIGL_WITH_VIEWER "Use OpenGL viewer" OFF)
47-
option(LIBIGL_WITH_XML "Use XML" OFF)
48-
4918
option(PY_IGL_PYTHON_TESTS "Run Python tests" ON)
50-
option(PY_IGL_COPYLEFT "Builds Copyleft" OFF)
51-
52-
if(PY_IGL_COPYLEFT)
53-
SET(LIBIGL_WITH_TETGEN ON CACHE BOOL "" FORCE)
54-
SET(LIBIGL_WITH_TRIANGLE ON CACHE BOOL "" FORCE)
55-
endif()
5619

5720
include(PyiglDependencies)
5821

59-
6022
if(NOT TARGET igl::core)
6123
include(libigl)
6224
endif()
6325

64-
6526
# NumpyEigen
6627
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${PYLIBIGL_EXTERNAL}/numpyeigen/cmake)
6728
# Generate position independent code by default
6829
set(CMAKE_POSITION_INDEPENDENT_CODE ON)
6930
include(numpyeigen)
7031

71-
7232
# A module for writing bindings with our framework
7333
file(GLOB PYIGL_SOURCES src/*.cpp)
7434

75-
if(PY_IGL_COPYLEFT)
76-
file(GLOB PYIGL_SOURCES_COPYLEFT copyleft/*.cpp)
77-
endif()
78-
7935
npe_add_module(pyigl
8036
BINDING_SOURCES
8137
${PYIGL_SOURCES}
8238
${PYIGL_SOURCES_COPYLEFT})
8339

8440
#TODO move additional libs to variable
85-
target_link_libraries(pyigl PRIVATE igl::core igl::predicates)
86-
if(PY_IGL_COPYLEFT)
87-
target_link_libraries(pyigl PRIVATE igl::triangle igl::tetgen)
88-
endif()
41+
target_link_libraries(pyigl PRIVATE igl::core)
8942
target_include_directories(pyigl PRIVATE "src/include")
9043

91-
9244
add_library(pyigl_classes MODULE classes/classes.cpp)
9345
target_link_libraries(pyigl_classes PRIVATE npe igl::core)
9446
target_link_libraries(pyigl_classes PRIVATE pybind11::module)
9547
set_target_properties(pyigl_classes PROPERTIES PREFIX "${PYTHON_MODULE_PREFIX}" SUFFIX "${PYTHON_MODULE_EXTENSION}")
9648
target_include_directories(pyigl_classes PRIVATE "src/include")
9749
target_include_directories(pyigl_classes PRIVATE "${PYLIBIGL_EXTERNAL}/numpyeigen/src")
9850

99-
100-
10151
# Sort projects inside the solution
10252
set_property(GLOBAL PROPERTY USE_FOLDERS ON)
10353

@@ -110,7 +60,6 @@ if(${CMAKE_SYSTEM_NAME} MATCHES "Windows")
11060
endforeach()
11161
endif()
11262

113-
11463
# set(Python_ADDITIONAL_VERSIONS 3.4 3.5 3.6)
11564
# find_package(PythonLibs REQUIRED)
11665
# find_package(PythonInterp REQUIRED)

README.md

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# *New* LibIGL Python Bindings
1+
# libigl Python Bindings
22
[![Build Status](https://travis-ci.com/libigl/libigl-python-bindings.svg?branch=master)](https://travis-ci.com/libigl/libigl-python-bindings)
33
[![Build Status](https://dev.azure.com/libigl/Libigl/_apis/build/status/libigl.libigl-python-bindings?branchName=master)](https://dev.azure.com/libigl/Libigl/_build/latest?definitionId=1&branchName=master)
44

@@ -26,9 +26,9 @@ python setup.py install
2626
* A *temporary* tutorial on how to use the bindings can be found [here](https://libigl.github.io/libigl-python-bindings/tutorials/)
2727
* A *temporary* function reference can be found [here](https://libigl.github.io/libigl-python-bindings/igl_docs/)
2828

29-
3029
## Compiling and modifying the bindiings
3130
After installing numpy & scipy and then cloning this repository, you can compile the bindings from scratch by running:
31+
3232
```
3333
python setup.py develop
3434
```
@@ -46,4 +46,3 @@ python setup.py test
4646
```
4747

4848

49-

azure-pipelines.yml

Lines changed: 22 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -7,24 +7,36 @@ jobs:
77
timeoutInMinutes: 0
88
strategy:
99
matrix:
10-
mac35:
11-
imageName: 'macos-10.14'
12-
python.version: '3.5'
1310
mac36:
14-
imageName: 'macos-10.14'
11+
imageName: 'macos-10.15'
1512
python.version: '3.6'
1613
mac37:
17-
imageName: 'macos-10.14'
14+
imageName: 'macos-10.15'
1815
python.version: '3.7'
19-
windows35:
20-
imageName: 'vs2017-win2016'
21-
python.version: '3.5'
16+
mac38:
17+
imageName: 'macos-10.15'
18+
python.version: '3.8'
19+
mac39:
20+
imageName: 'macos-10.15'
21+
python.version: '3.9'
22+
mac310:
23+
imageName: 'macos-10.15'
24+
python.version: '3.10'
2225
windows36:
23-
imageName: 'vs2017-win2016'
26+
imageName: 'windows-2019'
2427
python.version: '3.6'
2528
windows37:
26-
imageName: 'vs2017-win2016'
29+
imageName: 'windows-2019'
2730
python.version: '3.7'
31+
windows38:
32+
imageName: 'windows-2019'
33+
python.version: '3.8'
34+
windows39:
35+
imageName: 'windows-2019'
36+
python.version: '3.9'
37+
windows310:
38+
imageName: 'windows-2019'
39+
python.version: '3.10'
2840

2941
pool:
3042
vmImage: $(imageName)

cmake/PyiglDependencies.cmake

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,14 @@ include(PyiglDownloadExternal)
1616

1717
SET(NPE_WITH_EIGEN ${PYLIBIGL_EXTERNAL}/libigl/external/eigen)
1818

19-
pyigl_download_igl()
20-
find_package(LIBIGL REQUIRED)
19+
include(FetchContent)
20+
FetchContent_Declare(
21+
libigl
22+
GIT_REPOSITORY https://github.com/libigl/libigl.git
23+
GIT_TAG 238a607032d725cbf1b99cad2077516b1ee066d8
24+
)
25+
FetchContent_MakeAvailable(libigl)
26+
2127
pyigl_download_numpyeigen()
2228
pyigl_download_tutorial_data()
2329

cmake/PyiglDownloadExternal.cmake

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -23,15 +23,6 @@ endfunction()
2323

2424
################################################################################
2525

26-
## libigl
27-
function(pyigl_download_igl)
28-
pyigl_download_project(libigl
29-
GIT_REPOSITORY https://github.com/libigl/libigl.git
30-
GIT_TAG c60a948e7d1434b8ab7b792cdb606095ad7cd894
31-
)
32-
endfunction()
33-
34-
3526
## numpyeigen
3627
function(pyigl_download_numpyeigen)
3728
pyigl_download_project(numpyeigen

setup.py

Lines changed: 11 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -46,35 +46,37 @@ def build_extension(self, ext):
4646

4747
if platform.system() == "Windows":
4848
cmake_args += ['-DCMAKE_LIBRARY_OUTPUT_DIRECTORY_{}={}'.format(cfg.upper(), extdir)]
49-
if os.environ.get('CMAKE_GENERATOR') != "NMake Makefiles" and "Ninja" not in os.environ.get('CMAKE_GENERATOR'):
49+
cmake_generator = os.environ.get('CMAKE_GENERATOR', '')
50+
if cmake_generator != "NMake Makefiles" and "Ninja" not in cmake_generator:
5051
if sys.maxsize > 2**32:
5152
cmake_args += ['-A', 'x64']
5253
# build_args += ['--', '/m']
5354
else:
5455
build_args += ['--', '-j2']
5556

56-
tmp = os.environ.get("AR")
57+
58+
tmp = os.environ.get("AR", "")
5759
if "arm64-apple" in tmp:
58-
tmp = os.environ.get("CMAKE_ARGS")
60+
tmp = os.environ.get("CMAKE_ARGS", "")
5961
if tmp:
6062
cmake_args += tmp.split(" ")
6163

62-
tmp = os.environ.get("CC")
64+
tmp = os.environ.get("CC", "")
6365
print("C compiler", tmp)
6466
if tmp:
6567
cmake_args += ["-DCMAKE_C_COMPILER={}".format(tmp)]
6668

67-
tmp = os.environ.get("CXX")
69+
tmp = os.environ.get("CXX", "")
6870
print("CXX compiler", tmp)
6971
if tmp:
7072
cmake_args += ["-DCMAKE_CXX_COMPILER={}".format(tmp)]
7173
else:
72-
tmp = os.getenv('CC_FOR_BUILD')
74+
tmp = os.getenv('CC_FOR_BUILD', '')
7375
if tmp:
7476
print("Setting c compiler to", tmp)
7577
cmake_args += ["-DCMAKE_C_COMPILER=" + tmp]
7678

77-
tmp = os.getenv('CXX_FOR_BUILD')
79+
tmp = os.getenv('CXX_FOR_BUILD', '')
7880
if tmp:
7981
print("Setting cxx compiler to", tmp)
8082
cmake_args += ["-DCMAKE_CXX_COMPILER="+ tmp]
@@ -84,14 +86,14 @@ def build_extension(self, ext):
8486

8587

8688

87-
tmp = os.getenv("target_platform")
89+
tmp = os.getenv("target_platform", "")
8890
if tmp:
8991
print("target platfrom", tmp)
9092
if "arm" in tmp:
9193
cmake_args += ["-DCMAKE_OSX_ARCHITECTURES=arm64"]
9294

9395
# print(cmake_args)
94-
# tmp = os.getenv('CMAKE_ARGS')
96+
# tmp = os.getenv('CMAKE_ARGS', '')
9597

9698
# if tmp:
9799
# tmp = tmp.split(" ")

src/delaunay_triangulation.cpp

Lines changed: 0 additions & 68 deletions
This file was deleted.

src/flip_avoiding_line_search.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@ npe_doc(ds_flip_avoiding_line_search)
5858
npe_arg(f, dense_int, dense_long)
5959
npe_arg(cur_v, dense_float, dense_double)
6060
npe_arg(dst_v, npe_matches(cur_v))
61-
npe_arg(energy, std::function<double(Eigen::MatrixXd)>)
61+
npe_arg(energy, std::function<double(Eigen::MatrixXd&)>)
6262
npe_arg(cur_energy, double)
6363

6464
npe_begin_code()

0 commit comments

Comments
 (0)