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

Using cmake-tools as the configurationProvider breaks IntelliSense (M1?) #1735

Closed
citelao opened this issue Mar 30, 2021 · 9 comments
Closed
Assignees
Labels
bug a bug in the product Feature: cpptools integration fixed (release pending) fixed in pre-release and is pending official release
Projects
Milestone

Comments

@citelao
Copy link

citelao commented Mar 30, 2021

Hello! I'm trying to setup IntelliSense in VS Code for an old project I'm trying to contribute to.

However, IntelliSense is broken when I try to use cmake-tools as the IntelliSense provider:

"configurationProvider": "ms-vscode.cmake-tools"

VS Code fails to find all standard header files (like #include <string>), with errors like:

cannot open source file "string"C/C++(1696)

and

#include errors detected based on information provided by the configurationProvider setting. Squiggles are disabled for this translation unit 

Is this an occurrence of I see: ‘CMake Tools’ is unable to provide IntelliSense configuration …? All the hpp files should be referenced in a target.

c_cpp_properties.json

If I use Mac, working, IntelliSense works. If I use Mac CMAKE, I get the errors.

{
    "configurations": [
        {
            "name": "Mac, working",
            "includePath": [
                "${workspaceFolder}/**"
            ],
            "defines": [],
            "macFrameworkPath": [],
            "compilerPath": "/opt/homebrew/bin/gcc-10",
            "cStandard": "gnu17",
            "cppStandard": "gnu++14",
            "intelliSenseMode": "macos-gcc-arm64"
        },
        {
            "name": "Mac CMAKE",
            "configurationProvider": "ms-vscode.cmake-tools"
        }
    ],
    "version": 4
}

Machine info

  • M1 MacBook.
  • Operating System: macOS Big Sur
  • VSCode Version: VS Code Insiders (1.55)
  • CMake Version: 3.19.1

Extensions:

  • Microsoft C/C++ (1.3.0-insiders2)
  • twxs CMake (0.0.17)
  • Microsoft CMake Tools (1.6.0)

Compilers:

> clang --version                                                                        
Apple clang version 12.0.0 (clang-1200.0.32.29)
Target: arm64-apple-darwin20.2.0
Thread model: posix
InstalledDir: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin
> gcc --version                                                                          
Configured with: --prefix=/Applications/Xcode.app/Contents/Developer/usr --with-gxx-include-dir=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/c++/4.2.1
Apple clang version 12.0.0 (clang-1200.0.32.29)
Target: arm64-apple-darwin20.2.0
Thread model: posix
InstalledDir: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin

C++ Diagnostics

(via C/C++: Log Diagnostics)

C++ Diagnostics
-------- Diagnostics - 3/30/2021, 7:43:50 PM
Version: 1.3.0-insiders2
Current Configuration:
{
    "name": "Mac CMAKE",
    "configurationProvider": "ms-vscode.cmake-tools",
    "includePath": [
        "/opt/homebrew/Cellar/gcc/10.2.0_2/include/c++/10.2.1",
        "/opt/homebrew/Cellar/gcc/10.2.0_2/include/c++/10.2.1/aarch64-apple-darwin20",
        "/opt/homebrew/Cellar/gcc/10.2.0_2/include/c++/10.2.1/backward",
        "/opt/homebrew/Cellar/gcc/10.2.0_2/lib/gcc/10/gcc/aarch64-apple-darwin20/10.2.1/include",
        "/opt/homebrew/Cellar/gcc/10.2.0_2/lib/gcc/10/gcc/aarch64-apple-darwin20/10.2.1/include-fixed",
        "/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include",
        "/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks"
    ],
    "macFrameworkPath": [],
    "compilerArgs": [],
    "cStandard": "gnu17",
    "cppStandard": "gnu++14",
    "intelliSenseMode": "macos-gcc-arm64",
    "intelliSenseModeIsExplicit": false,
    "cStandardIsExplicit": false,
    "cppStandardIsExplicit": false,
    "compilerPathIsExplicit": false,
    "compilerPath": "/opt/homebrew/bin/gcc-10",
    "browse": {
        "path": [
            "/opt/homebrew/Cellar/gcc/10.2.0_2/include/c++/10.2.1",
            "/opt/homebrew/Cellar/gcc/10.2.0_2/include/c++/10.2.1/aarch64-apple-darwin20",
            "/opt/homebrew/Cellar/gcc/10.2.0_2/include/c++/10.2.1/backward",
            "/opt/homebrew/Cellar/gcc/10.2.0_2/lib/gcc/10/gcc/aarch64-apple-darwin20/10.2.1/include",
            "/opt/homebrew/Cellar/gcc/10.2.0_2/lib/gcc/10/gcc/aarch64-apple-darwin20/10.2.1/include-fixed",
            "/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include",
            "/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks",
            "${workspaceFolder}"
        ],
        "limitSymbolsToIncludedHeaders": true
    }
}
Custom configurations:
[ /Users/citelao/Projects/libcutter/util/draw_svg.cpp ]
{
    "defines": [],
    "standard": "gnu++17",
    "includePath": [
        "/users/citelao/projects/libcutter/include",
        "/users/citelao/projects/libcutter/include/pub",
        "/users/citelao/projects/libcutter/util/include",
        "/users/citelao/projects/libcutter/util/include/pub"
    ],
    "intelliSenseMode": "clang-arm",
    "compilerPath": "/usr/bin/clang++",
    "compilerArgs": [
        "-g",
        "-Wall",
        "-g",
        "-arch",
        "arm64",
        "-isysroot",
        "/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX11.1.sdk",
        "-std=gnu++17"
    ]
}
Translation Unit Mappings:
[ /Users/citelao/Projects/libcutter/util/draw_svg.cpp ]:
    /Users/citelao/Projects/libcutter/util/draw_svg.cpp
Translation Unit Configurations:
[ /Users/citelao/Projects/libcutter/util/draw_svg.cpp ]:
    Process ID: 73876
    Memory Usage: 64 MB
    Compiler Path: /usr/bin/clang++
    Includes:
        /Users/citelao/Projects/libcutter/include/pub
        /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/12.0.0/include
        /Users/citelao/Projects/libcutter/include
    Standard Version: c++17
    IntelliSense Mode: macos-clang-arm
    Other Flags:
        --clang
        --clang_version=120000
Total Memory Usage: 64 MB

------- Workspace parsing diagnostics -------
Number of folders and files enumerated: 9209
Number of files discovered (not excluded): 8710

Loading a CPP file

Loading a CPP file
cpptools/getCodeActions: file:///Users/citelao/Projects/libcutter/util/draw_svg.cpp (id: 2)
cpptools/queryTranslationUnitSource: file:///Users/citelao/Projects/libcutter/util/draw_svg.cpp (id: 3)
Custom configurations received:
  uri: file:///Users/citelao/Projects/libcutter/util/draw_svg.cpp
  config: {
  "defines": [],
  "standard": "gnu++17",
  "includePath": [
    "/users/citelao/projects/libcutter/include",
    "/users/citelao/projects/libcutter/include/pub",
    "/users/citelao/projects/libcutter/util/include",
    "/users/citelao/projects/libcutter/util/include/pub"
  ],
  "intelliSenseMode": "clang-arm",
  "compilerPath": "/usr/bin/clang++",
  "compilerArgs": [
    "-g",
    "-Wall",
    "-g",
    "-arch",
    "arm64",
    "-isysroot",
    "/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX11.1.sdk",
    "-std=gnu++17"
  ]
}
cpptools/didChangeCustomConfiguration
Attempting to get defaults from C++ compiler in "compilerPath" property: '/usr/bin/clang++'
Querying compiler for default C++ language standard using command line: "/usr/bin/clang++" -x c++ -E -dM /dev/null
terminating child process: 73868
Detected language standard version: c++98
Querying compiler for default C language standard using command line: "/usr/bin/clang++" -x c -E -dM /dev/null
terminating child process: 73870
Detected language standard version: c11
Querying compiler's default target using command line: "/usr/bin/clang++" -dumpmachine
Compiler returned default target value: x86_64-apple-darwin20.2.0

terminating child process: 73872
Querying compiler's default target using command line: "/usr/bin/clang++" -dumpmachine
Compiler returned default target value: x86_64-apple-darwin20.2.0

terminating child process: 73873
Compiler query command line: "/usr/bin/clang++" -g -Wall -g -arch arm64 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX11.1.sdk -std=gnu++17 -Wp,-v -E -dD -x c++ --target=arm-arm-none-eabi -fno-blocks /dev/null
terminating child process: 73874
Unable to resolve include path: /users/citelao/projects/libcutter/util/include
Unable to resolve include path: /users/citelao/projects/libcutter/util/include/pub
textDocument/didOpen: file:///Users/citelao/Projects/libcutter/util/draw_svg.cpp
cpptools/activeDocumentChange: file:///Users/citelao/Projects/libcutter/util/draw_svg.cpp
cpptools/textEditorSelectionChange
cpptools/getDocumentSymbols: file:///Users/citelao/Projects/libcutter/util/draw_svg.cpp (id: 4)
cpptools/textEditorSelectionChange
cpptools/getFoldingRanges: file:///Users/citelao/Projects/libcutter/util/draw_svg.cpp (id: 5)
cpptools/getDocumentSymbols
cpptools/getSemanticTokens: file:///Users/citelao/Projects/libcutter/util/draw_svg.cpp (id: 6)
cpptools/getCodeActions: file:///Users/citelao/Projects/libcutter/util/draw_svg.cpp (id: 7)
cpptools/abortRequest
sending compilation args for /Users/citelao/Projects/libcutter/util/draw_svg.cpp
include: /Users/citelao/Projects/libcutter/include/pub
include: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/12.0.0/include
include: /Users/citelao/Projects/libcutter/include
define: llvm=1
define: clang=1
define: clang_major=12
define: clang_minor=0
define: clang_patchlevel=0
define: clang_version="12.0.0 (clang-1200.0.32.29)"
define: GNUC=4
define: GNUC_MINOR=2
define: GNUC_PATCHLEVEL=1
define: __GXX_ABI_VERSION=1002
define: GNUG=4
define: GXX_WEAK=1
define: __ATOMIC_RELAXED=0
define: __ATOMIC_CONSUME=1
define: __ATOMIC_ACQUIRE=2
define: __ATOMIC_RELEASE=3
define: __ATOMIC_ACQ_REL=4
define: __ATOMIC_SEQ_CST=5
define: __OPENCL_MEMORY_SCOPE_WORK_ITEM=0
define: __OPENCL_MEMORY_SCOPE_WORK_GROUP=1
define: __OPENCL_MEMORY_SCOPE_DEVICE=2
define: __OPENCL_MEMORY_SCOPE_ALL_SVM_DEVICES=3
define: __OPENCL_MEMORY_SCOPE_SUB_GROUP=4
define: __PRAGMA_REDEFINE_EXTNAME=1
define: VERSION="Apple LLVM 12.0.0 (clang-1200.0.32.29)"
define: GXX_EXPERIMENTAL_CXX0X=1
define: __OBJC_BOOL_IS_BOOL=0
define: CONSTANT_CFSTRINGS=1
define: __EXCEPTIONS=1
define: __GXX_RTTI=1
define: __DEPRECATED=1
define: private_extern=extern
define: ORDER_LITTLE_ENDIAN=1234
define: ORDER_BIG_ENDIAN=4321
define: ORDER_PDP_ENDIAN=3412
define: BYTE_ORDER=ORDER_LITTLE_ENDIAN
define: LITTLE_ENDIAN=1
define: _ILP32=1
define: ILP32=1
define: CHAR_BIT=8
define: SCHAR_MAX=127
define: SHRT_MAX=32767
define: INT_MAX=2147483647
define: LONG_MAX=2147483647L
define: LONG_LONG_MAX=9223372036854775807LL
define: WCHAR_MAX=4294967295U
define: WINT_MAX=2147483647
define: INTMAX_MAX=9223372036854775807LL
define: SIZE_MAX=4294967295U
define: UINTMAX_MAX=18446744073709551615ULL
define: PTRDIFF_MAX=2147483647
define: INTPTR_MAX=2147483647
define: UINTPTR_MAX=4294967295U
define: SIZEOF_DOUBLE=8
define: SIZEOF_FLOAT=4
define: SIZEOF_INT=4
define: SIZEOF_LONG=4
define: SIZEOF_LONG_DOUBLE=8
define: SIZEOF_LONG_LONG=8
define: SIZEOF_POINTER=4
define: SIZEOF_SHORT=2
define: SIZEOF_PTRDIFF_T=4
define: SIZEOF_SIZE_T=4
define: SIZEOF_WCHAR_T=4
define: SIZEOF_WINT_T=4
define: INTMAX_TYPE=long long int
define: INTMAX_FMTd="lld"
define: INTMAX_FMTi="lli"
define: INTMAX_C_SUFFIX=LL
define: UINTMAX_TYPE=long long unsigned int
define: UINTMAX_FMTo="llo"
define: UINTMAX_FMTu="llu"
define: UINTMAX_FMTx="llx"
define: UINTMAX_FMTX="llX"
define: UINTMAX_C_SUFFIX=ULL
define: INTMAX_WIDTH=64
define: PTRDIFF_TYPE=int
define: PTRDIFF_FMTd="d"
define: PTRDIFF_FMTi="i"
define: PTRDIFF_WIDTH=32
define: INTPTR_TYPE=int
define: INTPTR_FMTd="d"
define: INTPTR_FMTi="i"
define: INTPTR_WIDTH=32
define: SIZE_TYPE=unsigned int
define: SIZE_FMTo="o"
define: SIZE_FMTu="u"
define: SIZE_FMTx="x"
define: SIZE_FMTX="X"
define: SIZE_WIDTH=32
define: WCHAR_TYPE=unsigned int
define: WCHAR_WIDTH=32
define: WINT_TYPE=int
define: WINT_WIDTH=32
define: SIG_ATOMIC_WIDTH=32
define: SIG_ATOMIC_MAX=2147483647
define: CHAR16_TYPE=unsigned short
define: CHAR32_TYPE=unsigned int
define: UINTMAX_WIDTH=64
define: UINTPTR_TYPE=unsigned int
define: UINTPTR_FMTo="o"
define: UINTPTR_FMTu="u"
define: UINTPTR_FMTx="x"
define: UINTPTR_FMTX="X"
define: UINTPTR_WIDTH=32
define: FLT16_DENORM_MIN=5.9604644775390625e-8F16
define: FLT16_HAS_DENORM=1
define: FLT16_DIG=3
define: FLT16_DECIMAL_DIG=5
define: FLT16_EPSILON=9.765625e-4F16
define: FLT16_HAS_INFINITY=1
define: FLT16_HAS_QUIET_NAN=1
define: FLT16_MANT_DIG=11
define: FLT16_MAX_10_EXP=4
define: FLT16_MAX_EXP=16
define: FLT16_MAX=6.5504e+4F16
define: FLT16_MIN_10_EXP=(-4)
define: FLT16_MIN_EXP=(-13)
define: FLT16_MIN=6.103515625e-5F16
define: FLT_DENORM_MIN=1.40129846e-45F
define: FLT_HAS_DENORM=1
define: FLT_DIG=6
define: FLT_DECIMAL_DIG=9
define: FLT_EPSILON=1.19209290e-7F
define: FLT_HAS_INFINITY=1
define: FLT_HAS_QUIET_NAN=1
define: FLT_MANT_DIG=24
define: FLT_MAX_10_EXP=38
define: FLT_MAX_EXP=128
define: FLT_MAX=3.40282347e+38F
define: FLT_MIN_10_EXP=(-37)
define: FLT_MIN_EXP=(-125)
define: FLT_MIN=1.17549435e-38F
define: DBL_DENORM_MIN=4.9406564584124654e-324
define: DBL_HAS_DENORM=1
define: DBL_DIG=15
define: DBL_DECIMAL_DIG=17
define: DBL_EPSILON=2.2204460492503131e-16
define: DBL_HAS_INFINITY=1
define: DBL_HAS_QUIET_NAN=1
define: DBL_MANT_DIG=53
define: DBL_MAX_10_EXP=308
define: DBL_MAX_EXP=1024
define: DBL_MAX=1.7976931348623157e+308
define: DBL_MIN_10_EXP=(-307)
define: DBL_MIN_EXP=(-1021)
define: DBL_MIN=2.2250738585072014e-308
define: LDBL_DENORM_MIN=4.9406564584124654e-324L
define: LDBL_HAS_DENORM=1
define: LDBL_DIG=15
define: LDBL_DECIMAL_DIG=17
define: LDBL_EPSILON=2.2204460492503131e-16L
define: LDBL_HAS_INFINITY=1
define: LDBL_HAS_QUIET_NAN=1
define: LDBL_MANT_DIG=53
define: LDBL_MAX_10_EXP=308
define: LDBL_MAX_EXP=1024
define: LDBL_MAX=1.7976931348623157e+308L
define: LDBL_MIN_10_EXP=(-307)
define: LDBL_MIN_EXP=(-1021)
define: LDBL_MIN=2.2250738585072014e-308L
define: POINTER_WIDTH=32
define: BIGGEST_ALIGNMENT=8
define: CHAR_UNSIGNED=1
define: WCHAR_UNSIGNED=1
define: INT8_TYPE=signed char
define: INT8_FMTd="hhd"
define: INT8_FMTi="hhi"
define: INT8_C_SUFFIX=
define: INT16_TYPE=short
define: INT16_FMTd="hd"
define: INT16_FMTi="hi"
define: INT16_C_SUFFIX=
define: INT32_TYPE=int
define: INT32_FMTd="d"
define: INT32_FMTi="i"
define: INT32_C_SUFFIX=
define: INT64_TYPE=long long int
define: INT64_FMTd="lld"
define: INT64_FMTi="lli"
define: INT64_C_SUFFIX=LL
define: UINT8_TYPE=unsigned char
define: UINT8_FMTo="hho"
define: UINT8_FMTu="hhu"
define: UINT8_FMTx="hhx"
define: UINT8_FMTX="hhX"
define: UINT8_C_SUFFIX=
define: UINT8_MAX=255
define: INT8_MAX=127
define: UINT16_TYPE=unsigned short
define: UINT16_FMTo="ho"
define: UINT16_FMTu="hu"
define: UINT16_FMTx="hx"
define: UINT16_FMTX="hX"
define: UINT16_C_SUFFIX=
define: UINT16_MAX=65535
define: INT16_MAX=32767
define: UINT32_TYPE=unsigned int
define: UINT32_FMTo="o"
define: UINT32_FMTu="u"
define: UINT32_FMTx="x"
define: UINT32_FMTX="X"
define: UINT32_C_SUFFIX=U
define: UINT32_MAX=4294967295U
define: INT32_MAX=2147483647
define: UINT64_TYPE=long long unsigned int
define: UINT64_FMTo="llo"
define: UINT64_FMTu="llu"
define: UINT64_FMTx="llx"
define: UINT64_FMTX="llX"
define: UINT64_C_SUFFIX=ULL
define: UINT64_MAX=18446744073709551615ULL
define: INT64_MAX=9223372036854775807LL
define: INT_LEAST8_TYPE=signed char
define: INT_LEAST8_MAX=127
define: INT_LEAST8_FMTd="hhd"
define: INT_LEAST8_FMTi="hhi"
define: UINT_LEAST8_TYPE=unsigned char
define: UINT_LEAST8_MAX=255
define: UINT_LEAST8_FMTo="hho"
define: UINT_LEAST8_FMTu="hhu"
define: UINT_LEAST8_FMTx="hhx"
define: UINT_LEAST8_FMTX="hhX"
define: INT_LEAST16_TYPE=short
define: INT_LEAST16_MAX=32767
define: INT_LEAST16_FMTd="hd"
define: INT_LEAST16_FMTi="hi"
define: UINT_LEAST16_TYPE=unsigned short
define: UINT_LEAST16_MAX=65535
define: UINT_LEAST16_FMTo="ho"
define: UINT_LEAST16_FMTu="hu"
define: UINT_LEAST16_FMTx="hx"
define: UINT_LEAST16_FMTX="hX"
define: INT_LEAST32_TYPE=int
define: INT_LEAST32_MAX=2147483647
define: INT_LEAST32_FMTd="d"
define: INT_LEAST32_FMTi="i"
define: UINT_LEAST32_TYPE=unsigned int
define: UINT_LEAST32_MAX=4294967295U
define: UINT_LEAST32_FMTo="o"
define: UINT_LEAST32_FMTu="u"
define: UINT_LEAST32_FMTx="x"
define: UINT_LEAST32_FMTX="X"
define: INT_LEAST64_TYPE=long long int
define: INT_LEAST64_MAX=9223372036854775807LL
define: INT_LEAST64_FMTd="lld"
define: INT_LEAST64_FMTi="lli"
define: UINT_LEAST64_TYPE=long long unsigned int
define: UINT_LEAST64_MAX=18446744073709551615ULL
define: UINT_LEAST64_FMTo="llo"
define: UINT_LEAST64_FMTu="llu"
define: UINT_LEAST64_FMTx="llx"
define: UINT_LEAST64_FMTX="llX"
define: INT_FAST8_TYPE=signed char
define: INT_FAST8_MAX=127
define: INT_FAST8_FMTd="hhd"
define: INT_FAST8_FMTi="hhi"
define: UINT_FAST8_TYPE=unsigned char
define: UINT_FAST8_MAX=255
define: UINT_FAST8_FMTo="hho"
define: UINT_FAST8_FMTu="hhu"
define: UINT_FAST8_FMTx="hhx"
define: UINT_FAST8_FMTX="hhX"
define: INT_FAST16_TYPE=short
define: INT_FAST16_MAX=32767
define: INT_FAST16_FMTd="hd"
define: INT_FAST16_FMTi="hi"
define: UINT_FAST16_TYPE=unsigned short
define: UINT_FAST16_MAX=65535
define: UINT_FAST16_FMTo="ho"
define: UINT_FAST16_FMTu="hu"
define: UINT_FAST16_FMTx="hx"
define: UINT_FAST16_FMTX="hX"
define: INT_FAST32_TYPE=int
define: INT_FAST32_MAX=2147483647
define: INT_FAST32_FMTd="d"
define: INT_FAST32_FMTi="i"
define: UINT_FAST32_TYPE=unsigned int
define: UINT_FAST32_MAX=4294967295U
define: UINT_FAST32_FMTo="o"
define: UINT_FAST32_FMTu="u"
define: UINT_FAST32_FMTx="x"
define: UINT_FAST32_FMTX="X"
define: INT_FAST64_TYPE=long long int
define: INT_FAST64_MAX=9223372036854775807LL
define: INT_FAST64_FMTd="lld"
define: INT_FAST64_FMTi="lli"
define: UINT_FAST64_TYPE=long long unsigned int
define: UINT_FAST64_MAX=18446744073709551615ULL
define: UINT_FAST64_FMTo="llo"
define: UINT_FAST64_FMTu="llu"
define: UINT_FAST64_FMTx="llx"
define: UINT_FAST64_FMTX="llX"
define: USER_LABEL_PREFIX=
define: FINITE_MATH_ONLY=0
define: GNUC_GNU_INLINE=1
define: __GCC_ATOMIC_TEST_AND_SET_TRUEVAL=1
define: __CLANG_ATOMIC_BOOL_LOCK_FREE=1
define: __CLANG_ATOMIC_CHAR_LOCK_FREE=1
define: __CLANG_ATOMIC_CHAR16_T_LOCK_FREE=1
define: __CLANG_ATOMIC_CHAR32_T_LOCK_FREE=1
define: __CLANG_ATOMIC_WCHAR_T_LOCK_FREE=1
define: __CLANG_ATOMIC_SHORT_LOCK_FREE=1
define: __CLANG_ATOMIC_INT_LOCK_FREE=1
define: __CLANG_ATOMIC_LONG_LOCK_FREE=1
define: __CLANG_ATOMIC_LLONG_LOCK_FREE=1
define: __CLANG_ATOMIC_POINTER_LOCK_FREE=1
define: __GCC_ATOMIC_BOOL_LOCK_FREE=1
define: __GCC_ATOMIC_CHAR_LOCK_FREE=1
define: __GCC_ATOMIC_CHAR16_T_LOCK_FREE=1
define: __GCC_ATOMIC_CHAR32_T_LOCK_FREE=1
define: __GCC_ATOMIC_WCHAR_T_LOCK_FREE=1
define: __GCC_ATOMIC_SHORT_LOCK_FREE=1
define: __GCC_ATOMIC_INT_LOCK_FREE=1
define: __GCC_ATOMIC_LONG_LOCK_FREE=1
define: __GCC_ATOMIC_LLONG_LOCK_FREE=1
define: __GCC_ATOMIC_POINTER_LOCK_FREE=1
define: NO_INLINE=1
define: FLT_EVAL_METHOD=0
define: FLT_RADIX=2
define: DECIMAL_DIG=LDBL_DECIMAL_DIG
define: ARMEL=1
define: __arm=1
define: arm=1
define: ELF=1
define: REGISTER_PREFIX=
define: ARM_ARCH_4T=1
define: __ARM_ARCH=4
define: __ARM_ARCH_ISA_ARM=1
define: __ARM_ARCH_ISA_THUMB=1
define: __ARM_32BIT_STATE=1
define: __ARM_ACLE=200
define: __ARM_FP16_FORMAT_IEEE=1
define: __ARM_FP16_ARGS=1
define: ARM_EABI=1
define: __ARM_PCS=1
define: APCS_32=1
define: __ARM_SIZEOF_WCHAR_T=4
define: __ARM_SIZEOF_MINIMAL_ENUM=4
define: STDC=1
define: STDC_HOSTED=1
define: __cplusplus=201703L
define: STDCPP_DEFAULT_NEW_ALIGNMENT=8U
define: STDC_UTF_16=1
define: STDC_UTF_32=1
other: --clang
other: --clang_version=120000
stdver: c++17
intelliSenseMode: macos-clang-arm
Checking for syntax errors: file:///Users/citelao/Projects/libcutter/util/draw_svg.cpp
Queueing IntelliSense update for files in translation unit of: /Users/citelao/Projects/libcutter/util/draw_svg.cpp
cpptools/getFoldingRanges: file:///Users/citelao/Projects/libcutter/util/draw_svg.cpp (id: 8)
cpptools/finishUpdateSquiggles
Error squiggle count: 152
Error squiggles will be disabled in: file:///Users/citelao/Projects/libcutter/util/draw_svg.cpp
terminating child process: 73877
Update IntelliSense time (sec): 0.342
cpptools/getFoldingRanges: file:///Users/citelao/Projects/libcutter/util/draw_svg.cpp (id: 9)
cpptools/getCodeActions: file:///Users/citelao/Projects/libcutter/util/draw_svg.cpp (id: 10)
idle loop: reparsing the active document
Checking for syntax errors: file:///Users/citelao/Projects/libcutter/util/draw_svg.cpp
Queueing IntelliSense update for files in translation unit of: /Users/citelao/Projects/libcutter/util/draw_svg.cpp
cpptools/finishUpdateSquiggles
Error squiggle count: 152
Update IntelliSense time (sec): 0.277
cpptools/getSemanticTokens: file:///Users/citelao/Projects/libcutter/util/draw_svg.cpp (id: 11)
cpptools/getFoldingRanges: file:///Users/citelao/Projects/libcutter/util/draw_svg.cpp (id: 12)
cpptools/getCodeActions: file:///Users/citelao/Projects/libcutter/util/draw_svg.cpp (id: 13)
cpptools/activeDocumentChange: file:///Users/citelao/Projects/libcutter/util/draw_svg.cpp
cpptools/textEditorSelectionChange
idle loop: reparsing the active document
Checking for syntax errors: file:///Users/citelao/Projects/libcutter/util/draw_svg.cpp
Queueing IntelliSense update for files in translation unit of: /Users/citelao/Projects/libcutter/util/draw_svg.cpp
cpptools/finishUpdateSquiggles
Error squiggle count: 152
Update IntelliSense time (sec): 0.285
cpptools/getSemanticTokens: file:///Users/citelao/Projects/libcutter/util/draw_svg.cpp (id: 14)
cpptools/getFoldingRanges: file:///Users/citelao/Projects/libcutter/util/draw_svg.cpp (id: 15)
cpptools/getCodeActions: file:///Users/citelao/Projects/libcutter/util/draw_svg.cpp (id: 16)

CMake Tools Log

(empty)


Let me know if there's any other information I can give!

@citelao
Copy link
Author

citelao commented Mar 31, 2021

This persists after I update the lib CMakeLists.txt to include header files:

# ...

set(cutter_headers
    ../include/pub/keys.h
    ../include/btea.h
    ../include/device_c.hpp
    ../include/device_sim.hpp
    ../include/device.hpp
    ../include/serial_port.hpp
    ../include/types.h
)

# from:
# add_library (cutter SHARED ${cutter_files})
# to:
add_library (cutter SHARED ${cutter_headers} ${cutter_files})

@andreeis
Copy link
Contributor

andreeis commented Apr 2, 2021

Thank you for opening this report. We are seeing a couple of hints in the logs that you provided and we are investigating. We will let you know as soon as we need any extra information from you, when we find a workaround that could help unblock you and of course when we have a fix for this.

@michelleangela
Copy link
Contributor

The user provided configuration named "Mac, working" uses gcc compiler and IntellisenseMode macos-gcc-arm64 to query and get header info. This configuration is set on the C++ extension side.

Whereas the configuration named "Mac CMAKE" uses compiler clang++ and IntellisenseMode macos-clang-arm to query and get header info. This configuration is set on the cmake-tools extension side, and then it is provided to the C++ extension.

It looks like the desired compiler and intellisenseMode is as follows:

 "intelliSenseMode": "macos-gcc-arm64",
 "compilerPath": "/opt/homebrew/bin/gcc-10",

But cmake-tools is sending these instead: /usr/bin/clang++ and clang-arm, which results in incorrect headers or headers not being found.

{
    "defines": [],
    "standard": "gnu++17",
    "includePath": [
        "/users/citelao/projects/libcutter/include",
        "/users/citelao/projects/libcutter/include/pub",
        "/users/citelao/projects/libcutter/util/include",
        "/users/citelao/projects/libcutter/util/include/pub"
    ],
    "intelliSenseMode": "clang-arm",
    "compilerPath": "/usr/bin/clang++",
    "compilerArgs": [
        "-g",
        "-Wall",
        "-g",
        "-arch",
        "arm64",
        "-isysroot",
        "/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX11.1.sdk",
        "-std=gnu++17"
    ]
}

From the user provided compilers info, querying gcc --version shows it's pointing to XCode's Clang. Perhaps cmake-tools is using the incorrect gcc path? Is there a way to have cmake-tools use the compiler path "/opt/homebrew/bin/gcc-10" or change the symlink of "gcc" to "/opt/homebrew/bin/gcc-10"?

If changing the symblink of "gcc" doesn't work. Another workaround is to set IntelliSense configuartion from the C++ extension. That is remove the setting configurationProvider, so that the C++ extension will use the other property values in c_cpp_properties.json (see example below). If configurationProvider is set, the extension will use the property values sent by the cmake-tools.

Example of intelliSense configuration without using configurationProvider.

{
    "name": "Mac CMAKE",
    "includePath": [
        "/opt/homebrew/Cellar/gcc/10.2.0_2/include/c++/10.2.1",
        "/opt/homebrew/Cellar/gcc/10.2.0_2/include/c++/10.2.1/aarch64-apple-darwin20",
        "/opt/homebrew/Cellar/gcc/10.2.0_2/include/c++/10.2.1/backward",
        "/opt/homebrew/Cellar/gcc/10.2.0_2/lib/gcc/10/gcc/aarch64-apple-darwin20/10.2.1/include",
        "/opt/homebrew/Cellar/gcc/10.2.0_2/lib/gcc/10/gcc/aarch64-apple-darwin20/10.2.1/include-fixed",
        "/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include",
        "/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks"
    ],
    "macFrameworkPath": [],
    "compilerArgs": [],
    "cStandard": "gnu17",
    "cppStandard": "gnu++14",
    "intelliSenseMode": "macos-gcc-arm64",
    "intelliSenseModeIsExplicit": false,
    "cStandardIsExplicit": false,
    "cppStandardIsExplicit": false,
    "compilerPathIsExplicit": false,
    "compilerPath": "/opt/homebrew/bin/gcc-10",
    "browse": {
        "path": [
            "/opt/homebrew/Cellar/gcc/10.2.0_2/include/c++/10.2.1",
            "/opt/homebrew/Cellar/gcc/10.2.0_2/include/c++/10.2.1/aarch64-apple-darwin20",
            "/opt/homebrew/Cellar/gcc/10.2.0_2/include/c++/10.2.1/backward",
            "/opt/homebrew/Cellar/gcc/10.2.0_2/lib/gcc/10/gcc/aarch64-apple-darwin20/10.2.1/include",
            "/opt/homebrew/Cellar/gcc/10.2.0_2/lib/gcc/10/gcc/aarch64-apple-darwin20/10.2.1/include-fixed",
            "/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include",
            "/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks",
            "${workspaceFolder}"
        ],
        "limitSymbolsToIncludedHeaders": true
    }
}

@Colengms
Copy link
Contributor

Colengms commented Apr 5, 2021

It looks like there is also an issue with the --target=arm-arm-non-eabi arg that cpptools is adding when trying to query the compiler for system include paths. This arg causes the other -arch arm64 arg to be ignored, and causes incorrect include paths to be returned.

@citelao
Copy link
Author

citelao commented Apr 6, 2021

If it's helpful, I had some issues with the default install path for Homebrew; it changed for M1 Macs from /usr/local/something to /opt/homebrew/ (see Homebrew/brew#9117).

I am using the recommended new location (/opt/...), and I do not have an "Intel"/old install of Homebrew.

@michelleangela
Copy link
Contributor

@citelao
The vscode-cpptools extension just released 1.3.0-insiders4 which has language service ARM64 binaries for Apple Silicon. It also includes a fix to remove the extra --target=arm-arm-non-eabi compiler argument that the language service adds when querying the compiler for ARM specific defines.

Could you try 1.3.0-insiders4 of vscode-cpptools and see if the issue gets resolved or partly resolved?

VSIX package for macOS ARM64 is cpptools-osx-arm64.vsix

@michelleangela michelleangela added this to the 1.7.0 milestone Apr 8, 2021
@michelleangela michelleangela added bug a bug in the product fixed (release pending) fixed in pre-release and is pending official release labels Apr 8, 2021
@michelleangela michelleangela self-assigned this Apr 8, 2021
@andreeis
Copy link
Contributor

CMake Tools 1.7.0 was released today and it contains a fix for this issue. Upgrade the extension in VSCode and let us know if you encounter any other problems.

@bobbrow bobbrow added this to Pull Requests in 1.7.0 Apr 23, 2021
@bobbrow bobbrow moved this from Pull Requests to Done in 1.7.0 Apr 23, 2021
@citelao
Copy link
Author

citelao commented Apr 28, 2021

Thank you for following up on this! I'll validate this soon :)

@citelao
Copy link
Author

citelao commented Apr 28, 2021

1.7.0 fixes it! Thank you!

@github-actions github-actions bot locked and limited conversation to collaborators Jan 30, 2022
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
bug a bug in the product Feature: cpptools integration fixed (release pending) fixed in pre-release and is pending official release
Projects
No open projects
1.7.0
Done
Development

No branches or pull requests

4 participants