Skip to content

Commit 4c41983

Browse files
authored
Merge pull request #1 from alecjacobson/alecjacobson/cleanup-cmake [ci skip]
cleanup cmake
2 parents 740f87b + 6ba2af2 commit 4c41983

12 files changed

Lines changed: 104 additions & 471 deletions

.github/workflows/wheels.yml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,9 @@ jobs:
5151
CIBW_REPAIR_WHEEL_COMMAND_WINDOWS: "python -m delvewheel repair --no-mangle-all --add-path build\\temp.win-amd64-3.6\\Release;build\\temp.win-amd64-3.6\\Release\\Release;build\\temp.win-amd64-3.6\\Release\\_deps\\gmp-src\\lib;build\\temp.win-amd64-3.6\\Release\\_deps\\mpfr-src\\lib -w {dest_dir} {wheel} "
5252
# CIBW_REPAIR_WHEEL_COMMAND_WINDOWS: "cd C: && cmd //c tree //F"
5353
CIBW_SKIP: "*-win32 *_i686 pp* cp36* cp311* *musllinux*" # Skip 32-bit buildsa and PyPy, and 3.6(scipy) and 3.11(numpy) *musllinux*(scipy)
54+
CIBW_TEST_COMMAND: "python {project}/tests/test_basic.py {project}/data/"
55+
CIBW_TEST_SKIP: "*-macosx_arm64"
56+
CIBW_ENVIRONMENT: "MAX_JOBS=2"
5457

5558

5659
steps:

CMakeLists.txt

Lines changed: 9 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -15,20 +15,18 @@ include(Warnings)
1515
# Use C++11/14
1616
include(CXXFeatures)
1717

18-
option(PY_IGL_PYTHON_TESTS "Run Python tests" ON)
18+
option(PY_IGL_DOWNLOAD_TEST_DATA "Download test data" ON)
19+
option(PY_IGL_DOWNLOAD_TUTORIAL_DATA "Download tutorial data" ON)
20+
21+
# Generate position independent code by default
22+
set(CMAKE_POSITION_INDEPENDENT_CODE ON CACHE INTERNAL "")
1923

2024
include(PyiglDependencies)
2125

2226
if(NOT TARGET igl::core)
2327
include(libigl)
2428
endif()
2529

26-
# NumpyEigen
27-
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${PYLIBIGL_EXTERNAL}/numpyeigen/cmake)
28-
# Generate position independent code by default
29-
set(CMAKE_POSITION_INDEPENDENT_CODE ON)
30-
include(numpyeigen)
31-
3230
# A module for writing bindings with our framework
3331
file(GLOB PYIGL_SOURCES src/*.cpp)
3432

@@ -52,25 +50,9 @@ target_include_directories(pyigl_classes PRIVATE "${PYLIBIGL_EXTERNAL}/numpyeige
5250
set_property(GLOBAL PROPERTY USE_FOLDERS ON)
5351

5452
if(${CMAKE_SYSTEM_NAME} MATCHES "Windows")
55-
foreach(config ${CMAKE_CONFIGURATION_TYPES})
56-
string(TOUPPER ${config} config)
57-
string(REPLACE /MD /MT CMAKE_C_FLAGS_${config} "${CMAKE_C_FLAGS_${config}}")
53+
foreach(config ${CMAKE_CONFIGURATION_TYPES})
54+
string(TOUPPER ${config} config)
55+
string(REPLACE /MD /MT CMAKE_C_FLAGS_${config} "${CMAKE_C_FLAGS_${config}}")
5856
string(REPLACE /MD /MT CMAKE_CXX_FLAGS_${config} "${CMAKE_CXX_FLAGS_${config}}")
59-
# LIST(APPEND CMAKE_CXX_FLAGS_${config} "/Zm")
60-
endforeach()
61-
endif()
62-
63-
# set(Python_ADDITIONAL_VERSIONS 3.4 3.5 3.6)
64-
# find_package(PythonLibs REQUIRED)
65-
# find_package(PythonInterp REQUIRED)
66-
# target_link_libraries(pyigl PRIVATE ${PYTHON_LIBRARIES})
67-
# set_target_properties(pyigl PROPERTIES LINK_FLAGS "-Wl,-undefined,error")
68-
#set_target_properties(pyigl PROPERTIES LINK_FLAGS "-Wl,--no-undefined")
69-
# set_target_properties(pyigl PROPERTIES COMPILE_FLAGS "-fvisibility=hidden -msse2")
70-
# set_target_properties(pyigl PROPERTIES LIBRARY_OUTPUT_DIRECTORY "${PROJECT_SOURCE_DIR}/igl")
71-
72-
if(${PY_IGL_PYTHON_TESTS})
73-
pyigl_download_test_data()
74-
enable_testing()
75-
add_subdirectory(tests)
57+
endforeach()
7658
endif()

cmake/DownloadProject.CMakeLists.cmake.in

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

cmake/DownloadProject.cmake

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

cmake/PrependCurrentPath.cmake

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

cmake/PyiglDependencies.cmake

Lines changed: 38 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,23 +8,57 @@
88
# Download and update 3rdparty libraries
99
list(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_LIST_DIR})
1010
list(REMOVE_DUPLICATES CMAKE_MODULE_PATH)
11-
include(PyiglDownloadExternal)
1211

1312
################################################################################
1413
# Required libraries
1514
################################################################################
1615

17-
SET(NPE_WITH_EIGEN ${PYLIBIGL_EXTERNAL}/libigl/external/eigen)
1816

1917
include(FetchContent)
18+
2019
FetchContent_Declare(
2120
libigl
2221
GIT_REPOSITORY https://github.com/libigl/libigl.git
2322
GIT_TAG 238a607032d725cbf1b99cad2077516b1ee066d8
2423
)
24+
FetchContent_GetProperties(libigl)
2525
FetchContent_MakeAvailable(libigl)
2626

27-
pyigl_download_numpyeigen()
28-
pyigl_download_tutorial_data()
27+
FetchContent_Declare(
28+
numpyeigen
29+
GIT_REPOSITORY https://github.com/fwilliams/numpyeigen.git
30+
GIT_TAG 05a22ad4f06a431bffc3860b30c00cf89e81373b)
31+
# NumpyEigen's CMakeLists sets NPE_PYTHON_EXECUTABLE without a way to override,
32+
# so we must include directly rather that using FetchContent_MakeAvailable
33+
#FetchContent_MakeAvailable(numpyeigen)
34+
# Check if population has already been performed
35+
FetchContent_GetProperties(numpyeigen)
36+
if(NOT numpyeigen_POPULATED)
37+
# Fetch the content using previously declared details
38+
FetchContent_Populate(numpyeigen)
39+
endif()
40+
# Push CMAKE_MODULE_PATH
41+
set(PREV_CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH})
42+
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${numpyeigen_SOURCE_DIR}/cmake)
43+
# Why isn't eigen_SOURCE_DIR defined?
44+
SET(NPE_WITH_EIGEN "${libigl_SOURCE_DIR}/../eigen-src/" CACHE INTERNAL "")
45+
include(numpyeigen)
46+
# Pop CMAKE_MODULE_PATH
47+
set(CMAKE_MODULE_PATH ${PREV_CMAKE_MODULE_PATH})
48+
49+
if(${PY_IGL_DOWNLOAD_TEST_DATA})
50+
FetchContent_Declare(test_data
51+
SOURCE_DIR "${PYLIBIGL_EXTERNAL}/../data"
52+
GIT_REPOSITORY https://github.com/libigl/libigl-tests-data.git
53+
GIT_TAG 19cedf96d70702d8b3a83eb27934780c542356fe)
54+
FetchContent_MakeAvailable(test_data)
55+
endif()
2956

57+
if(${PY_IGL_DOWNLOAD_TUTORIAL_DATA})
58+
FetchContent_Declare(tutorial_data
59+
SOURCE_DIR "${PYLIBIGL_EXTERNAL}/../tutorial/data"
60+
GIT_REPOSITORY https://github.com/libigl/libigl-tutorial-data.git
61+
GIT_TAG c1f9ede366d02e3531ecbaec5e3769312f31cccd)
62+
FetchContent_MakeAvailable(tutorial_data)
63+
endif()
3064

cmake/PyiglDownloadExternal.cmake

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

0 commit comments

Comments
 (0)