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 DEPENDENCY_NAME=manifold
set MANIFOLD_VERSION=3.2.1 set MANIFOLD_VERSION=3.2.1
set DEPENDENCY_DIR=%DEPS_DIR%\manifold-%MANIFOLD_VERSION% 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 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%" echo MANIFOLD_INSTALL_PATH=%DEPENDENCY_INSTALL_DIR%>>"%~dp0\%BUILD_DEPS_CACHE_PATH%"
IF EXIST "%DEPENDENCY_INSTALL_DIR%" ( call :CheckInstallation
echo Found existing "%DEPENDENCY_INSTALL_DIR%", skipping if %ERRORLEVEL%==200 GOTO %NEXT_DEPENDENCY_LABEL%
goto %NEXT_DEPENDENCY_LABEL%
)
call :GitCloneAndCheckoutRevision https://github.com/elalish/manifold.git "%DEPENDENCY_DIR%" v%MANIFOLD_VERSION% call :GitCloneAndCheckoutRevision https://github.com/elalish/manifold.git "%DEPENDENCY_DIR%" v%MANIFOLD_VERSION%
IF NOT %ERRORLEVEL%==0 GOTO :Error IF NOT %ERRORLEVEL%==0 GOTO :Error
@@ -893,12 +890,14 @@ call :RunCMake -DCMAKE_INSTALL_PREFIX="%DEPENDENCY_INSTALL_DIR%" ^
-DMANIFOLD_CBIND=OFF ^ -DMANIFOLD_CBIND=OFF ^
-DMANIFOLD_TEST=OFF ^ -DMANIFOLD_TEST=OFF ^
-DMANIFOLD_EXPORT=OFF ^ -DMANIFOLD_EXPORT=OFF ^
-DMANIFOLD_DOWNLOADS=OFF -DMANIFOLD_DOWNLOADS=OFF ^
-DCMAKE_DEBUG_POSTFIX="_d"
IF NOT %ERRORLEVEL%==0 GOTO :Error IF NOT %ERRORLEVEL%==0 GOTO :Error
call :BuildCMakeProject "%DEPENDENCY_DIR%\%BUILD_DIR%" %BUILD_CFG% call :BuildCMakeProject "%DEPENDENCY_DIR%\%BUILD_DIR%" %BUILD_CFG%
IF NOT %ERRORLEVEL%==0 GOTO :Error IF NOT %ERRORLEVEL%==0 GOTO :Error
call :InstallCMakeProject "%DEPENDENCY_DIR%\%BUILD_DIR%" %BUILD_CFG% call :InstallCMakeProject "%DEPENDENCY_DIR%\%BUILD_DIR%" %BUILD_CFG%
IF NOT %ERRORLEVEL%==0 GOTO :Error IF NOT %ERRORLEVEL%==0 GOTO :Error
call :MarkInstallation
goto %NEXT_DEPENDENCY_LABEL% goto %NEXT_DEPENDENCY_LABEL%
:: :tbb :: :tbb
+3 -3
View File
@@ -1215,11 +1215,9 @@ def install_manifold(
dependency_dir = deps_dir / f"{DEPENDENCY_NAME}-{MANIFOLD_VERSION}" dependency_dir = deps_dir / f"{DEPENDENCY_NAME}-{MANIFOLD_VERSION}"
dependency_install_dir = install_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)) 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 return
git_clone_and_checkout_revision( git_clone_and_checkout_revision(
@@ -1244,8 +1242,10 @@ def install_manifold(
"-DMANIFOLD_TEST=OFF", "-DMANIFOLD_TEST=OFF",
"-DMANIFOLD_EXPORT=OFF", "-DMANIFOLD_EXPORT=OFF",
"-DMANIFOLD_DOWNLOADS=OFF", "-DMANIFOLD_DOWNLOADS=OFF",
"-DCMAKE_DEBUG_POSTFIX=_d",
) )
build_path = dependency_dir / vs_cfg_vars.build_dir build_path = dependency_dir / vs_cfg_vars.build_dir
build_cmake_project(DEPENDENCY_NAME, build_path, build_cfg, msbuild_multiproc) build_cmake_project(DEPENDENCY_NAME, build_path, build_cfg, msbuild_multiproc)
install_cmake_project(DEPENDENCY_NAME, build_path, build_cfg) install_cmake_project(DEPENDENCY_NAME, build_path, build_cfg)
mark_installation(dependency_install_dir, build_cfg)