Skip to content

Commit 285099f

Browse files
committed
WIP [skip actions]
1 parent eab3876 commit 285099f

File tree

8 files changed

+174
-58
lines changed

8 files changed

+174
-58
lines changed

ports/libigl/install-extra-targets.patch

Lines changed: 56 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,17 @@
11
diff --git a/CMakeLists.txt b/CMakeLists.txt
2-
index 498caee..9e258cb 100644
2+
index 498caee..3aefd74 100644
33
--- a/CMakeLists.txt
44
+++ b/CMakeLists.txt
5-
@@ -166,7 +166,7 @@ if(LIBIGL_INSTALL)
5+
@@ -166,7 +166,11 @@ if(LIBIGL_INSTALL)
66
set(version_config_file "${CMAKE_CURRENT_BINARY_DIR}/LibiglConfigVersion.cmake")
77
set(export_dest_dir "${CMAKE_INSTALL_LIBDIR}/cmake/igl")
88

99
- foreach(suffix IN ITEMS "") #"_restricted" "_copyleft")
10-
+ foreach(suffix IN ITEMS "" "_copyleft") # "_restricted"
10+
+ set(optional_suffix "") # "_restricted" "_copyleft"
11+
+ if(LIBIGL_COPYLEFT_CORE)
12+
+ list(APPEND optional_suffix "_copyleft")
13+
+ endif()
14+
+ foreach(suffix IN ITEMS "" LISTS optional_suffix)
1115
install(EXPORT LibiglTargets${suffix}
1216
DESTINATION ${export_dest_dir}
1317
NAMESPACE igl${suffix}::
@@ -44,37 +48,41 @@ index d3ff19f..df11bf5 100644
4448
+include("${CMAKE_CURRENT_LIST_DIR}/LibiglConfigTargets_copyleft.cmake" OPTIONAL)
4549
check_required_components(Libigl)
4650
diff --git a/cmake/igl/modules/copyleft/cgal.cmake b/cmake/igl/modules/copyleft/cgal.cmake
47-
index 3caa2da..5de6f56 100644
51+
index 3caa2da..8dac0bf 100644
4852
--- a/cmake/igl/modules/copyleft/cgal.cmake
4953
+++ b/cmake/igl/modules/copyleft/cgal.cmake
5054
@@ -9,7 +9,7 @@ target_include_directories(igl_copyleft_cgal ${IGL_SCOPE}
5155
)
5256

5357
# 3. Target sources
5458
-file(GLOB INC_FILES "${libigl_SOURCE_DIR}/include/igl/copyleft/cgal/*.h")
55-
+file(GLOB INC_FILES "${libigl_SOURCE_DIR}/include/igl/copyleft/cgal/*.h" "${libigl_SOURCE_DIR}/include/igl/copyleft/cgal/*.hpp")
59+
+file(GLOB INC_FILES "${libigl_SOURCE_DIR}/include/igl/copyleft/cgal/*.h")# "${libigl_SOURCE_DIR}/include/igl/copyleft/cgal/*.hpp")
5660
file(GLOB SRC_FILES "${libigl_SOURCE_DIR}/include/igl/copyleft/cgal/*.cpp")
5761
igl_target_sources(igl_copyleft_cgal ${INC_FILES} ${SRC_FILES})
5862

59-
@@ -22,6 +22,7 @@ target_link_libraries(igl_copyleft_cgal ${IGL_SCOPE}
60-
CGAL::CGAL
63+
@@ -23,6 +23,9 @@ target_link_libraries(igl_copyleft_cgal ${IGL_SCOPE}
6164
CGAL::CGAL_Core
6265
)
63-
+igl_install(igl_copyleft_cgal ${INC_FILES} ${SRC_FILES})
6466

67+
+# n. Install target & headers
68+
+igl_install(igl_copyleft_cgal ${INC_FILES} ${SRC_FILES})
69+
+
6570
# 5. Unit tests
6671
file(GLOB SRC_FILES
72+
"${libigl_SOURCE_DIR}/tests/include/igl/copyleft/boolean/*.cpp"
6773
diff --git a/cmake/igl/modules/copyleft/core.cmake b/cmake/igl/modules/copyleft/core.cmake
68-
index 8d03a90..a19f06c 100644
74+
index 8d03a90..24eb6e5 100644
6975
--- a/cmake/igl/modules/copyleft/core.cmake
7076
+++ b/cmake/igl/modules/copyleft/core.cmake
71-
@@ -17,3 +17,4 @@ igl_target_sources(igl_copyleft_core ${INC_FILES} ${SRC_FILES})
77+
@@ -17,3 +17,6 @@ igl_target_sources(igl_copyleft_core ${INC_FILES} ${SRC_FILES})
7278
target_link_libraries(igl_copyleft_core ${IGL_SCOPE}
7379
igl::core
7480
)
81+
+
82+
+# n. Install target & headers
7583
+igl_install(igl_copyleft_core ${INC_FILES} ${SRC_FILES})
7684
diff --git a/cmake/igl/modules/core.cmake b/cmake/igl/modules/core.cmake
77-
index 137d30b..597c26b 100644
85+
index 137d30b..5e22c9b 100644
7886
--- a/cmake/igl/modules/core.cmake
7987
+++ b/cmake/igl/modules/core.cmake
8088
@@ -12,8 +12,8 @@ target_include_directories(igl_core ${IGL_SCOPE}
@@ -83,59 +91,80 @@ index 137d30b..597c26b 100644
8391
# 3. Target sources
8492
-file(GLOB INC_FILES "${libigl_SOURCE_DIR}/include/igl/*.h")
8593
-file(GLOB SRC_FILES "${libigl_SOURCE_DIR}/include/igl/*.cpp")
86-
+file(GLOB INC_FILES "${libigl_SOURCE_DIR}/include/igl/*.h" "${libigl_SOURCE_DIR}/include/igl/*.hpp")
87-
+file(GLOB SRC_FILES "${libigl_SOURCE_DIR}/include/igl/*.cpp" "${libigl_SOURCE_DIR}/include/igl/*.c")
94+
+file(GLOB INC_FILES "${libigl_SOURCE_DIR}/include/igl/*.h")# "${libigl_SOURCE_DIR}/include/igl/*.hpp")
95+
+file(GLOB SRC_FILES "${libigl_SOURCE_DIR}/include/igl/*.cpp")# "${libigl_SOURCE_DIR}/include/igl/*.c")
8896
igl_target_sources(igl_core ${INC_FILES} ${SRC_FILES})
8997

9098
# 4. Install target & headers
9199
diff --git a/cmake/igl/modules/embree.cmake b/cmake/igl/modules/embree.cmake
92-
index 7f333b0..a390b68 100644
100+
index 7f333b0..5fbabe7 100644
93101
--- a/cmake/igl/modules/embree.cmake
94102
+++ b/cmake/igl/modules/embree.cmake
95-
@@ -20,6 +20,7 @@ target_link_libraries(igl_embree ${IGL_SCOPE}
96-
igl::core
103+
@@ -21,6 +21,9 @@ target_link_libraries(igl_embree ${IGL_SCOPE}
97104
embree::embree
98105
)
99-
+igl_install(igl_embree ${INC_FILES} ${SRC_FILES})
100106

107+
+# n. Install target & headers
108+
+igl_install(igl_embree ${INC_FILES} ${SRC_FILES})
109+
+
101110
# 5. Unit tests
102111
file(GLOB SRC_FILES "${libigl_SOURCE_DIR}/tests/include/igl/embree/*.cpp")
112+
igl_add_test(igl_embree ${SRC_FILES})
103113
diff --git a/cmake/igl/modules/glfw.cmake b/cmake/igl/modules/glfw.cmake
104-
index 2da8b0a..f98db29 100644
114+
index 2da8b0a..853759f 100644
105115
--- a/cmake/igl/modules/glfw.cmake
106116
+++ b/cmake/igl/modules/glfw.cmake
107-
@@ -22,6 +22,7 @@ target_link_libraries(igl_glfw ${IGL_SCOPE}
108-
igl::opengl
117+
@@ -23,6 +23,9 @@ target_link_libraries(igl_glfw ${IGL_SCOPE}
109118
glfw::glfw
110119
)
111-
+igl_install(igl_glfw ${INC_FILES} ${SRC_FILES})
112120

121+
+# n. Install target & headers
122+
+igl_install(igl_glfw ${INC_FILES} ${SRC_FILES})
123+
+
113124
# 5. Unit tests
114125
if(LIBIGL_GLFW_TESTS)
126+
file(GLOB SRC_FILES "${libigl_SOURCE_DIR}/tests/include/igl/opengl/glfw/*.cpp")
115127
diff --git a/cmake/igl/modules/imgui.cmake b/cmake/igl/modules/imgui.cmake
116-
index f331854..24cbef8 100644
128+
index f331854..37fe9c3 100644
117129
--- a/cmake/igl/modules/imgui.cmake
118130
+++ b/cmake/igl/modules/imgui.cmake
119-
@@ -23,3 +23,4 @@ target_link_libraries(igl_imgui ${IGL_SCOPE}
131+
@@ -23,3 +23,6 @@ target_link_libraries(igl_imgui ${IGL_SCOPE}
120132
imgui::imgui
121133
imguizmo::imguizmo
122134
)
135+
+
136+
+# n. Install target & headers
123137
+igl_install(igl_imgui ${INC_FILES} ${SRC_FILES})
124138
diff --git a/cmake/igl/modules/opengl.cmake b/cmake/igl/modules/opengl.cmake
125-
index dfadb38..364cd9c 100644
139+
index dfadb38..89ba687 100644
126140
--- a/cmake/igl/modules/opengl.cmake
127141
+++ b/cmake/igl/modules/opengl.cmake
128-
@@ -22,3 +22,4 @@ target_link_libraries(igl_opengl ${IGL_SCOPE}
142+
@@ -22,3 +22,6 @@ target_link_libraries(igl_opengl ${IGL_SCOPE}
129143
# Link against OpenGL::OpenGL if available, or fallback to OpenGL::GL
130144
$<IF:$<TARGET_EXISTS:OpenGL::OpenGL>,OpenGL::OpenGL,OpenGL::GL>
131145
)
146+
+
147+
+# n. Install target & headers
132148
+igl_install(igl_opengl ${INC_FILES} ${SRC_FILES})
149+
diff --git a/cmake/igl/modules/stb.cmake b/cmake/igl/modules/stb.cmake
150+
index 14db8cf..23c5c66 100644
151+
--- a/cmake/igl/modules/stb.cmake
152+
+++ b/cmake/igl/modules/stb.cmake
153+
@@ -33,3 +33,6 @@ if(LIBIGL_OPENGL)
154+
igl::opengl
155+
)
156+
endif()
157+
+
158+
+# n. Install target & headers
159+
+igl_install(igl_stb ${INC_FILES} ${SRC_FILES})
133160
diff --git a/cmake/igl/modules/xml.cmake b/cmake/igl/modules/xml.cmake
134-
index 31ab979..eecfec0 100644
161+
index 31ab979..20c2139 100644
135162
--- a/cmake/igl/modules/xml.cmake
136163
+++ b/cmake/igl/modules/xml.cmake
137-
@@ -19,3 +19,4 @@ target_link_libraries(igl_xml ${IGL_SCOPE}
164+
@@ -19,3 +19,6 @@ target_link_libraries(igl_xml ${IGL_SCOPE}
138165
igl::core
139166
tinyxml2::tinyxml2
140167
)
168+
+
169+
+# n. Install target & headers
141170
+igl_install(igl_xml ${INC_FILES} ${SRC_FILES})

ports/libigl/portfile.cmake

Lines changed: 14 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -10,66 +10,49 @@ vcpkg_from_github(
1010
HEAD_REF master
1111
PATCHES
1212
dependencies.patch
13+
imgui-impl.diff
1314
install-extra-targets.patch
1415
)
15-
file(REMOVE
16-
"${SOURCE_PATH}/cmake/find/FindGMP.cmake"
17-
"${SOURCE_PATH}/cmake/find/FindMPFR.cmake"
18-
"${SOURCE_PATH}/cmake/recipes/external/boost.cmake"
19-
"${SOURCE_PATH}/cmake/recipes/external/catch2.cmake"
20-
"${SOURCE_PATH}/cmake/recipes/external/cgal.cmake"
21-
"${SOURCE_PATH}/cmake/recipes/external/eigen.cmake"
22-
"${SOURCE_PATH}/cmake/recipes/external/embree.cmake"
23-
"${SOURCE_PATH}/cmake/recipes/external/glad.cmake"
24-
"${SOURCE_PATH}/cmake/recipes/external/glfw.cmake"
25-
"${SOURCE_PATH}/cmake/recipes/external/gmp.cmake"
26-
"${SOURCE_PATH}/cmake/recipes/external/gmp_mpfr.cmake"
27-
"${SOURCE_PATH}/cmake/recipes/external/imgui.cmake"
28-
"${SOURCE_PATH}/cmake/recipes/external/imguizmo.cmake"
29-
"${SOURCE_PATH}/cmake/recipes/external/libigl_imgui_fonts.cmake"
30-
"${SOURCE_PATH}/cmake/recipes/external/mpfr.cmake"
31-
"${SOURCE_PATH}/cmake/recipes/external/stb.cmake"
32-
"${SOURCE_PATH}/cmake/recipes/external/tinyxml2.cmake"
33-
"${SOURCE_PATH}/cmake/recipes/external/spectra.cmake"
34-
)
16+
file(REMOVE_RECURSE "${SOURCE_PATH}/cmake/recipes")
3517

3618
vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS
3719
FEATURES
3820
cgal LIBIGL_COPYLEFT_CGAL
21+
copyleft LIBIGL_COPYLEFT_CORE
3922
embree LIBIGL_EMBREE
4023
glfw LIBIGL_GLFW
4124
imgui LIBIGL_IMGUI
4225
opengl LIBIGL_OPENGL
4326
xml LIBIGL_XML
44-
predicates LIBIGL_PREDICATES
45-
tetgen LIBIGL_COPYLEFT_TETGEN
46-
triangle LIBIGL_RESTRICTED_TRIANGLE
4727
)
4828

49-
set(VCPKG_BUILD_TYPE release) # header-only
5029
vcpkg_cmake_configure(
5130
SOURCE_PATH "${SOURCE_PATH}"
5231
DISABLE_PARALLEL_CONFIGURE
5332
OPTIONS
5433
${FEATURE_OPTIONS}
34+
-DHUNTER_ENABLED=OFF
5535
-DLIBIGL_BUILD_TESTS=OFF
5636
-DLIBIGL_BUILD_TUTORIALS=OFF
5737
-DLIBIGL_INSTALL=ON
38+
-DLIBIGL_USE_STATIC_LIBRARY=ON # i.e. build actual lib; respects BUILD_SHARED_LIBS
39+
# Permissive modules
40+
-DLIBIGL_PREDICATES=OFF
41+
-DLIBIGL_SPECTRA=OFF
42+
# Copyleft modules
43+
-DLIBIGL_COPYLEFT_COMISO=OFF
44+
-DLIBIGL_COPYLEFT_TETGEN=OFF
45+
# Restricted modules
5846
-DLIBIGL_RESTRICTED_MATLAB=OFF
5947
-DLIBIGL_RESTRICTED_MOSEK=OFF
60-
-DLIBIGL_USE_STATIC_LIBRARY=ON # raise build errors in libigl, not downstream
61-
-DHUNTER_ENABLED=OFF
62-
-DLIBIGL_SPECTRA=OFF
63-
${ADDITIONAL_OPTIONS}
48+
-DLIBIGL_RESTRICTED_TRIANGLE=OFF
6449
)
6550

6651
vcpkg_cmake_install()
6752
vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/igl)
6853
vcpkg_copy_pdbs()
6954

70-
file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/lib")
71-
72-
if(NOT LIBIGL_COPYLEFT_CGAL)
55+
if(NOT LIBIGL_COPYLEFT_CORE)
7356
vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE.MPL2")
7457
else()
7558
vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE.MPL2" "${SOURCE_PATH}/LICENSE.GPL" COMMENT "GPL for targets in \"igl_copyleft::\" namespace.")

ports/libigl/vcpkg.json

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,9 +24,19 @@
2424
{
2525
"name": "cgal",
2626
"default-features": false
27+
},
28+
{
29+
"name": "libigl",
30+
"default-features": false,
31+
"features": [
32+
"copyleft"
33+
]
2734
}
2835
]
2936
},
37+
"copyleft": {
38+
"description": "Build components with copyleft licenses"
39+
},
3040
"embree": {
3141
"description": "Build with embree",
3242
"dependencies": [

scripts/ci.feature.baseline.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -218,6 +218,7 @@ libgpod:x64-linux=fail # Missing system libraries on linux to run/prepare autoco
218218
libgpod:x64-osx=fail
219219
libgxps:x64-windows-static-md=fail
220220
libgxps:x64-windows-static=fail
221+
libigl[embree]=feature-fails # needs embree 4
221222
libirecovery:x64-windows-static-md=fail
222223
libjxl:arm-uwp=skip # 120 min build time for libjxl arm-uwp-rel, reason unknown
223224
liblemon:arm-uwp=fail
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
set(VCPKG_POLICY_EMPTY_PACKAGE enabled)
2+
3+
vcpkg_from_github(
4+
OUT_SOURCE_PATH SOURCE_PATH
5+
REPO libigl/libigl
6+
REF v2.6.0
7+
SHA512 7c6ae5b94020a01df5d6d0a358592293595d8d8bf04bf42e6acc09bcd6ed012071069373a71ed6f24ce878aa79447dd189b42bc8a3a70819ef05dccc60a2cf68
8+
HEAD_REF master
9+
)
10+
11+
vcpkg_cmake_configure(
12+
SOURCE_PATH "${CURRENT_PORT_DIR}/project"
13+
OPTIONS
14+
"-DSOURCE_PATH=${SOURCE_PATH}"
15+
"-DFEATURES=${FEATURES}"
16+
)
17+
vcpkg_cmake_build()
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
cmake_minimum_required(VERSION 3.16)
2+
project(libigl-test C CXX)
3+
4+
set(CMAKE_CXX_STANDARD 11)
5+
6+
add_definitions("-DTUTORIAL_SHARED_PATH=\"${SOURCE_PATH}/placeholder\"")
7+
8+
find_package(libigl CONFIG REQUIRED)
9+
10+
add_executable(101_FileIO "${SOURCE_PATH}/tutorial/101_FileIO/main.cpp")
11+
target_link_libraries(101_FileIO PRIVATE igl::igl_core)
12+
13+
if("glfw" IN_LIST FEATURES)
14+
add_executable(102_DrawMesh "${SOURCE_PATH}/tutorial/102_DrawMesh/main.cpp")
15+
target_link_libraries(102_DrawMesh PRIVATE igl::igl_glfw)
16+
17+
add_executable(111_MatCap "${SOURCE_PATH}/tutorial/111_MatCap/main.cpp" "${CMAKE_CURRENT_LIST_DIR}/stb_image_implementation.c")
18+
target_link_libraries(111_MatCap PRIVATE igl::igl_glfw igl::igl_stb)
19+
endif()
20+
21+
if("imgui" IN_LIST FEATURES)
22+
add_executable(109_ImGuizmo "${SOURCE_PATH}/tutorial/109_ImGuizmo/main.cpp")
23+
target_link_libraries(109_ImGuizmo PRIVATE igl::igl_imgui)
24+
25+
add_executable(113_Shadows "${SOURCE_PATH}/tutorial/113_Shadows/main.cpp" "${CMAKE_CURRENT_LIST_DIR}/stb_image_implementation.c")
26+
target_link_libraries(113_Shadows PRIVATE igl::igl_imgui igl::igl_stb)
27+
endif()
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
#define STB_IMAGE_IMPLEMENTATION
2+
#include <stb_image.h>
Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
{
2+
"name": "vcpkg-ci-libigl",
3+
"version-string": "ci",
4+
"description": "Port to force features of libigl within CI",
5+
"homepage": "https://github.com/microsoft/vcpkg",
6+
"license": "MIT",
7+
"dependencies": [
8+
{
9+
"name": "libigl",
10+
"default-features": false
11+
},
12+
{
13+
"name": "vcpkg-cmake",
14+
"host": true
15+
}
16+
],
17+
"default-features": [
18+
"glfw",
19+
"imgui"
20+
],
21+
"features": {
22+
"glfw": {
23+
"description": "libigl[glfw]",
24+
"dependencies": [
25+
{
26+
"name": "libigl",
27+
"default-features": false,
28+
"features": [
29+
"glfw"
30+
]
31+
}
32+
]
33+
},
34+
"imgui": {
35+
"description": "libigl[imgui]",
36+
"dependencies": [
37+
{
38+
"name": "libigl",
39+
"default-features": false,
40+
"features": [
41+
"imgui"
42+
]
43+
}
44+
]
45+
}
46+
}
47+
}

0 commit comments

Comments
 (0)