Skip to content

Releases: Ruminem/cmake-link-explorer

v0.2.2

Choose a tag to compare

@github-actions github-actions released this 07 Sep 00:28

A VS Code extension for the moments a CMake project stops you over linking.

Docs: English · 한국어

Install

Windows, double-click

Download cmake-link-explorer-0.2.2-windows.zip below, unzip it, and run
install.cmd. It locates VS Code itself, so code does not have to be on
PATH — right after installing VS Code the terminal is usually still holding
the PATH it started with.

Anywhere else

Download cmake-link-explorer-0.2.2.vsix below, then either use ...
Install from VSIX in the Extensions view, or:

code --install-extension cmake-link-explorer-0.2.2.vsix

Restart VS Code afterwards. It activates on its own when you open a CMake
project or a C/C++ file, and finds the build directory by looking for
CMakeCache.txt.

What is in it

Link for include what to link to use a header, applied to the right CMakeLists.txt as a Quick Fix
Targets what links what, and above all who links this, with sizes joined in from a linker map
Linker Map what eats the size, memory regions, and a diff between two builds
Compiled With the effective macros and include paths for a file, inherited PUBLIC settings included
Cycles / Unused link cycles between static libraries, and libraries nothing needs
Compare Trees where two configured build trees diverge, for "builds here, breaks there"

It reads CMake's File API rather than parsing CMakeLists.txt, so generator
expressions, conditional links and helper functions all arrive resolved.

Requirements

  • VS Code 1.75 or newer
  • CMake 3.14 or newer (File API)
  • No runtime dependencies. Plain JavaScript with no build step.

Linker map support covers GNU ld and Apple ld64, both verified against real
linker output. LLVM lld and MSVC link.exe /MAP are not supported yet;
guessing at a format without a real sample means quietly showing wrong
numbers. C++ symbol demangling uses c++filt when it is there and a
built-in demangler when it is not, which is the normal case on Windows.

한국어 설치 안내

Windows, 더블클릭

아래 cmake-link-explorer-0.2.2-windows.zip을 받아 풀고 install.cmd
실행함. VS Code를 직접 찾으므로 code가 PATH에 없어도 됨 — VS Code를 갓 깔았다면
터미널이 아직 옛 PATH를 들고 있는 경우가 흔함.

그 외 환경

아래 cmake-link-explorer-0.2.2.vsix를 받아, 확장 뷰에서 ...
VSIX에서 설치를 누르거나 명령줄로:

code --install-extension cmake-link-explorer-0.2.2.vsix

설치 뒤 VS Code를 다시 켬. CMake 프로젝트나 C/C++ 파일을 여는 것만으로 켜지고,
빌드 디렉토리는 CMakeCache.txt를 찾아 자동 탐지함.

Full Changelog: v0.2.1...v0.2.2

v0.2.1

Choose a tag to compare

@github-actions github-actions released this 06 Sep 15:08

A VS Code extension for the moments a CMake project stops you over linking.

Docs: English · 한국어

Install

Windows, double-click

Download cmake-link-explorer-0.2.1-windows.zip below, unzip it, and run
install.cmd. It locates VS Code itself, so code does not have to be on
PATH — right after installing VS Code the terminal is usually still holding
the PATH it started with.

Anywhere else

Download cmake-link-explorer-0.2.1.vsix below, then either use ...
Install from VSIX in the Extensions view, or:

code --install-extension cmake-link-explorer-0.2.1.vsix

Restart VS Code afterwards. It activates on its own when you open a CMake
project or a C/C++ file, and finds the build directory by looking for
CMakeCache.txt.

What is in it

Link for include what to link to use a header, applied to the right CMakeLists.txt as a Quick Fix
Targets what links what, and above all who links this, with sizes joined in from a linker map
Linker Map what eats the size, memory regions, and a diff between two builds
Compiled With the effective macros and include paths for a file, inherited PUBLIC settings included
Cycles / Unused link cycles between static libraries, and libraries nothing needs
Compare Trees where two configured build trees diverge, for "builds here, breaks there"

It reads CMake's File API rather than parsing CMakeLists.txt, so generator
expressions, conditional links and helper functions all arrive resolved.

Requirements

  • VS Code 1.75 or newer
  • CMake 3.14 or newer (File API)
  • No runtime dependencies. Plain JavaScript with no build step.

Linker map support covers GNU ld and Apple ld64, both verified against real
linker output. LLVM lld and MSVC link.exe /MAP are not supported yet;
guessing at a format without a real sample means quietly showing wrong
numbers. C++ symbol demangling uses c++filt when it is there and a
built-in demangler when it is not, which is the normal case on Windows.

한국어 설치 안내

Windows, 더블클릭

아래 cmake-link-explorer-0.2.1-windows.zip을 받아 풀고 install.cmd
실행함. VS Code를 직접 찾으므로 code가 PATH에 없어도 됨 — VS Code를 갓 깔았다면
터미널이 아직 옛 PATH를 들고 있는 경우가 흔함.

그 외 환경

아래 cmake-link-explorer-0.2.1.vsix를 받아, 확장 뷰에서 ...
VSIX에서 설치를 누르거나 명령줄로:

code --install-extension cmake-link-explorer-0.2.1.vsix

설치 뒤 VS Code를 다시 켬. CMake 프로젝트나 C/C++ 파일을 여는 것만으로 켜지고,
빌드 디렉토리는 CMakeCache.txt를 찾아 자동 탐지함.

Full Changelog: v0.2.0...v0.2.1

v0.2.0

Choose a tag to compare

@github-actions github-actions released this 06 Sep 14:50

A VS Code extension for the moments a CMake project stops you over linking.

Docs: English · 한국어

Install

Windows, double-click

Download cmake-link-explorer-0.2.0-windows.zip below, unzip it, and run
install.cmd. It locates VS Code itself, so code does not have to be on
PATH — right after installing VS Code the terminal is usually still holding
the PATH it started with.

Anywhere else

Download cmake-link-explorer-0.2.0.vsix below, then either use ...
Install from VSIX in the Extensions view, or:

code --install-extension cmake-link-explorer-0.2.0.vsix

Restart VS Code afterwards. It activates on its own when you open a CMake
project or a C/C++ file, and finds the build directory by looking for
CMakeCache.txt.

What is in it

Link for include what to link to use a header, applied to the right CMakeLists.txt as a Quick Fix
Targets what links what, and above all who links this, with sizes joined in from a linker map
Linker Map what eats the size, memory regions, and a diff between two builds
Compiled With the effective macros and include paths for a file, inherited PUBLIC settings included
Cycles / Unused link cycles between static libraries, and libraries nothing needs
Compare Trees where two configured build trees diverge, for "builds here, breaks there"

It reads CMake's File API rather than parsing CMakeLists.txt, so generator
expressions, conditional links and helper functions all arrive resolved.

Requirements

  • VS Code 1.75 or newer
  • CMake 3.14 or newer (File API)
  • No runtime dependencies. Plain JavaScript with no build step.

Linker map support covers GNU ld and Apple ld64, both verified against real
linker output. LLVM lld and MSVC link.exe /MAP are not supported yet;
guessing at a format without a real sample means quietly showing wrong
numbers. C++ symbol demangling uses c++filt when it is there and a
built-in demangler when it is not, which is the normal case on Windows.

한국어 설치 안내

Windows, 더블클릭

아래 cmake-link-explorer-0.2.0-windows.zip을 받아 풀고 install.cmd
실행함. VS Code를 직접 찾으므로 code가 PATH에 없어도 됨 — VS Code를 갓 깔았다면
터미널이 아직 옛 PATH를 들고 있는 경우가 흔함.

그 외 환경

아래 cmake-link-explorer-0.2.0.vsix를 받아, 확장 뷰에서 ...
VSIX에서 설치를 누르거나 명령줄로:

code --install-extension cmake-link-explorer-0.2.0.vsix

설치 뒤 VS Code를 다시 켬. CMake 프로젝트나 C/C++ 파일을 여는 것만으로 켜지고,
빌드 디렉토리는 CMakeCache.txt를 찾아 자동 탐지함.

Full Changelog: v0.1.1...v0.2.0

v0.1.1

Choose a tag to compare

@github-actions github-actions released this 06 Sep 03:20

A VS Code extension for the moments a CMake project stops you over linking.

Docs: English · 한국어

Install

Windows, double-click

Download cmake-link-explorer-0.1.1-windows.zip below, unzip it, and run
install.cmd. It locates VS Code itself, so code does not have to be on
PATH — right after installing VS Code the terminal is usually still holding
the PATH it started with.

Anywhere else

Download cmake-link-explorer-0.1.1.vsix below, then either use ...
Install from VSIX in the Extensions view, or:

code --install-extension cmake-link-explorer-0.1.1.vsix

Restart VS Code afterwards. It activates on its own when you open a CMake
project or a C/C++ file, and finds the build directory by looking for
CMakeCache.txt.

What is in it

Link for include what to link to use a header, applied to the right CMakeLists.txt as a Quick Fix
Targets what links what, and above all who links this, with sizes joined in from a linker map
Linker Map what eats the size, memory regions, and a diff between two builds
Compiled With the effective macros and include paths for a file, inherited PUBLIC settings included
Cycles / Unused link cycles between static libraries, and libraries nothing needs
Compare Trees where two configured build trees diverge, for "builds here, breaks there"

It reads CMake's File API rather than parsing CMakeLists.txt, so generator
expressions, conditional links and helper functions all arrive resolved.

Requirements

  • VS Code 1.75 or newer
  • CMake 3.14 or newer (File API)
  • No runtime dependencies. Plain JavaScript with no build step.

Linker map support covers GNU ld and Apple ld64, both verified against real
linker output. LLVM lld and MSVC link.exe /MAP are not supported yet;
guessing at a format without a real sample means quietly showing wrong
numbers. C++ symbol demangling uses c++filt when it is there and a
built-in demangler when it is not, which is the normal case on Windows.

한국어 설치 안내

Windows, 더블클릭

아래 cmake-link-explorer-0.1.1-windows.zip을 받아 풀고 install.cmd
실행함. VS Code를 직접 찾으므로 code가 PATH에 없어도 됨 — VS Code를 갓 깔았다면
터미널이 아직 옛 PATH를 들고 있는 경우가 흔함.

그 외 환경

아래 cmake-link-explorer-0.1.1.vsix를 받아, 확장 뷰에서 ...
VSIX에서 설치를 누르거나 명령줄로:

code --install-extension cmake-link-explorer-0.1.1.vsix

설치 뒤 VS Code를 다시 켬. CMake 프로젝트나 C/C++ 파일을 여는 것만으로 켜지고,
빌드 디렉토리는 CMakeCache.txt를 찾아 자동 탐지함.

Full Changelog: v0.1.0...v0.1.1

v0.1.0

Choose a tag to compare

@Ruminem Ruminem released this 05 Sep 16:27

A VS Code extension for the moments a CMake project stops you over linking.

Docs: English · 한국어

Install

Download cmake-link-explorer-0.1.0.vsix below, then either use ...Install from VSIX in the Extensions view, or:

code --install-extension cmake-link-explorer-0.1.0.vsix

Restart VS Code afterwards. It activates on its own when you open a CMake project or a C/C++ file.

What is in it

Link for include what to link to use a header, applied to the right CMakeLists.txt as a Quick Fix
Targets what links what, and above all who links this, with sizes joined in from a linker map
Linker Map what eats the size, memory regions, and a diff between two builds
Compiled With the effective macros and include paths for a file, inherited PUBLIC settings included
Cycles / Unused link cycles between static libraries, and libraries nothing needs
Compare Trees where two configured build trees diverge, for "builds here, breaks there"

It reads CMake's File API rather than parsing CMakeLists.txt, so generator expressions, conditional links and helper functions all arrive resolved.

Requirements

  • VS Code 1.75 or newer
  • CMake 3.14 or newer (File API)
  • No runtime dependencies. It is plain JavaScript with no build step.

Linker map support covers GNU ld and Apple ld64, both verified against real linker output. LLVM lld and MSVC link.exe /MAP are not supported yet; guessing at a format without a real sample means quietly showing wrong numbers.

C++ symbol demangling uses c++filt when it is there and a built-in demangler when it is not, which is the normal case on Windows.

Verified

195 checks in one pass on Windows: 160 unit checks and 35 inside a real VS Code extension host. Further suites run against a configured test/sample-project and against googletest / abseil-cpp; the readme lists what each covers.

The linker map fixtures in the repository are real linker output and are checked in, so the tests run with no toolchain installed.