mirror of
https://github.com/IfcOpenShell/IfcOpenShell.git
synced 2026-08-09 09:21:46 +00:00
build-deps - use OCC_INSTALL_DIR instead of includes/libs path
This commit is contained in:
@@ -36,6 +36,12 @@ if(NOT OCC_INCLUDE_DIR AND NOT OCC_LIBRARY_DIR)
|
|||||||
|
|
||||||
find_package(OpenCASCADE CONFIG REQUIRED)
|
find_package(OpenCASCADE CONFIG REQUIRED)
|
||||||
message(STATUS "Found OpenCASCADE config: ${OpenCASCADE_DIR}")
|
message(STATUS "Found OpenCASCADE config: ${OpenCASCADE_DIR}")
|
||||||
|
|
||||||
|
if(OpenCASCADE_VERSION VERSION_LESS "7.9.0")
|
||||||
|
# Bug in OCCT cmake configs < 7.9.0 - missing linked library.
|
||||||
|
list(APPEND OpenCASCADE_LIBRARIES WSOCK32.lib)
|
||||||
|
endif()
|
||||||
|
|
||||||
return()
|
return()
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
|||||||
+20
-22
@@ -186,8 +186,6 @@ IF DEFINED PYTHON_VERSION (
|
|||||||
)
|
)
|
||||||
|
|
||||||
:: VERSION DERIVATIONS
|
:: VERSION DERIVATIONS
|
||||||
set OCC_INCLUDE_DIR=%INSTALL_DIR%\opencascade-%OCCT_VERSION%\inc>>"%~dp0\%BUILD_DEPS_CACHE_PATH%"
|
|
||||||
set OCC_LIBRARY_DIR=%INSTALL_DIR%\opencascade-%OCCT_VERSION%\win%ARCH_BITS%\lib>>"%~dp0\%BUILD_DEPS_CACHE_PATH%"
|
|
||||||
IF "%IFCOS_INSTALL_PYTHON%"=="TRUE" (
|
IF "%IFCOS_INSTALL_PYTHON%"=="TRUE" (
|
||||||
set PYTHONHOME=%DEPS_DIR%\python.%PYTHON_VERSION%\tools
|
set PYTHONHOME=%DEPS_DIR%\python.%PYTHON_VERSION%\tools
|
||||||
)
|
)
|
||||||
@@ -197,8 +195,6 @@ IF "%IFCOS_INSTALL_PYTHON%"=="TRUE" (
|
|||||||
:: executed by jumping (using goto) to different labels.
|
:: executed by jumping (using goto) to different labels.
|
||||||
if defined GEN_SHORTHAND echo GEN_SHORTHAND=%GEN_SHORTHAND%>"%~dp0\%BUILD_DEPS_CACHE_PATH%"
|
if defined GEN_SHORTHAND echo GEN_SHORTHAND=%GEN_SHORTHAND%>"%~dp0\%BUILD_DEPS_CACHE_PATH%"
|
||||||
echo HDF5_VERSION=%HDF5_VERSION%>>"%~dp0\%BUILD_DEPS_CACHE_PATH%"
|
echo HDF5_VERSION=%HDF5_VERSION%>>"%~dp0\%BUILD_DEPS_CACHE_PATH%"
|
||||||
echo OCC_INCLUDE_DIR=%OCC_INCLUDE_DIR%>>"%~dp0\%BUILD_DEPS_CACHE_PATH%"
|
|
||||||
echo OCC_LIBRARY_DIR=%OCC_LIBRARY_DIR%>>"%~dp0\%BUILD_DEPS_CACHE_PATH%"
|
|
||||||
IF "%IFCOS_INSTALL_PYTHON%"=="TRUE" (
|
IF "%IFCOS_INSTALL_PYTHON%"=="TRUE" (
|
||||||
echo PYTHONHOME=%PYTHONHOME%>>"%~dp0\%BUILD_DEPS_CACHE_PATH%"
|
echo PYTHONHOME=%PYTHONHOME%>>"%~dp0\%BUILD_DEPS_CACHE_PATH%"
|
||||||
)
|
)
|
||||||
@@ -481,9 +477,13 @@ call :MarkInstallation
|
|||||||
SET OCCT_VER=V%OCCT_VERSION:.=_%
|
SET OCCT_VER=V%OCCT_VERSION:.=_%
|
||||||
|
|
||||||
set DEPENDENCY_NAME=OpenCASCADE
|
set DEPENDENCY_NAME=OpenCASCADE
|
||||||
set OCCT_DEPENDENCY_INSTALL_NAME=opencascade-%OCCT_VERSION%
|
:: `new-layout` suffix can be removed on the next OCCT version update
|
||||||
|
:: it's needed to separate legacy layout installation from the new one.
|
||||||
|
set OCCT_DEPENDENCY_INSTALL_NAME=opencascade-%OCCT_VERSION%-new-layout
|
||||||
set DEPENDENCY_INSTALL_NAME=%OCCT_DEPENDENCY_INSTALL_NAME%
|
set DEPENDENCY_INSTALL_NAME=%OCCT_DEPENDENCY_INSTALL_NAME%
|
||||||
|
set DEPENDENCY_INSTALL_DIR=%INSTALL_DIR%\%DEPENDENCY_INSTALL_NAME%
|
||||||
set NEXT_DEPENDENCY_LABEL=Python
|
set NEXT_DEPENDENCY_LABEL=Python
|
||||||
|
echo OCC_INSTALL_DIR=%DEPENDENCY_INSTALL_DIR%>>"%~dp0\%BUILD_DEPS_CACHE_PATH%"
|
||||||
|
|
||||||
call :CheckInstallation
|
call :CheckInstallation
|
||||||
if %ERRORLEVEL%==200 GOTO %NEXT_DEPENDENCY_LABEL%
|
if %ERRORLEVEL%==200 GOTO %NEXT_DEPENDENCY_LABEL%
|
||||||
@@ -525,7 +525,10 @@ findstr IfcOpenShell "%DEPENDENCY_DIR%\CMakeLists.txt">NUL
|
|||||||
if not %ERRORLEVEL%==0 goto :Error
|
if not %ERRORLEVEL%==0 goto :Error
|
||||||
|
|
||||||
cd "%DEPENDENCY_DIR%"
|
cd "%DEPENDENCY_DIR%"
|
||||||
call :RunCMake -DINSTALL_DIR="%INSTALL_DIR%\%DEPENDENCY_INSTALL_NAME%" -DBUILD_LIBRARY_TYPE="Static" -DCMAKE_DEBUG_POSTFIX=d ^
|
:: TODO: remove CMAKE_DEBUG_POSTFIX setting later.
|
||||||
|
:: Temporarily explicitly set `CMAKE_DEBUG_POSTFIX` to empty to override it's perviously being set to `d`.
|
||||||
|
:: OCCT don't need it, since it's layout is separating debug and release build by different folders.
|
||||||
|
call :RunCMake -DINSTALL_DIR="%DEPENDENCY_INSTALL_DIR%" -DBUILD_LIBRARY_TYPE="Static" -DCMAKE_DEBUG_POSTFIX="" ^
|
||||||
-DBUILD_MODULE_Draw=0 -D3RDPARTY_FREETYPE_DIR="%INSTALL_DIR%\freetype"
|
-DBUILD_MODULE_Draw=0 -D3RDPARTY_FREETYPE_DIR="%INSTALL_DIR%\freetype"
|
||||||
if not %ERRORLEVEL%==0 goto :Error
|
if not %ERRORLEVEL%==0 goto :Error
|
||||||
|
|
||||||
@@ -538,28 +541,23 @@ IF %ARCH_BITS%==32 (
|
|||||||
|
|
||||||
call :BuildSolution "%DEPENDENCY_DIR%\%BUILD_DIR%\OCCT.sln" %BUILD_CFG%
|
call :BuildSolution "%DEPENDENCY_DIR%\%BUILD_DIR%\OCCT.sln" %BUILD_CFG%
|
||||||
if not %ERRORLEVEL%==0 goto :Error
|
if not %ERRORLEVEL%==0 goto :Error
|
||||||
|
|
||||||
|
:: If `inc` is present in installation folder, then installation takes much longer
|
||||||
|
:: See https://github.com/Open-Cascade-SAS/OCCT/issues/901
|
||||||
|
powershell -c "$path = '%DEPENDENCY_INSTALL_DIR%\inc'; if (Test-Path $path) { Remove-Item -Recurse -Force $path }"
|
||||||
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
|
||||||
|
|
||||||
|
:: Fix upstream bug in cmake config file with unescaped quotes preventing configuration.
|
||||||
|
:: The issue is fixed in 7.9.0+.
|
||||||
|
:: See https://github.com/Open-Cascade-SAS/OCCT/pull/373
|
||||||
|
powershell -c "$path='%DEPENDENCY_INSTALL_DIR%\cmake\OpenCASCADEConfig.cmake'; (Get-Content $path) -replace '/wd\"(\d+)\"','/wd$1' | Set-Content $path"
|
||||||
|
if not %ERRORLEVEL%==0 goto :Error
|
||||||
|
|
||||||
call :MarkInstallation
|
call :MarkInstallation
|
||||||
|
|
||||||
SET COMPILE_WITH_WPO=FALSE
|
SET COMPILE_WITH_WPO=FALSE
|
||||||
|
|
||||||
:: Use a single lib directory for release and debug libraries as is done with OCE
|
|
||||||
if not exist "%OCC_LIBRARY_DIR%". mkdir "%OCC_LIBRARY_DIR%"
|
|
||||||
:: NOTE OCCT (at least occt-V7_0_0-9059ca1) directory creation code is hardcoded and doesn't seem handle future VC versions
|
|
||||||
set OCCT_VC_VER=%VC_VER%
|
|
||||||
IF %OCCT_VC_VER% GTR 14 (
|
|
||||||
set OCCT_VC_VER=14
|
|
||||||
)
|
|
||||||
move /y "%INSTALL_DIR%\opencascade-%OCCT_VERSION%\win%ARCH_BITS%\vc%OCCT_VC_VER%\libi\*.*" "%OCC_LIBRARY_DIR%"
|
|
||||||
move /y "%INSTALL_DIR%\opencascade-%OCCT_VERSION%\win%ARCH_BITS%\vc%OCCT_VC_VER%\libd\*.*" "%OCC_LIBRARY_DIR%"
|
|
||||||
move /y "%INSTALL_DIR%\opencascade-%OCCT_VERSION%\win%ARCH_BITS%\vc%OCCT_VC_VER%\lib\*.*" "%OCC_LIBRARY_DIR%"
|
|
||||||
rmdir /s /q "%INSTALL_DIR%\opencascade-%OCCT_VERSION%\win%ARCH_BITS%\vc%OCCT_VC_VER%"
|
|
||||||
:: Removed unneeded bits
|
|
||||||
rmdir /s /q "%INSTALL_DIR%\opencascade-%OCCT_VERSION%\data"
|
|
||||||
rmdir /s /q "%INSTALL_DIR%\opencascade-%OCCT_VERSION%\samples"
|
|
||||||
del "%INSTALL_DIR%\opencascade-%OCCT_VERSION%\*.bat"
|
|
||||||
|
|
||||||
:Python
|
:Python
|
||||||
set DEPENDENCY_NAME=Python %PYTHON_VERSION%
|
set DEPENDENCY_NAME=Python %PYTHON_VERSION%
|
||||||
set DEPENDENCY_DIR=N/A
|
set DEPENDENCY_DIR=N/A
|
||||||
|
|||||||
+3
-2
@@ -89,8 +89,6 @@ if not defined BOOST_INSTALL_DIR (
|
|||||||
set BOOST_INSTALL_DIR=%DEPS_DIR%\boost_1_86_0\stage\%GEN_SHORTHAND%
|
set BOOST_INSTALL_DIR=%DEPS_DIR%\boost_1_86_0\stage\%GEN_SHORTHAND%
|
||||||
)
|
)
|
||||||
|
|
||||||
if not defined OCC_INCLUDE_DIR set OCC_INCLUDE_DIR=%INSTALL_DIR%\oce\include\oce
|
|
||||||
if not defined OCC_LIBRARY_DIR set OCC_LIBRARY_DIR=%INSTALL_DIR%\oce\Win%ARCH_BITS%\lib
|
|
||||||
set OPENCOLLADA_INSTALL_DIR=%INSTALL_DIR%\OpenCOLLADA
|
set OPENCOLLADA_INSTALL_DIR=%INSTALL_DIR%\OpenCOLLADA
|
||||||
set LIBXML2_INCLUDE_DIR=%DEPS_DIR%\OpenCOLLADA\Externals\LibXML\include
|
set LIBXML2_INCLUDE_DIR=%DEPS_DIR%\OpenCOLLADA\Externals\LibXML\include
|
||||||
set LIBXML2_LIBRARIES=%INSTALL_DIR%\OpenCOLLADA\lib\opencollada\xml.lib
|
set LIBXML2_LIBRARIES=%INSTALL_DIR%\OpenCOLLADA\lib\opencollada\xml.lib
|
||||||
@@ -133,8 +131,10 @@ echo.
|
|||||||
call cecho.cmd 0 10 "Dependency Environment Variables for %PROJECT_NAME%:"
|
call cecho.cmd 0 10 "Dependency Environment Variables for %PROJECT_NAME%:"
|
||||||
echo BOOST_INSTALL_DIR = %BOOST_INSTALL_DIR%
|
echo BOOST_INSTALL_DIR = %BOOST_INSTALL_DIR%
|
||||||
echo BOOST_LIBRARYDIR = %BOOST_LIBRARYDIR%
|
echo BOOST_LIBRARYDIR = %BOOST_LIBRARYDIR%
|
||||||
|
:: OCC_INCLUDE_DIR / OCC_LIBRARY_DIR are legacy vars, they're not defined by build-deps.cmd anymore.
|
||||||
echo OCC_INCLUDE_DIR = %OCC_INCLUDE_DIR%
|
echo OCC_INCLUDE_DIR = %OCC_INCLUDE_DIR%
|
||||||
echo OCC_LIBRARY_DIR = %OCC_LIBRARY_DIR%
|
echo OCC_LIBRARY_DIR = %OCC_LIBRARY_DIR%
|
||||||
|
echo OCC_INSTALL_DIR = %OCC_INSTALL_DIR%
|
||||||
echo OPENCOLLADA_INSTALL_DIR = %OPENCOLLADA_INSTALL_DIR%
|
echo OPENCOLLADA_INSTALL_DIR = %OPENCOLLADA_INSTALL_DIR%
|
||||||
echo LIBXML2_INCLUDE_DIR = %LIBXML2_INCLUDE_DIR%
|
echo LIBXML2_INCLUDE_DIR = %LIBXML2_INCLUDE_DIR%
|
||||||
echo LIBXML2_LIBRARIES = %LIBXML2_LIBRARIES%
|
echo LIBXML2_LIBRARIES = %LIBXML2_LIBRARIES%
|
||||||
@@ -171,6 +171,7 @@ set CMAKE_PREFIX_PATH=%HDF5_INSTALL_DIR%;%OPENCOLLADA_INSTALL_DIR%;%SWIG_INSTALL
|
|||||||
set CMAKE_PREFIX_PATH=%CMAKE_PREFIX_PATH%;%ROCKSDB_INSTALL_DIR%;%ZSTD_INSTALL_DIR%
|
set CMAKE_PREFIX_PATH=%CMAKE_PREFIX_PATH%;%ROCKSDB_INSTALL_DIR%;%ZSTD_INSTALL_DIR%
|
||||||
set CMAKE_PREFIX_PATH=%CMAKE_PREFIX_PATH%;%BOOST_INSTALL_DIR%;%CCACHE_INSTALL_DIR%
|
set CMAKE_PREFIX_PATH=%CMAKE_PREFIX_PATH%;%BOOST_INSTALL_DIR%;%CCACHE_INSTALL_DIR%
|
||||||
set CMake_PREFIX_PATH=%CMAKE_PREFIX_PATH%;%USD_INSTALL_DIR%;%TBB_INSTALL_DIR%
|
set CMake_PREFIX_PATH=%CMAKE_PREFIX_PATH%;%USD_INSTALL_DIR%;%TBB_INSTALL_DIR%
|
||||||
|
set CMAKE_PREFIX_PATH=%CMAKE_PREFIX_PATH%;%OCC_INSTALL_DIR%
|
||||||
|
|
||||||
:: Not fully supported - not available from install-ifcopenshell
|
:: Not fully supported - not available from install-ifcopenshell
|
||||||
:: and some logs are still showing Visual Studio generators.
|
:: and some logs are still showing Visual Studio generators.
|
||||||
|
|||||||
+3
-6
@@ -50,12 +50,9 @@ function mark_based_on_artifacts {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
elseif ($dependency_name -eq "OpenCASCADE") {
|
elseif ($dependency_name -eq "OpenCASCADE") {
|
||||||
if ($env:BUILD_CFG -eq "Debug") {
|
# New OCCT folder layout was introduced after marker files were added,
|
||||||
$artifact = "win64\lib\TKerneld.lib"
|
# so installation don't need artifact-based detection.
|
||||||
}
|
return
|
||||||
else {
|
|
||||||
$artifact = "win64\lib\TKernel.lib"
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
elseif ($dependency_name -eq "rocksdb") {
|
elseif ($dependency_name -eq "rocksdb") {
|
||||||
if ($env:BUILD_CFG -eq "Debug") {
|
if ($env:BUILD_CFG -eq "Debug") {
|
||||||
|
|||||||
Reference in New Issue
Block a user