Ccls is a C/C++/Objective-C language server with the following
features:
- Code completion (with both signature help and snippets)
- Definition/references, and other cross references
- Cross reference extensions: $ccls/call $ccls/inheritance $ccls/member
$ccls/vars ...
- Formatting
- Hierarchies: call (caller/callee) hierarchy, inheritance
(base/derived) hierarchy, member hierarchy
- Symbol rename
- Document symbols and approximate search of workspace symbol
- Hover information
- Diagnostics and code actions (clang FixIts)
- Semantic highlighting and preprocessor skipped regions
- Semantic navigation: $ccls/navigate
===> The following configuration options are available for ccls-0.20240202:
DOCS=on: Build and/or install documentation
===> Use 'make config' to modify these settings
port moved here from devel/cquery on 2025-01-01 REASON: Has expired: Abandonware, upstream repo archived Jul 30, 2020. Consider using migrating to devel/ccls
devel/ccls: fix build with LLVM_DEFAULT=19
When building against llvm 19, several errors appear:
/wrkdirs/usr/ports/devel/ccls/work/ccls-0.20240202/src/include_complete.cc:117:37:
error: no member named 'endswith' in 'llvm::StringRef'; did you mean 'ends_
117 | if (StringRef(path).endswith(suffix))
| ^~~~~~~~
| ends_with
/wrkdirs/usr/ports/devel/ccls/work/ccls-0.20240202/src/clang_tu.cc:32:22:
error: no member named 'startswith' in 'llvm::StringRef'; did you mean
'starts_with'
32 | if (file.getName().startswith("/../")) {
| ^~~~~~~~~~
| starts_with
/wrkdirs/usr/ports/devel/ccls/work/ccls-0.20240202/src/clang_tu.cc:340:21:
error: no member named 'OMPArraySection' in 'clang::BuiltinType'; did you mean
'Arr
340 | case BuiltinType::OMPArraySection:
| ~~~~~~~~~~~~~^~~~~~~~~~~~~~~
| ArraySection
/wrkdirs/usr/ports/devel/ccls/work/ccls-0.20240202/src/indexer.cc:1130:64:
error: non-virtual member function marked 'override' hides virtual member
function
1130 | SrcMgr::CharacteristicKind fileType)
override {
| ^
Pull in a number of upstream patches to fix these.
PR: 284422
Appproved by: maintainer timeout (2 weeks)
MFH: 2025Q1
Cleanup: Remove devel/llvm[789]0
* remove old devel/llvm70
* remove old devel/llvm80
* remove old devel/llvm90
* remove ports explicitely depending on either of the three
Differential Revision: https://reviews.freebsd.org/D37936
devel/ccls: lock llvm-version at 9
LLVM_DEFAULT will be bumped to 15, this port fails with:
[...]
/wrkdirs/usr/ports/devel/ccls/work/ccls-0.20210330/src/indexer.cc:530:21:
error: use of undeclared identifier 'isIdentifierBody'; did you mean
'IdentifierLoc'?
((i && isIdentifierBody(name[i - 1])) ||
^
[...]
PR: 263456
Remove WWW entries moved into port Makefiles
Commit b7f05445c00f has added WWW entries to port Makefiles based on
WWW: lines in pkg-descr files.
This commit removes the WWW: lines of moved-over URLs from these
pkg-descr files.
Approved by: portmgr (tcberner)
Add WWW entries to port Makefiles
It has been common practice to have one or more URLs at the end of the
ports' pkg-descr files, one per line and prefixed with "WWW:". These
URLs should point at a project website or other relevant resources.
Access to these URLs required processing of the pkg-descr files, and
they have often become stale over time. If more than one such URL was
present in a pkg-descr file, only the first one was tarnsfered into
the port INDEX, but for many ports only the last line did contain the
port specific URL to further information.
There have been several proposals to make a project URL available as
a macro in the ports' Makefiles, over time.
(Only the first 15 lines of the commit message are shown above )
devel/ccls: Update to 0.20210330
The location of documentation tarball is reset to my ~/public_distfiles.
Approved by: lwhsu
Differential Revision: https://reviews.freebsd.org/D29601
devel/ccls: Unbreak build with LLVM10
src/indexer.cc:683:50: error: only virtual member functions can be marked
'override'
ASTNodeInfo ast_node) override {
^~~~~~~~~
1 error generated.
Bump PORTREVISION for ports depending on the canonical version of GCC
as defined in Mk/bsd.default-versions.mk which has moved from GCC 8.3
to GCC 9.1 under most circumstances now after revision 507371.
This includes ports
- with USE_GCC=yes or USE_GCC=any,
- with USES=fortran,
- using Mk/bsd.octave.mk which in turn features USES=fortran, and
- with USES=compiler specifying openmp, nestedfct, c11, c++0x, c++11-lang,
c++11-lib, c++14-lang, c++17-lang, or gcc-c++11-lib
plus, everything INDEX-11 shows with a dependency on lang/gcc9 now.
PR: 238330
devel/ccls: Fix build with multiple llvm* packages installed
Apparently it is possible for the build to pick multiple LLVM
versions if LLVM_DIR is not explicitly set similar to Clang_DIR.
$ grep llvm $(make -V CONFIGURE_WRKSRC)/CMakeCache.txt
Clang_DIR:PATH=/usr/local/llvm80/lib/cmake/clang
LLVM_DIR:PATH=/usr/local/llvm50/lib/cmake/llvm
PR: 237089
Submitted by: fullermd@over-yonder.net
devel/ccls: unbreak with DEFAULT_VERSIONS+=llvm=-devel
Don't try hard to make LIB_DEPENDS pick the specific version when this
is already enforced by BUILD_DEPENDS. The left field in _DEPENDS lines
isn't recorded into binary packages, anyway.
=======================<phase: lib-depends >============================
===> ccls-0.20190301_2 depends on shared library: libLLVM--devel.so - not
found
===> Installing existing package /packages/All/llvm-devel-9.0.d20190226.txz
[120i386-default-llvm90-job-07] Installing llvm-devel-9.0.d20190226...
the most recent version of llvm-devel-9.0.d20190226 is already installed
===> ccls-0.20190301_2 depends on shared library: libLLVM--devel.so - not
found
*** Error code 1
devel/ccls: Build with LLVM_ENABLE_RTTI
Same as the devel/llvm* ports. Otherwise ccls is compiled with
-fno-rtti but LLVM is not which can lead to crashes [1]. Make sure
assertions are disabled too while here.
[1] https://github.com/MaskRay/ccls/issues/30
devel/ccls: Fix distinfo after upstream retagged 0.20181225
- Add the commit currently tagged as 0.20181225 for future reference
- The old 0.20181225 tag was commit a9397cf6148d50b88a36ec2e90ea23813dda379d
- Drop upstreamed patch
Distfile diff:
https://people.freebsd.org/~tobik/logs/ccls-0.20181225-retag.diff
Change cmake default behaviour to outsource.
Ports that build out of source now simply can use "USES=cmake"
instead of "USES=cmake:outsource". Ports that fail to build
out of source now need to specify "USES=cmake:insource".
I tried to only set insource where explictely needed.
PR: 232038
Exp-run by: antoine
Bump PORTREVISION for ports depending on the canonical version of GCC
defined via Mk/bsd.default-versions.mk which has moved from GCC 7.4 t
GCC 8.2 under most circumstances.
This includes ports
- with USE_GCC=yes or USE_GCC=any,
- with USES=fortran,
- using Mk/bsd.octave.mk which in turn features USES=fortran, and
- with USES=compiler specifying openmp, nestedfct, c11, c++0x, c++11-lang,
c++11-lib, c++14-lang, c++17-lang, or gcc-c++11-lib
plus, as a double check, everything INDEX-11 showed depending on lang/gcc7.
PR: 231590
New port: devel/ccls
Ccls is a C/C++/Objective-C language server with the following
features:
- Code completion (with both signature help and snippets)
- Definition/references, and other cross references
- Cross reference extensions: $ccls/call $ccls/inheritance $ccls/member
$ccls/vars ...
- Formatting
- Hierarchies: call (caller/callee) hierarchy, inheritance
(base/derived) hierarchy, member hierarchy
- Symbol rename
- Document symbols and approximate search of workspace symbol
- Hover information
- Diagnostics and code actions (clang FixIts)
- Semantic highlighting and preprocessor skipped regions
- Semantic navigation: $ccls/navigate
WWW: https://github.com/MaskRay/ccls