* Wire CrossSection to the boolean2 backend Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * Simplify CrossSection via vertex decimation, not merge-tolerance snap Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * Address wiring review: Hull/finite guards, inline mutex, signpost, asserts Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * Migrate CrossSection wiring to ApplyFillRule; Simplify decimates only Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * Defer transform tolerance scaling to GetPaths; fix Simplify comment Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * Tidy wiring comments to house style; use la::isfinite for guards Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * Cut over CrossSection from Clipper2 to boolean2 Replace the Clipper2-backed CrossSection implementation with the in-tree boolean2 one and drop the Clipper2 dependency, the MANIFOLD_CROSS_SECTION_BACKEND selector, and its CI and packaging plumbing. The public CrossSection API is unchanged: the FillRule argument is kept but only Positive construction is supported. Samples.Sponge4's degenerate-triangle bound is raised, since boolean2's Simplify leaves more near-collinear vertices (more benign zero-area tris; topology unchanged). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * Delegate single-contour CrossSection ctor to the Polygons one Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * Always build CrossSection; drop the MANIFOLD_CROSS_SECTION option Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * Flatten manifold::boolean2 into manifold; unify JoinType Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * Make SimplifyRing O(n log n) via min-heap with lazy invalidation Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * Drop stale MANIFOLD_CROSS_SECTION flag from the PR perf guard script Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * Scrub Clipper2 and the removed option from the new sanitizer CI script Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
87 lines
3.7 KiB
CMake
87 lines
3.7 KiB
CMake
# Copyright 2024 The Manifold Authors.
|
|
#
|
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
# you may not use this file except in compliance with the License.
|
|
# You may obtain a copy of the License at
|
|
#
|
|
# https://www.apache.org/licenses/LICENSE-2.0
|
|
#
|
|
# Unless required by applicable law or agreed to in writing, software
|
|
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
# See the License for the specific language governing permissions and
|
|
# limitations under the License.
|
|
|
|
# configuration summary, idea from openscad
|
|
# https://github.com/openscad/openscad/blob/master/cmake/Modules/info.cmake
|
|
|
|
get_target_property(MANIFOLD_COMPILE_OPTIONS manifold COMPILE_OPTIONS)
|
|
get_target_property(MANIFOLD_LINK_OPTIONS manifold LINK_OPTIONS)
|
|
if(MANIFOLD_LINK_OPTIONS STREQUAL "MANIFOLD_LINK_OPTIONS-NOTFOUND")
|
|
set(MANIFOLD_LINK_OPTIONS "")
|
|
endif()
|
|
|
|
message(STATUS "====================================")
|
|
message(STATUS "Manifold Build Configuration Summary")
|
|
message(STATUS "====================================")
|
|
message(STATUS " ")
|
|
if(MXECROSS)
|
|
message(STATUS "Environment: MXE")
|
|
elseif(APPLE)
|
|
message(STATUS "Environment: macOS")
|
|
elseif(WIN32)
|
|
if(MINGW)
|
|
message(STATUS "Environment: msys2")
|
|
else()
|
|
message(STATUS "Environment: Windows")
|
|
endif()
|
|
elseif(LINUX)
|
|
message(STATUS "Environment: Linux")
|
|
elseif(UNIX)
|
|
message(STATUS "Environment: Unknown Unix")
|
|
else()
|
|
message(STATUS "Environment: Unknown")
|
|
endif()
|
|
message(STATUS " ")
|
|
message(STATUS "CMAKE_VERSION: ${CMAKE_VERSION}")
|
|
message(STATUS "CMAKE_TOOLCHAIN_FILE: ${CMAKE_TOOLCHAIN_FILE}")
|
|
message(STATUS "CMAKE_GENERATOR: ${CMAKE_GENERATOR}")
|
|
message(STATUS "CPACK_CMAKE_GENERATOR: ${CPACK_CMAKE_GENERATOR}")
|
|
message(STATUS "CMAKE_BUILD_TYPE: ${CMAKE_BUILD_TYPE}")
|
|
message(STATUS "CMAKE_PREFIX_PATH: ${CMAKE_PREFIX_PATH}")
|
|
message(STATUS "CMAKE_CXX_COMPILER_ID: ${CMAKE_CXX_COMPILER_ID}")
|
|
message(STATUS "CMAKE_CXX_COMPILER_VERSION: ${CMAKE_CXX_COMPILER_VERSION}")
|
|
if(APPLE)
|
|
message(
|
|
STATUS
|
|
"CMAKE_OSX_DEPLOYMENT_TARGET: ${CMAKE_OSX_DEPLOYMENT_TARGET}"
|
|
)
|
|
message(STATUS "CMAKE_OSX_ARCHITECTURES: ${CMAKE_OSX_ARCHITECTURES}")
|
|
endif()
|
|
message(STATUS "BUILD_SHARED_LIBS: ${BUILD_SHARED_LIBS}")
|
|
message(STATUS " ")
|
|
message(STATUS "MANIFOLD_VERSION: ${MANIFOLD_VERSION}")
|
|
message(STATUS "MANIFOLD_PAR: ${MANIFOLD_PAR}")
|
|
message(STATUS "MANIFOLD_TEST: ${MANIFOLD_TEST}")
|
|
message(STATUS "MANIFOLD_DEBUG: ${MANIFOLD_DEBUG}")
|
|
message(STATUS "MANIFOLD_ASSERT: ${MANIFOLD_ASSERT}")
|
|
message(STATUS "MANIFOLD_CBIND: ${MANIFOLD_CBIND}")
|
|
message(STATUS "MANIFOLD_PYBIND: ${MANIFOLD_PYBIND}")
|
|
message(STATUS "MANIFOLD_JSBIND: ${MANIFOLD_JSBIND}")
|
|
message(STATUS "MANIFOLD_FLAGS: ${MANIFOLD_FLAGS}")
|
|
# these two include global flags added through add_compile_options and
|
|
# add_link_options
|
|
message(STATUS "MANIFOLD_COMPILE_OPTIONS: ${MANIFOLD_COMPILE_OPTIONS}")
|
|
message(STATUS "MANIFOLD_LINK_OPTIONS: ${MANIFOLD_LINK_OPTIONS}")
|
|
message(STATUS "MANIFOLD_DOWNLOADS: ${MANIFOLD_DOWNLOADS}")
|
|
message(STATUS "MANIFOLD_USE_BUILTIN_TBB: ${MANIFOLD_USE_BUILTIN_TBB}")
|
|
message(
|
|
STATUS
|
|
"MANIFOLD_USE_BUILTIN_NANOBIND: ${MANIFOLD_USE_BUILTIN_NANOBIND}"
|
|
)
|
|
message(STATUS "MANIFOLD_FUZZ: ${MANIFOLD_FUZZ}")
|
|
message(STATUS "TRACY_ENABLE: ${TRACY_ENABLE}")
|
|
message(STATUS "TRACY_MEMORY_USAGE: ${TRACY_MEMORY_USAGE}")
|
|
message(STATUS "ASSIMP_ENABLE: ${ASSIMP_ENABLE}")
|
|
message(STATUS " ")
|