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

When trying to generate metadata, fatal error: 'clang/AST/DeclBase.h' file not found #176

Closed
shirakaba opened this issue Jul 24, 2022 · 2 comments

Comments

@shirakaba
Copy link

shirakaba commented Jul 24, 2022

Followed the steps to generate the metadata and met an error.

Note that I am passing the -DCMAKE_PREFIX_PATH flag because for whatever reason, cmake can't find libxml2 (as discussed in #174).

$ METADATA_ARCH="arm64" && cmake -DCMAKE_PREFIX_PATH=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr -B build -DCMAKE_BUILD_TYPE=Release -DMETADATA_BINARY_ARCH=$METADATA_ARCH -DCMAKE_OSX_ARCHITECTURES=$METADATA_ARCH && cmake --build build 
-- The C compiler identification is AppleClang 13.1.6.13160021
-- The CXX compiler identification is AppleClang 13.1.6.13160021
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /usr/bin/cc - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/clang - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Found LibXml2: /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/lib/libxml2.tbd (found version "2.9.4") 
-- Configuring done
-- Generating done
-- Build files have been written to: /Users/jamie/Documents/git/ns-v8ios-runtime/metadata-generator/build
[  3%] Building CXX object src/CMakeFiles/objc-metadata-generator.dir/Binary/binaryHashtable.cpp.o
In file included from /Users/jamie/Documents/git/ns-v8ios-runtime/metadata-generator/src/Binary/binaryHashtable.cpp:3:
In file included from /Users/jamie/Documents/git/ns-v8ios-runtime/metadata-generator/src/Binary/metaFile.h:10:
/Users/jamie/Documents/git/ns-v8ios-runtime/metadata-generator/src/Meta/MetaEntities.h:6:10: fatal error: 'clang/AST/DeclBase.h' file not found
#include <clang/AST/DeclBase.h>
         ^~~~~~~~~~~~~~~~~~~~~~
1 error generated.
@shirakaba
Copy link
Author

shirakaba commented Jul 24, 2022

It appears the project relies upon an exact version of llvm (presumably newer than that of any system-provided one), so the solution is simply to provide that:

# in the root of the repo
$ ./download_llvm.sh

Result:

# in the metadata-generator folder (to clear any cached objects, run `rm -rf build` first)
$ METADATA_ARCH="arm64" && cmake -DCMAKE_PREFIX_PATH=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr -B build -DCMAKE_BUILD_TYPE=Release -DMETADATA_BINARY_ARCH=$METADATA_ARCH -DCMAKE_OSX_ARCHITECTURES=$METADATA_ARCH && cmake --build build 
-- The C compiler identification is AppleClang 13.1.6.13160021
-- The CXX compiler identification is AppleClang 13.1.6.13160021
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /usr/bin/cc - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/c++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Found LibXml2: /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/lib/libxml2.tbd (found version "2.9.4") 
-- Configuring done
-- Generating done
-- Build files have been written to: /Users/jamie/Documents/git/ns-v8ios-runtime/metadata-generator/build
[  3%] Building CXX object src/CMakeFiles/objc-metadata-generator.dir/Binary/binaryHashtable.cpp.o
[  7%] Building CXX object src/CMakeFiles/objc-metadata-generator.dir/Binary/binaryReader.cpp.o
[ 11%] Building CXX object src/CMakeFiles/objc-metadata-generator.dir/Binary/binarySerializer.cpp.o
[ 15%] Building CXX object src/CMakeFiles/objc-metadata-generator.dir/Binary/binaryStructures.cpp.o
[ 19%] Building CXX object src/CMakeFiles/objc-metadata-generator.dir/Binary/binaryTypeEncodingSerializer.cpp.o
[ 23%] Building CXX object src/CMakeFiles/objc-metadata-generator.dir/Binary/binaryWriter.cpp.o
[ 26%] Building CXX object src/CMakeFiles/objc-metadata-generator.dir/Binary/metaFile.cpp.o
[ 30%] Building CXX object src/CMakeFiles/objc-metadata-generator.dir/HeadersParser/Parser.cpp.o
[ 34%] Building CXX object src/CMakeFiles/objc-metadata-generator.dir/main.cpp.o
[ 38%] Building CXX object src/CMakeFiles/objc-metadata-generator.dir/Meta/DeclarationConverterVisitor.cpp.o
[ 42%] Building CXX object src/CMakeFiles/objc-metadata-generator.dir/Meta/Filters/HandleExceptionalMetasFilter.cpp.o
[ 46%] Building CXX object src/CMakeFiles/objc-metadata-generator.dir/Meta/Filters/HandleMethodsAndPropertiesWithSameNameFilter.cpp.o
[ 50%] Building CXX object src/CMakeFiles/objc-metadata-generator.dir/Meta/Filters/MergeCategoriesFilter.cpp.o
[ 53%] Building CXX object src/CMakeFiles/objc-metadata-generator.dir/Meta/Filters/RemoveDuplicateMembersFilter.cpp.o
[ 57%] Building CXX object src/CMakeFiles/objc-metadata-generator.dir/Meta/Filters/ResolveGlobalNamesCollisionsFilter.cpp.o
[ 61%] Building CXX object src/CMakeFiles/objc-metadata-generator.dir/Meta/MetaEntities.cpp.o
[ 65%] Building CXX object src/CMakeFiles/objc-metadata-generator.dir/Meta/MetaFactory.cpp.o
[ 69%] Building CXX object src/CMakeFiles/objc-metadata-generator.dir/Meta/NameRetrieverVisitor.cpp.o
[ 73%] Building CXX object src/CMakeFiles/objc-metadata-generator.dir/Meta/TypeFactory.cpp.o
[ 76%] Building CXX object src/CMakeFiles/objc-metadata-generator.dir/Meta/Utils.cpp.o
[ 80%] Building CXX object src/CMakeFiles/objc-metadata-generator.dir/Meta/ValidateMetaTypeVisitor.cpp.o
[ 84%] Building CXX object src/CMakeFiles/objc-metadata-generator.dir/TypeScript/DefinitionWriter.cpp.o
[ 88%] Building CXX object src/CMakeFiles/objc-metadata-generator.dir/TypeScript/DocSetManager.cpp.o
[ 92%] Building CXX object src/CMakeFiles/objc-metadata-generator.dir/Utils/fileStream.cpp.o
[ 96%] Building CXX object src/CMakeFiles/objc-metadata-generator.dir/Utils/memoryStream.cpp.o
[100%] Linking CXX executable ../bin/objc-metadata-generator
[100%] Built target objc-metadata-generator

@rigor789
Copy link
Member

https://github.com/NativeScript/ns-v8ios-runtime/blob/6ee354c4e0fe591698e17975de0d25b4bf50a8bc/build_metadata_generator.sh#L5

should already run this for you if built with ./build_metadata_generator

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

No branches or pull requests

2 participants