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

update to new compilers /py37 #21

Merged
merged 14 commits into from Mar 5, 2019
Merged

update to new compilers /py37 #21

merged 14 commits into from Mar 5, 2019

Conversation

@looooo
Copy link
Contributor

looooo commented Feb 9, 2019

Checklist

  • Used a 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

This comment has been minimized.

Copy link

conda-forge-linter commented Feb 9, 2019

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

I just wanted to let you know that I linted all conda-recipes in your PR (recipe) and found it was in an excellent condition.

@looooo

This comment has been minimized.

Copy link
Contributor Author

looooo commented Feb 15, 2019

@mingwandroid @isuruf @jakirkham any ideas how to solve OSX:

CMake Error in CMakeLists.txt:
  No known features for CXX compiler

  "Clang"

  version 4.0.1
@looooo

This comment has been minimized.

Copy link
Contributor Author

looooo commented Feb 15, 2019

@conda-forge-admin, please rerender

recipe/meta.yaml Outdated Show resolved Hide resolved
@looooo

This comment has been minimized.

Copy link
Contributor Author

looooo commented Feb 22, 2019

@conda-forge-admin, please rerender

@conda-forge-linter

This comment has been minimized.

Copy link

conda-forge-linter commented Feb 22, 2019

Hi! This is the friendly automated conda-forge-webservice.

I tried to re-render for you, but it looks like there was nothing to do.

@conda-forge-linter

This comment has been minimized.

Copy link

conda-forge-linter commented Feb 22, 2019

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

I just wanted to let you know that I linted all conda-recipes in your PR (recipe) and found it was in an excellent condition.

@looooo

This comment has been minimized.

Copy link
Contributor Author

looooo commented Feb 22, 2019

@jakirkham thanks for the hint, but still the same problem.

CMake Error in CMakeLists.txt:
  No known features for CXX compiler

  "Clang"

  version 4.0.1.
recipe/build.sh Outdated Show resolved Hide resolved
@jakirkham

This comment has been minimized.

Copy link
Member

jakirkham commented Feb 22, 2019

It seems another CMakeLists.txt may be generating the error. Netgen perhaps?

@looooo

This comment has been minimized.

Copy link
Contributor Author

looooo commented Feb 22, 2019

hmm, there is no CMakeLists.txt in the netgen osx-package. Maybe another CMakeLists.txt in a subdirectory?

@jakirkham

This comment has been minimized.

Copy link
Member

jakirkham commented Feb 22, 2019

Right, that's what I was meaning.

@looooo

This comment has been minimized.

Copy link
Contributor Author

looooo commented Mar 1, 2019

After some local iterations it seems like the mentioned problem is correlated to linking to vtk:

target_link_libraries(SMESHControls ${VTK_LIBRARIES})

Where ${VTK_LIBRARIES} looks like this:

vtksysvtkCommonCorevtkCommonMathvtkCommonMiscvtkCommonSystemvtkCommonTransformsvtkCommonDataModelvtkCommonColorvtkCommonExecutionModelvtkCommonComputationalGeometryvtkFiltersCorevtkFiltersGeneralvtkImagingCorevtkImagingFouriervtkalglibvtkFiltersStatisticsvtkFiltersExtractionvtkInfovisCorevtkFiltersGeometryvtkFiltersSourcesvtkRenderingCore$PREFIX/lib/libz.dylib$PREFIX/lib/libfreetype.dylibvtkRenderingFreeTypevtkRenderingContext2DvtkChartsCorevtkDICOMParser$PREFIX/lib/liblz4.dylibvtkIOCorevtkIOLegacy$PREFIX/lib/libexpat.dylibvtkIOXMLParservtkDomainsChemistryvtkglewvtkRenderingOpenGL2vtkDomainsChemistryOpenGL2vtkIOXMLvtkParallelCorevtkFiltersAMRvtkFiltersFlowPathsvtkFiltersGenericvtkImagingSourcesvtkFiltersHybridvtkFiltersHyperTreevtkImagingGeneralvtkFiltersImagingvtkFiltersModelingvtkFiltersParallelvtkFiltersParallelImagingvtkFiltersPointsvtkFiltersProgrammable$PREFIX/lib/libpython3.7m.dylibvtkWrappingToolsvtkWrappingPythonCorevtkFiltersPythonvtkFiltersSMPvtkFiltersSelectionvtkFiltersTexturevtkFiltersTopologyverdictvtkFiltersVerdictvtkmetaio$PREFIX/lib/libjpeg.dylib$PREFIX/lib/libpng.dylib$PREFIX/lib/libtiff.dylibvtkIOImagevtkImagingHybridvtkInfovisLayoutvtkInteractionStylevtkImagingColorvtkRenderingAnnotationvtkRenderingVolumevtkInteractionWidgetsvtkViewsCorevtkproj4vtkGeovisCore$PREFIX/lib/libhdf5.dylib/usr/lib/libpthread.dylib/usr/lib/libdl.dylib/usr/lib/libm.dylib$PREFIX/lib/libhdf5_hl.dylibvtkIOAMRvtkIOEnSight$PREFIX/lib/libnetcdf.dylibvtkexoIIcvtkIOExodusvtkgl2psvtkRenderingGL2PSOpenGL2vtklibharuvtkIOExportvtkIOExportOpenGL2vtkIOGeometryvtkIOImport$PREFIX/lib/libxml2.dylibvtkIOInfovisvtkIOLSDynavtkIOMINC$PREFIX/lib/libtheoraenc.dylib$PREFIX/lib/libtheoradec.dylib$PREFIX/lib/libogg.dylibvtkIOMovievtknetcdfcppvtkIONetCDFvtkIOPLY$PREFIX/lib/libjsoncpp.dylibvtkIOParallelvtkIOParallelXMLvtksqlitevtkIOSQLvtkIOTecplotTablevtkIOVideovtkImagingMathvtkImagingMorphologicalvtkImagingStatisticsvtkImagingStencilvtkInteractionImagevtkPythonInterpretervtkRenderingContextOpenGL2vtkRenderingImagevtkRenderingLODvtkRenderingLabelvtkRenderingMatplotlibvtkRenderingVolumeOpenGL2vtkViewsContext2DvtkViewsInfovis

But I still have no idea what this is about.

@looooo

This comment has been minimized.

Copy link
Contributor Author

looooo commented Mar 1, 2019

To me it seems there are two bugs involved:

  1. cmake is reporting nonsense instead of library <name> can not be found
    This can be reproduced by adding this command:
    target_link_library(<lib> libReallyNonExisting)

  2. vtkLibraries is missing the version suffix:
    target_link_library(<lib> vtkCommonCore) # not working
    target_link_library(<lib> vtkCommonCore-8.1.2) # works

@looooo

This comment has been minimized.

Copy link
Contributor Author

looooo commented Mar 2, 2019

@mingwandroid is it possible this is related to the new-compilers? I have the impression that it is not possible to link to symlinks:
target_link_library(<lib> vtkCommonCore) doesn't work
target_link_library(<lib> vtkCommonCore.1) works

with libvtkCommonCore.dylib beeing a link to libvtkCommonCore.1.dylib

maybe you have an idea what is going on here?

@conda-forge-linter

This comment has been minimized.

Copy link

conda-forge-linter commented Mar 4, 2019

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 [15]
@conda-forge-linter

This comment has been minimized.

Copy link

conda-forge-linter commented Mar 4, 2019

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

I just wanted to let you know that I linted all conda-recipes in your PR (recipe) and found it was in an excellent condition.

looooo added 8 commits Mar 4, 2019
…nda-forge-pinning 2019.02.24
@conda-forge-linter

This comment has been minimized.

Copy link

conda-forge-linter commented Mar 5, 2019

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

I was trying to look for recipes to lint for you, but it appears we have a merge conflict.
Please try to merge or rebase with the base branch to resolve this conflict.

Please ping the 'conda-forge/core' team (using the @ notation in a comment) if you believe this is a bug.

@conda-forge-linter

This comment has been minimized.

Copy link

conda-forge-linter commented Mar 5, 2019

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

I just wanted to let you know that I linted all conda-recipes in your PR (recipe) and found it was in an excellent condition.

@mingwandroid

This comment has been minimized.

Copy link

mingwandroid commented Mar 5, 2019

is it possible this is related to the new-compilers

I do not have time to look into that, anything is possible. You need to figure out a way to determine this for yourself though.

@looooo

This comment has been minimized.

Copy link
Contributor Author

looooo commented Mar 5, 2019

I do not have time to look into that, anything is possible. You need to figure out a way to determine this for yourself though.

Yes it's a problem with cmake not detecting the compiler-features. But finding the root of the problem is absolutely beyond my knowledge/skills. I will work around by simple setting those features with:

SET(CMAKE_CXX_COMPILE_FEATURES "cxx_nullptr;cxx_override")

Hopefully it's possible to add proper compiler-feature detection with cmake in the future. Also I have no idea where to report if conda-build is the wrong place.

@looooo

This comment has been minimized.

Copy link
Contributor Author

looooo commented Mar 5, 2019

next problem: zlib in netgen-feedstock is used from the build-environment 👎

@mingwandroid

This comment has been minimized.

Copy link

mingwandroid commented Mar 5, 2019

Hopefully it's possible to add proper compiler-feature detection with cmake in the future. Also I have no idea where to report if conda-build is the wrong place

Since you are running CMake here, Occams Razor would suggest this is an issue with CMake. But for you to prove that you need to demonstrate that the problem happens outside of the Anaconda Distribution (so official CMake, official Apple compilers). If it doesn't reproduce there then it's either a problem with our CMake packages, our compiler packages or an interaction between the two. Either way, it's got nothing to do with conda-build!

@looooo

This comment has been minimized.

Copy link
Contributor Author

looooo commented Mar 5, 2019

But for you to prove that you need to demonstrate that the problem happens outside of the Anaconda Distribution (so official CMake, official Apple compilers).

I guess it will work with official compilers. Searching for this error gave some reports of problems with feature-detection with cmake-minimum-requirement < 3.3. But with setting the cmake-policy CMP0025 to NEW, this was resolved. So my guess is that this problem is specific to conda. If it is caused by cmake or the compilers, I don't know.

@mingwandroid

This comment has been minimized.

Copy link

mingwandroid commented Mar 5, 2019

Please stop guessing. Investigate. You will learn that way.

@looooo

This comment has been minimized.

Copy link
Contributor Author

looooo commented Mar 5, 2019

Please stop guessing. Investigate. You will learn that way.

Here is the minimal example. No problems with official compilers. Feel free to try it yourself:
https://github.com/looooo/cmake_tests

The C compiler identification is AppleClang 10.0.0.10001145
The CXX compiler identification is AppleClang 10.0.0.10001145
Check for working C compiler: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/cc
Check for working C compiler: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/cc -- works
Detecting C compiler ABI info
Detecting C compiler ABI info - done
Detecting C compile features
Detecting C compile features - done
Check for working CXX compiler: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/c++
Check for working CXX compiler: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/c++ -- works
Detecting CXX compiler ABI info
Detecting CXX compiler ABI info - done
Detecting CXX compile features
Detecting CXX compile features - done
Configuring done
Generating done

But problems with conda:

-- The C compiler identification is Clang 4.0.1
-- The CXX compiler identification is Clang 4.0.1
-- Check for working C compiler: $BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang
-- Check for working C compiler: $BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Check for working CXX compiler: $BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang++
-- Check for working CXX compiler: $BUILD_PREFIX/bin/x86_64-apple-darwin13.4.0-clang++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Configuring done
CMake Error in CMakeLists.txt:
  No known features for CXX compiler

  "Clang"

  version 4.0.1.


@looooo looooo merged commit bfb4f0b into conda-forge:master Mar 5, 2019
1 of 6 checks passed
1 of 6 checks passed
ci/circleci: build_linux_python3.6 Your tests are queued behind your running builds
Details
ci/circleci: build_linux_python3.7 Your tests are queued behind your running builds
Details
ci/circleci: build_osx_python3.6 Your tests are queued behind your running builds
Details
ci/circleci: build_osx_python3.7 CircleCI is running your tests
Details
continuous-integration/appveyor/pr Waiting for AppVeyor build to complete
Details
conda-forge-linter All recipes are excellent.
Details
@mingwandroid

This comment has been minimized.

Copy link

mingwandroid commented Mar 6, 2019

Thanks for doing that. I'm in the process of making Cmake work better within the ecosystem BTW.

@isuruf

This comment has been minimized.

Copy link
Member

isuruf commented Mar 6, 2019

@looooo, do you have the CMakeError.log and CMakeOutput.log for the small project?

@isuruf

This comment has been minimized.

Copy link
Member

isuruf commented Mar 6, 2019

Related to https://gitlab.kitware.com/cmake/cmake/issues/17712

Need the cmake_minimum_required before the project command. Try swapping the first 2 lines of your example project.

@isuruf

This comment has been minimized.

Copy link
Member

isuruf commented Mar 6, 2019

From, https://cmake.org/cmake/help/v3.10/command/cmake_minimum_required.html

Note

Call the cmake_minimum_required() command at the beginning of the top-level CMakeLists.txt file even before calling the project() command. It is important to establish version and policy settings before invoking other commands whose behavior they may affect.

@looooo

This comment has been minimized.

Copy link
Contributor Author

looooo commented Mar 6, 2019

@isuruf Thanks for the information. Great, this really solves this issue!

@looooo looooo mentioned this pull request Mar 6, 2019
0 of 4 tasks complete
looooo added a commit to looooo/SMESH that referenced this pull request Mar 6, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
5 participants
You can’t perform that action at this time.