build-deps: manifold to support co-existing Release/Debug builds

This commit is contained in:
Andrej730
2026-09-11 12:04:27 +05:00
parent 81df7982bc
commit 0da17c6515
2 changed files with 10 additions and 11 deletions
+7 -8
View File
@@ -869,16 +869,13 @@ goto %NEXT_DEPENDENCY_LABEL%
set DEPENDENCY_NAME=manifold
set MANIFOLD_VERSION=3.2.1
set DEPENDENCY_DIR=%DEPS_DIR%\manifold-%MANIFOLD_VERSION%
set DEPENDENCY_INSTALL_DIR=%INSTALL_DIR%\manifold-%MANIFOLD_VERSION%
set DEPENDENCY_INSTALL_NAME=manifold-%MANIFOLD_VERSION%
set DEPENDENCY_INSTALL_DIR=%INSTALL_DIR%\%DEPENDENCY_INSTALL_NAME%
set NEXT_DEPENDENCY_LABEL=Successful
:: TODO: test whether manifold links the debug CRT for Debug builds and needs separate
:: Release/Debug install dirs instead of sharing one.
echo MANIFOLD_INSTALL_PATH=%DEPENDENCY_INSTALL_DIR%>>"%~dp0\%BUILD_DEPS_CACHE_PATH%"
IF EXIST "%DEPENDENCY_INSTALL_DIR%" (
echo Found existing "%DEPENDENCY_INSTALL_DIR%", skipping
goto %NEXT_DEPENDENCY_LABEL%
)
call :CheckInstallation
if %ERRORLEVEL%==200 GOTO %NEXT_DEPENDENCY_LABEL%
call :GitCloneAndCheckoutRevision https://github.com/elalish/manifold.git "%DEPENDENCY_DIR%" v%MANIFOLD_VERSION%
IF NOT %ERRORLEVEL%==0 GOTO :Error
@@ -893,12 +890,14 @@ call :RunCMake -DCMAKE_INSTALL_PREFIX="%DEPENDENCY_INSTALL_DIR%" ^
-DMANIFOLD_CBIND=OFF ^
-DMANIFOLD_TEST=OFF ^
-DMANIFOLD_EXPORT=OFF ^
-DMANIFOLD_DOWNLOADS=OFF
-DMANIFOLD_DOWNLOADS=OFF ^
-DCMAKE_DEBUG_POSTFIX="_d"
IF NOT %ERRORLEVEL%==0 GOTO :Error
call :BuildCMakeProject "%DEPENDENCY_DIR%\%BUILD_DIR%" %BUILD_CFG%
IF NOT %ERRORLEVEL%==0 GOTO :Error
call :InstallCMakeProject "%DEPENDENCY_DIR%\%BUILD_DIR%" %BUILD_CFG%
IF NOT %ERRORLEVEL%==0 GOTO :Error
call :MarkInstallation
goto %NEXT_DEPENDENCY_LABEL%
:: :tbb
+3 -3
View File
@@ -1215,11 +1215,9 @@ def install_manifold(
dependency_dir = deps_dir / f"{DEPENDENCY_NAME}-{MANIFOLD_VERSION}"
dependency_install_dir = install_dir / f"{DEPENDENCY_NAME}-{MANIFOLD_VERSION}"
# TODO: test whether manifold links the debug CRT for Debug builds and needs separate
# Release/Debug install dirs instead of sharing one.
build_deps_cache.add_entry("MANIFOLD_INSTALL_PATH", str(dependency_install_dir))
if is_already_installed(dependency_install_dir):
if is_already_installed(dependency_install_dir, expected_build_cfg=build_cfg):
return
git_clone_and_checkout_revision(
@@ -1244,8 +1242,10 @@ def install_manifold(
"-DMANIFOLD_TEST=OFF",
"-DMANIFOLD_EXPORT=OFF",
"-DMANIFOLD_DOWNLOADS=OFF",
"-DCMAKE_DEBUG_POSTFIX=_d",
)
build_path = dependency_dir / vs_cfg_vars.build_dir
build_cmake_project(DEPENDENCY_NAME, build_path, build_cfg, msbuild_multiproc)
install_cmake_project(DEPENDENCY_NAME, build_path, build_cfg)
mark_installation(dependency_install_dir, build_cfg)