Commit Graph

389 Commits

Author SHA1 Message Date
Andrej730 e4c49ce57b Fix missing Serializers target when building just IfcGeomServer
Noticed testing command from #7277. I believe Serializers it not actually needed to build IfcGeomServer.

Example error:
```
/usr/bin/ld: cannot find -lSerializers: No such file or directory
```
2025-10-31 18:50:52 +05:00
Andrej730 061554d921 cmake - deduplicate ccache set_property code 2025-10-28 17:17:17 +05:00
Andrej730 e833d0cd13 build-all - wasm to use packages instead of providing includes/libs paths explicitly
More complicated than I anticipated😅

Details
https://discourse.cmake.org/t/provide-absolute-paths-to-dependencies-with-cmake-find-root-path-search-during-cross-compilation-wasm/15241
2025-10-28 17:17:16 +05:00
Andrej730 0a5388f386 ifcwrap cmake - migrate to FindPython
Also simplify run-cmake to just prefix the path, instead of providing 3 paths explicitly.
2025-10-28 17:17:15 +05:00
Andrej730 921241fbdd build-deps - include ccache for convenience 2025-10-28 17:17:15 +05:00
Bruno Postle e1b73ef0ef Fix build broken by a6d20c0 - link iostreams
FileReader.cpp now uses boost::iostreams::mapped_file regardless of
USE_MMAP setting
2025-10-24 15:35:19 +01:00
Thomas Krijnen e8a382b02a Only use cyclic dependencies when amongst static libs #7180 2025-10-09 13:24:31 +02:00
Thomas Krijnen 97dd37b345 Fix circular definition issue in cmake #7180 2025-10-08 15:25:38 +02:00
Andrej730 9b24f54f0d cmake - override CGAL_Boost_USE_STATIC_LIBS
The issue was with ci.yml - it was using system boost shared libraries (since Boost_USE_STATIC_LIBS by default is OFF), but CGALConfig was overriding leading to compilation issues.
2025-10-04 21:40:06 +05:00
Andrej730 785cf56621 cmake - specify cxx component for hdf5 package
by default it's targeting `C` and this was part of the issue why ci.yml was failing
2025-10-04 21:40:06 +05:00
Andrej730 26c68c00b7 cmake - proceed to package search if HDF5_LIBRARY_DIR not provided
Fixes issue with ci.yml
2025-10-04 21:40:05 +05:00
Osyotr 066326ab3b Fix warning C4275
It's not enough to disable this warning by adding /wd4257 at build time because it's triggered when the library is consumed.
2025-10-03 18:12:56 +02:00
Thomas Krijnen 804a670454 Revert revert 2025-10-03 09:04:43 +02:00
Thomas Krijnen 92f9d5f506 Writing .ifcxml is not supported #7181 2025-10-02 20:28:17 +02:00
Andrej730 babf95785c Move IFCOPENSHELL_VERSION definition from IfcParse.h
To prevent recompiling all files that have IfcParse.h include and improve caching.
2025-09-30 19:17:46 +05:00
Andrej730 bf4aa8cbb1 cmake - link mappings against IfcGeom
Not sure why it occurred only now, maybe after recent changes with shared libraries this problem just got more apparent and previously it was masked by some other library after mappings also using IfcGeom.
But the issue was that mapping were not linked against IfcGeom, though it's symbols were used in them. E.g. IfcSectionedSurface.cpp was using `has_loft` from `infra_sweep_helper`.
Issue occurred only on Linux - msvc and clang are less strict and probably do multiple passes to fetch symbols.

Example errors:
```
libgeometry_mapping_ifc4x3.a(IfcSectionedSolidHorizontal.cpp.o): In function `ifcopenshell::geometry::mapping_Ifc4x3::map_impl(Ifc4x3::IfcSectionedSolidHorizontal const*)':
IfcSectionedSolidHorizontal.cpp:(.text._ZN12ifcopenshell8geometry14mapping_Ifc4x38map_implEPKN6Ifc4x327IfcSectionedSolidHorizontalE+0x19a4): undefined reference to `ifcopenshell::geometry::make_loft(ifcopenshell::geometry::Settings const&, IfcUtil::IfcBaseClass const*, std::shared_ptr<ifcopenshell::geometry::taxonomy::function_item> const&, std::vector<ifcopenshell::geometry::cross_section, std::allocator<ifcopenshell::geometry::cross_section> >&)'
libgeometry_mapping_ifc4x3.a(IfcSectionedSurface.cpp.o): In function `ifcopenshell::geometry::mapping_Ifc4x3::map_impl(Ifc4x3::IfcSectionedSurface const*)':
IfcSectionedSurface.cpp:(.text._ZN12ifcopenshell8geometry14mapping_Ifc4x38map_implEPKN6Ifc4x319IfcSectionedSurfaceE+0x19c4): undefined reference to `ifcopenshell::geometry::make_loft(ifcopenshell::geometry::Settings const&, IfcUtil::IfcBaseClass const*, std::shared_ptr<ifcopenshell::geometry::taxonomy::function_item> const&, std::vector<ifcopenshell::geometry::cross_section, std::allocator<ifcopenshell::geometry::cross_section> >&)'
libgeometry_mapping_ifc4x3_tc1.a(IfcSectionedSolidHorizontal.cpp.o): In function `ifcopenshell::geometry::mapping_Ifc4x3_tc1::map_impl(Ifc4x3_tc1::IfcSectionedSolidHorizontal const*)':
IfcSectionedSolidHorizontal.cpp:(.text._ZN12ifcopenshell8geometry18mapping_Ifc4x3_tc18map_implEPKN10Ifc4x3_tc127IfcSectionedSolidHorizontalE+0x19a4): undefined reference to `ifcopenshell::geometry::make_loft(ifcopenshell::geometry::Settings const&, IfcUtil::IfcBaseClass const*, std::shared_ptr<ifcopenshell::geometry::taxonomy::function_item> const&, std::vector<ifcopenshell::geometry::cross_section, std::allocator<ifcopenshell::geometry::cross_section> >&)'
libgeometry_mapping_ifc4x3_tc1.a(IfcSectionedSurface.cpp.o): In function `ifcopenshell::geometry::mapping_Ifc4x3_tc1::map_impl(Ifc4x3_tc1::IfcSectionedSurface const*)':
IfcSectionedSurface.cpp:(.text._ZN12ifcopenshell8geometry18mapping_Ifc4x3_tc18map_implEPKN10Ifc4x3_tc119IfcSectionedSurfaceE+0x19c4): undefined reference to `ifcopenshell::geometry::make_loft(ifcopenshell::geometry::Settings const&, IfcUtil::IfcBaseClass const*, std::shared_ptr<ifcopenshell::geometry::taxonomy::function_item> const&, std::vector<ifcopenshell::geometry::cross_section, std::allocator<ifcopenshell::geometry::cross_section> >&)'
libgeometry_mapping_ifc4x3_add1.a(IfcSectionedSolidHorizontal.cpp.o): In function `ifcopenshell::geometry::mapping_Ifc4x3_add1::map_impl(Ifc4x3_add1::IfcSectionedSolidHorizontal const*)':
IfcSectionedSolidHorizontal.cpp:(.text._ZN12ifcopenshell8geometry19mapping_Ifc4x3_add18map_implEPKN11Ifc4x3_add127IfcSectionedSolidHorizontalE+0x19a4): undefined reference to `ifcopenshell::geometry::make_loft(ifcopenshell::geometry::Settings const&, IfcUtil::IfcBaseClass const*, std::shared_ptr<ifcopenshell::geometry::taxonomy::function_item> const&, std::vector<ifcopenshell::geometry::cross_section, std::allocator<ifcopenshell::geometry::cross_section> >&)'
libgeometry_mapping_ifc4x3_add1.a(IfcSectionedSurface.cpp.o):IfcSectionedSurface.cpp:(.text._ZN12ifcopenshell8geometry19mapping_Ifc4x3_add18map_implEPKN11Ifc4x3_add119IfcSectionedSurfaceE+0x19c4): more undefined references to `ifcopenshell::geometry::make_loft(ifcopenshell::geometry::Settings const&, IfcUtil::IfcBaseClass const*, std::shared_ptr<ifcopenshell::geometry::taxonomy::function_item> const&, std::vector<ifcopenshell::geometry::cross_section, std::allocator<ifcopenshell::geometry::cross_section> >&)' follow
collect2: error: ld returned 1 exit status
```
2025-09-30 13:10:59 +05:00
Andrej730 2264e69a1e cmake - remove redundant msvc check for ccache (e02d6c3f) 2025-09-29 17:39:43 +05:00
Andrej730 e02d6c3f4b cmake - support ccache for msvc (required cmake 3.25+)
As described in https://github.com/ccache/ccache/wiki/MS-Visual-Studio#usage-with-cmake
2025-09-29 16:43:29 +05:00
Andrej730 ec0abb7b37 cmake - fix missing installation for ifcgeom/serialization headers
Was trying to reproduce IfcOpenHouse example outside of IfcOpenShell project and noticed that it's referring to a header not present in installation.
2025-09-29 16:43:29 +05:00
Thomas Krijnen 2d59bb9cb8 Remove dependency on stdc++fs lib in cmake #7131 2025-09-29 11:30:40 +02:00
Andrej730 9cff6c87f0 cmake - don't fail silently with ADD_COMMIT_SHA and missing git 2025-09-26 21:53:32 +05:00
Andrej730 deedffa84e build-all.py - alter rocksdb's deps search only on Windows (da4508e) 2025-09-26 21:53:31 +05:00
Thomas Krijnen 0d4819d6e7 dllimport/export #6926 2025-09-26 14:30:52 +02:00
Andrej730 da4508ef9a cmake - fix issue rocksdb locating zstd on Windows
See https://github.com/facebook/rocksdb/pull/13975 for the details.
2025-09-19 18:44:18 +05:00
Andrej730 3d2f361585 cmake - fix error with occt package (1857d0624) 2025-09-18 18:36:48 +05:00
Andrej730 4505ed1c98 cmake - remove trailing spaces 2025-09-18 18:36:48 +05:00
Andrej730 4cbad8804f cmake - use OpenCASCADE_VERSION as a version source if available 2025-09-18 18:36:48 +05:00
Andrej730 c0ec2e7e2b cmake - use find_package if explicit paths are not provided 2025-09-18 17:53:35 +05:00
Andrej730 ec43415822 cmake - support find_package for json 2025-09-18 17:53:34 +05:00
Andrej730 235eb3c83c build-all.py - use find_package for eigen3 2025-09-18 17:53:34 +05:00
Andrej730 1857d06245 cmake - use find_package for occ if variables are not provided
cmake configs seems to be provided with the default installation, so `find_package` should do the job that `find_path` and `find_library` did previously.
2025-09-18 17:53:33 +05:00
Andrej730 867852688e cmake - use find_package for hdf5 as a general fallback
Previously we were setting `HDF5_LIBRARIES` explicitly, but I'm not sure if really worked, since we never set `HDF5_INCLUDE_DIR` and user would have to provide it manually either way.
`find_package(HDF5)` will search for default paths and will set `HDF5_LIBRARIES` and `HDF5_INCLUDE_DIR` automatically.
2025-09-18 14:07:58 +05:00
Andrej730 d0d5f972df cmake - use find_package for rocksdb and zstd 2025-09-18 14:07:58 +05:00
Thomas Krijnen 75e1d0e3c7 Update CMakeLists.txt - wasm build add "4x3_add2" 2025-09-14 11:38:33 +02:00
Andrej730 24bbe9fb69 cmake - fix typo 2025-09-12 20:11:07 +05:00
Thomas Krijnen 41f9b1522e Pass ZSTD to ifopsh build 2025-09-11 13:56:11 +02:00
Thomas Krijnen ee632b7c37 Cmake libxml compatibility 2025-09-10 10:36:08 +02:00
Thomas Krijnen f86e5abb85 Cmake libxml compatibility 2025-09-10 10:17:59 +02:00
Thomas Krijnen a925226cbc Merge remote-tracking branch 'origin/v0.8.0' into tfk-rocksdb-storage 2025-09-10 10:06:01 +02:00
Andrej730 14ae8680e3 Fix find_package libxml compilation for more recent versions
Noticed compiling against libxml2 2.13.8 package that it's trying to use dynamic libs by default if `LIBXML_STATIC` is not defined. Adding `LIBXML2_DEFINITIONS` helps.
2025-09-05 19:10:36 +05:00
Andrej730 f016d72787 cmake - support find_package(CONFIG) for libxml2 dependency 2025-09-04 19:09:19 +05:00
Thomas Krijnen 59a5bf2344 RocksDB zstd encryption; cache tuning; readonly open mode 2025-09-03 11:11:55 +02:00
Thomas Krijnen 18ad13cb8b Merge remote-tracking branch 'origin/v0.8.0' into tfk-rocksdb-storage 2025-08-31 16:06:07 +02:00
Andrej730 b1a0b7a7d0 cmake - also try to use find_package(OpenCOLLADA) 2025-08-29 19:44:03 +05:00
Thomas Krijnen ef10c23842 -lstdc++fs on gcc < 9 2025-08-28 15:23:19 +02:00
Thomas Krijnen 4e71ae7d85 Enable rocksdb in ci.yml 2025-08-26 14:03:38 +02:00
Thomas Krijnen 9d9e9ed4cb Merge remote-tracking branch 'origin/v0.8.0' into tfk-rocksdb-storage 2025-08-26 10:17:57 +02:00
Andrej730 3ef5b13bf8 cmake - also try find_package(OpenCASCADE) 2025-08-19 19:06:21 +05:00
Andrej730 f1114745fb cmake - fix OCC_INCLUDE_DIR strequal check working only once
If OCC_INCLUDE_DIR is not provided, then first it would pass, but the next time wouldn't since variable value would be 'OCC_INCLUDE_DIR-NOTFOUND'.
2025-08-19 19:06:21 +05:00
Andrej730 6bf39b3d6a cmake - also use find_package to find hdf5 2025-08-19 19:06:20 +05:00