mirror of
https://github.com/IfcOpenShell/IfcOpenShell.git
synced 2026-09-28 11:18:18 +00:00
Initial setup
This commit is contained in:
+31
-1
@@ -40,6 +40,7 @@ OPTION(BUILD_IFCPYTHON "Build IfcPython." ON)
|
|||||||
OPTION(BUILD_EXAMPLES "Build example applications." ON)
|
OPTION(BUILD_EXAMPLES "Build example applications." ON)
|
||||||
OPTION(BUILD_GEOMSERVER "Build IfcGeomServer executable." ON)
|
OPTION(BUILD_GEOMSERVER "Build IfcGeomServer executable." ON)
|
||||||
OPTION(BUILD_CONVERT "Build IfcConvert executable." ON)
|
OPTION(BUILD_CONVERT "Build IfcConvert executable." ON)
|
||||||
|
OPTION(HDF5_SUPPORT "Enable HDF5 support (requires HDF5, zlib)" ON)
|
||||||
OPTION(USE_VLD "Use Visual Leak Detector for debugging memory leaks, MSVC-only." OFF)
|
OPTION(USE_VLD "Use Visual Leak Detector for debugging memory leaks, MSVC-only." OFF)
|
||||||
OPTION(USE_MMAP "Adds a command line options to parse IFC files from memory mapped files using Boost.Iostreams" OFF)
|
OPTION(USE_MMAP "Adds a command line options to parse IFC files from memory mapped files using Boost.Iostreams" OFF)
|
||||||
OPTION(BUILD_SHARED_LIBS "Build IfcParse and IfcGeom as shared libs (SO/DLL)." OFF)
|
OPTION(BUILD_SHARED_LIBS "Build IfcParse and IfcGeom as shared libs (SO/DLL)." OFF)
|
||||||
@@ -112,6 +113,8 @@ UNIFY_ENVVARS_AND_CACHE(LIBXML2_INCLUDE_DIR)
|
|||||||
UNIFY_ENVVARS_AND_CACHE(LIBXML2_LIBRARIES)
|
UNIFY_ENVVARS_AND_CACHE(LIBXML2_LIBRARIES)
|
||||||
UNIFY_ENVVARS_AND_CACHE(PCRE_LIBRARY_DIR)
|
UNIFY_ENVVARS_AND_CACHE(PCRE_LIBRARY_DIR)
|
||||||
UNIFY_ENVVARS_AND_CACHE(PYTHON_EXECUTABLE)
|
UNIFY_ENVVARS_AND_CACHE(PYTHON_EXECUTABLE)
|
||||||
|
UNIFY_ENVVARS_AND_CACHE(HDF5_INCLUDE_DIR)
|
||||||
|
UNIFY_ENVVARS_AND_CACHE(HDF5_LIBRARY_DIR)
|
||||||
|
|
||||||
if (GLTF_SUPPORT AND BUILD_CONVERT)
|
if (GLTF_SUPPORT AND BUILD_CONVERT)
|
||||||
UNIFY_ENVVARS_AND_CACHE(JSON_INCLUDE_DIR)
|
UNIFY_ENVVARS_AND_CACHE(JSON_INCLUDE_DIR)
|
||||||
@@ -376,6 +379,33 @@ IF(COLLADA_SUPPORT AND BUILD_CONVERT)
|
|||||||
ENDIF()
|
ENDIF()
|
||||||
ENDIF()
|
ENDIF()
|
||||||
|
|
||||||
|
if(HDF5_SUPPORT)
|
||||||
|
IF("${HDF5_INCLUDE_DIR}" STREQUAL "")
|
||||||
|
MESSAGE(STATUS "No HDF5 include directory specified")
|
||||||
|
ElSE()
|
||||||
|
SET(HDF5_INCLUDE_DIR "${HDF5_INCLUDE_DIR}" CACHE FILEPATH "HDF5 header files")
|
||||||
|
ENDIF()
|
||||||
|
|
||||||
|
IF("${HDF5_LIBRARY_DIR}" STREQUAL "")
|
||||||
|
MESSAGE(STATUS "No HDF5 library directory specified")
|
||||||
|
ElSE()
|
||||||
|
SET(HDF5_LIBRARY_DIR "${HDF5_LIBRARY_DIR}" CACHE FILEPATH "HDF5 library files")
|
||||||
|
ENDIF()
|
||||||
|
|
||||||
|
IF(WIN32)
|
||||||
|
# An additional lib- prefix is added by HDF5 to denote static libraries
|
||||||
|
SET(HDF5_LIBRARIES
|
||||||
|
"${HDF5_LIBRARY_DIR}/libhdf5_cpp"
|
||||||
|
"${HDF5_LIBRARY_DIR}/libhdf5"
|
||||||
|
"${HDF5_LIBRARY_DIR}/libzlib")
|
||||||
|
ELSE()
|
||||||
|
SET(HDF5_LIBRARIES
|
||||||
|
"${HDF5_LIBRARY_DIR}/hdf5_cpp"
|
||||||
|
"${HDF5_LIBRARY_DIR}/hdf5"
|
||||||
|
zlib)
|
||||||
|
ENDIF()
|
||||||
|
endif()
|
||||||
|
|
||||||
IF(NOT CMAKE_BUILD_TYPE)
|
IF(NOT CMAKE_BUILD_TYPE)
|
||||||
SET(CMAKE_BUILD_TYPE "Release")
|
SET(CMAKE_BUILD_TYPE "Release")
|
||||||
ENDIF()
|
ENDIF()
|
||||||
@@ -459,7 +489,7 @@ if (IFCCONVERT_DOUBLE_PRECISION)
|
|||||||
endif()
|
endif()
|
||||||
|
|
||||||
INCLUDE_DIRECTORIES(${INCLUDE_DIRECTORIES} ${OCC_INCLUDE_DIR} ${OPENCOLLADA_INCLUDE_DIRS}
|
INCLUDE_DIRECTORIES(${INCLUDE_DIRECTORIES} ${OCC_INCLUDE_DIR} ${OPENCOLLADA_INCLUDE_DIRS}
|
||||||
${Boost_INCLUDE_DIRS} ${LIBXML2_INCLUDE_DIR} ${JSON_INCLUDE_DIR}
|
${Boost_INCLUDE_DIRS} ${LIBXML2_INCLUDE_DIR} ${JSON_INCLUDE_DIR} ${HDF5_INCLUDE_DIR}
|
||||||
)
|
)
|
||||||
|
|
||||||
function(files_for_ifc_version IFC_VERSION RESULT_NAME)
|
function(files_for_ifc_version IFC_VERSION RESULT_NAME)
|
||||||
|
|||||||
@@ -172,6 +172,33 @@ echo.
|
|||||||
|
|
||||||
cd "%DEPS_DIR%"
|
cd "%DEPS_DIR%"
|
||||||
|
|
||||||
|
:HDF5
|
||||||
|
set HDF5_VERSION=1.8.19
|
||||||
|
set HDF5_VERSION_MAJOR=1.8
|
||||||
|
set HDF5_CMAKE_ZIP=CMake-hdf5-%HDF5_VERSION%.zip
|
||||||
|
set HDF5_INSTALL_ZIP_NAME=HDF5-%HDF5_VERSION%-win%ARCH_BITS%
|
||||||
|
if "%ARCH_BITS%"==64. set ARCH_BITS_64=64
|
||||||
|
|
||||||
|
call :DownloadFile http://support.hdfgroup.org/ftp/HDF5/releases/hdf5-%HDF5_VERSION_MAJOR%/hdf5-%HDF5_VERSION%/src/CMake-hdf5-%HDF5_VERSION%.zip "%DEPS_DIR%" %HDF5_CMAKE_ZIP%
|
||||||
|
IF NOT %ERRORLEVEL%==0 GOTO :Error
|
||||||
|
call :ExtractArchive %HDF5_CMAKE_ZIP% "%DEPS_DIR%" "%DEPS_DIR%\CMake-hdf5-%HDF5_VERSION%"
|
||||||
|
IF NOT %ERRORLEVEL%==0 GOTO :Error
|
||||||
|
pushd "%DEPS_DIR%\CMake-hdf5-%HDF5_VERSION%"
|
||||||
|
copy /y "%~dp0patches\HDF5config.cmake" HDF5config.cmake
|
||||||
|
copy /y "%~dp0patches\hdf5-src-CMakeLists.txt" hdf5-%HDF5_VERSION%\CMakeLists.txt
|
||||||
|
REM This will build ZLIB initially linking against dynamic runtime
|
||||||
|
ctest -S HDF5config.cmake,BUILD_GENERATOR=VS%VS_VER%%ARCH_BITS_64% -C %BUILD_CFG% -V -O hdf5.log
|
||||||
|
call :ExtractArchive %HDF5_INSTALL_ZIP_NAME%.zip "%INSTALL_DIR%" "%INSTALL_DIR%\%HDF5_INSTALL_ZIP_NAME%"
|
||||||
|
pushd build\ZLIB-prefix\src\ZLIB
|
||||||
|
copy /y "%~dp0patches\hdf5-zlib-CMakeLists.txt" CMakeLists.txt
|
||||||
|
pushd ..\ZLIB-build
|
||||||
|
cmake ..\ZLIB "-DCMAKE_INSTALL_PREFIX=%INSTALL_DIR%\%HDF5_INSTALL_ZIP_NAME%"
|
||||||
|
cmake --build . --config %BUILD_CFG% --target INSTALL
|
||||||
|
popd
|
||||||
|
popd
|
||||||
|
echo HDF5_VERSION=%HDF5_VERSION%>>"%~dp0\BuildDepsCache-%TARGET_ARCH%.txt"
|
||||||
|
popd
|
||||||
|
|
||||||
:: Note all of the dependencies have appropriate label so that user can easily skip something if wanted
|
:: Note all of the dependencies have appropriate label so that user can easily skip something if wanted
|
||||||
:: by modifying this file and using goto.
|
:: by modifying this file and using goto.
|
||||||
:Boost
|
:Boost
|
||||||
|
|||||||
@@ -91,6 +91,8 @@ set OPENCOLLADA_INCLUDE_DIR=%INSTALL_DIR%\OpenCOLLADA\include\opencollada
|
|||||||
set OPENCOLLADA_LIBRARY_DIR=%INSTALL_DIR%\OpenCOLLADA\lib\opencollada
|
set OPENCOLLADA_LIBRARY_DIR=%INSTALL_DIR%\OpenCOLLADA\lib\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
|
||||||
|
set HDF5_INCLUDE_DIR=%INSTALL_DIR%\HDF5-%HDF5_VERSION%-win%ARCH_BITS%\include
|
||||||
|
set HDF5_LIBRARY_DIR=%INSTALL_DIR%\HDF5-%HDF5_VERSION%-win%ARCH_BITS%\lib
|
||||||
if not defined PY_VER_MAJOR_MINOR set PY_VER_MAJOR_MINOR=34
|
if not defined PY_VER_MAJOR_MINOR set PY_VER_MAJOR_MINOR=34
|
||||||
if not defined PYTHONHOME set PYTHONHOME=%INSTALL_DIR%\Python%PY_VER_MAJOR_MINOR%
|
if not defined PYTHONHOME set PYTHONHOME=%INSTALL_DIR%\Python%PY_VER_MAJOR_MINOR%
|
||||||
set PYTHON_INCLUDE_DIR=%PYTHONHOME%\include
|
set PYTHON_INCLUDE_DIR=%PYTHONHOME%\include
|
||||||
@@ -116,6 +118,8 @@ echo OPENCOLLADA_INCLUDE_DIR = %OPENCOLLADA_INCLUDE_DIR%
|
|||||||
echo OPENCOLLADA_LIBRARY_DIR = %OPENCOLLADA_LIBRARY_DIR%
|
echo OPENCOLLADA_LIBRARY_DIR = %OPENCOLLADA_LIBRARY_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%
|
||||||
|
echo HDF5_INCLUDE_DIR = %HDF5_INCLUDE_DIR%
|
||||||
|
echo HDF5_LIBRARY_DIR = %HDF5_LIBRARY_DIR%
|
||||||
echo PYTHONHOME = %PYTHONHOME%
|
echo PYTHONHOME = %PYTHONHOME%
|
||||||
echo PYTHON_INCLUDE_DIR = %PYTHON_INCLUDE_DIR%
|
echo PYTHON_INCLUDE_DIR = %PYTHON_INCLUDE_DIR%
|
||||||
echo PYTHON_LIBRARY = %PYTHON_LIBRARY%
|
echo PYTHON_LIBRARY = %PYTHON_LIBRARY%
|
||||||
|
|||||||
Reference in New Issue
Block a user