voxelization_toolkit icon indicating copy to clipboard operation
voxelization_toolkit copied to clipboard

Is there a bot build?

Open Moult opened this issue 1 year ago • 4 comments

I don't have a conda environment, is there a build that I can get that doesn't depend on conda?

Moult avatar Mar 07 '23 03:03 Moult

Ran across this when compiling. I managed to fix it by updating this line in cmakelists:

				set(SCHEMA_VERSIONS "2x3" "4" "4x1" "4x2" "4x3_rc1" "4x3_rc2" "4x3_rc3" "4x3_rc4" "4x3" "4x3_add1" "4x3_tc1")

and this line:

		set(IFC_LIBRARY_NAMES IfcGeom IfcGeom_ifc2x3 IfcGeom_ifc4 IfcGeom_ifc4x1
		                      IfcGeom_ifc4x2 IfcGeom_ifc4x3_rc1 IfcGeom_ifc4x3_rc2
		                      IfcGeom_ifc4x3_rc3 IfcGeom_ifc4x3_rc4 IfcGeom_ifc4x3 IfcGeom_ifc4x3_add1 IfcGeom_ifc4x3_tc1
		                      IfcParse)

... basically to include 4x3_add1 and 4x3_tc1. Not sure if that fix is legitimate though :)

[  9%] Building CXX object CMakeFiles/libvoxel.dir/tribox3.cpp.o
[ 18%] Building CXX object CMakeFiles/libvoxel.dir/factory.cpp.o
[ 36%] Building CXX object CMakeFiles/libvoxel.dir/progress_writer.cpp.o
[ 36%] Building CXX object CMakeFiles/libvoxel.dir/polyfill.cpp.o
[ 45%] Building CXX object CMakeFiles/libvoxel.dir/storage.cpp.o
[ 54%] Building CXX object CMakeFiles/libvoxel.dir/json_logger.cpp.o
[ 63%] Linking CXX static library liblibvoxel.a
[ 63%] Built target libvoxel
[ 72%] Building CXX object CMakeFiles/libvoxec.dir/voxec.cpp.o
[ 81%] Linking CXX static library liblibvoxec.a
[ 81%] Built target libvoxec
[ 90%] Building CXX object CMakeFiles/voxec.dir/voxec_main.cpp.o
[100%] Linking CXX executable voxec
/usr/lib/gcc/x86_64-pc-linux-gnu/12/../../../../x86_64-pc-linux-gnu/bin/ld: /home/dion/Projects/ifcopenshell/build/libIfcGeom.a(IteratorImplementation.cpp.o): in function `IteratorFactoryImplementation::IteratorFactoryImplementation()':
IteratorImplementation.cpp:(.text+0x6c5): undefined reference to `init_IteratorImplementation_Ifc4x3_tc1(IteratorFactoryImplementation*)'
/usr/lib/gcc/x86_64-pc-linux-gnu/12/../../../../x86_64-pc-linux-gnu/bin/ld: IteratorImplementation.cpp:(.text+0x6cd): undefined reference to `init_IteratorImplementation_Ifc4x3_add1(IteratorFactoryImplementation*)'
/usr/lib/gcc/x86_64-pc-linux-gnu/12/../../../../x86_64-pc-linux-gnu/bin/ld: /home/dion/Projects/ifcopenshell/build/libIfcGeom.a(Kernel.cpp.o): in function `IfcGeom::impl::KernelFactoryImplementation::KernelFactoryImplementation()':
Kernel.cpp:(.text+0xa15): undefined reference to `init_KernelImplementation_Ifc4x3_tc1(IfcGeom::impl::KernelFactoryImplementation*)'
/usr/lib/gcc/x86_64-pc-linux-gnu/12/../../../../x86_64-pc-linux-gnu/bin/ld: Kernel.cpp:(.text+0xa1d): undefined reference to `init_KernelImplementation_Ifc4x3_add1(IfcGeom::impl::KernelFactoryImplementation*)'
collect2: error: ld returned 1 exit status
gmake[2]: *** [CMakeFiles/voxec.dir/build.make:151: voxec] Error 1
gmake[1]: *** [CMakeFiles/Makefile2:896: CMakeFiles/voxec.dir/all] Error 2
gmake: *** [Makefile:146: all] Error 2

Moult avatar Mar 07 '23 06:03 Moult

I also had to comment out these two lines in cmakelists:

            #set(OCC_LIBRARY_DIR  ${OCCT_PATH}/lib)
			#set(OCC_INCLUDE_DIR  ${OCCT_PATH}/include/opencascade)

... as on my system my opencascade doesn't follow that pattern (i.e mine is in /usr/lib64/opencascade and /usr/include/opencascade). Then I defined OCC_INCLUDE_DIR and OCC_LIBRARY_DIR myself.

Moult avatar Mar 07 '23 06:03 Moult

Hm yes, this really indicates the need in IfcOpenShell to have some sort of recoverable configuration stored somewhere so that applications linking to ifcopenshell know what to include in the link.

Ran across this when compiling. I managed to fix it by updating this line in cmakelists:

				set(SCHEMA_VERSIONS "2x3" "4" "4x1" "4x2" "4x3_rc1" "4x3_rc2" "4x3_rc3" "4x3_rc4" "4x3" "4x3_add1" "4x3_tc1")

and this line:

		set(IFC_LIBRARY_NAMES IfcGeom IfcGeom_ifc2x3 IfcGeom_ifc4 IfcGeom_ifc4x1
		                      IfcGeom_ifc4x2 IfcGeom_ifc4x3_rc1 IfcGeom_ifc4x3_rc2
		                      IfcGeom_ifc4x3_rc3 IfcGeom_ifc4x3_rc4 IfcGeom_ifc4x3 IfcGeom_ifc4x3_add1 IfcGeom_ifc4x3_tc1
		                      IfcParse)

I think these would be reasonable to commit.

I also had to comment out these two lines in cmakelists:

            #set(OCC_LIBRARY_DIR  ${OCCT_PATH}/lib)
			#set(OCC_INCLUDE_DIR  ${OCCT_PATH}/include/opencascade)

I have the tendency to think that you should use -DUSE_BUILD_SCRIPT_OUTPUT=Off, otherwise the ifcopenshell nix/build-all.py output is expected. And then these two lines wouldn't affect you.

aothms avatar Mar 07 '23 08:03 aothms

Ah nice I did end up turning off a few things:

    -DENABLE_TESTS=Off \
    -DUSE_STATIC_MSVC_RUNTIME=Off \
    -DUSE_BUILD_SCRIPT_OUTPUT=Off \

:) if tests were enabled I got another error but I don't have the logs now. I also noticed some examples used entities= instead of include= for the create_geometry calls.

Moult avatar Mar 07 '23 08:03 Moult