Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

dev-branch, boost 1.78, python3.11, vtk 9.2, linux-aarch64, osx-arm64, occt 7.7, pcl 1.13 #78

Merged
merged 37 commits into from Mar 5, 2023

Conversation

looooo
Copy link
Contributor

@looooo looooo commented Nov 25, 2022

Checklist

  • Used a personal fork of the feedstock to propose changes
  • Bumped the build number (if the version is unchanged)
  • Reset the build number to 0 (if the version changed)
  • Re-rendered with the latest conda-smithy (Use the phrase @conda-forge-admin, please rerender in a comment in this PR for automated rerendering)
  • Ensured the license file is being packaged.

@conda-forge-linter
Copy link

Hi! This is the friendly automated conda-forge-linting service.

I wanted to let you know that I linted all conda-recipes in your PR (recipe) and found some lint.

Here's what I've got...

For recipe:

  • Selectors are suggested to take a <two spaces>#<one space>[<expression>] form. See lines [97]
  • When defining a source/url please add a sha256, sha1 or md5 checksum (sha256 preferably).

For recipe:

  • License is not an SPDX identifier (or a custom LicenseRef) nor an SPDX license expression.

Documentation on acceptable licenses can be found here.

@looooo looooo changed the title set build-number to 100 boost 1.78, python3.11, vtk 9.2, linux-aarch64, osx-arm64 Nov 25, 2022
@looooo looooo changed the title boost 1.78, python3.11, vtk 9.2, linux-aarch64, osx-arm64 dev-branch, boost 1.78, python3.11, vtk 9.2, linux-aarch64, osx-arm64 Nov 25, 2022
@looooo
Copy link
Contributor Author

looooo commented Nov 25, 2022

osx-arm:

Make Error at /Users/runner/miniforge3/conda-bld/freecad_1670142449733/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_p/lib/cmake/vtk-9.2/VTKPython-targets.cmake:440 (message):
  The imported target "VTK::vtkCommonCorePython" references the file

     "/Users/runner/miniforge3/conda-bld/freecad_1670142449733/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_p/lib/python3.11/site-packages/vtkmodules/vtkCommonCore.so"

  but this file does not exist.  Possible reasons include:

  * The file was deleted, renamed, or moved to another location.

  * An install or uninstall procedure did not complete successfully.

  * The installation package was faulty and contained

     "/Users/runner/miniforge3/conda-bld/freecad_1670142449733/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_p/lib/cmake/vtk-9.2/VTKPython-targets.cmake"

  but not all the files it references.

Call Stack (most recent call first):
  /Users/runner/miniforge3/conda-bld/freecad_1670142449733/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_p/lib/cmake/vtk-9.2/vtk-config.cmake:189 (include)
  /Users/runner/miniforge3/conda-bld/freecad_1670142449733/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_p/share/pcl-1.12/PCLConfig.cmake:266 (find_package)
  /Users/runner/miniforge3/conda-bld/freecad_1670142449733/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_p/share/pcl-1.12/PCLConfig.cmake:315 (find_VTK)
  /Users/runner/miniforge3/conda-bld/freecad_1670142449733/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_p/share/pcl-1.12/PCLConfig.cmake:535 (find_external_library)
  cMake/FreeCAD_Helpers/SetupPCL.cmake:11 (find_package)
  CMakeLists.txt:49 (SetupPCL)

linux-aarch64:

CMake Error at /home/conda/feedstock_root/build_artifacts/freecad_1669401922856/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_pla/lib/cmake/vtk-9.2/VTKPython-targets.cmake:440 (message):
  The imported target "VTK::vtkCommonCorePython" references the file

     "/home/conda/feedstock_root/build_artifacts/freecad_1669401922856/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_pla/lib/python3.11/site-packages/vtkmodules/vtkCommonCore.so"

  but this file does not exist.  Possible reasons include:

  * The file was deleted, renamed, or moved to another location.

  * An install or uninstall procedure did not complete successfully.

  * The installation package was faulty and contained

     "/home/conda/feedstock_root/build_artifacts/freecad_1669401922856/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_pla/lib/cmake/vtk-9.2/VTKPython-targets.cmake"

  but not all the files it references.

these two errors are caused by cross-compilation.

win:

C:\PROGRA~2\MICROS~2\2019\ENTERP~1\VC\Tools\MSVC\1429~1.301\bin\Hostx64\x64\cl.exe  /nologo /TP -DFCAppRaytracing -DHAVE_ACOSH -DHAVE_ASINH -DHAVE_ATANH -DHAVE_SNPRINTF -DPYCXX_6_2_COMPATIBILITY -DQT_CORE_LIB -DQT_NO_DEBUG -DQT_XML_LIB -DRaytracing_EXPORTS -DSALOME_USE_64BIT_IDS -D_OCC64 -I%SRC_DIR%\build\src\Mod\Raytracing\App\Raytracing_autogen\include -I%PREFIX%\Library\include\smesh -I%SRC_DIR%\build\src -I%SRC_DIR%\src -I%SRC_DIR%\build -I%SRC_DIR%\build\src\Mod\Raytracing\App -I%PREFIX%\Library\include -I%PREFIX%\Library\include\opencascade -I%PREFIX%\include -external:I%PREFIX%\Library\include\qt -external:I%PREFIX%\Library\include\qt\QtCore -external:I%PREFIX%\Library\.\mkspecs\win32-msvc -external:I%PREFIX%\Library\include\qt\QtXml -external:W0 /DWIN32 /D_WINDOWS /W3 /GR  /MP /MD /O2 /Ob2 /DNDEBUG /Zm150 /bigobj /Zi /EHa -std:c++17 /showIncludes /Fosrc\Mod\Raytracing\App\CMakeFiles\Raytracing.dir\LuxTools.cpp.obj /Fdsrc\Mod\Raytracing\App\CMakeFiles\Raytracing.dir\ /FS -c %SRC_DIR%\src\Mod\Raytracing\App\LuxTools.cpp
%PREFIX%\Library\include\boost/regex/v5/w32_regex_traits.hpp(200): error C2061: syntax error: identifier 'LCTYPE'
%PREFIX%\Library\include\boost/regex/v5/w32_regex_traits.hpp(217): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
%PREFIX%\Library\include\boost/regex/v5/w32_regex_traits.hpp(217): error C2737: 'boost::re_detail_500::lctype': constexpr object must be initialized
%PREFIX%\Library\include\boost/regex/v5/w32_regex_traits.hpp(217): error C2737: 'boost::re_detail_500::lctype': constexpr object must be initialized
%PREFIX%\Library\include\boost/regex/v5/w32_regex_traits.hpp(217): error C2146: syntax error: missing ';' before identifier 'locale_idefaultansicodepage'
%PREFIX%\Library\include\boost/regex/v5/w32_regex_traits.hpp(217): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
%PREFIX%\Library\include\boost/regex/v5/w32_regex_traits.hpp(220): error C2039: 'LCMapStringA': is not a member of '`global namespace''

@basnijholt
Copy link

Thanks a lot for working on this!

@looooo looooo closed this Dec 2, 2022
@looooo looooo reopened this Dec 2, 2022
@conda-forge-linter
Copy link

Hi! This is the friendly automated conda-forge-linting service.

I wanted to let you know that I linted all conda-recipes in your PR (recipe) and found some lint.

Here's what I've got...

For recipe:

  • Selectors are suggested to take a <two spaces>#<one space>[<expression>] form. See lines [96]
  • When defining a source/url please add a sha256, sha1 or md5 checksum (sha256 preferably).

For recipe:

  • License is not an SPDX identifier (or a custom LicenseRef) nor an SPDX license expression.

Documentation on acceptable licenses can be found here.

@looooo
Copy link
Contributor Author

looooo commented Dec 3, 2022

@wwmayer can you help with the windows issue? Is this due to the boost update?

@wwmayer
Copy link

wwmayer commented Dec 3, 2022

If I got it right then you have upgraded to boost 1.78 and now you run into a build failure when compiling LuxTools.cpp.

Now boost/regex.hpp is also included in FreeCADBase and FreeCADApp. Apparently this compiles fine because the two libs are built before Raytracing.
So, I assume the failure must be caused by some different/missing defines and when comparing the CMakeLists.txt of FreeCADBase and Raytracing then the latter lacks of:

if(WIN32)
    add_definitions(-DBOOST_DYN_LINK)
endif(WIN32)

Does adding it to FreeCAD/src/Mod/Raytracing/App/CMakeLists.txt solve the failure?

@conda-forge-linter
Copy link

Hi! This is the friendly automated conda-forge-linting service.

I wanted to let you know that I linted all conda-recipes in your PR (recipe) and found some lint.

Here's what I've got...

For recipe:

  • When defining a source/url please add a sha256, sha1 or md5 checksum (sha256 preferably).

@looooo
Copy link
Contributor Author

looooo commented Dec 3, 2022

If I got it right then you have upgraded to boost 1.78 and now you run into a build failure when compiling LuxTools.cpp.

Now boost/regex.hpp is also included in FreeCADBase and FreeCADApp. Apparently this compiles fine because the two libs are built before Raytracing. So, I assume the failure must be caused by some different/missing defines and when comparing the CMakeLists.txt of FreeCADBase and Raytracing then the latter lacks of:

if(WIN32)
    add_definitions(-DBOOST_DYN_LINK)
endif(WIN32)

Does adding it to FreeCAD/src/Mod/Raytracing/App/CMakeLists.txt solve the failure?

thanks for your help!
I tried this. But the issue seems to be still the same.

the definition is included in the linker command:
C:\PROGRA~2\MICROS~2\2019\ENTERP~1\VC\Tools\MSVC\1429~1.301\bin\Hostx64\x64\cl.exe /nologo /TP -DBOOST_DYN_LINK -DFCAppRaytracing -DHAVE_ACOSH -DHAVE_ASINH -DHAVE_ATANH -DHAVE_SNPRINTF -DPYCXX_6_2_COMPATIBILITY -DQT_CORE_LIB -DQT_NO_DEBUG -DQT_XML_LIB -DRaytracing_EXPORTS -DSALOME_USE_64BIT_IDS -D_OCC64 -I%SRC_DIR%\build\src\Mod\Raytracing\App\Raytracing_autogen\include -I%PREFIX%\Library\include\smesh -I%SRC_DIR%\build\src -I%SRC_DIR%\src -I%SRC_DIR%\build -I%SRC_DIR%\build\src\Mod\Raytracing\App -I%PREFIX%\Library\include -I%PREFIX%\Library\include\opencascade -I%PREFIX%\include -external:I%PREFIX%\Library\include\qt -external:I%PREFIX%\Library\include\qt\QtCore -external:I%PREFIX%\Library\.\mkspecs\win32-msvc -external:I%PREFIX%\Library\include\qt\QtXml -external:W0 /DWIN32 /D_WINDOWS /W3 /GR /MP /MD /O2 /Ob2 /DNDEBUG /Zm150 /bigobj /Zi /EHa -std:c++17 /showIncludes /Fosrc\Mod\Raytracing\App\CMakeFiles\Raytracing.dir\LuxTools.cpp.obj /Fdsrc\Mod\Raytracing\App\CMakeFiles\Raytracing.dir\ /FS -c %SRC_DIR%\src\Mod\Raytracing\App\LuxTools.cpp

@looooo
Copy link
Contributor Author

looooo commented Dec 4, 2022

@wwmayer also adding the boost_libraries to the link-libraries didn't solve this issue.
ad19aec#diff-152c34f88b42a14fdc48ba98a8ca9c3fe4e6d4aa5f97fbcabc1625f7f281bb9bR9

@wwmayer
Copy link

wwmayer commented Dec 5, 2022

OK, if this doesn't help it could be a general problem with boost 1.78 and it may occur on other platforms too. I will try to compile this boost version locally on Linux and build FreeCAD with it.

@wwmayer
Copy link

wwmayer commented Dec 5, 2022

Using boost 1.78 on Linux works fine. But after re-reading the error message I realized the missing "LCTYPE" type. The line 200 in w32_regex_traits.hpp expects that Windows.h is already included but in fact it isn't. It may help to add #include <Windows.h> to src/Mod/Raytracing/App/PreCompiled.h

@looooo
Copy link
Contributor Author

looooo commented Dec 5, 2022

Using boost 1.78 on Linux works fine. But after re-reading the error message I realized the missing "LCTYPE" type. The line 200 in w32_regex_traits.hpp expects that Windows.h is already included but in fact it isn't. It may help to add #include <Windows.h> to src/Mod/Raytracing/App/PreCompiled.h

thanks, I tried this with the last patch update.
Are the precompiled.h files used only for windows?

@wwmayer
Copy link

wwmayer commented Dec 5, 2022

Are the precompiled.h files used only for windows?

At the moment yes but in the future it may be used for other compilers, too.

@looooo
Copy link
Contributor Author

looooo commented Dec 6, 2022

Still the same problem. Did I add the include at a wrong position?

@wwmayer
Copy link

wwmayer commented Dec 6, 2022

Still the same problem. Did I add the include at a wrong position?

Oh, my bad. I just realized that for the Raytracing module we don't use the PCH (Pre-compiled header) option. But when looking at the code of LuxTools.cpp no regular expression are used. So, it would be fine to just remove the line #include <boost/regex.hpp>

@looooo
Copy link
Contributor Author

looooo commented Dec 23, 2022

I don't have builds for freecad 0.20.2

What is the problem? I asked you to prepare some and the release is therefore on hold for 3 weeks now because without builds we cannot link to them in our download page.

#79

@looooo
Copy link
Contributor Author

looooo commented Dec 23, 2022

@wwmayer it seems like the boost fix works only for enabled precompiled headers. Do you have any idea?

@looooo
Copy link
Contributor Author

looooo commented Jan 1, 2023

@wwmayer can you have a look why your fix for boost 1.78 is not working when pch are disabled?

@wwmayer
Copy link

wwmayer commented Jan 3, 2023

What are the latest error messages?

@looooo
Copy link
Contributor Author

looooo commented Jan 3, 2023

@wwmayer it's the boost error:

%PREFIX%\Library\include\boost/regex/v5/w32_regex_traits.hpp(200): error C2061: syntax error: identifier 'LCTYPE'
%PREFIX%\Library\include\boost/regex/v5/w32_regex_traits.hpp(217): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
%PREFIX%\Library\include\boost/regex/v5/w32_regex_traits.hpp(217): error C2737: 'boost::re_detail_500::lctype': constexpr object must be initialized
%PREFIX%\Library\include\boost/regex/v5/w32_regex_traits.hpp(217): error C2737: 'boost::re_detail_500::lctype': constexpr object must be initialized
%PREFIX%\Library\include\boost/regex/v5/w32_regex_traits.hpp(217): error C2146: syntax error: missing ';' before identifier 'locale_idefaultansicodepage'
%PREFIX%\Library\include\boost/regex/v5/w32_regex_traits.hpp(217): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
%PREFIX%\Library\include\boost/regex/v5/w32_regex_traits.hpp(220): error C2039: 'LCMapStringA': is not a member of '`global namespace''

@wwmayer
Copy link

wwmayer commented Jan 4, 2023

OK, it's still the same error as always. But for which source file does the compiler raise this error?

@looooo
Copy link
Contributor Author

looooo commented Jan 4, 2023

@wwmayer the error occurs in TechDraw:

FAILED: src/Mod/TechDraw/App/CMakeFiles/TechDraw.dir/AppTechDrawPy.cpp.obj 

I guess that this error didn't occur if pch was enabled. But I am not sure about this.

@wwmayer
Copy link

wwmayer commented Jan 5, 2023

I cannot see a reason why it works with PCH enabled and why it fails when disabled. The compiler still complains about unknown identifiers and functions that are supposed to be added by including Windows.h.

@looooo
Copy link
Contributor Author

looooo commented Jan 5, 2023

Thanks @wwmayer I will try to include windows.h via a patch. Maybe this works.

@looooo
Copy link
Contributor Author

looooo commented Jan 6, 2023

@wwmayer The conclusion why it works with pch enabled was because we run into the other issue:
https://stackoverflow.com/questions/5004858/why-is-stdmin-failing-when-windows-h-is-included

and you fixed that with:
FreeCAD/FreeCAD@5df04f5

Now with pch disabled we are stuck again with the boost/regex error. I really have no idea why it works for pch enabled but not with pch disabled.
There is also this difference when commenting out the ifdef's in the boost_regex file and building with pch disabled:

warning C4005: 'NOMINMAX': macro redefinition

@conda-forge-webservices
Copy link
Contributor

Hi! This is the friendly automated conda-forge-linting service.

I wanted to let you know that I linted all conda-recipes in your PR (recipe) and found some lint.

Here's what I've got...

For recipe:

  • The recipe must have some tests.
  • When defining a source/url please add a sha256, sha1 or md5 checksum (sha256 preferably).

@looooo
Copy link
Contributor Author

looooo commented Jan 7, 2023

with pch enabled compiling the problematic tech draw file seems to be working:

2023-01-07T17:23:38.4347255Z [2861/3939] Building CXX object src\Mod\TechDraw\App\CMakeFiles\TechDraw.dir\AppTechDrawPy.cpp.obj

but the build fails somewhere else...

@wwmayer can you try building freecad + boost 1.78 with pch disabled?

@looooo looooo mentioned this pull request Jan 13, 2023
@looooo
Copy link
Contributor Author

looooo commented Jan 22, 2023

@conda-forge-admin, please rerender

@looooo looooo changed the title dev-branch, boost 1.78, python3.11, vtk 9.2, linux-aarch64, osx-arm64 dev-branch, boost 1.78, python3.11, vtk 9.2, linux-aarch64, osx-arm64, occt 7.7 Jan 22, 2023
conda-forge-webservices[bot] and others added 2 commits January 22, 2023 12:57
@looooo
Copy link
Contributor Author

looooo commented Jan 22, 2023

@conda-forge-admin, please rerender

@looooo looooo changed the title dev-branch, boost 1.78, python3.11, vtk 9.2, linux-aarch64, osx-arm64, occt 7.7 dev-branch, boost 1.78, python3.11, vtk 9.2, linux-aarch64, osx-arm64, occt 7.7, pcl 1.13 Jan 22, 2023
conda-forge-webservices[bot] and others added 2 commits January 22, 2023 13:05
@looooo
Copy link
Contributor Author

looooo commented Feb 25, 2023

@conda-forge-admin, please rerender

conda-forge-webservices[bot] and others added 3 commits February 25, 2023 09:27
@looooo
Copy link
Contributor Author

looooo commented Mar 5, 2023

@conda-forge-admin, please rerender

@looooo looooo merged commit b2d0395 into conda-forge:development Mar 5, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

5 participants